Пытался сделать блоки декора, используя один класс рендера для всех блоков. В целом всё работает исправно, но ModelWrapperDisplayList работает только если назначить саму модель за пределами метода, то бишь как в учебнике, иначе оптимизация пропадает. Проблема в том, что если так сделать, то как мне указать имя своего блока в пути к модельке? ( tile.getBlockType().getLocalizedName() ). Я надеюсь, всё понятно написал.
Java:
public class DecorTileRender extends TileEntitySpecialRenderer {
@Override
public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float f) {
render((TileDecor)tile, x, y, z);
}
private void render(TileDecor tile, double x, double y, double z) {
IModelCustom model = new ModelWrapperDisplayList((WavefrontObject) AdvancedModelLoader.loadModel(new ResourceLocation(Main.MODID, "models/decor/" + tile.getBlockType().getLocalizedName() + ".obj")));
bindTexture(new ResourceLocation(Main.MODID, "models/decor/textures/" + tile.getBlockType().getLocalizedName() + ".png"));
GL11.glPushMatrix();
GL11.glTranslated(x, y, z);
GL11.glTranslatef(0.5F, 0.0F, 0.5F);
model.renderAll();
GL11.glPopMatrix();
}
}