- 137
- 7
- 37
Всем привет, сделал предмет, создал ему нбт который отвечает за смену рендера его модели, я ищу его EntityItem в радиусе и задаю нужное мне значение нбт, потом в IItemRenderer который я зарегал для это предмета проверяю значение и в зависимости от значения меняю рендер, только почему то ничего не меняется.
Код:
Изначально задаю значение "isVisible" false
В чем может быть проблема? Заранее спасибо
Код:
Поиск предмета:
@SubscribeEvent
public void livingUpdate(LivingUpdateEvent event){
if(event.entity instanceof EntityPlayer){
EntityPlayer player = (EntityPlayer)event.entity;
AxisAlignedBB aabb = AxisAlignedBB.getBoundingBox(player.posX - 3, player.posY - 3, player.posZ - 3, player.posX + 3, player.posY + 3, player.posZ + 3);
List<EntityItem> items = player.worldObj.getEntitiesWithinAABB(EntityItem.class, aabb);
for (Object o: items)
{
EntityItem entityItem = (EntityItem)o;
if (entityItem.getEntityItem().getItem() == Main.pieceOfMeat) {
if (entityItem.getEntityData().getBoolean("isVisible") == false) {
entityItem.getEntityData().setBoolean("isVisible", true);
}
}
if(entityItem.getEntityData().getBoolean("isVisible") == true) {
System.out.println("У предмета должен смениться рендер");
}
}
}
Рендер в IItemRenderer:
@Override
public void renderItem(ItemRenderType type, ItemStack is, Object... data) {
if(is.getItem() == Main.peaceOfMeat) {
if(is.stackTagCompound.getBoolean("isVisible") == true)
{
GL11.glPushMatrix();
GL11.glTranslatef(0.5F, 0.0F, 0.5F);
Minecraft.getMinecraft().renderEngine.bindTexture(texture);
GL11.glTranslatef(0.0f, 0.5f, -1.5f);
GL11.glScalef(2.0f, 2.0f, 2.0f);
GL11.glCallList(ClientProxy.itemsRender[0]);
GL11.glPopMatrix();
}
else if(is.stackTagCompound.getBoolean("isVisible") == false) {
GL11.glCallList(ClientProxy.itemsRender[1]);
}
}
}
Изначально задаю значение "isVisible" false
В чем может быть проблема? Заранее спасибо