Передача переменной через TileEntity

Версия Minecraft
1.7.10
Добрый вечер. Если я правильно понял то для каждого установленного в мир блока имеется TileEntity. Допустим у меня есть кастомный блок:
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();

       
    }

}
При установке этого блока в мир командой setBlock мне нужно присвоить определенное значение переменной его тайла (path) и передать ее в рендер в качестве пути для ResourceLocation. Как это сделать?
P.S в итоге от присвоения во время setBlock значения пути, зависит файл модели которая будет рендерится на него.
 
Последнее редактирование:
Решение
Сначала ставишь блок привычным setBlock(x, y, z, block), потом достаешь тайл из мира через getTileEntity(x, y, z), ну а дальше уже устанавливаешь свое значение.
А потом в рендере у тебя в методе renderTileEntityAt в аргементах есть тот самый тайл, достаешь из него переменную и делаешь что нужно.
Только скажу сразу - нужна синхронизация с клиентом, ибо ничего в рендере пахать не будет.

tox1cozZ

aka Agravaine
8,454
598
2,890
Сначала ставишь блок привычным setBlock(x, y, z, block), потом достаешь тайл из мира через getTileEntity(x, y, z), ну а дальше уже устанавливаешь свое значение.
А потом в рендере у тебя в методе renderTileEntityAt в аргементах есть тот самый тайл, достаешь из него переменную и делаешь что нужно.
Только скажу сразу - нужна синхронизация с клиентом, ибо ничего в рендере пахать не будет.
 
Сначала ставишь блок привычным setBlock(x, y, z, block), потом достаешь тайл из мира через getTileEntity(x, y, z), ну а дальше уже устанавливаешь свое значение.
А потом в рендере у тебя в методе renderTileEntityAt в аргементах есть тот самый тайл, достаешь из него переменную и делаешь что нужно.
Только скажу сразу - нужна синхронизация с клиентом, ибо ничего в рендере пахать не будет.
А с мобами так же?
 
3,005
192
592
Сверху