The upgrade items now render correctly

This commit is contained in:
Adubbz 2014-09-26 09:40:09 +10:00
parent de51748243
commit 073d2dfdbe
6 changed files with 125 additions and 8 deletions

View File

@ -69,6 +69,11 @@ func_174876_a - createContainer
—IInteractionObject— —IInteractionObject—
func_174875_k - getGuiID func_174875_k - getGuiID
—ItemRenderer—
func_178099_a - renderItem
field_178112_h - itemRenderer
—RenderItem— —RenderItem—
func_180451_a - renderEffect func_180451_a - renderEffect
@ -185,15 +190,74 @@ func_177586_a - getModelBlockDefinition
func_177590_d - loadItemModels func_177590_d - loadItemModels
func_177592_e - registerSubModels func_177592_e - registerSubModels
func_177596_a - getSubModels func_177596_a - getSubModels
func_177570_a - setupModelRegistry
field_177604_a - MODEL_MISSING
field_177608_m - itemModelGenerator field_177608_m - itemModelGenerator
field_177613_u - subModels field_177613_u - subModels
field_177605_n - modelRegistry
—ItemModelGenerator— —ItemModelGenerator—
field_178398_a - LAYERS field_178398_a - LAYERS
—RenderItem—
func_175037_a - getItemModelMesher
func_175048_a - loadInventoryModel
func_175047_a - loadInventoryModel
func_175029_a - loadInventoryModel
func_175031_a - loadInventoryModel
func_175041_b - loadInventoryModels
field_175059_m - itemModelMesher
—Minecraft— —Minecraft—
func_175597_ag - getItemRenderer
func_175599_af - getRenderItem
field_175617_aL - modelManager field_175617_aL - modelManager
field_175620_Y - itemRenderer
field_175621_X - renderItem
field_175616_W - renderManager
—GlStateManager—
func_179094_E - pushMatrix
func_179121_F - popMatrix
func_179114_b - rotate
func_179152_a - scale
func_179139_a - scale
func_179109_b - translate
func_179137_b - translate
—GLStateManager.BooleanState—
func_179198_a - setDisabled
func_179200_b - setEnabled
—ItemModelMesher—
func_178083_a - getModelManager
func_178084_b - getItemStackDamage
func_178081_c - getItemID
func_178088_b - getModelForItem
func_178089_a - getModelForItemStack
func_178087_a - getItemTexture
func_178082_a - getItemTexture
func_178086_a - loadItemModel
func_178085_b - resetModels
func_178080_a - addItemMeshDefinition
field_178090_d - modelManager
field_178093_a - modelLocations
field_178091_b - itemModels
field_178092_c - itemMeshDefinitions
—IBakedModel—
func_177554_e - getTexture
—ModelManager—
func_174953_a - getModel
func_174951_a - getDefaultModel
field_174955_d - defaultModel
field_174958_a - modelRegistry
—IWorldNamable— —IWorldNamable—
getCommandSenderName - getName getCommandSenderName - getName

View File

@ -14,9 +14,14 @@ import static cpw.mods.ironchest.IronChestType.IRON;
import static cpw.mods.ironchest.IronChestType.OBSIDIAN; import static cpw.mods.ironchest.IronChestType.OBSIDIAN;
import static cpw.mods.ironchest.IronChestType.SILVER; import static cpw.mods.ironchest.IronChestType.SILVER;
import static cpw.mods.ironchest.IronChestType.WOOD; import static cpw.mods.ironchest.IronChestType.WOOD;
import cpw.mods.ironchest.client.ModelHelper;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.entity.RenderItem;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.common.FMLCommonHandler;
import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
public enum ChestChangerType { public enum ChestChangerType {
IRONGOLD(IRON, GOLD, "ironGoldUpgrade", "Iron to Gold Chest Upgrade", "mmm", "msm", "mmm"), IRONGOLD(IRON, GOLD, "ironGoldUpgrade", "Iron to Gold Chest Upgrade", "mmm", "msm", "mmm"),
@ -33,7 +38,7 @@ public enum ChestChangerType {
private IronChestType target; private IronChestType target;
public String itemName; public String itemName;
public String descriptiveName; public String descriptiveName;
private ItemChestChanger item; public ItemChestChanger item;
private String[] recipe; private String[] recipe;
private ChestChangerType(IronChestType source, IronChestType target, String itemName, String descriptiveName, String... recipe) private ChestChangerType(IronChestType source, IronChestType target, String itemName, String descriptiveName, String... recipe)
@ -59,6 +64,8 @@ public enum ChestChangerType {
{ {
item = new ItemChestChanger(this); item = new ItemChestChanger(this);
GameRegistry.registerItem(item, itemName); GameRegistry.registerItem(item, itemName);
ModelHelper.loadInventoryModel(item, "ironchest:" + itemName);
return item; return item;
} }

View File

@ -10,20 +10,31 @@
******************************************************************************/ ******************************************************************************/
package cpw.mods.ironchest; package cpw.mods.ironchest;
import java.util.HashMap;
import java.util.Map.Entry;
import cpw.mods.ironchest.client.ModelHelper;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.entity.RenderItem;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraftforge.fml.client.FMLClientHandler;
import net.minecraftforge.fml.common.FMLCommonHandler;
import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventHandler; import net.minecraftforge.fml.common.Mod.EventHandler;
import net.minecraftforge.fml.common.Mod.Instance; import net.minecraftforge.fml.common.Mod.Instance;
import net.minecraftforge.fml.common.SidedProxy; import net.minecraftforge.fml.common.SidedProxy;
import net.minecraftforge.fml.common.event.FMLInitializationEvent; import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.network.NetworkRegistry; import net.minecraftforge.fml.common.network.NetworkRegistry;
import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
@Mod(modid = "IronChest", name = "Iron Chests", dependencies = "required-after:FML@[7.2,)") @Mod(modid = "IronChest", name = "Iron Chests", dependencies = "required-after:FML@[7.2,)")
public class IronChest { public class IronChest
{
public static BlockIronChest ironChestBlock; public static BlockIronChest ironChestBlock;
@SidedProxy(clientSide = "cpw.mods.ironchest.client.ClientProxy", serverSide = "cpw.mods.ironchest.CommonProxy") @SidedProxy(clientSide = "cpw.mods.ironchest.client.ClientProxy", serverSide = "cpw.mods.ironchest.CommonProxy")
public static CommonProxy proxy; public static CommonProxy proxy;
@ -36,15 +47,18 @@ public class IronChest {
Version.init(event.getVersionProperties()); Version.init(event.getVersionProperties());
event.getModMetadata().version = Version.fullVersionString(); event.getModMetadata().version = Version.fullVersionString();
ChestChangerType.buildItems();
ironChestBlock = new BlockIronChest();
GameRegistry.registerBlock(ironChestBlock, ItemIronChest.class, "BlockIronChest");
PacketHandler.INSTANCE.ordinal(); PacketHandler.INSTANCE.ordinal();
} }
@EventHandler @EventHandler
public void load(FMLInitializationEvent evt) public void load(FMLInitializationEvent evt)
{ {
//Registration has been moved to init to account for the registration of inventory models
//Minecraft.getRenderItem() returns null before this stage
ChestChangerType.buildItems();
ironChestBlock = new BlockIronChest();
GameRegistry.registerBlock(ironChestBlock, ItemIronChest.class, "BlockIronChest");
for (IronChestType typ : IronChestType.values()) for (IronChestType typ : IronChestType.values())
{ {
GameRegistry.registerTileEntityWithAlternatives(typ.clazz, "IronChest." + typ.name(), typ.name()); GameRegistry.registerTileEntityWithAlternatives(typ.clazz, "IronChest." + typ.name(), typ.name());

View File

@ -0,0 +1,32 @@
package cpw.mods.ironchest.client;
import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
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 loadInventoryModel(Item item, int metadata, String itemName)
{
Minecraft.getMinecraft().getRenderItem().getItemModelMesher().loadItemModel(item, metadata, new ModelResourceLocation(itemName, "inventory"));
}
public static void loadInventoryModel(Block block, int metadata, String blockName)
{
loadInventoryModel(Item.getItemFromBlock(block), metadata, blockName);
}
public static void loadInventoryModel(Block block, String blockName)
{
loadInventoryModel(block, 0, blockName);
}
public static void loadInventoryModel(Item item, String itemName)
{
loadInventoryModel(item, 0, itemName);
}
}

View File

@ -1,7 +1,7 @@
{ {
"parent": "builtin/generated, "parent": "builtin/generated",
"textures": { "textures": {
"layer0": ironchest:items/copperIronUpgrade "layer0": "ironchest:items/copperIronUpgrade"
}, },
"display": { "display": {
"thirdperson": { "thirdperson": {

View File

@ -1,7 +1,7 @@
{ {
"parent": "builtin/generated", "parent": "builtin/generated",
"textures": { "textures": {
"layer0": "items/apple" "layer0": "ironchest:items/goldDiamondUpgrade"
}, },
"display": { "display": {
"thirdperson": { "thirdperson": {