ClientProxy.java 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package me.km;
  2. import net.minecraft.block.Block;
  3. import net.minecraft.block.state.IBlockState;
  4. import net.minecraft.client.renderer.block.model.ModelBakery;
  5. import net.minecraft.client.renderer.block.model.ModelResourceLocation;
  6. import net.minecraft.client.renderer.block.statemap.StateMapperBase;
  7. import net.minecraft.client.renderer.entity.Render;
  8. import net.minecraft.entity.Entity;
  9. import net.minecraft.item.Item;
  10. import net.minecraftforge.client.model.ModelLoader;
  11. import net.minecraftforge.fluids.IFluidBlock;
  12. import net.minecraftforge.fml.client.registry.RenderingRegistry;
  13. public class ClientProxy extends CommonProxy
  14. {
  15. @Override
  16. public void registerItemRenderer(Item item, int meta, String id)
  17. {
  18. ModelLoader.setCustomModelResourceLocation(item, meta, new ModelResourceLocation(KajetansMod.MODID + ":" + id, null));
  19. }
  20. @Override
  21. public void registerFluidModel(IFluidBlock fluidBlock)
  22. {
  23. final Item item = Item.getItemFromBlock((Block) fluidBlock);
  24. assert item != null;
  25. ModelBakery.registerItemVariants(item);
  26. ModelResourceLocation modelResourceLocation = new ModelResourceLocation(KajetansMod.MODID + ":fluids", fluidBlock.getFluid().getName());
  27. ModelLoader.setCustomMeshDefinition(item, MeshDefinitionFix.create(stack -> modelResourceLocation));
  28. ModelLoader.setCustomStateMapper((Block) fluidBlock, new StateMapperBase()
  29. {
  30. @Override
  31. protected ModelResourceLocation getModelResourceLocation(IBlockState state)
  32. {
  33. return modelResourceLocation;
  34. }
  35. });
  36. }
  37. @Override
  38. public void registerEntityRenderer(Class<? extends Entity> c, Render<? extends Entity> r)
  39. {
  40. RenderingRegistry.registerEntityRenderingHandler(c, r);
  41. }
  42. }