[1.7.10]Проблема с вызовом TileEntity после перезапуска

10
0
Есть объект, создающий TileEntity.Он должен ускорять печку, стоящую над ним, вызывая у неё Update.Но при перезаходе на клиент он не работает.Как я понял - на клиенте TileEntity существует, а на сервере нет.В чём может быть проблема?
 
Погуглил, в эклипсе потыкал,пользы - ноль.Можно как то по подробней, как это можно исправить?
 
На всякий случай, в классе блока у тебя так?

Код:
    @Override
    public TileEntity createNewTileEntity(World world, int var2) {
        return new твой_класс_TileEntity();
    }


Причин подобного поведения может быть много, выложи лучше весь свой код.
 
Код:
package com.uppfinning.blocks;

<imports>

public class BlazeHeater extends AmorphContainer {
    private IIcon[] icon =new IIcon[2];
    public BlazeHeater(String _name) {
        super(_name);
    }
    
    @Override
    public TileEntity createNewTileEntity(World world,int a) {
        return new TileEntityBlazeHeater();
    }
}

это блок
Код:
package com.uppfinning.tileentity;

import com.uppfinning.Uppfinning;

import net.minecraft.init.Blocks;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.TileEntityFurnace;

public class TileEntityBlazeHeater extends TileEntity {
    
    @Override
    public void updateEntity() 
    {
        TileEntity tmpTE= this.worldObj.getTileEntity(this.xCoord, this.yCoord + 1, this.zCoord);
        if(tmpTE instanceof TileEntityFurnace || tmpTE instanceof TileEntityBigFurnaceControler)
        {
            this.worldObj.getTileEntity(this.xCoord, this.yCoord + 1, this.zCoord).updateEntity();
        }
    }

}
это сущность(TileEntity)
 
В этом коде я проблем не вижу. Как регистрировал TileEntity?
Еще можешь попробовать, если еще не попробовал, вставить в updateEntity

Код:
System.out.println("isRemote: " + worldObj.isRemote)
И посмотреть что будет писать в консоль.
 
Asd73 написал(а):
В этом коде я проблем не вижу. Как регистрировал TileEntity?
Еще можешь попробовать, если еще не попробовал, вставить в updateEntity

Код:
System.out.println("isRemote: " + worldObj.isRemote)
И посмотреть что будет писать в консоль.
Так делал.Ставлю блок-пишутся оба. Перезахожу-пишется только клиент.Переставляю блок- пишутся оба.
Регестрировал так:
Код:
GameRegistry.registerTileEntity(TileEntityBlazeHeater.class, "tileEntityBlazeHeater");
Самое интересное, что сразу не регестрировал, заметил 10 минут назад. Добавил эту строку-ничего не изменилось.То есть до этого как-бы-работало и без неё.Меня это несколько удивило
 
anti344 написал(а):
xcx701 написал(а):
Как-то без неё не сохраняется инфа с твоего тайла(readFromNBT / writeToNBT)
А, вот это зачем... но тут нет информации, которую необходимо записывать в NBT(подскажите кстати, как это расшифровывается)

Зарегестрировал.Теперь при перезапуске работают обсалютно не предсказуемо: то запускается на сервере, то нет.Поставил 3 блока.Все пишут и с сервера, и с клиента.Перезапустил: 2 пишут так же, один только с клиента.Ещё раз перезапустил: всё нормально.Ещё раз: два "отказали".Есть идеи?
 
Может быть не там регистрируешь?
Раз тебе не нужно сохранять что-либо, то и тайл не нужен, делай как написал Agravaine.
Можешь взять любой мод с открытыми исходниками и вставить свой код в заведомо работающий тайл.
 
Здесь описано, что так не будет работать.Мне надо каждый тик вызывать обновление , это возможно только с TileEntity.Регестрирую блок и его TileEntity  в 
Код:
public void init(FMLInitializationEvent event)

Есть ещё один похожий блок, с той же проблемой, но он не в пример тяжелее, так что прошу помочь только с этим, с тем разберусь по примеру.Есть ещё несколько TileEntity, они нормально работают, но они делались на примере стандартных методом "Отрезать всё лишнее, прилепить необходимое".Тут же достаточно простой TileEntity (как я думал), и такая не приятная вещь.И надо понять в чём дело, что бы в дальнейшем избежать подобных ситуаций.
 
Agravaine написал(а):
Попробуй getDescriptionPacket, onPacket вызывать worldObj.markBlockForUpdate(x, y, z);
Вторым комментарием мне предлагали то же самое.Причём так же, без всяких уточнений. Гуглил сам.Нашёл это и это .Попробовал из первого примера - краш. Во втором не разобрался.
 
Назад
Сверху