aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/util/LightingHelper.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/api/util/LightingHelper.java')
-rw-r--r--src/main/java/gregtech/api/util/LightingHelper.java504
1 files changed, 218 insertions, 286 deletions
diff --git a/src/main/java/gregtech/api/util/LightingHelper.java b/src/main/java/gregtech/api/util/LightingHelper.java
index 5aa9000bf2..36d8f4cda3 100644
--- a/src/main/java/gregtech/api/util/LightingHelper.java
+++ b/src/main/java/gregtech/api/util/LightingHelper.java
@@ -1,38 +1,31 @@
/*
- * LightingHelper - Derived and adapted from @Mineshopper / carpentersblocks
- * Copyright (c) 2013-2021.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation version 2.1
- * of the License.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * LightingHelper - Derived and adapted from @Mineshopper / carpentersblocks Copyright (c) 2013-2021. This library is
+ * free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation version 2.1 of the License. This library is distributed in the hope that it
+ * will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of
+ * the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
package gregtech.api.util;
-import cpw.mods.fml.relauncher.Side;
-import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.EntityRenderer;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.Tessellator;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+
@SuppressWarnings("unused")
@SideOnly(Side.CLIENT)
public class LightingHelper {
+
public static final int NORMAL_BRIGHTNESS = 0xff00ff;
public static final int MAX_BRIGHTNESS = 0xf000f0;
public static final float NO_Z_FIGHT_OFFSET = 1.0F / 1024.0F;
- protected static final float[] LIGHTNESS = {0.5F, 1.0F, 0.8F, 0.8F, 0.6F, 0.6F};
+ protected static final float[] LIGHTNESS = { 0.5F, 1.0F, 0.8F, 0.8F, 0.6F, 0.6F };
private final RenderBlocks renderBlocks;
/**
* Brightness for side.
@@ -94,7 +87,7 @@ public class LightingHelper {
float green = color[1] / 255.0F;
float blue = color[2] / 255.0F;
- return new float[] {red, green, blue};
+ return new float[] { red, green, blue };
}
/**
@@ -197,8 +190,7 @@ public class LightingHelper {
}
/**
- * Sets up the color using lightness, brightness, and the primary color
- * value (usually the dye color) for the side.
+ * Sets up the color using lightness, brightness, and the primary color value (usually the dye color) for the side.
*
* @param side the side
* @param rgba the primary short[] RGBA color array
@@ -208,8 +200,7 @@ public class LightingHelper {
}
/**
- * Sets up the color using lightness, brightness, and the primary color
- * value (usually the dye color) for the side.
+ * Sets up the color using lightness, brightness, and the primary color value (usually the dye color) for the side.
*
* @param side the side
* @param hexColor the primary color
@@ -230,21 +221,18 @@ public class LightingHelper {
if (renderBlocks.hasOverrideBlockTexture()) {
- renderBlocks.colorRedTopLeft = renderBlocks.colorRedBottomLeft =
- renderBlocks.colorRedBottomRight = renderBlocks.colorRedTopRight = rgb[0];
- renderBlocks.colorGreenTopLeft = renderBlocks.colorGreenBottomLeft =
- renderBlocks.colorGreenBottomRight = renderBlocks.colorGreenTopRight = rgb[1];
- renderBlocks.colorBlueTopLeft = renderBlocks.colorBlueBottomLeft =
- renderBlocks.colorBlueBottomRight = renderBlocks.colorBlueTopRight = rgb[2];
+ renderBlocks.colorRedTopLeft = renderBlocks.colorRedBottomLeft = renderBlocks.colorRedBottomRight = renderBlocks.colorRedTopRight = rgb[0];
+ renderBlocks.colorGreenTopLeft = renderBlocks.colorGreenBottomLeft = renderBlocks.colorGreenBottomRight = renderBlocks.colorGreenTopRight = rgb[1];
+ renderBlocks.colorBlueTopLeft = renderBlocks.colorBlueBottomLeft = renderBlocks.colorBlueBottomRight = renderBlocks.colorBlueTopRight = rgb[2];
} else {
- renderBlocks.colorRedTopLeft = renderBlocks.colorRedBottomLeft =
- renderBlocks.colorRedBottomRight = renderBlocks.colorRedTopRight = rgb[0] * lightness;
- renderBlocks.colorGreenTopLeft = renderBlocks.colorGreenBottomLeft =
- renderBlocks.colorGreenBottomRight = renderBlocks.colorGreenTopRight = rgb[1] * lightness;
- renderBlocks.colorBlueTopLeft = renderBlocks.colorBlueBottomLeft =
- renderBlocks.colorBlueBottomRight = renderBlocks.colorBlueTopRight = rgb[2] * lightness;
+ renderBlocks.colorRedTopLeft = renderBlocks.colorRedBottomLeft = renderBlocks.colorRedBottomRight = renderBlocks.colorRedTopRight = rgb[0]
+ * lightness;
+ renderBlocks.colorGreenTopLeft = renderBlocks.colorGreenBottomLeft = renderBlocks.colorGreenBottomRight = renderBlocks.colorGreenTopRight = rgb[1]
+ * lightness;
+ renderBlocks.colorBlueTopLeft = renderBlocks.colorBlueBottomLeft = renderBlocks.colorBlueBottomRight = renderBlocks.colorBlueTopRight = rgb[2]
+ * lightness;
renderBlocks.colorRedTopLeft *= aoTopLeft;
renderBlocks.colorGreenTopLeft *= aoTopLeft;
@@ -278,14 +266,13 @@ public class LightingHelper {
float green = (color >> 8 & 0xff) / 255.0F;
float blue = (color & 0xff) / 255.0F;
- return new float[] {red, green, blue};
+ return new float[] { red, green, blue };
}
/**
* Will apply anaglyph color multipliers to RGB float array.
* <p>
- * If {@link EntityRenderer#anaglyphEnable} is false,
- * will do nothing.
+ * If {@link EntityRenderer#anaglyphEnable} is false, will do nothing.
*
* @param rgb array containing red, green and blue float values
*/
@@ -298,8 +285,7 @@ public class LightingHelper {
}
/**
- * Gets mixed ambient occlusion value from two inputs, with a
- * ratio applied to the final result.
+ * Gets mixed ambient occlusion value from two inputs, with a ratio applied to the final result.
*
* @param ao1 the first ambient occlusion value
* @param ao2 the second ambient occlusion value
@@ -342,12 +328,11 @@ public class LightingHelper {
/**
* Sets up lighting for the West face and returns the {@link LightingHelper}.
* <p>
- * This is a consolidated <code>method</code> that sets side shading
- * with respect to the following attributes:
+ * This is a consolidated <code>method</code> that sets side shading with respect to the following attributes:
* <p>
* <ul>
- * <li>{@link RenderBlocks#enableAO}</li>
- * <li>{@link RenderBlocks#partialRenderBounds}</li>
+ * <li>{@link RenderBlocks#enableAO}</li>
+ * <li>{@link RenderBlocks#partialRenderBounds}</li>
* </ul>
*
* @param block the block {@link Block}
@@ -368,22 +353,22 @@ public class LightingHelper {
float ratio = (float) (1.0F - renderBlocks.renderMinX);
float aoLightValue = renderBlocks.blockAccess.getBlock(x - 1, y, z).getAmbientOcclusionLightValue();
- renderBlocks.aoBrightnessXYNN =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, xOffset, y - 1, z);
- renderBlocks.aoBrightnessXZNN =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, xOffset, y, z - 1);
- renderBlocks.aoBrightnessXZNP =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, xOffset, y, z + 1);
- renderBlocks.aoBrightnessXYNP =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, xOffset, y + 1, z);
- renderBlocks.aoBrightnessXYZNNN =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, xOffset, y - 1, z - 1);
- renderBlocks.aoBrightnessXYZNNP =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, xOffset, y - 1, z + 1);
- renderBlocks.aoBrightnessXYZNPN =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, xOffset, y + 1, z - 1);
- renderBlocks.aoBrightnessXYZNPP =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, xOffset, y + 1, z + 1);
+ renderBlocks.aoBrightnessXYNN = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, xOffset, y - 1, z);
+ renderBlocks.aoBrightnessXZNN = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, xOffset, y, z - 1);
+ renderBlocks.aoBrightnessXZNP = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, xOffset, y, z + 1);
+ renderBlocks.aoBrightnessXYNP = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, xOffset, y + 1, z);
+ renderBlocks.aoBrightnessXYZNNN = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, xOffset, y - 1, z - 1);
+ renderBlocks.aoBrightnessXYZNNP = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, xOffset, y - 1, z + 1);
+ renderBlocks.aoBrightnessXYZNPN = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, xOffset, y + 1, z - 1);
+ renderBlocks.aoBrightnessXYZNPP = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, xOffset, y + 1, z + 1);
renderBlocks.aoLightValueScratchXYNN = getMixedAo(
renderBlocks.blockAccess.getBlock(x - 1, y - 1, z).getAmbientOcclusionLightValue(),
renderBlocks.blockAccess.getBlock(x, y - 1, z).getAmbientOcclusionLightValue(),
@@ -438,26 +423,18 @@ public class LightingHelper {
renderBlocks.aoBrightnessXYZNPP,
mixedBrightness);
- float aoMixedXYZNPN = (renderBlocks.aoLightValueScratchXZNN
- + aoLightValue
- + renderBlocks.aoLightValueScratchXYZNPN
- + renderBlocks.aoLightValueScratchXYNP)
- / 4.0F;
- float aoMixedXYZNNN = (renderBlocks.aoLightValueScratchXYZNNN
- + renderBlocks.aoLightValueScratchXYNN
- + renderBlocks.aoLightValueScratchXZNN
- + aoLightValue)
- / 4.0F;
- float aoMixedXYZNNP = (renderBlocks.aoLightValueScratchXYNN
- + renderBlocks.aoLightValueScratchXYZNNP
- + aoLightValue
- + renderBlocks.aoLightValueScratchXZNP)
- / 4.0F;
- float aoMixedXYZNPP = (aoLightValue
- + renderBlocks.aoLightValueScratchXZNP
- + renderBlocks.aoLightValueScratchXYNP
- + renderBlocks.aoLightValueScratchXYZNPP)
- / 4.0F;
+ float aoMixedXYZNPN = (renderBlocks.aoLightValueScratchXZNN + aoLightValue
+ + renderBlocks.aoLightValueScratchXYZNPN
+ + renderBlocks.aoLightValueScratchXYNP) / 4.0F;
+ float aoMixedXYZNNN = (renderBlocks.aoLightValueScratchXYZNNN + renderBlocks.aoLightValueScratchXYNN
+ + renderBlocks.aoLightValueScratchXZNN
+ + aoLightValue) / 4.0F;
+ float aoMixedXYZNNP = (renderBlocks.aoLightValueScratchXYNN + renderBlocks.aoLightValueScratchXYZNNP
+ + aoLightValue
+ + renderBlocks.aoLightValueScratchXZNP) / 4.0F;
+ float aoMixedXYZNPP = (aoLightValue + renderBlocks.aoLightValueScratchXZNP
+ + renderBlocks.aoLightValueScratchXYNP
+ + renderBlocks.aoLightValueScratchXYZNPP) / 4.0F;
aoTopLeft = (float) (aoMixedXYZNPP * renderBlocks.renderMaxY * renderBlocks.renderMaxZ
+ aoMixedXYZNPN * renderBlocks.renderMaxY * (1.0D - renderBlocks.renderMaxZ)
@@ -520,12 +497,11 @@ public class LightingHelper {
/**
* Sets up lighting for the East face and returns the {@link LightingHelper}.
* <p>
- * This is a consolidated <code>method</code> that sets side shading
- * with respect to the following attributes:
+ * This is a consolidated <code>method</code> that sets side shading with respect to the following attributes:
* <p>
* <ul>
- * <li>{@link RenderBlocks#enableAO}</li>
- * <li>{@link RenderBlocks#partialRenderBounds}</li>
+ * <li>{@link RenderBlocks#enableAO}</li>
+ * <li>{@link RenderBlocks#partialRenderBounds}</li>
* </ul>
*
* @param block the block {@link Block}
@@ -545,22 +521,22 @@ public class LightingHelper {
float aoLightValue = renderBlocks.blockAccess.getBlock(x + 1, y, z).getAmbientOcclusionLightValue();
- renderBlocks.aoBrightnessXYPN =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, xOffset, y - 1, z);
- renderBlocks.aoBrightnessXZPN =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, xOffset, y, z - 1);
- renderBlocks.aoBrightnessXZPP =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, xOffset, y, z + 1);
- renderBlocks.aoBrightnessXYPP =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, xOffset, y + 1, z);
- renderBlocks.aoBrightnessXYZPNN =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, xOffset, y - 1, z - 1);
- renderBlocks.aoBrightnessXYZPNP =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, xOffset, y - 1, z + 1);
- renderBlocks.aoBrightnessXYZPPN =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, xOffset, y + 1, z - 1);
- renderBlocks.aoBrightnessXYZPPP =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, xOffset, y + 1, z + 1);
+ renderBlocks.aoBrightnessXYPN = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, xOffset, y - 1, z);
+ renderBlocks.aoBrightnessXZPN = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, xOffset, y, z - 1);
+ renderBlocks.aoBrightnessXZPP = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, xOffset, y, z + 1);
+ renderBlocks.aoBrightnessXYPP = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, xOffset, y + 1, z);
+ renderBlocks.aoBrightnessXYZPNN = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, xOffset, y - 1, z - 1);
+ renderBlocks.aoBrightnessXYZPNP = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, xOffset, y - 1, z + 1);
+ renderBlocks.aoBrightnessXYZPPN = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, xOffset, y + 1, z - 1);
+ renderBlocks.aoBrightnessXYZPPP = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, xOffset, y + 1, z + 1);
renderBlocks.aoLightValueScratchXYPN = getMixedAo(
renderBlocks.blockAccess.getBlock(x + 1, y - 1, z).getAmbientOcclusionLightValue(),
renderBlocks.blockAccess.getBlock(x, y - 1, z).getAmbientOcclusionLightValue(),
@@ -615,26 +591,18 @@ public class LightingHelper {
renderBlocks.aoBrightnessXYPP,
mixedBrightness);
- float aoMixedXYZPPP = (aoLightValue
- + renderBlocks.aoLightValueScratchXZPP
- + renderBlocks.aoLightValueScratchXYPP
- + renderBlocks.aoLightValueScratchXYZPPP)
- / 4.0F;
- float aoMixedXYZPNP = (renderBlocks.aoLightValueScratchXYPN
- + renderBlocks.aoLightValueScratchXYZPNP
- + aoLightValue
- + renderBlocks.aoLightValueScratchXZPP)
- / 4.0F;
- float aoMixedXYZPNN = (renderBlocks.aoLightValueScratchXYZPNN
- + renderBlocks.aoLightValueScratchXYPN
- + renderBlocks.aoLightValueScratchXZPN
- + aoLightValue)
- / 4.0F;
- float aoMixedXYZPPN = (renderBlocks.aoLightValueScratchXZPN
- + aoLightValue
- + renderBlocks.aoLightValueScratchXYZPPN
- + renderBlocks.aoLightValueScratchXYPP)
- / 4.0F;
+ float aoMixedXYZPPP = (aoLightValue + renderBlocks.aoLightValueScratchXZPP
+ + renderBlocks.aoLightValueScratchXYPP
+ + renderBlocks.aoLightValueScratchXYZPPP) / 4.0F;
+ float aoMixedXYZPNP = (renderBlocks.aoLightValueScratchXYPN + renderBlocks.aoLightValueScratchXYZPNP
+ + aoLightValue
+ + renderBlocks.aoLightValueScratchXZPP) / 4.0F;
+ float aoMixedXYZPNN = (renderBlocks.aoLightValueScratchXYZPNN + renderBlocks.aoLightValueScratchXYPN
+ + renderBlocks.aoLightValueScratchXZPN
+ + aoLightValue) / 4.0F;
+ float aoMixedXYZPPN = (renderBlocks.aoLightValueScratchXZPN + aoLightValue
+ + renderBlocks.aoLightValueScratchXYZPPN
+ + renderBlocks.aoLightValueScratchXYPP) / 4.0F;
aoTopLeft = (float) (aoMixedXYZPNP * (1.0D - renderBlocks.renderMinY) * renderBlocks.renderMaxZ
+ aoMixedXYZPNN * (1.0D - renderBlocks.renderMinY) * (1.0D - renderBlocks.renderMaxZ)
@@ -697,12 +665,11 @@ public class LightingHelper {
/**
* Sets up lighting for the bottom face and returns the {@link LightingHelper}.
* <p>
- * This is a consolidated <code>method</code> that sets side shading
- * with respect to the following attributes:
+ * This is a consolidated <code>method</code> that sets side shading with respect to the following attributes:
* <p>
* <ul>
- * <li>{@link RenderBlocks#enableAO}</li>
- * <li>{@link RenderBlocks#partialRenderBounds}</li>
+ * <li>{@link RenderBlocks#enableAO}</li>
+ * <li>{@link RenderBlocks#partialRenderBounds}</li>
* </ul>
*
* @param block the block {@link Block}
@@ -723,22 +690,22 @@ public class LightingHelper {
float ratio = (float) (1.0F - renderBlocks.renderMinY);
float aoLightValue = renderBlocks.blockAccess.getBlock(x, y - 1, z).getAmbientOcclusionLightValue();
- renderBlocks.aoBrightnessXYNN =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, x - 1, yOffset, z);
- renderBlocks.aoBrightnessYZNN =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, x, yOffset, z - 1);
- renderBlocks.aoBrightnessYZNP =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, x, yOffset, z + 1);
- renderBlocks.aoBrightnessXYPN =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, x + 1, yOffset, z);
- renderBlocks.aoBrightnessXYZNNN =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, x - 1, yOffset, z - 1);
- renderBlocks.aoBrightnessXYZNNP =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, x - 1, yOffset, z + 1);
- renderBlocks.aoBrightnessXYZPNN =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, x + 1, yOffset, z - 1);
- renderBlocks.aoBrightnessXYZPNP =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, x + 1, yOffset, z + 1);
+ renderBlocks.aoBrightnessXYNN = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, x - 1, yOffset, z);
+ renderBlocks.aoBrightnessYZNN = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, x, yOffset, z - 1);
+ renderBlocks.aoBrightnessYZNP = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, x, yOffset, z + 1);
+ renderBlocks.aoBrightnessXYPN = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, x + 1, yOffset, z);
+ renderBlocks.aoBrightnessXYZNNN = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, x - 1, yOffset, z - 1);
+ renderBlocks.aoBrightnessXYZNNP = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, x - 1, yOffset, z + 1);
+ renderBlocks.aoBrightnessXYZPNN = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, x + 1, yOffset, z - 1);
+ renderBlocks.aoBrightnessXYZPNP = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, x + 1, yOffset, z + 1);
renderBlocks.aoLightValueScratchXYNN = getMixedAo(
renderBlocks.blockAccess.getBlock(x - 1, y - 1, z).getAmbientOcclusionLightValue(),
renderBlocks.blockAccess.getBlock(x - 1, y, z).getAmbientOcclusionLightValue(),
@@ -793,26 +760,18 @@ public class LightingHelper {
renderBlocks.aoBrightnessYZNP,
mixedBrightness);
- float aoMixedXYZPNP = (renderBlocks.aoLightValueScratchYZNP
- + aoLightValue
- + renderBlocks.aoLightValueScratchXYZPNP
- + renderBlocks.aoLightValueScratchXYPN)
- / 4.0F;
- float aoMixedXYZPNN = (aoLightValue
- + renderBlocks.aoLightValueScratchYZNN
- + renderBlocks.aoLightValueScratchXYPN
- + renderBlocks.aoLightValueScratchXYZPNN)
- / 4.0F;
- float aoMixedXYZNNN = (renderBlocks.aoLightValueScratchXYNN
- + renderBlocks.aoLightValueScratchXYZNNN
- + aoLightValue
- + renderBlocks.aoLightValueScratchYZNN)
- / 4.0F;
- float aoMixedXYZNNP = (renderBlocks.aoLightValueScratchXYZNNP
- + renderBlocks.aoLightValueScratchXYNN
- + renderBlocks.aoLightValueScratchYZNP
- + aoLightValue)
- / 4.0F;
+ float aoMixedXYZPNP = (renderBlocks.aoLightValueScratchYZNP + aoLightValue
+ + renderBlocks.aoLightValueScratchXYZPNP
+ + renderBlocks.aoLightValueScratchXYPN) / 4.0F;
+ float aoMixedXYZPNN = (aoLightValue + renderBlocks.aoLightValueScratchYZNN
+ + renderBlocks.aoLightValueScratchXYPN
+ + renderBlocks.aoLightValueScratchXYZPNN) / 4.0F;
+ float aoMixedXYZNNN = (renderBlocks.aoLightValueScratchXYNN + renderBlocks.aoLightValueScratchXYZNNN
+ + aoLightValue
+ + renderBlocks.aoLightValueScratchYZNN) / 4.0F;
+ float aoMixedXYZNNP = (renderBlocks.aoLightValueScratchXYZNNP + renderBlocks.aoLightValueScratchXYNN
+ + renderBlocks.aoLightValueScratchYZNP
+ + aoLightValue) / 4.0F;
aoTopLeft = (float) (aoMixedXYZNNP * renderBlocks.renderMaxZ * (1.0D - renderBlocks.renderMinX)
+ aoMixedXYZPNP * renderBlocks.renderMaxZ * renderBlocks.renderMinX
@@ -875,12 +834,11 @@ public class LightingHelper {
/**
* Sets up lighting for the top face and returns the {@link LightingHelper}.
* <p>
- * This is a consolidated <code>method</code> that sets side shading
- * with respect to the following attributes:
+ * This is a consolidated <code>method</code> that sets side shading with respect to the following attributes:
* <p>
* <ul>
- * <li>{@link RenderBlocks#enableAO}</li>
- * <li>{@link RenderBlocks#partialRenderBounds}</li>
+ * <li>{@link RenderBlocks#enableAO}</li>
+ * <li>{@link RenderBlocks#partialRenderBounds}</li>
* </ul>
*
* @param block the block {@link Block}
@@ -900,22 +858,22 @@ public class LightingHelper {
float aoLightValue = renderBlocks.blockAccess.getBlock(x, y + 1, z).getAmbientOcclusionLightValue();
- renderBlocks.aoBrightnessXYNP =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, x - 1, yOffset, z);
- renderBlocks.aoBrightnessXYPP =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, x + 1, yOffset, z);
- renderBlocks.aoBrightnessYZPN =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, x, yOffset, z - 1);
- renderBlocks.aoBrightnessYZPP =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, x, yOffset, z + 1);
- renderBlocks.aoBrightnessXYZNPN =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, x - 1, yOffset, z - 1);
- renderBlocks.aoBrightnessXYZPPN =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, x + 1, yOffset, z - 1);
- renderBlocks.aoBrightnessXYZNPP =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, x - 1, yOffset, z + 1);
- renderBlocks.aoBrightnessXYZPPP =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, x + 1, yOffset, z + 1);
+ renderBlocks.aoBrightnessXYNP = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, x - 1, yOffset, z);
+ renderBlocks.aoBrightnessXYPP = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, x + 1, yOffset, z);
+ renderBlocks.aoBrightnessYZPN = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, x, yOffset, z - 1);
+ renderBlocks.aoBrightnessYZPP = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, x, yOffset, z + 1);
+ renderBlocks.aoBrightnessXYZNPN = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, x - 1, yOffset, z - 1);
+ renderBlocks.aoBrightnessXYZPPN = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, x + 1, yOffset, z - 1);
+ renderBlocks.aoBrightnessXYZNPP = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, x - 1, yOffset, z + 1);
+ renderBlocks.aoBrightnessXYZPPP = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, x + 1, yOffset, z + 1);
renderBlocks.aoLightValueScratchXYNP = getMixedAo(
renderBlocks.blockAccess.getBlock(x - 1, y + 1, z).getAmbientOcclusionLightValue(),
renderBlocks.blockAccess.getBlock(x - 1, y, z).getAmbientOcclusionLightValue(),
@@ -970,40 +928,32 @@ public class LightingHelper {
renderBlocks.aoBrightnessYZPP,
mixedBrightness);
- float aoMixedXYZPPP = (renderBlocks.aoLightValueScratchYZPP
- + aoLightValue
- + renderBlocks.aoLightValueScratchXYZPPP
- + renderBlocks.aoLightValueScratchXYPP)
- / 4.0F;
- float aoMixedXYZPPN = (aoLightValue
- + renderBlocks.aoLightValueScratchYZPN
- + renderBlocks.aoLightValueScratchXYPP
- + renderBlocks.aoLightValueScratchXYZPPN)
- / 4.0F;
- float aoMixedXYZNPN = (renderBlocks.aoLightValueScratchXYNP
- + renderBlocks.aoLightValueScratchXYZNPN
- + aoLightValue
- + renderBlocks.aoLightValueScratchYZPN)
- / 4.0F;
- float aoMixedXYZNPP = (renderBlocks.aoLightValueScratchXYZNPP
- + renderBlocks.aoLightValueScratchXYNP
- + renderBlocks.aoLightValueScratchYZPP
- + aoLightValue)
- / 4.0F;
-
- aoTopLeft /*SE*/ = (float) (aoMixedXYZNPP * renderBlocks.renderMaxZ * (1.0D - renderBlocks.renderMaxX)
+ float aoMixedXYZPPP = (renderBlocks.aoLightValueScratchYZPP + aoLightValue
+ + renderBlocks.aoLightValueScratchXYZPPP
+ + renderBlocks.aoLightValueScratchXYPP) / 4.0F;
+ float aoMixedXYZPPN = (aoLightValue + renderBlocks.aoLightValueScratchYZPN
+ + renderBlocks.aoLightValueScratchXYPP
+ + renderBlocks.aoLightValueScratchXYZPPN) / 4.0F;
+ float aoMixedXYZNPN = (renderBlocks.aoLightValueScratchXYNP + renderBlocks.aoLightValueScratchXYZNPN
+ + aoLightValue
+ + renderBlocks.aoLightValueScratchYZPN) / 4.0F;
+ float aoMixedXYZNPP = (renderBlocks.aoLightValueScratchXYZNPP + renderBlocks.aoLightValueScratchXYNP
+ + renderBlocks.aoLightValueScratchYZPP
+ + aoLightValue) / 4.0F;
+
+ aoTopLeft /* SE */ = (float) (aoMixedXYZNPP * renderBlocks.renderMaxZ * (1.0D - renderBlocks.renderMaxX)
+ aoMixedXYZPPP * renderBlocks.renderMaxZ * renderBlocks.renderMaxX
+ aoMixedXYZPPN * (1.0D - renderBlocks.renderMaxZ) * renderBlocks.renderMaxX
+ aoMixedXYZNPN * (1.0D - renderBlocks.renderMaxZ) * (1.0D - renderBlocks.renderMaxX));
- aoBottomLeft /*NE*/ = (float) (aoMixedXYZNPP * renderBlocks.renderMinZ * (1.0D - renderBlocks.renderMaxX)
+ aoBottomLeft /* NE */ = (float) (aoMixedXYZNPP * renderBlocks.renderMinZ * (1.0D - renderBlocks.renderMaxX)
+ aoMixedXYZPPP * renderBlocks.renderMinZ * renderBlocks.renderMaxX
+ aoMixedXYZPPN * (1.0D - renderBlocks.renderMinZ) * renderBlocks.renderMaxX
+ aoMixedXYZNPN * (1.0D - renderBlocks.renderMinZ) * (1.0D - renderBlocks.renderMaxX));
- aoBottomRight /*NW*/ = (float) (aoMixedXYZNPP * renderBlocks.renderMinZ * (1.0D - renderBlocks.renderMinX)
+ aoBottomRight /* NW */ = (float) (aoMixedXYZNPP * renderBlocks.renderMinZ * (1.0D - renderBlocks.renderMinX)
+ aoMixedXYZPPP * renderBlocks.renderMinZ * renderBlocks.renderMinX
+ aoMixedXYZPPN * (1.0D - renderBlocks.renderMinZ) * renderBlocks.renderMinX
+ aoMixedXYZNPN * (1.0D - renderBlocks.renderMinZ) * (1.0D - renderBlocks.renderMinX));
- aoTopRight /*SW*/ = (float) (aoMixedXYZNPP * renderBlocks.renderMaxZ * (1.0D - renderBlocks.renderMinX)
+ aoTopRight /* SW */ = (float) (aoMixedXYZNPP * renderBlocks.renderMaxZ * (1.0D - renderBlocks.renderMinX)
+ aoMixedXYZPPP * renderBlocks.renderMaxZ * renderBlocks.renderMinX
+ aoMixedXYZPPN * (1.0D - renderBlocks.renderMaxZ) * renderBlocks.renderMinX
+ aoMixedXYZNPN * (1.0D - renderBlocks.renderMaxZ) * (1.0D - renderBlocks.renderMinX));
@@ -1052,12 +1002,11 @@ public class LightingHelper {
/**
* Sets up lighting for the North face and returns the {@link LightingHelper}.
* <p>
- * This is a consolidated <code>method</code> that sets side shading
- * with respect to the following attributes:
+ * This is a consolidated <code>method</code> that sets side shading with respect to the following attributes:
* <p>
* <ul>
- * <li>{@link RenderBlocks#enableAO}</li>
- * <li>{@link RenderBlocks#partialRenderBounds}</li>
+ * <li>{@link RenderBlocks#enableAO}</li>
+ * <li>{@link RenderBlocks#partialRenderBounds}</li>
* </ul>
*
* @param block the block {@link Block}
@@ -1078,22 +1027,22 @@ public class LightingHelper {
float ratio = (float) (1.0F - renderBlocks.renderMinZ);
float aoLightValue = renderBlocks.blockAccess.getBlock(x, y, z - 1).getAmbientOcclusionLightValue();
- renderBlocks.aoBrightnessXZNN =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, x - 1, y, zOffset);
- renderBlocks.aoBrightnessYZNN =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, x, y - 1, zOffset);
- renderBlocks.aoBrightnessYZPN =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, x, y + 1, zOffset);
- renderBlocks.aoBrightnessXZPN =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, x + 1, y, zOffset);
- renderBlocks.aoBrightnessXYZNNN =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, x - 1, y - 1, zOffset);
- renderBlocks.aoBrightnessXYZNPN =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, x - 1, y + 1, zOffset);
- renderBlocks.aoBrightnessXYZPNN =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, x + 1, y - 1, zOffset);
- renderBlocks.aoBrightnessXYZPPN =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, x + 1, y + 1, zOffset);
+ renderBlocks.aoBrightnessXZNN = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, x - 1, y, zOffset);
+ renderBlocks.aoBrightnessYZNN = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, x, y - 1, zOffset);
+ renderBlocks.aoBrightnessYZPN = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, x, y + 1, zOffset);
+ renderBlocks.aoBrightnessXZPN = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, x + 1, y, zOffset);
+ renderBlocks.aoBrightnessXYZNNN = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, x - 1, y - 1, zOffset);
+ renderBlocks.aoBrightnessXYZNPN = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, x - 1, y + 1, zOffset);
+ renderBlocks.aoBrightnessXYZPNN = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, x + 1, y - 1, zOffset);
+ renderBlocks.aoBrightnessXYZPPN = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, x + 1, y + 1, zOffset);
renderBlocks.aoLightValueScratchXZNN = getMixedAo(
renderBlocks.blockAccess.getBlock(x - 1, y, z - 1).getAmbientOcclusionLightValue(),
renderBlocks.blockAccess.getBlock(x - 1, y, z).getAmbientOcclusionLightValue(),
@@ -1148,26 +1097,18 @@ public class LightingHelper {
renderBlocks.aoBrightnessYZPN,
mixedBrightness);
- float aoMixedXYZPPN = (aoLightValue
- + renderBlocks.aoLightValueScratchYZPN
- + renderBlocks.aoLightValueScratchXZPN
- + renderBlocks.aoLightValueScratchXYZPPN)
- / 4.0F;
- float aoMixedXYZPNN = (renderBlocks.aoLightValueScratchYZNN
- + aoLightValue
- + renderBlocks.aoLightValueScratchXYZPNN
- + renderBlocks.aoLightValueScratchXZPN)
- / 4.0F;
- float aoMixedXYZNNN = (renderBlocks.aoLightValueScratchXYZNNN
- + renderBlocks.aoLightValueScratchXZNN
- + renderBlocks.aoLightValueScratchYZNN
- + aoLightValue)
- / 4.0F;
- float aoMixedXYZNPN = (renderBlocks.aoLightValueScratchXZNN
- + renderBlocks.aoLightValueScratchXYZNPN
- + aoLightValue
- + renderBlocks.aoLightValueScratchYZPN)
- / 4.0F;
+ float aoMixedXYZPPN = (aoLightValue + renderBlocks.aoLightValueScratchYZPN
+ + renderBlocks.aoLightValueScratchXZPN
+ + renderBlocks.aoLightValueScratchXYZPPN) / 4.0F;
+ float aoMixedXYZPNN = (renderBlocks.aoLightValueScratchYZNN + aoLightValue
+ + renderBlocks.aoLightValueScratchXYZPNN
+ + renderBlocks.aoLightValueScratchXZPN) / 4.0F;
+ float aoMixedXYZNNN = (renderBlocks.aoLightValueScratchXYZNNN + renderBlocks.aoLightValueScratchXZNN
+ + renderBlocks.aoLightValueScratchYZNN
+ + aoLightValue) / 4.0F;
+ float aoMixedXYZNPN = (renderBlocks.aoLightValueScratchXZNN + renderBlocks.aoLightValueScratchXYZNPN
+ + aoLightValue
+ + renderBlocks.aoLightValueScratchYZPN) / 4.0F;
aoTopLeft = (float) (aoMixedXYZNPN * renderBlocks.renderMaxY * (1.0D - renderBlocks.renderMinX)
+ aoMixedXYZPPN * renderBlocks.renderMaxY * renderBlocks.renderMinX
@@ -1230,12 +1171,11 @@ public class LightingHelper {
/**
* Sets up lighting for the South face and returns the {@link LightingHelper}.
* <p>
- * This is a consolidated <code>method</code> that sets side shading
- * with respect to the following attributes:
+ * This is a consolidated <code>method</code> that sets side shading with respect to the following attributes:
* <p>
* <ul>
- * <li>{@link RenderBlocks#enableAO}</li>
- * <li>{@link RenderBlocks#partialRenderBounds}</li>
+ * <li>{@link RenderBlocks#enableAO}</li>
+ * <li>{@link RenderBlocks#partialRenderBounds}</li>
* </ul>
*
* @param block the block {@link Block}
@@ -1255,22 +1195,22 @@ public class LightingHelper {
float aoLightValue = renderBlocks.blockAccess.getBlock(x, y, z + 1).getAmbientOcclusionLightValue();
- renderBlocks.aoBrightnessXZNP =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, x - 1, y, zOffset);
- renderBlocks.aoBrightnessXZPP =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, x + 1, y, zOffset);
- renderBlocks.aoBrightnessYZNP =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, x, y - 1, zOffset);
- renderBlocks.aoBrightnessYZPP =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, x, y + 1, zOffset);
- renderBlocks.aoBrightnessXYZNNP =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, x - 1, y - 1, zOffset);
- renderBlocks.aoBrightnessXYZNPP =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, x - 1, y + 1, zOffset);
- renderBlocks.aoBrightnessXYZPNP =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, x + 1, y - 1, zOffset);
- renderBlocks.aoBrightnessXYZPPP =
- block.getMixedBrightnessForBlock(renderBlocks.blockAccess, x + 1, y + 1, zOffset);
+ renderBlocks.aoBrightnessXZNP = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, x - 1, y, zOffset);
+ renderBlocks.aoBrightnessXZPP = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, x + 1, y, zOffset);
+ renderBlocks.aoBrightnessYZNP = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, x, y - 1, zOffset);
+ renderBlocks.aoBrightnessYZPP = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, x, y + 1, zOffset);
+ renderBlocks.aoBrightnessXYZNNP = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, x - 1, y - 1, zOffset);
+ renderBlocks.aoBrightnessXYZNPP = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, x - 1, y + 1, zOffset);
+ renderBlocks.aoBrightnessXYZPNP = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, x + 1, y - 1, zOffset);
+ renderBlocks.aoBrightnessXYZPPP = block
+ .getMixedBrightnessForBlock(renderBlocks.blockAccess, x + 1, y + 1, zOffset);
renderBlocks.aoLightValueScratchXZNP = getMixedAo(
renderBlocks.blockAccess.getBlock(x - 1, y, z + 1).getAmbientOcclusionLightValue(),
renderBlocks.blockAccess.getBlock(x - 1, y, z).getAmbientOcclusionLightValue(),
@@ -1325,26 +1265,18 @@ public class LightingHelper {
renderBlocks.aoBrightnessXYZPPP,
mixedBrightness);
- float aoMixedXYZNPP = (renderBlocks.aoLightValueScratchXZNP
- + renderBlocks.aoLightValueScratchXYZNPP
- + aoLightValue
- + renderBlocks.aoLightValueScratchYZPP)
- / 4.0F;
- float aoMixedXYZNNP = (renderBlocks.aoLightValueScratchXYZNNP
- + renderBlocks.aoLightValueScratchXZNP
- + renderBlocks.aoLightValueScratchYZNP
- + aoLightValue)
- / 4.0F;
- float aoMixedXYZPNP = (renderBlocks.aoLightValueScratchYZNP
- + aoLightValue
- + renderBlocks.aoLightValueScratchXYZPNP
- + renderBlocks.aoLightValueScratchXZPP)
- / 4.0F;
- float aoMixedXYZPPP = (aoLightValue
- + renderBlocks.aoLightValueScratchYZPP
- + renderBlocks.aoLightValueScratchXZPP
- + renderBlocks.aoLightValueScratchXYZPPP)
- / 4.0F;
+ float aoMixedXYZNPP = (renderBlocks.aoLightValueScratchXZNP + renderBlocks.aoLightValueScratchXYZNPP
+ + aoLightValue
+ + renderBlocks.aoLightValueScratchYZPP) / 4.0F;
+ float aoMixedXYZNNP = (renderBlocks.aoLightValueScratchXYZNNP + renderBlocks.aoLightValueScratchXZNP
+ + renderBlocks.aoLightValueScratchYZNP
+ + aoLightValue) / 4.0F;
+ float aoMixedXYZPNP = (renderBlocks.aoLightValueScratchYZNP + aoLightValue
+ + renderBlocks.aoLightValueScratchXYZPNP
+ + renderBlocks.aoLightValueScratchXZPP) / 4.0F;
+ float aoMixedXYZPPP = (aoLightValue + renderBlocks.aoLightValueScratchYZPP
+ + renderBlocks.aoLightValueScratchXZPP
+ + renderBlocks.aoLightValueScratchXYZPPP) / 4.0F;
aoTopLeft = (float) (aoMixedXYZNPP * renderBlocks.renderMaxY * (1.0D - renderBlocks.renderMinX)
+ aoMixedXYZPPP * renderBlocks.renderMaxY * renderBlocks.renderMinX