From b0edb23dba279b69fca774ce6dad04bee6c6c40e Mon Sep 17 00:00:00 2001 From: LexManos Date: Wed, 5 Jul 2017 14:52:29 -0700 Subject: [PATCH] Fix getting missing models for overridden Item registry entires --- .../client/ItemModelMesherForge.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/main/java/net/minecraftforge/client/ItemModelMesherForge.java b/src/main/java/net/minecraftforge/client/ItemModelMesherForge.java index 99670a54bd..a2f61f77c5 100644 --- a/src/main/java/net/minecraftforge/client/ItemModelMesherForge.java +++ b/src/main/java/net/minecraftforge/client/ItemModelMesherForge.java @@ -19,26 +19,25 @@ package net.minecraftforge.client; -import java.util.IdentityHashMap; import java.util.Map; import com.google.common.collect.Maps; import gnu.trove.map.hash.TIntObjectHashMap; -import gnu.trove.procedure.TIntObjectProcedure; import net.minecraft.client.renderer.ItemModelMesher; import net.minecraft.client.renderer.block.model.IBakedModel; import net.minecraft.client.renderer.block.model.ModelManager; import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.item.Item; +import net.minecraftforge.registries.IRegistryDelegate; /** * Wrapper around ItemModeMesher that cleans up the internal maps to respect ID remapping. */ public class ItemModelMesherForge extends ItemModelMesher { - IdentityHashMap> locations = Maps.newIdentityHashMap(); - IdentityHashMap> models = Maps.newIdentityHashMap(); + Map, TIntObjectHashMap> locations = Maps.newHashMap(); + Map, TIntObjectHashMap> models = Maps.newHashMap(); public ItemModelMesherForge(ModelManager manager) { @@ -48,24 +47,25 @@ public class ItemModelMesherForge extends ItemModelMesher @Override protected IBakedModel getItemModel(Item item, int meta) { - TIntObjectHashMap map = models.get(item); + TIntObjectHashMap map = models.get(item.delegate); return map == null ? null : map.get(meta); } @Override public void register(Item item, int meta, ModelResourceLocation location) { - TIntObjectHashMap locs = locations.get(item); - TIntObjectHashMap mods = models.get(item); + IRegistryDelegate key = item.delegate; + TIntObjectHashMap locs = locations.get(key); + TIntObjectHashMap mods = models.get(key); if (locs == null) { locs = new TIntObjectHashMap(); - locations.put(item, locs); + locations.put(key, locs); } if (mods == null) { mods = new TIntObjectHashMap(); - models.put(item, mods); + models.put(key, mods); } locs.put(meta, location); mods.put(meta, getModelManager().getModel(location)); @@ -75,7 +75,7 @@ public class ItemModelMesherForge extends ItemModelMesher public void rebuildCache() { final ModelManager manager = this.getModelManager(); - for (Map.Entry> e : locations.entrySet()) + for (Map.Entry, TIntObjectHashMap> e : locations.entrySet()) { TIntObjectHashMap mods = models.get(e.getKey()); if (mods != null)