[Решено] IRenderHandler

Статус
В этой теме нельзя размещать новые ответы.
1,976
68
220
Здрасти :D
В классе IRenderHandler есть всего одна строка:
Код:
@SideOnly(Side.CLIENT) public abstract void render(float partialTicks, WorldClient world, Minecraft mc);

А в неё в классах-наследниках уже пишут разный рендер. В моём случае это небо.
Мне нужно условие рендера объектов на небе при значении true в тайлэнтити на координатах (0, 250, 0):
Код:
    TileEntity tile = world.getTileEntity(0, 250, 0);
        if (tile != null && tile instanceof ClockTileEntity){
            ClockTileEntity clock = (ClockTileEntity) tile;
            if (clock.core) { // И тут уже рендер
Но из-за того, что там мир клиентский, я не могу этого сделать. [size=0.5]Ну или не из-за этого, но всё равно не могу.[/size]
Подскажите, пожалуйста, как это иначе сделать? (clock.core точно true)
Заранее спасибо =)
 
1,976
68
220
Что не так? (первый раз прост :D)
Код:
@Override
public void readFromNBT(NBTTagCompound nbt) {
    super.readFromNBT(nbt);
    readSyncData(nbt);
}

@Override
public void writeToNBT(NBTTagCompound nbt) {
    super.writeToNBT(nbt);
    writeSyncData(nbt);
}

private void readSyncData(NBTTagCompound nbt) {
    core = nbt.getBoolean("core");
}

private void writeSyncData(NBTTagCompound nbt) {
    nbt.setBoolean("core", core);
}

@Override
public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) {
    readSyncData(pkt.func_148857_g());
}

@Override
public Packet getDescriptionPacket() {
    NBTTagCompound syncData = new NBTTagCompound();
    writeSyncData(syncData);
    return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 1, syncData);
}
[merge_posts_bbcode]Добавлено: 28.05.2016 18:57:34[/merge_posts_bbcode]

Дописал это:
Код:
worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
markDirty();
Всё работает :D
Тему можно закрывать
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху