Skip to content

Commit ff70c8b

Browse files
authored
Fix hex plating glow tint pollution from leaked ambient occlusion state (#101)
1 parent c1ac213 commit ff70c8b

5 files changed

Lines changed: 30 additions & 12 deletions

File tree

src/main/java/team/chisel/Features.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5305,6 +5305,7 @@ void addRecipes() {
53055305
}
53065306
};
53075307

5308+
public static final Features[] VALUES = values();
53085309
private static final String[] dyeOres = { "dyeBlack", "dyeRed", "dyeGreen", "dyeBrown", "dyeBlue", "dyePurple",
53095310
"dyeCyan", "dyeLightGray", "dyeGray", "dyePink", "dyeLime", "dyeYellow", "dyeLightBlue", "dyeMagenta",
53105311
"dyeOrange", "dyeWhite" };
@@ -5320,7 +5321,7 @@ static void init() {
53205321
private static void loadBlocks() {
53215322
Chisel.logger.info("Loading blocks...");
53225323
int num = 0;
5323-
for (Features f : values()) {
5324+
for (Features f : VALUES) {
53245325
if (f.enabled()) {
53255326
f.addBlocks();
53265327
++num;
@@ -5337,7 +5338,7 @@ private static void loadBlocks() {
53375338
private static void loadItems() {
53385339
Chisel.logger.info("Loading items...");
53395340
int num = 0;
5340-
for (Features f : values()) {
5341+
for (Features f : VALUES) {
53415342
if (f.enabled()) {
53425343
f.addItems();
53435344
++num;
@@ -5351,7 +5352,7 @@ private static void loadItems() {
53515352
private static void loadRecipes() {
53525353
Chisel.logger.info("Loading recipes...");
53535354
int num = 0;
5354-
for (Features f : values()) {
5355+
for (Features f : VALUES) {
53555356
if (f.enabled()) {
53565357
if (f.needsMetaRecipes()) {
53575358
for (int i = 0; i < 16; i++) {
@@ -5387,7 +5388,7 @@ private static void logDisabled(Features f) {
53875388
}
53885389

53895390
public static boolean oneModdedFeatureLoaded() {
5390-
for (Features f : values()) {
5391+
for (Features f : VALUES) {
53915392
if (f.hasRequiredMod()) {
53925393
return true;
53935394
}

src/main/java/team/chisel/block/tileentity/TileEntityAutoChisel.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ public enum Upgrade {
3737
STACK,
3838
REVERSION;
3939

40+
public static final Upgrade[] VALUES = values();
41+
4042
public String getUnlocalizedName() {
4143
if (Features.AUTO_CHISEL_UPGRADES.enabled()) {
4244
return "item.upgrade_" + this.name()
@@ -380,7 +382,7 @@ public boolean isItemValidForSlot(int slot, ItemStack itemStack) {
380382
return itemStack.getItem() instanceof IChiselItem;
381383
default:
382384
return Features.AUTO_CHISEL_UPGRADES.enabled() && itemStack.getItem() == ChiselItems.upgrade
383-
&& Upgrade.values()[slot - MIN_UPGRADE].ordinal() == itemStack.getItemDamage();
385+
&& Upgrade.VALUES[slot - MIN_UPGRADE].ordinal() == itemStack.getItemDamage();
384386
}
385387
}
386388

@@ -465,7 +467,7 @@ public String getSlotTooltipUnloc(int slotNumber) {
465467
String unloc = name == null ? null : String.format(base, name);
466468
return StatCollector.translateToLocal(unloc);
467469
} else {
468-
return Upgrade.values()[slotNumber - MIN_UPGRADE].getLocalizedName();
470+
return Upgrade.VALUES[slotNumber - MIN_UPGRADE].getLocalizedName();
469471
}
470472
}
471473

src/main/java/team/chisel/client/render/RendererLayeredGlow.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,28 @@ public void renderInventoryBlock(Block block, int metadata, int modelId, RenderB
4040
public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId,
4141
RenderBlocks renderer) {
4242
final Tessellator tessellator = Tessellator.instance;
43-
tessellator.setColorOpaque_I(Configurations.configColors[world.getBlockMetadata(x, y, z)]);
43+
final boolean prevEnableAO = renderer.enableAO;
44+
final int tint = Configurations.configColors[world.getBlockMetadata(x, y, z)];
45+
tessellator.setColorOpaque_I(tint);
4446
tessellator.setBrightness(0xF000F0);
47+
setFullbrightColor(renderer, tint);
4548
Drawing.renderAllFaces(renderer, block, x, y, z, ((BlockCarvableGlow) block).getGlowTexture());
49+
renderer.enableAO = prevEnableAO;
4650
renderer.renderStandardBlock(block, x, y, z);
4751
return true;
4852
}
4953

54+
private static void setFullbrightColor(RenderBlocks renderer, int color) {
55+
final float r = (color >> 16 & 255) / 255.0F;
56+
final float g = (color >> 8 & 255) / 255.0F;
57+
final float b = (color & 255) / 255.0F;
58+
renderer.enableAO = true;
59+
renderer.colorRedTopLeft = renderer.colorRedBottomLeft = renderer.colorRedBottomRight = renderer.colorRedTopRight = r;
60+
renderer.colorGreenTopLeft = renderer.colorGreenBottomLeft = renderer.colorGreenBottomRight = renderer.colorGreenTopRight = g;
61+
renderer.colorBlueTopLeft = renderer.colorBlueBottomLeft = renderer.colorBlueBottomRight = renderer.colorBlueTopRight = b;
62+
renderer.brightnessTopLeft = renderer.brightnessBottomLeft = renderer.brightnessTopRight = renderer.brightnessBottomRight = 0xF000F0;
63+
}
64+
5065
@Override
5166
public boolean shouldRender3DInInventory(int modelId) {
5267
return true;

src/main/java/team/chisel/config/Configurations.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ public static boolean refreshConfig() {
303303
}
304304

305305
/* features */
306-
for (Features feature : Features.values()) {
306+
for (Features feature : Features.VALUES) {
307307
features.put(
308308
featureName(feature),
309309
config.get("features", featureName(feature), true)

src/main/java/team/chisel/item/ItemUpgrade.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,12 @@ public ItemUpgrade(String unlocalizedName) {
2626
@Override
2727
public IIcon getIconFromDamage(int meta) {
2828
// using modulo throughout to prevent AIOB
29-
return this.icons[meta % Upgrade.values().length];
29+
return this.icons[meta % Upgrade.VALUES.length];
3030
}
3131

3232
@Override
3333
public void registerIcons(IIconRegister reg) {
34-
Upgrade[] upgrades = Upgrade.values();
34+
Upgrade[] upgrades = Upgrade.VALUES;
3535
for (int i = 0; i < upgrades.length; i++) {
3636
this.icons[i] = reg.registerIcon(
3737
Chisel.MOD_ID + ":upgrade_"
@@ -43,14 +43,14 @@ public void registerIcons(IIconRegister reg) {
4343
@SuppressWarnings({ "unchecked", "rawtypes" })
4444
@Override
4545
public void getSubItems(Item item, CreativeTabs tab, List list) {
46-
for (int i = 0; i < Upgrade.values().length; i++) {
46+
for (int i = 0; i < Upgrade.VALUES.length; i++) {
4747
list.add(new ItemStack(item, 1, i));
4848
}
4949
}
5050

5151
@Override
5252
public String getUnlocalizedName(ItemStack stack) {
53-
Upgrade[] upgrades = Upgrade.values();
53+
Upgrade[] upgrades = Upgrade.VALUES;
5454
return upgrades[stack.getItemDamage() % upgrades.length].getUnlocalizedName();
5555
}
5656
}

0 commit comments

Comments
 (0)