Есть TileEntity с моделью obj. Но у него есть "недостаток", всегда когда я ставлю блок, моя модель смотрит в одну сторону. Учитывая то что модель имеет переднюю часть, это очень катастрофично.
Block
TileEntity
TileEntityRender
Block
Код:
package com.virysd.decostorage.blocks;
import com.virysd.decostorage.DecoStorage;
import com.virysd.decostorage.tile.TileEntityWorkbenchForStorage;
import net.minecraft.block.Block;
import net.minecraft.block.ITileEntityProvider;
import net.minecraft.block.material.Material;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
public class BlockWorkbenchForStorage extends Block implements ITileEntityProvider{
public BlockWorkbenchForStorage() {
super(Material.wood);
setCreativeTab(DecoStorage.tabsDecoStorage);
setBlockName("workbenchforstorage");
}
@Override
public TileEntity createNewTileEntity(World world, int metadata) {
return new TileEntityWorkbenchForStorage();
}
public int getRenderType() {
return -1;
}
public boolean isOpaqueCube() {
return false;
}
public boolean renderAsNormalBlock() {
return false;
}
}
TileEntity
Код:
package com.virysd.decostorage.tile;
import net.minecraft.tileentity.TileEntity;
public class TileEntityWorkbenchForStorage extends TileEntity {
}
Код:
package com.virysd.decostorage.render;
import com.virysd.decostorage.tile.TileEntityWorkbenchForStorage;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.AdvancedModelLoader;
import net.minecraftforge.client.model.IModelCustom;
import org.lwjgl.opengl.GL11;
public class ModelTileEntityWorkbenchForStorage extends TileEntitySpecialRenderer {
public static final IModelCustom model = AdvancedModelLoader.loadModel(new ResourceLocation("DecoStorage:models/ct.obj"));
public static final ResourceLocation texture = new ResourceLocation("DecoStorage:models/tx.png");
@Override
public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float f) {
render((TileEntityWorkbenchForStorage)tile, x, y, z, f);
}
private void render(TileEntityWorkbenchForStorage tile, double x, double y, double z, float f) {
GL11.glPushMatrix();
GL11.glTranslated(x, y, z);
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
bindTexture(texture);
model.renderAll();
GL11.glPopMatrix();
}
}