Advertisement
Guest User

Untitled

a guest
May 22nd, 2016
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.14 KB | None | 0 0
  1. package tobyo.tobyomod.tileentity.special.renderer;
  2.  
  3. import net.minecraft.block.state.IBlockState;
  4. import net.minecraft.client.Minecraft;
  5. import net.minecraft.client.renderer.BlockRendererDispatcher;
  6. import net.minecraft.client.renderer.VertexBuffer;
  7. import net.minecraft.client.renderer.block.model.IBakedModel;
  8. import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
  9. import net.minecraft.tileentity.TileEntity;
  10. import net.minecraft.util.ResourceLocation;
  11. import net.minecraft.util.math.BlockPos;
  12. import net.minecraft.world.IBlockAccess;
  13. import net.minecraftforge.client.MinecraftForgeClient;
  14. import net.minecraftforge.client.event.TextureStitchEvent;
  15. import net.minecraftforge.client.model.IModel;
  16. import net.minecraftforge.client.model.ModelLoader;
  17. import net.minecraftforge.client.model.ModelLoaderRegistry;
  18. import net.minecraftforge.client.model.animation.Animation;
  19. import net.minecraftforge.client.model.animation.FastTESR;
  20. import net.minecraftforge.common.animation.Event;
  21. import net.minecraftforge.common.animation.IEventHandler;
  22. import net.minecraftforge.common.model.IModelState;
  23. import net.minecraftforge.common.model.TRSRTransformation;
  24. import net.minecraftforge.common.model.animation.CapabilityAnimation;
  25. import net.minecraftforge.common.property.IExtendedBlockState;
  26. import net.minecraftforge.common.property.Properties;
  27. import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
  28.  
  29. import org.apache.commons.lang3.tuple.Pair;
  30.  
  31. import tobyo.tobyomod.reference.Reference;
  32.  
  33. /**
  34.  * Generic TileEntitySpecialRenderer that works with the Forge model system and animations.
  35.  */
  36. public class TESRRockTumbler<T extends TileEntity> extends FastTESR<T>
  37. {
  38.     protected static BlockRendererDispatcher blockRenderer;
  39.  
  40.     @Override
  41.     public void renderTileEntityFast(T te, double x, double y, double z, float partialTick, int breakStage, VertexBuffer renderer)
  42.     {
  43.  
  44.         if(blockRenderer == null) blockRenderer = Minecraft.getMinecraft().getBlockRendererDispatcher();
  45.         BlockPos pos = te.getPos();
  46.         IBlockAccess world = MinecraftForgeClient.getRegionRenderCache(te.getWorld(), pos);
  47.         IBlockState state = world.getBlockState(pos);
  48.  
  49.  
  50.             //IBakedModel model = blockRenderer.getBlockModelShapes().getModelForState(state);
  51.            
  52.             IModel model = null;
  53.             try {
  54.                 model = ModelLoaderRegistry.getModel(new ResourceLocation(Reference.MOD_ID, "block/rock_tumbler_barrel.obj"));
  55.             } catch (Exception e) {
  56.                 e.printStackTrace();
  57.             }
  58.             IBakedModel bakedModel = model.bake(TRSRTransformation.identity(), DefaultVertexFormats.ITEM, ModelLoader.defaultTextureGetter());
  59.  
  60.  
  61.             renderer.setTranslation(x - pos.getX(), y - pos.getY(), z - pos.getZ());
  62.  
  63.             blockRenderer.getBlockModelRenderer().renderModel(world, bakedModel, state, pos, renderer, false);
  64.     }
  65.  
  66.     public void handleEvents(T te, float time, Iterable<Event> pastEvents) {}
  67.    
  68.     @SubscribeEvent
  69.     public void onTextureStitchEvent(TextureStitchEvent.Pre event)
  70.     {
  71.         event.getMap().registerSprite(new ResourceLocation(Reference.MOD_ID + ":blocks/rock_tumbler_barrel"));
  72.     }
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement