From eb78d15c08650620174a81c5e9c6c5dadc912b07 Mon Sep 17 00:00:00 2001 From: Adubbz Date: Sun, 5 Apr 2015 11:28:59 +1000 Subject: [PATCH] Cleaned up model registration --- .../client/util/ModelHelper.java | 52 ------------ .../biomesoplenty/common/init/ModBlocks.java | 21 +++-- .../biomesoplenty/common/init/ModItems.java | 37 +++++---- .../java/biomesoplenty/core/ClientProxy.java | 82 +------------------ .../java/biomesoplenty/core/CommonProxy.java | 11 --- 5 files changed, 35 insertions(+), 168 deletions(-) delete mode 100644 src/main/java/biomesoplenty/client/util/ModelHelper.java diff --git a/src/main/java/biomesoplenty/client/util/ModelHelper.java b/src/main/java/biomesoplenty/client/util/ModelHelper.java deleted file mode 100644 index c77958c3c..000000000 --- a/src/main/java/biomesoplenty/client/util/ModelHelper.java +++ /dev/null @@ -1,52 +0,0 @@ -/******************************************************************************* - * Copyright 2014, the Biomes O' Plenty Team - * - * This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License. - * - * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/. - ******************************************************************************/ - -package biomesoplenty.client.util; - -import net.minecraft.block.Block; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.BlockModelShapes; -import net.minecraft.client.renderer.ItemModelMesher; -import net.minecraft.client.resources.model.ModelResourceLocation; -import net.minecraft.item.Item; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -@SideOnly(Side.CLIENT) -public class ModelHelper -{ - public static void registerItem(Item item, int metadata, String itemName) - { - getItemModelMesher().register(item, metadata, new ModelResourceLocation(itemName, "inventory")); - } - - public static void registerBlock(Block block, int metadata, String blockName) - { - registerItem(Item.getItemFromBlock(block), metadata, blockName); - } - - public static void registerBlock(Block block, String blockName) - { - registerBlock(block, 0, blockName); - } - - public static void registerItem(Item item, String itemName) - { - registerItem(item, 0, itemName); - } - - public static ItemModelMesher getItemModelMesher() - { - return Minecraft.getMinecraft().getRenderItem().getItemModelMesher(); - } - - public static BlockModelShapes getBlockModelShapes() - { - return getItemModelMesher().getModelManager().getBlockModelShapes(); - } -} diff --git a/src/main/java/biomesoplenty/common/init/ModBlocks.java b/src/main/java/biomesoplenty/common/init/ModBlocks.java index 8086052de..b2ae99823 100644 --- a/src/main/java/biomesoplenty/common/init/ModBlocks.java +++ b/src/main/java/biomesoplenty/common/init/ModBlocks.java @@ -9,19 +9,21 @@ package biomesoplenty.common.init; import static biomesoplenty.api.block.BOPBlocks.*; - -import com.google.common.collect.ImmutableSet; - import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; +import net.minecraft.client.resources.model.ModelBakery; +import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemDoor; +import net.minecraftforge.client.model.ModelLoader; +import net.minecraftforge.fml.common.FMLCommonHandler; import net.minecraftforge.fml.common.registry.GameRegistry; -import biomesoplenty.api.block.IBOPBlock; +import net.minecraftforge.fml.relauncher.Side; import biomesoplenty.api.block.BOPWoodEnums.allWoods; +import biomesoplenty.api.block.IBOPBlock; import biomesoplenty.api.item.BOPItems; import biomesoplenty.common.block.BlockAsh; import biomesoplenty.common.block.BlockBOPDirt; @@ -46,6 +48,7 @@ import biomesoplenty.common.block.BlockBones; import biomesoplenty.common.block.BlockCoral; import biomesoplenty.common.block.BlockCrystal; import biomesoplenty.common.block.BlockDoubleFoliage; +import biomesoplenty.common.block.BlockFlesh; import biomesoplenty.common.block.BlockFoliage; import biomesoplenty.common.block.BlockFruit; import biomesoplenty.common.block.BlockGem; @@ -54,12 +57,13 @@ import biomesoplenty.common.block.BlockHive; import biomesoplenty.common.block.BlockMud; import biomesoplenty.common.block.BlockStoneFormations; import biomesoplenty.common.block.BlockTurnip; -import biomesoplenty.common.block.BlockFlesh; import biomesoplenty.common.handler.GuiEventHandler; import biomesoplenty.common.util.block.BlockStateUtils; import biomesoplenty.common.util.inventory.CreativeTabBOP; import biomesoplenty.core.BiomesOPlenty; +import com.google.common.collect.ImmutableSet; + public class ModBlocks { @@ -208,10 +212,11 @@ public class ModBlocks public static void registerBlockVariant(Block block, String stateName, int stateMeta) { Item item = Item.getItemFromBlock(block); - if (item != null){ - BiomesOPlenty.proxy.addVariantName(item, BiomesOPlenty.MOD_ID + ":" + stateName); + if (item != null && FMLCommonHandler.instance().getSide() == Side.CLIENT) { + ModelBakery.addVariantName(item, BiomesOPlenty.MOD_ID + ":" + stateName); + ModelLoader.setCustomModelResourceLocation(item, stateMeta, new ModelResourceLocation(BiomesOPlenty.MOD_ID + ":" + stateName, "inventory")); } - BiomesOPlenty.proxy.registerBlockForMeshing(block, stateMeta, stateName); + GuiEventHandler.blockCount++; } diff --git a/src/main/java/biomesoplenty/common/init/ModItems.java b/src/main/java/biomesoplenty/common/init/ModItems.java index 10f6429a8..595df6cac 100644 --- a/src/main/java/biomesoplenty/common/init/ModItems.java +++ b/src/main/java/biomesoplenty/common/init/ModItems.java @@ -18,12 +18,17 @@ import biomesoplenty.common.item.ItemGem; import biomesoplenty.common.item.ItemMudball; import biomesoplenty.common.util.inventory.CreativeTabBOP; import biomesoplenty.core.BiomesOPlenty; +import net.minecraft.client.resources.model.ModelBakery; +import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemFood; import net.minecraft.item.ItemSeeds; import net.minecraft.item.ItemStack; +import net.minecraftforge.client.model.ModelLoader; +import net.minecraftforge.fml.common.FMLCommonHandler; import net.minecraftforge.fml.common.registry.GameRegistry; +import net.minecraftforge.fml.relauncher.Side; public class ModItems { @@ -47,27 +52,27 @@ public class ModItems { item.setUnlocalizedName(name).setCreativeTab(CreativeTabBOP.instance); GameRegistry.registerItem(item,name); - - - - // register sub types if there are any - if (item.getHasSubtypes()) + if (FMLCommonHandler.instance().getSide() == Side.CLIENT) { - List subItems = new ArrayList(); - item.getSubItems(item, CreativeTabBOP.instance, subItems); - for (ItemStack subItem : subItems) + if (item.getHasSubtypes()) { - String subItemName = item.getUnlocalizedName(subItem); - subItemName = subItemName.substring(subItemName.indexOf(".") + 1); // remove 'item.' from the front - BiomesOPlenty.proxy.addVariantName(item, BiomesOPlenty.MOD_ID + ":" + subItemName); - BiomesOPlenty.proxy.registerItemForMeshing(item, subItem.getMetadata(), subItemName); + List subItems = new ArrayList(); + item.getSubItems(item, CreativeTabBOP.instance, subItems); + for (ItemStack subItem : subItems) + { + String subItemName = item.getUnlocalizedName(subItem); + subItemName = subItemName.substring(subItemName.indexOf(".") + 1); // remove 'item.' from the front + + ModelBakery.addVariantName(item, BiomesOPlenty.MOD_ID + ":" + subItemName); + ModelLoader.setCustomModelResourceLocation(item, subItem.getMetadata(), new ModelResourceLocation(BiomesOPlenty.MOD_ID + ":" + subItemName, "inventory")); + } + } + else + { + ModelLoader.setCustomModelResourceLocation(item, 0, new ModelResourceLocation(BiomesOPlenty.MOD_ID + ":" + name, "inventory")); } - } - else - { - BiomesOPlenty.proxy.registerItemForMeshing(item,name); } return item; diff --git a/src/main/java/biomesoplenty/core/ClientProxy.java b/src/main/java/biomesoplenty/core/ClientProxy.java index 51b6744c0..864e0fd72 100644 --- a/src/main/java/biomesoplenty/core/ClientProxy.java +++ b/src/main/java/biomesoplenty/core/ClientProxy.java @@ -8,92 +8,12 @@ package biomesoplenty.core; -import java.util.ArrayList; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockLeaves; -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.model.ModelBakery; -import net.minecraft.item.Item; -import biomesoplenty.client.util.ModelHelper; public class ClientProxy extends CommonProxy { - private static ArrayList blocksToRegister = new ArrayList(); - private static ArrayList itemsToRegister = new ArrayList(); - @Override public void registerRenderers() { - - for (ModelEntry modelEntry : blocksToRegister) - { - // set the correct rendering mode for leaves based on the fancyGraphics game setting - if (modelEntry.block instanceof BlockLeaves) - { - ((BlockLeaves)modelEntry.block).setGraphicsLevel( Minecraft.getMinecraft().gameSettings.fancyGraphics ); - } - // register the block model - ModelHelper.registerBlock(modelEntry.block, modelEntry.metadata, BiomesOPlenty.MOD_ID + ":" + modelEntry.name); - } - - for (ItemEntry itemEntry : itemsToRegister) - { - // register the item model - ModelHelper.registerItem(itemEntry.item, itemEntry.metadata, BiomesOPlenty.MOD_ID + ":" + itemEntry.name); - } - - } - - @Override - public void addVariantName(Item item, String... names) - { - ModelBakery.addVariantName(item, names); - } - - @Override - public void registerBlockForMeshing(Block block, int metadata, String name) - { - blocksToRegister.add(new ModelEntry(block, metadata, name)); - } - - @Override - public void registerItemForMeshing(Item item, String name) - { - itemsToRegister.add(new ItemEntry(item, 0, name)); - } - - @Override - public void registerItemForMeshing(Item item, int meta, String name) - { - itemsToRegister.add(new ItemEntry(item, meta, name)); - } - - private static class ModelEntry - { - public Block block; - public int metadata; - public String name; - - public ModelEntry(Block block, int metadata, String name) - { - this.block = block; - this.metadata = metadata; - this.name = name; - } - } - - private static class ItemEntry - { - public Item item; - public int metadata; - public String name; - - public ItemEntry(Item item, int metadata, String name) - { - this.item = item; - this.metadata = metadata; - this.name = name; - } + //Entity rendering and other stuff will go here in future } } diff --git a/src/main/java/biomesoplenty/core/CommonProxy.java b/src/main/java/biomesoplenty/core/CommonProxy.java index 333585906..92f99075b 100644 --- a/src/main/java/biomesoplenty/core/CommonProxy.java +++ b/src/main/java/biomesoplenty/core/CommonProxy.java @@ -8,19 +8,8 @@ package biomesoplenty.core; -import net.minecraft.block.Block; -import net.minecraft.item.Item; public class CommonProxy { public void registerRenderers() {} - - public void addVariantName(Item item, String... names) {} - - public void registerBlockForMeshing(Block block, int metadata, String name) {} - - public void registerItemForMeshing(Item item, String name) {} - public void registerItemForMeshing(Item item, int meta, String name) {} - - } \ No newline at end of file