Сохранение id entity при перезагрузке мира

Версия Minecraft
1.7.10
124
1
0
Приветствую мододелы. Имеется у меня Entity, который связан с еще несколькими через id в мире. эта связь работает исправно до перезахода на карту. Банально заспавнил этут систему, вышел в главное меню и вернулся обратно на карту. id всех трех энтити в системе поменялись (скрин 1 до перезахода, скрин 2 после перезахода, выводятся просто id энтити в консоль). Как сделать чтобы id присваивался при спавне и оставался неизменным независимо от перезаходов, прогрузки чанков и всего остального?
Y0JBFDhvXz8.jpg9E36SxDCvwo.jpg
 
7,099
324
1,510
7,099
324
1,510
Храни прямо в сущности, в переменной этот id, при сохранении мира сохраняй там же, где и остальные свойства сущности(не помню, как это называется, дата-вотчер, вроде).
Чтобы быстро получать сущности по кастомному id, при обновлении поля id клади в мапу Int->Entity свою сущность, потом можно быстро вытащить.
Мапу сделай где-то в доступном месте, например, статик-поле в самой сущности
 

timaxa007

Модератор
5,831
409
672
тоже поменялись при перезаходе в мир

Тогда есть два способа.
1. В основной поезд сохранять связанные с ним вагонетки и т.п.
2. Либо типа этим Entity давать UUID каждый уникальный, чтобы не случайно повторились, а для этого типа создать класс для его сохранения, загрузки и использования, типа можно и первый тоже использовать.
 
7,099
324
1,510
Не из мира получай, а из своей мапы
Чтобы быстро получать сущности по кастомному id, при обновлении поля id клади в мапу Int->Entity свою сущность, потом можно быстро вытащить.
Мапу сделай где-то в доступном месте, например, статик-поле в самой сущности

при загрузке из нбт читается ид
при обновлении поля id клади в мапу Int->Entity свою сущность
 

timaxa007

Модератор
5,831
409
672
Сверху