From fc5374aa272c44753712a5358711cac5c338653a Mon Sep 17 00:00:00 2001 From: boubou19 Date: Sun, 9 Aug 2026 09:58:10 +0200 Subject: [PATCH 1/4] guard against enableAO corruption --- .../client/render/RendererLayeredGlow.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/main/java/team/chisel/client/render/RendererLayeredGlow.java b/src/main/java/team/chisel/client/render/RendererLayeredGlow.java index 22d6547df..af01d4196 100644 --- a/src/main/java/team/chisel/client/render/RendererLayeredGlow.java +++ b/src/main/java/team/chisel/client/render/RendererLayeredGlow.java @@ -40,13 +40,28 @@ public void renderInventoryBlock(Block block, int metadata, int modelId, RenderB public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { final Tessellator tessellator = Tessellator.instance; - tessellator.setColorOpaque_I(Configurations.configColors[world.getBlockMetadata(x, y, z)]); + final boolean prevEnableAO = renderer.enableAO; + final int tint = Configurations.configColors[world.getBlockMetadata(x, y, z)]; + tessellator.setColorOpaque_I(tint); tessellator.setBrightness(0xF000F0); + setFullbrightColor(renderer, tint); Drawing.renderAllFaces(renderer, block, x, y, z, ((BlockCarvableGlow) block).getGlowTexture()); + renderer.enableAO = prevEnableAO; renderer.renderStandardBlock(block, x, y, z); return true; } + private static void setFullbrightColor(RenderBlocks renderer, int color) { + final float r = (float) (color >> 16 & 255) / 255.0F; + final float g = (float) (color >> 8 & 255) / 255.0F; + final float b = (float) (color & 255) / 255.0F; + renderer.enableAO = true; + renderer.colorRedTopLeft = renderer.colorRedBottomLeft = renderer.colorRedBottomRight = renderer.colorRedTopRight = r; + renderer.colorGreenTopLeft = renderer.colorGreenBottomLeft = renderer.colorGreenBottomRight = renderer.colorGreenTopRight = g; + renderer.colorBlueTopLeft = renderer.colorBlueBottomLeft = renderer.colorBlueBottomRight = renderer.colorBlueTopRight = b; + renderer.brightnessTopLeft = renderer.brightnessBottomLeft = renderer.brightnessTopRight = renderer.brightnessBottomRight = 0xF000F0; + } + @Override public boolean shouldRender3DInInventory(int modelId) { return true; From ecd75abb9e8daf2031b4671513d006c9e8de753a Mon Sep 17 00:00:00 2001 From: boubou19 Date: Sun, 9 Aug 2026 09:58:36 +0200 Subject: [PATCH 2/4] cache enum values --- src/main/java/team/chisel/Features.java | 9 +++++---- .../chisel/block/tileentity/TileEntityAutoChisel.java | 5 +++-- src/main/java/team/chisel/config/Configurations.java | 2 +- src/main/java/team/chisel/item/ItemUpgrade.java | 8 ++++---- 4 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/main/java/team/chisel/Features.java b/src/main/java/team/chisel/Features.java index 21b84b8f3..d6dddcabc 100644 --- a/src/main/java/team/chisel/Features.java +++ b/src/main/java/team/chisel/Features.java @@ -5305,6 +5305,7 @@ void addRecipes() { } }; + public static final Features[] VALUES = values(); private static final String[] dyeOres = { "dyeBlack", "dyeRed", "dyeGreen", "dyeBrown", "dyeBlue", "dyePurple", "dyeCyan", "dyeLightGray", "dyeGray", "dyePink", "dyeLime", "dyeYellow", "dyeLightBlue", "dyeMagenta", "dyeOrange", "dyeWhite" }; @@ -5320,7 +5321,7 @@ static void init() { private static void loadBlocks() { Chisel.logger.info("Loading blocks..."); int num = 0; - for (Features f : values()) { + for (Features f : VALUES) { if (f.enabled()) { f.addBlocks(); ++num; @@ -5337,7 +5338,7 @@ private static void loadBlocks() { private static void loadItems() { Chisel.logger.info("Loading items..."); int num = 0; - for (Features f : values()) { + for (Features f : VALUES) { if (f.enabled()) { f.addItems(); ++num; @@ -5351,7 +5352,7 @@ private static void loadItems() { private static void loadRecipes() { Chisel.logger.info("Loading recipes..."); int num = 0; - for (Features f : values()) { + for (Features f : VALUES) { if (f.enabled()) { if (f.needsMetaRecipes()) { for (int i = 0; i < 16; i++) { @@ -5387,7 +5388,7 @@ private static void logDisabled(Features f) { } public static boolean oneModdedFeatureLoaded() { - for (Features f : values()) { + for (Features f : VALUES) { if (f.hasRequiredMod()) { return true; } diff --git a/src/main/java/team/chisel/block/tileentity/TileEntityAutoChisel.java b/src/main/java/team/chisel/block/tileentity/TileEntityAutoChisel.java index f1b76adc1..ea0d4c3d9 100644 --- a/src/main/java/team/chisel/block/tileentity/TileEntityAutoChisel.java +++ b/src/main/java/team/chisel/block/tileentity/TileEntityAutoChisel.java @@ -37,6 +37,7 @@ public enum Upgrade { STACK, REVERSION; + public static final Upgrade[] VALUES = values(); public String getUnlocalizedName() { if (Features.AUTO_CHISEL_UPGRADES.enabled()) { return "item.upgrade_" + this.name() @@ -380,7 +381,7 @@ public boolean isItemValidForSlot(int slot, ItemStack itemStack) { return itemStack.getItem() instanceof IChiselItem; default: return Features.AUTO_CHISEL_UPGRADES.enabled() && itemStack.getItem() == ChiselItems.upgrade - && Upgrade.values()[slot - MIN_UPGRADE].ordinal() == itemStack.getItemDamage(); + && Upgrade.VALUES[slot - MIN_UPGRADE].ordinal() == itemStack.getItemDamage(); } } @@ -465,7 +466,7 @@ public String getSlotTooltipUnloc(int slotNumber) { String unloc = name == null ? null : String.format(base, name); return StatCollector.translateToLocal(unloc); } else { - return Upgrade.values()[slotNumber - MIN_UPGRADE].getLocalizedName(); + return Upgrade.VALUES[slotNumber - MIN_UPGRADE].getLocalizedName(); } } diff --git a/src/main/java/team/chisel/config/Configurations.java b/src/main/java/team/chisel/config/Configurations.java index 469fba919..0ba1e6b55 100644 --- a/src/main/java/team/chisel/config/Configurations.java +++ b/src/main/java/team/chisel/config/Configurations.java @@ -303,7 +303,7 @@ public static boolean refreshConfig() { } /* features */ - for (Features feature : Features.values()) { + for (Features feature : Features.VALUES) { features.put( featureName(feature), config.get("features", featureName(feature), true) diff --git a/src/main/java/team/chisel/item/ItemUpgrade.java b/src/main/java/team/chisel/item/ItemUpgrade.java index ce7203930..43deb3f98 100644 --- a/src/main/java/team/chisel/item/ItemUpgrade.java +++ b/src/main/java/team/chisel/item/ItemUpgrade.java @@ -26,12 +26,12 @@ public ItemUpgrade(String unlocalizedName) { @Override public IIcon getIconFromDamage(int meta) { // using modulo throughout to prevent AIOB - return this.icons[meta % Upgrade.values().length]; + return this.icons[meta % Upgrade.VALUES.length]; } @Override public void registerIcons(IIconRegister reg) { - Upgrade[] upgrades = Upgrade.values(); + Upgrade[] upgrades = Upgrade.VALUES; for (int i = 0; i < upgrades.length; i++) { this.icons[i] = reg.registerIcon( Chisel.MOD_ID + ":upgrade_" @@ -43,14 +43,14 @@ public void registerIcons(IIconRegister reg) { @SuppressWarnings({ "unchecked", "rawtypes" }) @Override public void getSubItems(Item item, CreativeTabs tab, List list) { - for (int i = 0; i < Upgrade.values().length; i++) { + for (int i = 0; i < Upgrade.VALUES.length; i++) { list.add(new ItemStack(item, 1, i)); } } @Override public String getUnlocalizedName(ItemStack stack) { - Upgrade[] upgrades = Upgrade.values(); + Upgrade[] upgrades = Upgrade.VALUES; return upgrades[stack.getItemDamage() % upgrades.length].getUnlocalizedName(); } } From 17a69bced549cc4b60952e150b2625db3e03eaeb Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 9 Aug 2026 10:27:43 +0200 Subject: [PATCH 3/4] spotlessApply (#102) Co-authored-by: GitHub GTNH Actions <> --- .../java/team/chisel/block/tileentity/TileEntityAutoChisel.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/team/chisel/block/tileentity/TileEntityAutoChisel.java b/src/main/java/team/chisel/block/tileentity/TileEntityAutoChisel.java index ea0d4c3d9..41c203a1c 100644 --- a/src/main/java/team/chisel/block/tileentity/TileEntityAutoChisel.java +++ b/src/main/java/team/chisel/block/tileentity/TileEntityAutoChisel.java @@ -38,6 +38,7 @@ public enum Upgrade { REVERSION; public static final Upgrade[] VALUES = values(); + public String getUnlocalizedName() { if (Features.AUTO_CHISEL_UPGRADES.enabled()) { return "item.upgrade_" + this.name() From 85a6a41091c5379ab5c49d918af7ec752bc4e51c Mon Sep 17 00:00:00 2001 From: boubou19 Date: Sun, 9 Aug 2026 10:36:40 +0200 Subject: [PATCH 4/4] yeet unecessary casts --- .../java/team/chisel/client/render/RendererLayeredGlow.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/team/chisel/client/render/RendererLayeredGlow.java b/src/main/java/team/chisel/client/render/RendererLayeredGlow.java index af01d4196..2fbfc319b 100644 --- a/src/main/java/team/chisel/client/render/RendererLayeredGlow.java +++ b/src/main/java/team/chisel/client/render/RendererLayeredGlow.java @@ -52,9 +52,9 @@ public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block b } private static void setFullbrightColor(RenderBlocks renderer, int color) { - final float r = (float) (color >> 16 & 255) / 255.0F; - final float g = (float) (color >> 8 & 255) / 255.0F; - final float b = (float) (color & 255) / 255.0F; + final float r = (color >> 16 & 255) / 255.0F; + final float g = (color >> 8 & 255) / 255.0F; + final float b = (color & 255) / 255.0F; renderer.enableAO = true; renderer.colorRedTopLeft = renderer.colorRedBottomLeft = renderer.colorRedBottomRight = renderer.colorRedTopRight = r; renderer.colorGreenTopLeft = renderer.colorGreenBottomLeft = renderer.colorGreenBottomRight = renderer.colorGreenTopRight = g;