package com.bioxx.tfc2.handlers.client; import net.minecraft.client.renderer.block.model.IBakedModel; import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.event.ModelBakeEvent; import net.minecraftforge.client.model.IModel; import net.minecraftforge.client.model.IPerspectiveAwareModel; import net.minecraftforge.client.model.ModelLoaderRegistry; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import com.bioxx.tfc2.Core; import com.bioxx.tfc2.Reference; import com.bioxx.tfc2.rendering.bakedmodels.BakedAnvilModel; public class ModelBakeHandler { ModelResourceLocation locAnvil = new ModelResourceLocation(Reference.ModID + ":anvil"); ModelResourceLocation locAnvilN = new ModelResourceLocation(Reference.ModID + ":anvil", "facing=north"); ModelResourceLocation locAnvilS = new ModelResourceLocation(Reference.ModID + ":anvil", "facing=south"); ModelResourceLocation locAnvilE = new ModelResourceLocation(Reference.ModID + ":anvil", "facing=east"); ModelResourceLocation locAnvilW = new ModelResourceLocation(Reference.ModID + ":anvil", "facing=west"); @SubscribeEvent public void onModelBake(ModelBakeEvent event) { // tool tables replaceAnvilModel(locAnvilN, Core.CreateRes(Reference.ModID + ":block/anvil"), event); replaceAnvilModel(locAnvilS, Core.CreateRes(Reference.ModID + ":block/anvil"), event); replaceAnvilModel(locAnvilE, Core.CreateRes(Reference.ModID + ":block/anvil"), event); replaceAnvilModel(locAnvilW, Core.CreateRes(Reference.ModID + ":block/anvil"), event); // silence the missing-model message for the default itemblock //event.getModelRegistry().putObject(locAnvil, event.getModelRegistry().getObject(locAnvil)); } public static void replaceAnvilModel(ModelResourceLocation modelVariantLocation, ResourceLocation modelLocation, ModelBakeEvent event) { try { IModel model = ModelLoaderRegistry.getModel(modelLocation); IBakedModel standard = event.getModelRegistry().getObject(modelVariantLocation); if(standard instanceof IPerspectiveAwareModel) { IBakedModel finalModel = new BakedAnvilModel((IPerspectiveAwareModel) standard, DefaultVertexFormats.BLOCK); event.getModelRegistry().putObject(modelVariantLocation, finalModel); } } catch(Exception e) { e.printStackTrace(); } } }