- 36
- 0
Добрый вечер. Если я правильно понял то для каждого установленного в мир блока имеется TileEntity. Допустим у меня есть кастомный блок:
и тайл с переменной для него
рендер для этого блока
При установке этого блока в мир командой setBlock мне нужно присвоить определенное значение переменной его тайла (path) и передать ее в рендер в качестве пути для ResourceLocation. Как это сделать?
P.S в итоге от присвоения во время setBlock значения пути, зависит файл модели которая будет рендерится на него.
Java:
public BlockCT() {
super(Material.circuits);
setCreativeTab(CreativeTabs.tabBlock);
setHardness(0.25F);
setStepSound(soundTypeMetal);
setBlockTextureName("iron_block");
setBlockName(MODCT.MODID + ".block_ct");
}
@Override
public TileEntity createNewTileEntity(World world, int metadata) {
return new TileEntityCT();
}
Java:
public class TileEntityCT extends TileEntity {
String path;
public TileEntityCT() {
}
}
Java:
public class RenderTileEntityObj extends TileEntitySpecialRenderer {
public static final IModelCustom model = AdvancedModelLoader.loadModel(new ResourceLocation(MODCT.MODID, "test.obj"));
public static final ResourceLocation texture = new ResourceLocation(MODCT.MODID, "textures/blocks/test.png");
@Override
public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float f) {
render((TileEntityCT)tile, x, y, z, f);
}
private void render(TileEntityCT tile, double x, double y, double z, float f) {
GL11.glPushMatrix();
GL11.glTranslated(x, y, z);
GL11.glTranslatef(0.5F, 0.0F, 0.5F);
bindTexture(texture);
model.renderAll();
GL11.glPopMatrix();
}
}
P.S в итоге от присвоения во время setBlock значения пути, зависит файл модели которая будет рендерится на него.
Последнее редактирование: