- 39
- 2
- 0
Короче есть полка, она должна рендерить предмет, всё почти готово, только когда в методе render пытаюсь получить предмет, который находиться в полке, всегда выдаёт air, я пробовал поставить чисто один предмет и с ним работает
Сама полка хранит в себе предмет, то есть тайл работает
TileEntityRender:
public class TileEntityRackRender extends TileEntitySpecialRenderer<TileEntityRack> {
private EntityItem entityItem = new EntityItem(Minecraft.getMinecraft().world, 0D, 0D, 0D);
@Override
public void render(TileEntityRack tileEntityRack, double x, double y, double z, float partialTicks, int destroyStage, float alpha)
{
ItemStack item = tileEntityRack.getItem(); //всегда air
System.out.println(item);
GL11.glPushMatrix();
{
GL11.glTranslated((float) x + 0.5F, (float) y + 0.2F, (float) z + 0.5F);
GL11.glScalef(0.65F, 0.65F, 0.65F);
entityItem.hoverStart = 0.0F;
entityItem.setItem(item); //если тут поставить любой предмет, то он будет рендериться
GL11.glRotatef(-90F, 0, 1, 0);
GL11.glRotatef(0, 0, 1, 0);
Minecraft.getMinecraft().getRenderManager().renderEntity(entityItem, 0.0D, 0.2D, 0.0D, 0.0F, 0.0F, false);
}
GL11.glPopMatrix();
}
}
TileEntity:
public class TileEntityRack extends TileEntity {
private ItemStack item = ItemStack.EMPTY;
public void readFromNBT(NBTTagCompound compound)
{
super.readFromNBT(compound);
this.setItem(new ItemStack(compound.getCompoundTag("item")));
}
public NBTTagCompound writeToNBT(NBTTagCompound compound)
{
super.writeToNBT(compound);
compound.setTag("item", this.getItem().writeToNBT(new NBTTagCompound()));
return compound;
}
public ItemStack getItem()
{
System.out.println(item + " tileEntity");
return this.item;
}
public void setItem(ItemStack itemStack)
{
this.item = itemStack;
this.markDirty();
}
}