From 4e8c432cef43da2ab23377f1fcb0862df1cb9c43 Mon Sep 17 00:00:00 2001 From: boubou19 Date: Mon, 10 Aug 2026 21:04:50 +0200 Subject: [PATCH] Cache enum `.values()` (#46) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- src/main/java/chylex/hee/block/BlockEssenceAltar.java | 4 ++-- src/main/java/chylex/hee/item/ItemCharm.java | 2 +- src/main/java/chylex/hee/item/ItemCurse.java | 2 +- src/main/java/chylex/hee/item/ItemEssence.java | 6 +++--- src/main/java/chylex/hee/mechanics/RecipeList.java | 2 +- src/main/java/chylex/hee/mechanics/charms/CharmType.java | 7 ++++--- .../hee/mechanics/compendium/util/KnowledgeUtils.java | 4 ++-- src/main/java/chylex/hee/mechanics/curse/CurseType.java | 4 +++- .../java/chylex/hee/mechanics/essence/EssenceType.java | 3 ++- .../chylex/hee/system/test/list/mechanics/CharmTests.java | 2 +- .../feature/forest/ravageddungeon/RavagedDungeonLoot.java | 2 +- 11 files changed, 21 insertions(+), 17 deletions(-) diff --git a/src/main/java/chylex/hee/block/BlockEssenceAltar.java b/src/main/java/chylex/hee/block/BlockEssenceAltar.java index 1693fc56..78770106 100644 --- a/src/main/java/chylex/hee/block/BlockEssenceAltar.java +++ b/src/main/java/chylex/hee/block/BlockEssenceAltar.java @@ -95,7 +95,7 @@ public class BlockEssenceAltar extends BlockContainer { @Override @SideOnly(Side.CLIENT) public void getSubBlocks(Item item, CreativeTabs tab, List list) { - for (EssenceType essenceType : EssenceType.values()) list.add(new ItemStack(item, 1, essenceType.id)); + for (EssenceType essenceType : EssenceType.VALUES) list.add(new ItemStack(item, 1, essenceType.id)); } @Override @@ -110,7 +110,7 @@ public class BlockEssenceAltar extends BlockContainer { public void registerBlockIcons(IIconRegister iconRegister) { String s = getTextureName() + "_"; - iconTop = new IIcon[EssenceType.values().length]; + iconTop = new IIcon[EssenceType.VALUES.length]; iconSide = new IIcon[iconTop.length]; iconBottom = new IIcon[iconTop.length]; diff --git a/src/main/java/chylex/hee/item/ItemCharm.java b/src/main/java/chylex/hee/item/ItemCharm.java index 15e5fb12..82567484 100644 --- a/src/main/java/chylex/hee/item/ItemCharm.java +++ b/src/main/java/chylex/hee/item/ItemCharm.java @@ -40,7 +40,7 @@ public class ItemCharm extends Item { @Override @SideOnly(Side.CLIENT) public void getSubItems(Item item, CreativeTabs tab, List list) { - for (CharmType charmType : CharmType.values()) { + for (CharmType charmType : CharmType.VALUES) { for (CharmRecipe charmRecipe : charmType.recipes) list.add(new ItemStack(item, 1, charmRecipe.id)); } } diff --git a/src/main/java/chylex/hee/item/ItemCurse.java b/src/main/java/chylex/hee/item/ItemCurse.java index 22723b2a..badc5835 100644 --- a/src/main/java/chylex/hee/item/ItemCurse.java +++ b/src/main/java/chylex/hee/item/ItemCurse.java @@ -135,7 +135,7 @@ public class ItemCurse extends Item { @Override @SideOnly(Side.CLIENT) public void getSubItems(Item item, CreativeTabs tabs, List list) { - for (CurseType type : CurseType.values()) { + for (CurseType type : CurseType.VALUES) { list.add(new ItemStack(item, 1, type.damage)); list.add(new ItemStack(item, 1, type.damage | 0b100000000)); } diff --git a/src/main/java/chylex/hee/item/ItemEssence.java b/src/main/java/chylex/hee/item/ItemEssence.java index d8b96aa3..4bbc2e1f 100644 --- a/src/main/java/chylex/hee/item/ItemEssence.java +++ b/src/main/java/chylex/hee/item/ItemEssence.java @@ -29,7 +29,7 @@ public class ItemEssence extends Item { @Override @SideOnly(Side.CLIENT) public void getSubItems(Item item, CreativeTabs tab, List list) { - for (EssenceType essenceType : EssenceType.values()) { + for (EssenceType essenceType : EssenceType.VALUES) { if (essenceType == EssenceType.INVALID) continue; list.add(new ItemStack(item, 1, essenceType.id - 1)); } @@ -62,10 +62,10 @@ public class ItemEssence extends Item { @SideOnly(Side.CLIENT) @Override public void registerIcons(IIconRegister iconRegister) { - iconArray = new IIcon[EssenceType.values().length - 1]; + iconArray = new IIcon[EssenceType.VALUES.length - 1]; int index = -1; - for (EssenceType essenceType : EssenceType.values()) { + for (EssenceType essenceType : EssenceType.VALUES) { if (essenceType == EssenceType.INVALID) continue; iconArray[++index] = iconRegister.registerIcon("hardcoreenderexpansion:essence_" + essenceType.id); } diff --git a/src/main/java/chylex/hee/mechanics/RecipeList.java b/src/main/java/chylex/hee/mechanics/RecipeList.java index d924baff..c6a92329 100644 --- a/src/main/java/chylex/hee/mechanics/RecipeList.java +++ b/src/main/java/chylex/hee/mechanics/RecipeList.java @@ -159,7 +159,7 @@ public final class RecipeList { ItemList.spectral_tear, ItemList.instability_orb); - for (CurseType curse : CurseType.values()) { + for (CurseType curse : CurseType.VALUES) { GameRegistry.addShapedRecipe( new ItemStack(ItemList.curse, 8, curse.damage), "PAP", diff --git a/src/main/java/chylex/hee/mechanics/charms/CharmType.java b/src/main/java/chylex/hee/mechanics/charms/CharmType.java index 789c8ff7..4e414eff 100644 --- a/src/main/java/chylex/hee/mechanics/charms/CharmType.java +++ b/src/main/java/chylex/hee/mechanics/charms/CharmType.java @@ -193,9 +193,10 @@ public enum CharmType { new String[] { "int,lastresortblocks", "int,lastresortcooldown" }); // last used id: 79 + public static final CharmType[] VALUES = values(); public static Pair getFromDamage(int damage) { - for (CharmType type : values()) { + for (CharmType type : VALUES) { for (CharmRecipe recipe : type.recipes) { if (recipe.id == damage) return Pair.of(type, recipe); } @@ -207,7 +208,7 @@ public enum CharmType { public static Pair findRecipe(RuneType[] runes) { if (runes.length < 3 || runes.length > 5) return null; - for (CharmType type : values()) { + for (CharmType type : VALUES) { for (CharmRecipe recipe : type.recipes) { if (recipe.checkRunes(runes)) return Pair.of(type, recipe); } @@ -217,7 +218,7 @@ public enum CharmType { } public static String getTooltip(int damage) { - for (CharmType type : values()) { + for (CharmType type : VALUES) { for (CharmRecipe recipe : type.recipes) { if (recipe.id == damage) { String tooltip = StatCollector.translateToLocal( diff --git a/src/main/java/chylex/hee/mechanics/compendium/util/KnowledgeUtils.java b/src/main/java/chylex/hee/mechanics/compendium/util/KnowledgeUtils.java index 888d9085..47724efd 100644 --- a/src/main/java/chylex/hee/mechanics/compendium/util/KnowledgeUtils.java +++ b/src/main/java/chylex/hee/mechanics/compendium/util/KnowledgeUtils.java @@ -65,7 +65,7 @@ public final class KnowledgeUtils { List fragments = new ArrayList<>(); int a = 0; - for (CharmType type : CharmType.values()) { + for (CharmType type : CharmType.VALUES) { for (CharmRecipe recipe : type.recipes) { fragments.add( new KnowledgeFragmentCharm(startID + (a++)).setRecipe(recipe).setPrice(2) @@ -80,7 +80,7 @@ public final class KnowledgeUtils { List fragments = new ArrayList<>(); int a = 0; - for (CurseType type : CurseType.values()) { + for (CurseType type : CurseType.VALUES) { fragments.add( new KnowledgeFragmentCrafting(startID + (a++)) .setRecipe(new ItemStack(ItemList.curse, 8, type.damage)).setPrice(3) diff --git a/src/main/java/chylex/hee/mechanics/curse/CurseType.java b/src/main/java/chylex/hee/mechanics/curse/CurseType.java index e1999d03..2fe25f7f 100644 --- a/src/main/java/chylex/hee/mechanics/curse/CurseType.java +++ b/src/main/java/chylex/hee/mechanics/curse/CurseType.java @@ -519,10 +519,12 @@ public enum CurseType { .setUses(EnumCurseUse.PLAYER, 8, 11).setColor1h(300).setColor2g(50); } + public static final CurseType[] VALUES = values(); + public static CurseType getFromDamage(int damage) { damage = damage & 0b11111111; - for (CurseType type : values()) { + for (CurseType type : VALUES) { if (damage == type.damage) return type; } diff --git a/src/main/java/chylex/hee/mechanics/essence/EssenceType.java b/src/main/java/chylex/hee/mechanics/essence/EssenceType.java index 1180e3f7..a105df94 100644 --- a/src/main/java/chylex/hee/mechanics/essence/EssenceType.java +++ b/src/main/java/chylex/hee/mechanics/essence/EssenceType.java @@ -49,6 +49,7 @@ public enum EssenceType { new RuneItem(Items.egg, "mob.chicken.plop") }, new float[] { 0.1875F, 0.1641F, 0.5273F }); + public static final EssenceType[] VALUES = values(); public final byte id; public final String essenceName; public final String essenceNameLowercase; @@ -73,7 +74,7 @@ public enum EssenceType { } public static EssenceType getById(int id) { - for (EssenceType type : values()) { + for (EssenceType type : VALUES) { if (type.id == id) return type; } return INVALID; diff --git a/src/main/java/chylex/hee/system/test/list/mechanics/CharmTests.java b/src/main/java/chylex/hee/system/test/list/mechanics/CharmTests.java index 4d397030..3f4d29a4 100644 --- a/src/main/java/chylex/hee/system/test/list/mechanics/CharmTests.java +++ b/src/main/java/chylex/hee/system/test/list/mechanics/CharmTests.java @@ -18,7 +18,7 @@ public class CharmTests { public void testRecipeConflicts() { TIntIntHashMap hashes = new TIntIntHashMap(80, 0.75F, -1, -1); - for (CharmType type : CharmType.values()) { + for (CharmType type : CharmType.VALUES) { for (CharmRecipe recipe : type.recipes) { Map data = recipe.getRunes(); int hash = 0, prevHash; diff --git a/src/main/java/chylex/hee/world/structure/island/biome/feature/forest/ravageddungeon/RavagedDungeonLoot.java b/src/main/java/chylex/hee/world/structure/island/biome/feature/forest/ravageddungeon/RavagedDungeonLoot.java index 4d79db25..88cf0058 100644 --- a/src/main/java/chylex/hee/world/structure/island/biome/feature/forest/ravageddungeon/RavagedDungeonLoot.java +++ b/src/main/java/chylex/hee/world/structure/island/biome/feature/forest/ravageddungeon/RavagedDungeonLoot.java @@ -139,7 +139,7 @@ public final class RavagedDungeonLoot { @Override public ItemStack processItem(ItemStack is, Random rand) { if (is.getItem() == ItemList.charm) { - CharmType[] types = CharmType.values(); + CharmType[] types = CharmType.VALUES; CharmType type = types[rand.nextInt(types.length)]; is.setItemDamage(type.recipes[rand.nextInt(type.recipes.length)].id); }