- 398
- 4
- 7
Мне нужно отображать в GUI множество данных из TileEntity. Проблема в том, что данных очень много и меняются они часто, а значит методы getDescriptionPacket и onDataPacket в TileEntity не подходят для синхронизации.
Нужно синхронизировать данные только когда отрыт GUI. Как я понял, для этого лучше использовать контейнерные классы, а не GuiScreen.
Смотрел тему "Просто приведу пример с комментариями, как сделать GuiContainer". Возникло несколько вопросов:
1) На стороне сервера в GuiHandler-е создается объект ContainerTest каждый раз, когда кто-то открывает GUI (у одного и того же блока)? То есть, если несколько игроков откроет GUI у одного и того же блока, то создастся несколько объектов ContainerTest?
2) Из кода печки (класс ContainerFurnace):
Если на каждого открывшего GUI игрока, на стороне сервера есть по одному такому объекту, то зачем этот цикл? Что вообще находится в this.crafters ?
3) Можно ли сделать у ContainerTest конструктор вида
А потом в методе detectAndSendChanges отправлять пакеты (с данными из TileEntity) к player?
Нужно синхронизировать данные только когда отрыт GUI. Как я понял, для этого лучше использовать контейнерные классы, а не GuiScreen.
Смотрел тему "Просто приведу пример с комментариями, как сделать GuiContainer". Возникло несколько вопросов:
1) На стороне сервера в GuiHandler-е создается объект ContainerTest каждый раз, когда кто-то открывает GUI (у одного и того же блока)? То есть, если несколько игроков откроет GUI у одного и того же блока, то создастся несколько объектов ContainerTest?
2) Из кода печки (класс ContainerFurnace):
Код:
public void detectAndSendChanges()
{
super.detectAndSendChanges();
for (int i = 0; i < this.crafters.size(); ++i)
{
ICrafting icrafting = (ICrafting)this.crafters.get(i);
3) Можно ли сделать у ContainerTest конструктор вида
Код:
public ContainerComputer(EntityPlayer player, MyBlockTileEntity te) {
var1 = player;
var2 = te;
}