Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package tobyo.tobyomod.tileentity.special.renderer;
- import net.minecraft.block.state.IBlockState;
- import net.minecraft.client.Minecraft;
- import net.minecraft.client.renderer.BlockRendererDispatcher;
- import net.minecraft.client.renderer.VertexBuffer;
- import net.minecraft.client.renderer.block.model.IBakedModel;
- import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
- import net.minecraft.tileentity.TileEntity;
- import net.minecraft.util.ResourceLocation;
- import net.minecraft.util.math.BlockPos;
- import net.minecraft.world.IBlockAccess;
- import net.minecraftforge.client.MinecraftForgeClient;
- import net.minecraftforge.client.event.TextureStitchEvent;
- import net.minecraftforge.client.model.IModel;
- import net.minecraftforge.client.model.ModelLoader;
- import net.minecraftforge.client.model.ModelLoaderRegistry;
- import net.minecraftforge.client.model.animation.Animation;
- import net.minecraftforge.client.model.animation.FastTESR;
- import net.minecraftforge.common.animation.Event;
- import net.minecraftforge.common.animation.IEventHandler;
- import net.minecraftforge.common.model.IModelState;
- import net.minecraftforge.common.model.TRSRTransformation;
- import net.minecraftforge.common.model.animation.CapabilityAnimation;
- import net.minecraftforge.common.property.IExtendedBlockState;
- import net.minecraftforge.common.property.Properties;
- import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
- import org.apache.commons.lang3.tuple.Pair;
- import tobyo.tobyomod.reference.Reference;
- /**
- * Generic TileEntitySpecialRenderer that works with the Forge model system and animations.
- */
- public class TESRRockTumbler<T extends TileEntity> extends FastTESR<T>
- {
- protected static BlockRendererDispatcher blockRenderer;
- @Override
- public void renderTileEntityFast(T te, double x, double y, double z, float partialTick, int breakStage, VertexBuffer renderer)
- {
- if(blockRenderer == null) blockRenderer = Minecraft.getMinecraft().getBlockRendererDispatcher();
- BlockPos pos = te.getPos();
- IBlockAccess world = MinecraftForgeClient.getRegionRenderCache(te.getWorld(), pos);
- IBlockState state = world.getBlockState(pos);
- //IBakedModel model = blockRenderer.getBlockModelShapes().getModelForState(state);
- IModel model = null;
- try {
- model = ModelLoaderRegistry.getModel(new ResourceLocation(Reference.MOD_ID, "block/rock_tumbler_barrel.obj"));
- } catch (Exception e) {
- e.printStackTrace();
- }
- IBakedModel bakedModel = model.bake(TRSRTransformation.identity(), DefaultVertexFormats.ITEM, ModelLoader.defaultTextureGetter());
- renderer.setTranslation(x - pos.getX(), y - pos.getY(), z - pos.getZ());
- blockRenderer.getBlockModelRenderer().renderModel(world, bakedModel, state, pos, renderer, false);
- }
- public void handleEvents(T te, float time, Iterable<Event> pastEvents) {}
- @SubscribeEvent
- public void onTextureStitchEvent(TextureStitchEvent.Pre event)
- {
- event.getMap().registerSprite(new ResourceLocation(Reference.MOD_ID + ":blocks/rock_tumbler_barrel"));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement