diff options
author | bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com> | 2019-04-28 02:22:39 +0200 |
---|---|---|
committer | bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com> | 2019-04-28 02:22:39 +0200 |
commit | aaa4c29f55ec261fb784941ca17435ba06e58467 (patch) | |
tree | ce56c67cf1282de56a58c263171b9647d97e6491 /src/main | |
parent | 3ee2e33630d3346d9ab04c9e4c56f101f18399d2 (diff) | |
download | GT5-Unofficial-aaa4c29f55ec261fb784941ca17435ba06e58467.tar.gz GT5-Unofficial-aaa4c29f55ec261fb784941ca17435ba06e58467.tar.bz2 GT5-Unofficial-aaa4c29f55ec261fb784941ca17435ba06e58467.zip |
reworked clienteventhandler
Signed-off-by: bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com>
Former-commit-id: be5ebbabc9ed6e24d8394f4f38242c431b9f694e
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/com/github/bartimaeusnek/bartworks/client/ClientEventHandler/ClientEventHandler.java | 54 |
1 files changed, 31 insertions, 23 deletions
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/client/ClientEventHandler/ClientEventHandler.java b/src/main/java/com/github/bartimaeusnek/bartworks/client/ClientEventHandler/ClientEventHandler.java index d2277817c5..2d37b61242 100644 --- a/src/main/java/com/github/bartimaeusnek/bartworks/client/ClientEventHandler/ClientEventHandler.java +++ b/src/main/java/com/github/bartimaeusnek/bartworks/client/ClientEventHandler/ClientEventHandler.java @@ -40,6 +40,7 @@ import gregtech.api.enums.GT_Values; import gregtech.api.util.GT_Utility; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.util.StatCollector; import net.minecraftforge.event.entity.player.ItemTooltipEvent; @@ -51,38 +52,43 @@ import java.util.List; @SideOnly(Side.CLIENT) public class ClientEventHandler { - HashMap<ItemStack, List<String>> cache = new HashMap<>(); + private static final HashMap<ItemStack, List<String>> CACHE = new HashMap<>(); @SideOnly(Side.CLIENT) @SubscribeEvent(priority = EventPriority.HIGHEST) public void getTooltip(ItemTooltipEvent event) { - if (event.itemStack == null || event.itemStack.getItem() == null || Block.getBlockFromItem(event.itemStack.getItem()) == null) + if (CACHE.size() > 500) + CACHE.clear(); + + if (event.itemStack == null || event.itemStack.getItem() == null || !(OreDictHandler.getCache().containsValue(event.itemStack) || Block.getBlockFromItem(event.itemStack.getItem()) != Blocks.air)) return; - if (!cache.containsKey(event.itemStack)) { + if (!CACHE.containsKey(event.itemStack)) { List<String> tooAdd = new ArrayList<>(); - - for (ItemStack stack : OreDictHandler.getCache().values()) { - if (GT_Utility.areStacksEqual(event.itemStack, stack)) { - GameRegistry.UniqueIdentifier UI = GameRegistry.findUniqueIdentifierFor(stack.getItem()); - if (UI == null) - UI = GameRegistry.findUniqueIdentifierFor(Block.getBlockFromItem(stack.getItem())); - if (UI != null) { - for (ModContainer modContainer : Loader.instance().getModList()) { - if (UI.modId.equals(MainMod.MOD_ID) || UI.modId.equals(BartWorksCrossmod.MOD_ID) || UI.modId.equals("BWCore")) - break; - if (UI.modId.equals(modContainer.getModId())) { - tooAdd.add("Shared ItemStack between " + ChatColorHelper.DARKGREEN + "BartWorks" + ChatColorHelper.GRAY + " and " + ChatColorHelper.RED + modContainer.getName()); + if (OreDictHandler.getCache().containsValue(event.itemStack) ) { + for (ItemStack stack : OreDictHandler.getCache().values()) { + if (GT_Utility.areStacksEqual(event.itemStack, stack)) { + GameRegistry.UniqueIdentifier UI = GameRegistry.findUniqueIdentifierFor(stack.getItem()); + if (UI == null) + UI = GameRegistry.findUniqueIdentifierFor(Block.getBlockFromItem(stack.getItem())); + if (UI != null) { + for (ModContainer modContainer : Loader.instance().getModList()) { + if (UI.modId.equals(MainMod.MOD_ID) || UI.modId.equals(BartWorksCrossmod.MOD_ID) || UI.modId.equals("BWCore")) + break; + if (UI.modId.equals(modContainer.getModId())) { + tooAdd.add("Shared ItemStack between " + ChatColorHelper.DARKGREEN + "BartWorks" + ChatColorHelper.GRAY + " and " + ChatColorHelper.RED + modContainer.getName()); + } } - } - } else - tooAdd.add("Shared ItemStack between " + ChatColorHelper.DARKGREEN + "BartWorks" + ChatColorHelper.GRAY + " and another Mod, that doesn't use the ModContainer propperly!"); + } else + tooAdd.add("Shared ItemStack between " + ChatColorHelper.DARKGREEN + "BartWorks" + ChatColorHelper.GRAY + " and another Mod, that doesn't use the ModContainer propperly!"); + } } } - final Block BLOCK = Block.getBlockFromItem(event.itemStack.getItem()); + final Block BLOCK = Block.getBlockFromItem(event.itemStack.getItem()); + if (BLOCK != null && BLOCK != Blocks.air) { if (BLOCK instanceof BW_Blocks) { - cache.put(event.itemStack, tooAdd); + CACHE.put(event.itemStack, tooAdd); return; } final BioVatLogicAdder.BlockMetaPair PAIR = new BioVatLogicAdder.BlockMetaPair(BLOCK, (byte) event.itemStack.getItemDamage()); @@ -98,10 +104,12 @@ public class ClientEventHandler { " " + BW_ColorUtil.getColorForTier(3) + GT_Values.VN[3] + ChatColorHelper.RESET); } - cache.put(event.itemStack, tooAdd); - event.toolTip.addAll(tooAdd); + } + + CACHE.put(event.itemStack, tooAdd); + event.toolTip.addAll(tooAdd); } else { - event.toolTip.addAll(cache.get(event.itemStack)); + event.toolTip.addAll(CACHE.get(event.itemStack)); } } }
\ No newline at end of file |