package me.km; import me.km.entities.ModEntities; import me.km.items.ModelCylinder; import me.km.items.ModelHat; import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; import net.minecraft.client.model.ModelBiped; import net.minecraft.client.renderer.block.model.ModelBakery; import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.client.renderer.block.statemap.StateMapperBase; import net.minecraft.client.renderer.entity.Render; import net.minecraft.entity.Entity; import net.minecraft.item.Item; import net.minecraft.server.MinecraftServer; import net.minecraftforge.client.model.ModelLoader; import net.minecraftforge.fluids.IFluidBlock; import net.minecraftforge.fml.client.registry.RenderingRegistry; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; public class ClientProxy extends CommonProxy { @Override public void registerItemRenderer(Item item, int meta, String id, String variant) { ModelLoader.setCustomModelResourceLocation(item, meta, new ModelResourceLocation(KajetansMod.MODID + ":" + id, variant)); } @Override public void registerItemRenderer(Item item, int meta, String id) { registerItemRenderer(item, meta, id, null); } @Override public void registerFluidModel(IFluidBlock fluidBlock) { final Item item = Item.getItemFromBlock((Block) fluidBlock); assert item != null; ModelBakery.registerItemVariants(item); ModelResourceLocation modelResourceLocation = new ModelResourceLocation(KajetansMod.MODID + ":fluids", fluidBlock.getFluid().getName()); ModelLoader.setCustomMeshDefinition(item, MeshDefinitionFix.create(stack -> modelResourceLocation)); ModelLoader.setCustomStateMapper((Block) fluidBlock, new StateMapperBase() { @Override protected ModelResourceLocation getModelResourceLocation(IBlockState state) { return modelResourceLocation; } }); } @Override public void registerEntityRenderer(Class c, Render r) { RenderingRegistry.registerEntityRenderingHandler(c, r); } @Override public void initEntities() { ModEntities.initClient(); } @Override public void overloadPlayerList(MinecraftServer server) { } @SideOnly(Side.CLIENT) private final static ModelHat STRAW_HAT = new ModelHat(1); @SideOnly(Side.CLIENT) private final static ModelCylinder CYLINDER = new ModelCylinder(1); @Override public ModelBiped getCylinderModel() { return CYLINDER; } @Override public ModelBiped getStrawHatModel() { return STRAW_HAT; } }