- Регистрация
- 4 Апр 2025
- Сообщения
- 24
- Реакции
- 0
- Баллы
- 1
- Город
- Санкт-Петербург
- Веб-сайт
- paxgame.ru
- Discord
- nicolayka
Это разработано для TileEntity, но Вы можете переделать его под другие нужды!
Урок разработан для 1.7+, но он может работать в более старых версиях.
Предполагая, что Вы используете TileEntity, тогда Ваш рендер-класс должен выглядеть так:
И теперь Ваш TileEntity должен иметь предмет на нём!
Урок разработан для 1.7+, но он может работать в более старых версиях.
Предполагая, что Вы используете TileEntity, тогда Ваш рендер-класс должен выглядеть так:
Java:
package your.package;
import stuff.here;
public class MyTileRendererClass extends TileEntitySpecialRenderer
{
public MyModel model = new MyModel();
@Override
public void renderTileEntityAt(TileEntity entity, double x, double y, double z, float f)
{
GL11.glPushMatrix();
//Render Model Here
GL11.glPopMatrix();
}
}
После "public MyModel model..." добавьте:
Теперь после GL11.glPopMatrix (), добавьте это:
Java:
ItemStack stack = new ItemStack(your_item_here, 1, 0);
EntityItem entItem = new EntityItem(Minecraft.getMinecraft().theWorld, 0D, 0D, 0D, stack);
Java:
GL11.glPushMatrix();
//Without the below line, the item will spazz out
this.entItem.hoverStart = 0.0F;
RenderItem.renderInFrame = true;
GL11.glTranslatef((float)x + 0.5F, (float)y + 1.02F, (float)z + 0.3F);
GL11.glRotatef(180, 0, 1, 1);
RenderManager.instance.renderEntityWithPosYaw(this.entItem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F);
RenderItem.renderInFrame = false;
GL11.glPopMatrix();
Примечание: Удостоверьтесь, что Ваш класс TileEntity осуществляет IInventory!
После "public MyModel model..." добавьте:
Теперь после GL11.glPopMatrix (), добавьте это:
После "public MyModel model..." добавьте:
Java:
EntityItem entItem = null;
Java:
int slot = SLOT_IN_INVENTORY_TO_RENDER; //Example: int slot = 1;
TileEntityMyBlock tileEntity = (TileEntityMyBlock)tile;
if((entItem == null) || entItem.getEntityItem().getItem() != tileEntity.getStackInSlot(slot).getItem())
entItem = new EntityItem(tileEntity.getWorldObj(), x, y, z, tileEntity.getStackInSlot(slot));
GL11.glPushMatrix();
this.entItem.hoverStart = 0.0F;
RenderItem.renderInFrame = true;
GL11.glTranslatef((float)x + 0.5F, (float)y + 1.02F, (float)z + 0.3F);
GL11.glRotatef(180, 0, 1, 1);
RenderManager.instance.renderEntityWithPosYaw(this.entItem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F);
RenderItem.renderInFrame = false;
GL11.glPopMatrix();
И теперь Ваш TileEntity должен иметь предмет на нём!