aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authormiozune <miozune@gmail.com>2023-10-06 01:44:24 +0900
committerGitHub <noreply@github.com>2023-10-05 18:44:24 +0200
commit91a57a990837879d5cb8e8e04ed0c7a6f973618c (patch)
treeeab9dfd871059d4f207eb5d48e3d4fda3ab49158 /src/main
parentb4ccbd63c5d953f0bd53910a474f4511efc38111 (diff)
downloadGT5-Unofficial-91a57a990837879d5cb8e8e04ed0c7a6f973618c.tar.gz
GT5-Unofficial-91a57a990837879d5cb8e8e04ed0c7a6f973618c.tar.bz2
GT5-Unofficial-91a57a990837879d5cb8e8e04ed0c7a6f973618c.zip
Cleanup isValidMetaTileEntity and some more (#245)
* Cleanup isValidMetaTileEntity * Remove empty Javadoc tags * Remove unused classes
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_computer.java42
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_research.java30
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_teslaCoil.java30
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java409
-rw-r--r--src/main/java/com/github/technus/tectech/util/DoubleCount.java126
-rw-r--r--src/main/java/com/github/technus/tectech/util/LightingHelper.java1308
6 files changed, 182 insertions, 1763 deletions
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_computer.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_computer.java
index 46f325988a..37fa0837e3 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_computer.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_computer.java
@@ -14,6 +14,7 @@ import static com.gtnewhorizon.structurelib.structure.StructureUtility.transpose
import static gregtech.api.enums.GT_HatchElement.Energy;
import static gregtech.api.enums.GT_HatchElement.Maintenance;
import static gregtech.api.util.GT_StructureUtility.buildHatchAdder;
+import static gregtech.api.util.GT_Utility.filterValidMTEs;
import static net.minecraft.util.StatCollector.translateToLocal;
import java.util.ArrayList;
@@ -55,7 +56,6 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.MetaTileEntity;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch;
-import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase;
import gregtech.api.recipe.check.CheckRecipeResult;
import gregtech.api.recipe.check.CheckRecipeResultRegistry;
import gregtech.api.recipe.check.SimpleCheckRecipeResult;
@@ -164,10 +164,8 @@ public class GT_MetaTileEntity_EM_computer extends GT_MetaTileEntity_MultiblockB
@Override
public boolean checkMachine_EM(IGregTechTileEntity iGregTechTileEntity, ItemStack itemStack) {
- for (GT_MetaTileEntity_Hatch_Rack rack : eRacks) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(rack)) {
- rack.getBaseMetaTileEntity().setActive(false);
- }
+ for (GT_MetaTileEntity_Hatch_Rack rack : filterValidMTEs(eRacks)) {
+ rack.getBaseMetaTileEntity().setActive(false);
}
eRacks.clear();
if (!structureCheck_EM("front", 1, 2, 0)) {
@@ -194,10 +192,8 @@ public class GT_MetaTileEntity_EM_computer extends GT_MetaTileEntity_MultiblockB
return false;
}
eCertainMode = (byte) Math.min(totalLen / 3, 5);
- for (GT_MetaTileEntity_Hatch_Rack rack : eRacks) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(rack)) {
- rack.getBaseMetaTileEntity().setActive(iGregTechTileEntity.isActive());
- }
+ for (GT_MetaTileEntity_Hatch_Rack rack : filterValidMTEs(eRacks)) {
+ rack.getBaseMetaTileEntity().setActive(iGregTechTileEntity.isActive());
}
return eUncertainHatches.size() == 1;
}
@@ -224,10 +220,7 @@ public class GT_MetaTileEntity_EM_computer extends GT_MetaTileEntity_MultiblockB
&& !aBaseMetaTileEntity.isActive()
&& aTick % 20 == MULTI_CHECK_AT) {
double maxTemp = 0;
- for (GT_MetaTileEntity_Hatch_Rack rack : eRacks) {
- if (!GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(rack)) {
- continue;
- }
+ for (GT_MetaTileEntity_Hatch_Rack rack : filterValidMTEs(eRacks)) {
if (rack.heat > maxTemp) {
maxTemp = rack.heat;
}
@@ -258,10 +251,7 @@ public class GT_MetaTileEntity_EM_computer extends GT_MetaTileEntity_MultiblockB
short thingsActive = 0;
int rackComputation;
- for (GT_MetaTileEntity_Hatch_Rack rack : eRacks) {
- if (!GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(rack)) {
- continue;
- }
+ for (GT_MetaTileEntity_Hatch_Rack rack : filterValidMTEs(eRacks)) {
if (rack.heat > maxTemp) {
maxTemp = rack.heat;
}
@@ -409,10 +399,8 @@ public class GT_MetaTileEntity_EM_computer extends GT_MetaTileEntity_MultiblockB
@Override
public void onRemoval() {
super.onRemoval();
- for (GT_MetaTileEntity_Hatch_Rack rack : eRacks) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(rack)) {
- rack.getBaseMetaTileEntity().setActive(false);
- }
+ for (GT_MetaTileEntity_Hatch_Rack rack : filterValidMTEs(eRacks)) {
+ rack.getBaseMetaTileEntity().setActive(false);
}
}
@@ -432,20 +420,16 @@ public class GT_MetaTileEntity_EM_computer extends GT_MetaTileEntity_MultiblockB
public void stopMachine() {
super.stopMachine();
eAvailableData = 0;
- for (GT_MetaTileEntity_Hatch_Rack rack : eRacks) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(rack)) {
- rack.getBaseMetaTileEntity().setActive(false);
- }
+ for (GT_MetaTileEntity_Hatch_Rack rack : filterValidMTEs(eRacks)) {
+ rack.getBaseMetaTileEntity().setActive(false);
}
}
@Override
protected void afterRecipeCheckFailed() {
super.afterRecipeCheckFailed();
- for (GT_MetaTileEntity_Hatch_Rack rack : eRacks) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(rack)) {
- rack.getBaseMetaTileEntity().setActive(false);
- }
+ for (GT_MetaTileEntity_Hatch_Rack rack : filterValidMTEs(eRacks)) {
+ rack.getBaseMetaTileEntity().setActive(false);
}
}
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_research.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_research.java
index a1fcf44208..b6e5c16292 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_research.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_EM_research.java
@@ -11,6 +11,7 @@ import static com.gtnewhorizon.structurelib.structure.StructureUtility.transpose
import static gregtech.api.enums.GT_HatchElement.Energy;
import static gregtech.api.enums.GT_HatchElement.Maintenance;
import static gregtech.api.util.GT_StructureUtility.buildHatchAdder;
+import static gregtech.api.util.GT_Utility.filterValidMTEs;
import static mcp.mobius.waila.api.SpecialChars.GREEN;
import static mcp.mobius.waila.api.SpecialChars.RED;
import static mcp.mobius.waila.api.SpecialChars.RESET;
@@ -56,7 +57,6 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.MetaTileEntity;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy;
-import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase;
import gregtech.api.recipe.check.CheckRecipeResult;
import gregtech.api.recipe.check.CheckRecipeResultRegistry;
import gregtech.api.recipe.check.SimpleCheckRecipeResult;
@@ -330,10 +330,8 @@ public class GT_MetaTileEntity_EM_research extends GT_MetaTileEntity_MultiblockB
@Override
public boolean checkMachine_EM(IGregTechTileEntity iGregTechTileEntity, ItemStack itemStack) {
- for (GT_MetaTileEntity_Hatch_Holder rack : eHolders) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(rack)) {
- rack.getBaseMetaTileEntity().setActive(false);
- }
+ for (GT_MetaTileEntity_Hatch_Holder rack : filterValidMTEs(eHolders)) {
+ rack.getBaseMetaTileEntity().setActive(false);
}
eHolders.clear();
@@ -341,10 +339,8 @@ public class GT_MetaTileEntity_EM_research extends GT_MetaTileEntity_MultiblockB
return false;
}
- for (GT_MetaTileEntity_Hatch_Holder rack : eHolders) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(rack)) {
- rack.getBaseMetaTileEntity().setActive(iGregTechTileEntity.isActive());
- }
+ for (GT_MetaTileEntity_Hatch_Holder rack : filterValidMTEs(eHolders)) {
+ rack.getBaseMetaTileEntity().setActive(iGregTechTileEntity.isActive());
}
return eHolders.size() == 1;
}
@@ -487,17 +483,13 @@ public class GT_MetaTileEntity_EM_research extends GT_MetaTileEntity_MultiblockB
public String[] getInfoData() {
long storedEnergy = 0;
long maxEnergy = 0;
- for (GT_MetaTileEntity_Hatch_Energy tHatch : mEnergyHatches) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(tHatch)) {
- storedEnergy += tHatch.getBaseMetaTileEntity().getStoredEU();
- maxEnergy += tHatch.getBaseMetaTileEntity().getEUCapacity();
- }
+ for (GT_MetaTileEntity_Hatch_Energy tHatch : filterValidMTEs(mEnergyHatches)) {
+ storedEnergy += tHatch.getBaseMetaTileEntity().getStoredEU();
+ maxEnergy += tHatch.getBaseMetaTileEntity().getEUCapacity();
}
- for (GT_MetaTileEntity_Hatch_EnergyMulti tHatch : eEnergyMulti) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(tHatch)) {
- storedEnergy += tHatch.getBaseMetaTileEntity().getStoredEU();
- maxEnergy += tHatch.getBaseMetaTileEntity().getEUCapacity();
- }
+ for (GT_MetaTileEntity_Hatch_EnergyMulti tHatch : filterValidMTEs(eEnergyMulti)) {
+ storedEnergy += tHatch.getBaseMetaTileEntity().getStoredEU();
+ maxEnergy += tHatch.getBaseMetaTileEntity().getEUCapacity();
}
return new String[] { translateToLocalFormatted("tt.keyphrase.Energy_Hatches", clientLocale) + ":",
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_teslaCoil.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_teslaCoil.java
index 193a958c5d..4ed3520b8a 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_teslaCoil.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/GT_MetaTileEntity_TM_teslaCoil.java
@@ -17,6 +17,7 @@ import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlocksT
import static com.gtnewhorizon.structurelib.structure.StructureUtility.transpose;
import static gregtech.api.enums.GT_HatchElement.*;
import static gregtech.api.util.GT_StructureUtility.buildHatchAdder;
+import static gregtech.api.util.GT_Utility.filterValidMTEs;
import static java.lang.Math.min;
import static net.minecraft.util.StatCollector.translateToLocal;
@@ -90,7 +91,6 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energ
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Maintenance;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output;
-import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase;
import gregtech.api.recipe.check.CheckRecipeResult;
import gregtech.api.recipe.check.SimpleCheckRecipeResult;
import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
@@ -540,20 +540,16 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock
@Override
public boolean checkMachine_EM(IGregTechTileEntity iGregTechTileEntity, ItemStack itemStack) {
- for (GT_MetaTileEntity_Hatch_Capacitor cap : eCapacitorHatches) {
- if (isValidMetaTileEntity(cap)) {
- cap.getBaseMetaTileEntity().setActive(false);
- }
+ for (GT_MetaTileEntity_Hatch_Capacitor cap : filterValidMTEs(eCapacitorHatches)) {
+ cap.getBaseMetaTileEntity().setActive(false);
}
eCapacitorHatches.clear();
mTier = -1;
if (structureCheck_EM("main", 3, 16, 0)) {
- for (GT_MetaTileEntity_Hatch_Capacitor cap : eCapacitorHatches) {
- if (isValidMetaTileEntity(cap)) {
- cap.getBaseMetaTileEntity().setActive(iGregTechTileEntity.isActive());
- }
+ for (GT_MetaTileEntity_Hatch_Capacitor cap : filterValidMTEs(eCapacitorHatches)) {
+ cap.getBaseMetaTileEntity().setActive(iGregTechTileEntity.isActive());
}
// Only recalculate offsets on orientation or rotation change
@@ -600,10 +596,7 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock
mMaxProgresstime = 20;
vTier = -1;
long[] capacitorData;
- for (GT_MetaTileEntity_Hatch_Capacitor cap : eCapacitorHatches) {
- if (!GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(cap)) {
- continue;
- }
+ for (GT_MetaTileEntity_Hatch_Capacitor cap : filterValidMTEs(eCapacitorHatches)) {
if (cap.getCapacitors()[0] > vTier) {
vTier = (int) cap.getCapacitors()[0];
}
@@ -621,10 +614,7 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock
}
outputVoltageMax = V[vTier + 1];
- for (GT_MetaTileEntity_Hatch_Capacitor cap : eCapacitorHatches) {
- if (!GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(cap)) {
- continue;
- }
+ for (GT_MetaTileEntity_Hatch_Capacitor cap : filterValidMTEs(eCapacitorHatches)) {
cap.getBaseMetaTileEntity().setActive(true);
capacitorData = cap.getCapacitors();
if (capacitorData[0] < vTier) {
@@ -701,10 +691,8 @@ public class GT_MetaTileEntity_TM_teslaCoil extends GT_MetaTileEntity_Multiblock
super.onRemoval();
if (!getBaseMetaTileEntity().isClientSide()) {
teslaSimpleNodeSetRemove(this);
- for (GT_MetaTileEntity_Hatch_Capacitor cap : eCapacitorHatches) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(cap)) {
- cap.getBaseMetaTileEntity().setActive(false);
- }
+ for (GT_MetaTileEntity_Hatch_Capacitor cap : filterValidMTEs(eCapacitorHatches)) {
+ cap.getBaseMetaTileEntity().setActive(false);
}
}
}
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java
index 1daee413e6..534b0d6d1a 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java
@@ -7,6 +7,7 @@ import static com.github.technus.tectech.util.CommonValues.*;
import static com.github.technus.tectech.util.TT_Utility.getTier;
import static gregtech.api.enums.GT_HatchElement.*;
import static gregtech.api.metatileentity.BaseTileEntity.TOOLTIP_DELAY;
+import static gregtech.api.util.GT_Utility.filterValidMTEs;
import static java.lang.Math.min;
import java.util.ArrayList;
@@ -315,11 +316,6 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM
// region tooltip and scanner result
- /**
- * @param hatchNo
- * @param paramID
- * @return
- */
public ArrayList<String> getFullLedDescriptionIn(int hatchNo, int paramID) {
ArrayList<String> list = new ArrayList<>();
list.add(
@@ -347,11 +343,6 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM
return list;
}
- /**
- * @param hatchNo
- * @param paramID
- * @return
- */
public ArrayList<String> getFullLedDescriptionOut(int hatchNo, int paramID) {
ArrayList<String> list = new ArrayList<>();
list.add(
@@ -388,24 +379,18 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM
/**
* scanner gives it
- *
- * @return
*/
@Override
public String[] getInfoData() { // TODO Do it
long storedEnergy = 0;
long maxEnergy = 0;
- for (GT_MetaTileEntity_Hatch_Energy tHatch : mEnergyHatches) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(tHatch)) {
- storedEnergy += tHatch.getBaseMetaTileEntity().getStoredEU();
- maxEnergy += tHatch.getBaseMetaTileEntity().getEUCapacity();
- }
+ for (GT_MetaTileEntity_Hatch_Energy tHatch : filterValidMTEs(mEnergyHatches)) {
+ storedEnergy += tHatch.getBaseMetaTileEntity().getStoredEU();
+ maxEnergy += tHatch.getBaseMetaTileEntity().getEUCapacity();
}
- for (GT_MetaTileEntity_Hatch_EnergyMulti tHatch : eEnergyMulti) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(tHatch)) {
- storedEnergy += tHatch.getBaseMetaTileEntity().getStoredEU();
- maxEnergy += tHatch.getBaseMetaTileEntity().getEUCapacity();
- }
+ for (GT_MetaTileEntity_Hatch_EnergyMulti tHatch : filterValidMTEs(eEnergyMulti)) {
+ storedEnergy += tHatch.getBaseMetaTileEntity().getStoredEU();
+ maxEnergy += tHatch.getBaseMetaTileEntity().getEUCapacity();
}
return new String[] { "Progress:",
@@ -469,8 +454,6 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM
/**
* should it work with scanner? HELL YES
- *
- * @return
*/
@Override
public boolean isGivingInformation() {
@@ -483,8 +466,6 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM
/**
* add more textures
- *
- * @param aBlockIconRegister
*/
@Override
@SideOnly(Side.CLIENT)
@@ -496,14 +477,6 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM
/**
* actually use textures
- *
- * @param aBaseMetaTileEntity
- * @param side
- * @param facing
- * @param colorIndex
- * @param aActive
- * @param aRedstone
- * @return
*/
@Override
public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, ForgeDirection side, ForgeDirection facing,
@@ -517,8 +490,6 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM
/**
* should return your activity sound
- *
- * @return
*/
@SideOnly(Side.CLIENT)
protected ResourceLocation getActivitySound() {
@@ -527,8 +498,6 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM
/**
* plays the sounds auto magically
- *
- * @param activitySound
*/
@SideOnly(Side.CLIENT)
protected void soundMagic(ResourceLocation activitySound) {
@@ -550,9 +519,6 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM
/**
* is the thing inside controller a valid item to make the machine work
- *
- * @param itemStack
- * @return
*/
@Override
public boolean isCorrectMachinePart(ItemStack itemStack) {
@@ -561,9 +527,6 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM
/**
* how much damage to apply to thing in controller - not sure how it does it
- *
- * @param itemStack
- * @return
*/
@Override
public int getDamageToComponent(ItemStack itemStack) {
@@ -589,11 +552,9 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM
/**
* prevents spontaneous explosions when the chunks unloading would cause them should cover 3 chunks radius
- *
- * @return
*/
protected boolean areChunksAroundLoaded_EM() {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(this) && getBaseMetaTileEntity().isServerSide()) {
+ if (this.isValid() && getBaseMetaTileEntity().isServerSide()) {
IGregTechTileEntity base = getBaseMetaTileEntity();
return base.getWorld().doChunksNearChunkExist(base.getXCoord(), base.getYCoord(), base.getZCoord(), 3);
// todo check if it is actually checking if chunks are loaded
@@ -736,8 +697,6 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM
/**
* store data
- *
- * @param aNBT
*/
@Override
public void saveNBTData(NBTTagCompound aNBT) {
@@ -814,8 +773,6 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM
/**
* load data
- *
- * @param aNBT
*/
@Override
public void loadNBTData(NBTTagCompound aNBT) {
@@ -942,8 +899,6 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM
/**
* cyclic check even when not working, called LESS frequently
- *
- * @return
*/
private boolean cyclicUpdate() {
if (cyclicUpdate_EM()) {
@@ -955,8 +910,6 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM
/**
* mining level...
- *
- * @return
*/
@Override
public byte getTileEntityBaseType() {
@@ -969,10 +922,6 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM
/**
* internal check machine
- *
- * @param iGregTechTileEntity
- * @param itemStack
- * @return
*/
@Override
public final boolean checkMachine(IGregTechTileEntity iGregTechTileEntity, ItemStack itemStack) {
@@ -981,9 +930,6 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM
/**
* internal check recipe
- *
- * @param itemStack
- * @return
*/
@Override
public final boolean checkRecipe(ItemStack itemStack) { // do recipe checks, based on "machine content and state"
@@ -1013,8 +959,8 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM
}
boolean busy = mMaxProgresstime > 0;
if (busy) { // write from buffer to hatches only
- for (GT_MetaTileEntity_Hatch_Param hatch : eParamHatches) {
- if (!GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(hatch) || hatch.param < 0) {
+ for (GT_MetaTileEntity_Hatch_Param hatch : filterValidMTEs(eParamHatches)) {
+ if (hatch.param < 0) {
continue;
}
int hatchId = hatch.param;
@@ -1026,8 +972,8 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM
hatch.input1D = parametrization.iParamsOut[hatchId + 10];
}
} else { // if has nothing to do update all
- for (GT_MetaTileEntity_Hatch_Param hatch : eParamHatches) {
- if (!GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(hatch) || hatch.param < 0) {
+ for (GT_MetaTileEntity_Hatch_Param hatch : filterValidMTEs(eParamHatches)) {
+ if (hatch.param < 0) {
continue;
}
int hatchId = hatch.param;
@@ -1065,9 +1011,6 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM
/**
* called every tick the machines is active
- *
- * @param aStack
- * @return
*/
@Override
public boolean onRunningTick(ItemStack aStack) {
@@ -1274,38 +1217,36 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM
mSolderingTool = true;
mCrowbar = true;
} else {
- for (GT_MetaTileEntity_Hatch_Maintenance tHatch : mMaintenanceHatches) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(tHatch)) {
- if (tHatch.mAuto
- && !(mWrench && mScrewdriver && mSoftHammer && mHardHammer && mSolderingTool && mCrowbar)) {
- tHatch.autoMaintainance();
- }
- if (tHatch.mWrench) {
- mWrench = true;
- }
- if (tHatch.mScrewdriver) {
- mScrewdriver = true;
- }
- if (tHatch.mSoftHammer) {
- mSoftHammer = true;
- }
- if (tHatch.mHardHammer) {
- mHardHammer = true;
- }
- if (tHatch.mSolderingTool) {
- mSolderingTool = true;
- }
- if (tHatch.mCrowbar) {
- mCrowbar = true;
- }
-
- tHatch.mWrench = false;
- tHatch.mScrewdriver = false;
- tHatch.mSoftHammer = false;
- tHatch.mHardHammer = false;
- tHatch.mSolderingTool = false;
- tHatch.mCrowbar = false;
+ for (GT_MetaTileEntity_Hatch_Maintenance tHatch : filterValidMTEs(mMaintenanceHatches)) {
+ if (tHatch.mAuto
+ && !(mWrench && mScrewdriver && mSoftHammer && mHardHammer && mSolderingTool && mCrowbar)) {
+ tHatch.autoMaintainance();
+ }
+ if (tHatch.mWrench) {
+ mWrench = true;
+ }
+ if (tHatch.mScrewdriver) {
+ mScrewdriver = true;
}
+ if (tHatch.mSoftHammer) {
+ mSoftHammer = true;
+ }
+ if (tHatch.mHardHammer) {
+ mHardHammer = true;
+ }
+ if (tHatch.mSolderingTool) {
+ mSolderingTool = true;
+ }
+ if (tHatch.mCrowbar) {
+ mCrowbar = true;
+ }
+
+ tHatch.mWrench = false;
+ tHatch.mScrewdriver = false;
+ tHatch.mSoftHammer = false;
+ tHatch.mHardHammer = false;
+ tHatch.mSolderingTool = false;
+ tHatch.mCrowbar = false;
}
}
}
@@ -1321,26 +1262,18 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM
mMufflerHatches.clear();
mMaintenanceHatches.clear();
- for (GT_MetaTileEntity_Hatch_DataConnector<?> hatch_data : eOutputData) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(hatch_data)) {
- hatch_data.id = -1;
- }
+ for (GT_MetaTileEntity_Hatch_DataConnector<?> hatch_data : filterValidMTEs(eOutputData)) {
+ hatch_data.id = -1;
}
- for (GT_MetaTileEntity_Hatch_DataConnector<?> hatch_data : eInputData) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(hatch_data)) {
- hatch_data.id = -1;
- }
+ for (GT_MetaTileEntity_Hatch_DataConnector<?> hatch_data : filterValidMTEs(eInputData)) {
+ hatch_data.id = -1;
}
- for (GT_MetaTileEntity_Hatch_Uncertainty hatch : eUncertainHatches) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(hatch)) {
- hatch.getBaseMetaTileEntity().setActive(false);
- }
+ for (GT_MetaTileEntity_Hatch_Uncertainty hatch : filterValidMTEs(eUncertainHatches)) {
+ hatch.getBaseMetaTileEntity().setActive(false);
}
- for (GT_MetaTileEntity_Hatch_Param hatch : eParamHatches) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(hatch)) {
- hatch.getBaseMetaTileEntity().setActive(false);
- }
+ for (GT_MetaTileEntity_Hatch_Param hatch : filterValidMTEs(eParamHatches)) {
+ hatch.getBaseMetaTileEntity().setActive(false);
}
eUncertainHatches.clear();
@@ -1354,27 +1287,19 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM
protected void setupHatches_EM() {
short id = 1;
- for (GT_MetaTileEntity_Hatch_DataConnector<?> hatch_data : eOutputData) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(hatch_data)) {
- hatch_data.id = id++;
- }
+ for (GT_MetaTileEntity_Hatch_DataConnector<?> hatch_data : filterValidMTEs(eOutputData)) {
+ hatch_data.id = id++;
}
id = 1;
- for (GT_MetaTileEntity_Hatch_DataConnector<?> hatch_data : eInputData) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(hatch_data)) {
- hatch_data.id = id++;
- }
+ for (GT_MetaTileEntity_Hatch_DataConnector<?> hatch_data : filterValidMTEs(eInputData)) {
+ hatch_data.id = id++;
}
- for (GT_MetaTileEntity_Hatch_Uncertainty hatch : eUncertainHatches) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(hatch)) {
- hatch.getBaseMetaTileEntity().setActive(true);
- }
+ for (GT_MetaTileEntity_Hatch_Uncertainty hatch : filterValidMTEs(eUncertainHatches)) {
+ hatch.getBaseMetaTileEntity().setActive(true);
}
- for (GT_MetaTileEntity_Hatch_Param hatch : eParamHatches) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(hatch)) {
- hatch.getBaseMetaTileEntity().setActive(true);
- }
+ for (GT_MetaTileEntity_Hatch_Param hatch : filterValidMTEs(eParamHatches)) {
+ hatch.getBaseMetaTileEntity().setActive(true);
}
}
@@ -1386,68 +1311,52 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM
maxEUinputMax = V[0];
maxEUoutputMin = V[15];
maxEUoutputMax = V[0];
- for (GT_MetaTileEntity_Hatch_Energy hatch : mEnergyHatches) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(hatch)) {
- if (hatch.maxEUInput() < maxEUinputMin) {
- maxEUinputMin = hatch.maxEUInput();
- }
- if (hatch.maxEUInput() > maxEUinputMax) {
- maxEUinputMax = hatch.maxEUInput();
- }
+ for (GT_MetaTileEntity_Hatch_Energy hatch : filterValidMTEs(mEnergyHatches)) {
+ if (hatch.maxEUInput() < maxEUinputMin) {
+ maxEUinputMin = hatch.maxEUInput();
+ }
+ if (hatch.maxEUInput() > maxEUinputMax) {
+ maxEUinputMax = hatch.maxEUInput();
}
}
- for (GT_MetaTileEntity_Hatch_EnergyMulti hatch : eEnergyMulti) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(hatch)) {
- if (hatch.maxEUInput() < maxEUinputMin) {
- maxEUinputMin = hatch.maxEUInput();
- }
- if (hatch.maxEUInput() > maxEUinputMax) {
- maxEUinputMax = hatch.maxEUInput();
- }
+ for (GT_MetaTileEntity_Hatch_EnergyMulti hatch : filterValidMTEs(eEnergyMulti)) {
+ if (hatch.maxEUInput() < maxEUinputMin) {
+ maxEUinputMin = hatch.maxEUInput();
+ }
+ if (hatch.maxEUInput() > maxEUinputMax) {
+ maxEUinputMax = hatch.maxEUInput();
}
}
- for (GT_MetaTileEntity_Hatch_Dynamo hatch : mDynamoHatches) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(hatch)) {
- if (hatch.maxEUOutput() < maxEUoutputMin) {
- maxEUoutputMin = hatch.maxEUOutput();
- }
- if (hatch.maxEUOutput() > maxEUoutputMax) {
- maxEUoutputMax = hatch.maxEUOutput();
- }
+ for (GT_MetaTileEntity_Hatch_Dynamo hatch : filterValidMTEs(mDynamoHatches)) {
+ if (hatch.maxEUOutput() < maxEUoutputMin) {
+ maxEUoutputMin = hatch.maxEUOutput();
+ }
+ if (hatch.maxEUOutput() > maxEUoutputMax) {
+ maxEUoutputMax = hatch.maxEUOutput();
}
}
- for (GT_MetaTileEntity_Hatch_DynamoMulti hatch : eDynamoMulti) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(hatch)) {
- if (hatch.maxEUOutput() < maxEUoutputMin) {
- maxEUoutputMin = hatch.maxEUOutput();
- }
- if (hatch.maxEUOutput() > maxEUoutputMax) {
- maxEUoutputMax = hatch.maxEUOutput();
- }
+ for (GT_MetaTileEntity_Hatch_DynamoMulti hatch : filterValidMTEs(eDynamoMulti)) {
+ if (hatch.maxEUOutput() < maxEUoutputMin) {
+ maxEUoutputMin = hatch.maxEUOutput();
+ }
+ if (hatch.maxEUOutput() > maxEUoutputMax) {
+ maxEUoutputMax = hatch.maxEUOutput();
}
}
eMaxAmpereFlow = 0;
eMaxAmpereGen = 0;
// counts only full amps
- for (GT_MetaTileEntity_Hatch_Energy hatch : mEnergyHatches) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(hatch)) {
- eMaxAmpereFlow += hatch.maxEUInput() / maxEUinputMin;
- }
+ for (GT_MetaTileEntity_Hatch_Energy hatch : filterValidMTEs(mEnergyHatches)) {
+ eMaxAmpereFlow += hatch.maxEUInput() / maxEUinputMin;
}
- for (GT_MetaTileEntity_Hatch_EnergyMulti hatch : eEnergyMulti) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(hatch)) {
- eMaxAmpereFlow += hatch.maxEUInput() / maxEUinputMin * hatch.Amperes;
- }
+ for (GT_MetaTileEntity_Hatch_EnergyMulti hatch : filterValidMTEs(eEnergyMulti)) {
+ eMaxAmpereFlow += hatch.maxEUInput() / maxEUinputMin * hatch.Amperes;
}
- for (GT_MetaTileEntity_Hatch_Dynamo hatch : mDynamoHatches) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(hatch)) {
- eMaxAmpereGen += hatch.maxEUOutput() / maxEUoutputMin;
- }
+ for (GT_MetaTileEntity_Hatch_Dynamo hatch : filterValidMTEs(mDynamoHatches)) {
+ eMaxAmpereGen += hatch.maxEUOutput() / maxEUoutputMin;
}
- for (GT_MetaTileEntity_Hatch_DynamoMulti hatch : eDynamoMulti) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(hatch)) {
- eMaxAmpereGen += hatch.maxEUOutput() / maxEUoutputMin * hatch.Amperes;
- }
+ for (GT_MetaTileEntity_Hatch_DynamoMulti hatch : filterValidMTEs(eDynamoMulti)) {
+ eMaxAmpereGen += hatch.maxEUOutput() / maxEUoutputMin * hatch.Amperes;
}
} else {
maxEUinputMin = 0;
@@ -1467,44 +1376,36 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM
protected final void powerPass(IGregTechTileEntity aBaseMetaTileEntity) {
long euVar;
- for (GT_MetaTileEntity_Hatch_Dynamo tHatch : mDynamoHatches) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(tHatch)) {
- euVar = tHatch.maxEUOutput() * tHatch.maxAmperesOut();
- if (tHatch.getBaseMetaTileEntity().getStoredEU() <= tHatch.maxEUStore() - euVar && aBaseMetaTileEntity
- .decreaseStoredEnergyUnits(euVar + Math.max(euVar / 24576, tHatch.maxAmperesOut()), false)) {
- tHatch.setEUVar(tHatch.getBaseMetaTileEntity().getStoredEU() + euVar);
- }
+ for (GT_MetaTileEntity_Hatch_Dynamo tHatch : filterValidMTEs(mDynamoHatches)) {
+ euVar = tHatch.maxEUOutput() * tHatch.maxAmperesOut();
+ if (tHatch.getBaseMetaTileEntity().getStoredEU() <= tHatch.maxEUStore() - euVar && aBaseMetaTileEntity
+ .decreaseStoredEnergyUnits(euVar + Math.max(euVar / 24576, tHatch.maxAmperesOut()), false)) {
+ tHatch.setEUVar(tHatch.getBaseMetaTileEntity().getStoredEU() + euVar);
}
}
- for (GT_MetaTileEntity_Hatch_DynamoMulti tHatch : eDynamoMulti) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(tHatch)) {
- euVar = tHatch.maxEUOutput() * tHatch.maxAmperesOut();
- if (tHatch.getBaseMetaTileEntity().getStoredEU() <= tHatch.maxEUStore() - euVar && aBaseMetaTileEntity
- .decreaseStoredEnergyUnits(euVar + Math.max(euVar / 24576, tHatch.maxAmperesOut()), false)) {
- tHatch.setEUVar(tHatch.getBaseMetaTileEntity().getStoredEU() + euVar);
- }
+ for (GT_MetaTileEntity_Hatch_DynamoMulti tHatch : filterValidMTEs(eDynamoMulti)) {
+ euVar = tHatch.maxEUOutput() * tHatch.maxAmperesOut();
+ if (tHatch.getBaseMetaTileEntity().getStoredEU() <= tHatch.maxEUStore() - euVar && aBaseMetaTileEntity
+ .decreaseStoredEnergyUnits(euVar + Math.max(euVar / 24576, tHatch.maxAmperesOut()), false)) {
+ tHatch.setEUVar(tHatch.getBaseMetaTileEntity().getStoredEU() + euVar);
}
}
}
protected final void powerPass_EM(IGregTechTileEntity aBaseMetaTileEntity) {
long euVar;
- for (GT_MetaTileEntity_Hatch_Dynamo tHatch : mDynamoHatches) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(tHatch)) {
- euVar = tHatch.maxEUOutput();
- if (tHatch.getBaseMetaTileEntity().getStoredEU() <= tHatch.maxEUStore() - euVar
- && aBaseMetaTileEntity.decreaseStoredEnergyUnits(euVar + Math.max(euVar / 24576, 1), false)) {
- tHatch.setEUVar(tHatch.getBaseMetaTileEntity().getStoredEU() + euVar);
- }
+ for (GT_MetaTileEntity_Hatch_Dynamo tHatch : filterValidMTEs(mDynamoHatches)) {
+ euVar = tHatch.maxEUOutput();
+ if (tHatch.getBaseMetaTileEntity().getStoredEU() <= tHatch.maxEUStore() - euVar
+ && aBaseMetaTileEntity.decreaseStoredEnergyUnits(euVar + Math.max(euVar / 24576, 1), false)) {
+ tHatch.setEUVar(tHatch.getBaseMetaTileEntity().getStoredEU() + euVar);
}
}
- for (GT_MetaTileEntity_Hatch_DynamoMulti tHatch : eDynamoMulti) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(tHatch)) {
- euVar = tHatch.maxEUOutput() * tHatch.Amperes;
- if (tHatch.getBaseMetaTileEntity().getStoredEU() <= tHatch.maxEUStore() - euVar && aBaseMetaTileEntity
- .decreaseStoredEnergyUnits(euVar + Math.max(euVar / 24576, tHatch.Amperes), false)) {
- tHatch.setEUVar(tHatch.getBaseMetaTileEntity().getStoredEU() + euVar);
- }
+ for (GT_MetaTileEntity_Hatch_DynamoMulti tHatch : filterValidMTEs(eDynamoMulti)) {
+ euVar = tHatch.maxEUOutput() * tHatch.Amperes;
+ if (tHatch.getBaseMetaTileEntity().getStoredEU() <= tHatch.maxEUStore() - euVar && aBaseMetaTileEntity
+ .decreaseStoredEnergyUnits(euVar + Math.max(euVar / 24576, tHatch.Amperes), false)) {
+ tHatch.setEUVar(tHatch.getBaseMetaTileEntity().getStoredEU() + euVar);
}
}
}
@@ -1515,52 +1416,44 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM
protected final void powerInput() {
long euVar;
- for (GT_MetaTileEntity_Hatch_Energy tHatch : mEnergyHatches) {
+ for (GT_MetaTileEntity_Hatch_Energy tHatch : filterValidMTEs(mEnergyHatches)) {
if (getEUVar() > getMinimumStoredEU()) {
break;
}
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(tHatch)) {
- euVar = Math.min(tHatch.maxEUInput() * tHatch.maxAmperesIn(), tHatch.getEUVar());
- if (tHatch.getBaseMetaTileEntity().decreaseStoredEnergyUnits(euVar, false)) {
- setEUVar(getEUVar() + euVar);
- }
+ euVar = Math.min(tHatch.maxEUInput() * tHatch.maxAmperesIn(), tHatch.getEUVar());
+ if (tHatch.getBaseMetaTileEntity().decreaseStoredEnergyUnits(euVar, false)) {
+ setEUVar(getEUVar() + euVar);
}
}
- for (GT_MetaTileEntity_Hatch_EnergyMulti tHatch : eEnergyMulti) {
+ for (GT_MetaTileEntity_Hatch_EnergyMulti tHatch : filterValidMTEs(eEnergyMulti)) {
if (getEUVar() > getMinimumStoredEU()) {
break;
}
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(tHatch)) {
- euVar = Math.min(tHatch.maxEUInput() * tHatch.maxAmperesIn(), tHatch.getEUVar());
- if (tHatch.getBaseMetaTileEntity().decreaseStoredEnergyUnits(euVar, false)) {
- setEUVar(getEUVar() + euVar);
- }
+ euVar = Math.min(tHatch.maxEUInput() * tHatch.maxAmperesIn(), tHatch.getEUVar());
+ if (tHatch.getBaseMetaTileEntity().decreaseStoredEnergyUnits(euVar, false)) {
+ setEUVar(getEUVar() + euVar);
}
}
}
protected final void powerInput_EM() {
long euVar;
- for (GT_MetaTileEntity_Hatch_Energy tHatch : mEnergyHatches) {
+ for (GT_MetaTileEntity_Hatch_Energy tHatch : filterValidMTEs(mEnergyHatches)) {
if (getEUVar() > getMinimumStoredEU()) {
break;
}
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(tHatch)) {
- euVar = tHatch.maxEUInput();
- if (tHatch.getBaseMetaTileEntity().decreaseStoredEnergyUnits(euVar, false)) {
- setEUVar(getEUVar() + euVar);
- }
+ euVar = tHatch.maxEUInput();
+ if (tHatch.getBaseMetaTileEntity().decreaseStoredEnergyUnits(euVar, false)) {
+ setEUVar(getEUVar() + euVar);
}
}
- for (GT_MetaTileEntity_Hatch_EnergyMulti tHatch : eEnergyMulti) {
+ for (GT_MetaTileEntity_Hatch_EnergyMulti tHatch : filterValidMTEs(eEnergyMulti)) {
if (getEUVar() > getMinimumStoredEU()) {
break;
}
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(tHatch)) {
- euVar = tHatch.maxEUInput() * tHatch.Amperes;
- if (tHatch.getBaseMetaTileEntity().decreaseStoredEnergyUnits(euVar, false)) {
- setEUVar(getEUVar() + euVar);
- }
+ euVar = tHatch.maxEUInput() * tHatch.Amperes;
+ if (tHatch.getBaseMetaTileEntity().decreaseStoredEnergyUnits(euVar, false)) {
+ setEUVar(getEUVar() + euVar);
}
}
}
@@ -1661,37 +1554,33 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM
}
long euVar = EU * Amperes;
long diff;
- for (GT_MetaTileEntity_Hatch_Dynamo tHatch : mDynamoHatches) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(tHatch)) {
- if (tHatch.maxEUOutput() < EU) {
- explodeMultiblock();
- }
- diff = tHatch.maxEUStore() - tHatch.getBaseMetaTileEntity().getStoredEU();
- if (diff > 0) {
- if (euVar > diff) {
- tHatch.setEUVar(tHatch.maxEUStore());
- euVar -= diff;
- } else if (euVar <= diff) {
- tHatch.setEUVar(tHatch.getBaseMetaTileEntity().getStoredEU() + euVar);
- return true;
- }
+ for (GT_MetaTileEntity_Hatch_Dynamo tHatch : filterValidMTEs(mDynamoHatches)) {
+ if (tHatch.maxEUOutput() < EU) {
+ explodeMultiblock();
+ }
+ diff = tHatch.maxEUStore() - tHatch.getBaseMetaTileEntity().getStoredEU();
+ if (diff > 0) {
+ if (euVar > diff) {
+ tHatch.setEUVar(tHatch.maxEUStore());
+ euVar -= diff;
+ } else if (euVar <= diff) {
+ tHatch.setEUVar(tHatch.getBaseMetaTileEntity().getStoredEU() + euVar);
+ return true;
}
}
}
- for (GT_MetaTileEntity_Hatch_DynamoMulti tHatch : eDynamoMulti) {
- if (GT_MetaTileEntity_MultiBlockBase.isValidMetaTileEntity(tHatch)) {
- if (tHatch.maxEUOutput() < EU) {
- explodeMultiblock();
- }
- diff = tHatch.maxEUStore() - tHatch.getBaseMetaTileEntity().getStoredEU();
- if (diff > 0) {
- if (euVar > diff) {
- tHatch.setEUVar(tHatch.maxEUStore());
- euVar -= diff;
- } else if (euVar <= diff) {
- tHatch.setEUVar(tHatch.getBaseMetaTileEntity().getStoredEU() + euVar);
- return true;
- }
+ for (GT_MetaTileEntity_Hatch_DynamoMulti tHatch : filterValidMTEs(eDynamoMulti)) {
+ if (tHatch.maxEUOutput() < EU) {
+ explodeMultiblock();
+ }
+ diff = tHatch.maxEUStore() - tHatch.getBaseMetaTileEntity().getStoredEU();
+ if (diff > 0) {
+ if (euVar > diff) {
+ tHatch.setEUVar(tHatch.maxEUStore());
+ euVar -= diff;
+ } else if (euVar <= diff) {
+ tHatch.setEUVar(tHatch.getBaseMetaTileEntity().getStoredEU() + euVar);
+ return true;
}
}
}
diff --git a/src/main/java/com/github/technus/tectech/util/DoubleCount.java b/src/main/java/com/github/technus/tectech/util/DoubleCount.java
deleted file mode 100644
index 25fa086d76..0000000000
--- a/src/main/java/com/github/technus/tectech/util/DoubleCount.java
+++ /dev/null
@@ -1,126 +0,0 @@
-package com.github.technus.tectech.util;
-
-import static java.lang.Math.abs;
-import static java.lang.Math.ulp;
-
-import java.util.Arrays;
-
-public class DoubleCount {
-
- /**
- * Distributes count across probabilities
- *
- * @param count the count to divide
- * @param probabilities probability ratios to divide by, descending
- * @return divided count
- * @throws ArithmeticException
- */
- public static double[] distribute(double count, double... probabilities) throws ArithmeticException {
- if (probabilities == null || Double.isNaN(count)) {
- return null;
- } else if (count == 0) {
- return new double[probabilities.length];
- } else if (Double.isInfinite(count)) {
- double[] doubles = new double[probabilities.length];
- Arrays.fill(doubles, count);
- return doubles;
- } else {
- switch (probabilities.length) {
- default: {
- int size = probabilities.length;
- double[] output = new double[size];
- size--;
- double remaining = count, previous = probabilities[size], probability, out;
- for (int i = size - 1; i >= 0; i--) {
- probability = probabilities[i];
- out = count * probability;
- out -= ulpSigned(out);
-
- remaining -= out;
- output[i] = out;
-
- if (previous < probability) {
- throw new ArithmeticException(
- "Malformed probability order: " + Arrays.toString(probabilities));
- }
- previous = probability;
- if (probability >= 1) {
- break;
- }
- }
- if (remaining * count < 0) { // overshoot
- finishIt(size, output, remaining);
- } else {
- output[size] = remaining;
- }
- return output;
- }
- case 1:
- return new double[] { count };
- case 0:
- return probabilities; // empty array at hand...
- }
- }
- }
-
- public static double ulpSigned(double number) {
- if (number == 0) {
- return 0;
- }
- return number > 0 ? ulp(number) : -ulp(number);
- }
-
- private static void finishIt(int size, double[] output, double remaining) {
- for (int i = size - 1; i >= 0; i--) {
- if (abs(output[i]) >= abs(remaining)) {
- output[i] -= remaining;
- break;
- } else {
- remaining += output[i];
- output[i] = 0;
- }
- }
- }
-
- public static double div(double count, double divisor) {
- if (count == 0 || abs(divisor) == 1 || abs(count) == abs(divisor)) {
- return count / divisor;
- } else {
- double result = count / divisor;
- return result - ulpSigned(result);
- }
- }
-
- public static double mul(double count, double multiplier) {
- if (count == 0 || multiplier == 0 || abs(multiplier) == 1 || abs(count) == 1) {
- return count * multiplier;
- } else {
- double result = count * multiplier;
- return result - ulpSigned(result);
- }
- }
-
- public static double sub(double count, double value) {
- if (count == 0 || value == 0 || count == value) {
- return count - value;
- } else {
- double result = count - value;
- if (result == count || result == value) {
- return result;
- }
- return result - ulpSigned(result);
- }
- }
-
- public static double add(double count, double value) {
- if (count == 0 || value == 0 || count == -value) {
- return count + value;
- } else {
- double result = count + value;
- if (result == count || result == value) {
- return result;
- }
- return result - ulpSigned(result);
- }
- }
-}
diff --git a/src/main/java/com/github/technus/tectech/util/LightingHelper.java b/src/main/java/com/github/technus/tectech/util/LightingHelper.java
deleted file mode 100644
index a3ac23d73e..0000000000
--- a/src/main/java/com/github/technus/tectech/util/LightingHelper.java
+++ /dev/null
@@ -1,1308 +0,0 @@
-/*
- * 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 com.github.technus.tectech.util;
-
-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;
-
-// This is duplicated in newer GT5u on the GTNH Branch inside the gregtech.api.util package
-// But I include it here as the easiest way to implement backwards compat with non-NH stuff
-// Yes, it could be done in a cleaner way. If you would like to, you're welcome to make your own PR and @basdxz
-@SuppressWarnings("unused")
-@SideOnly(Side.CLIENT)
-public class LightingHelper {
-
- public static final int NORMAL_BRIGHTNESS = 0xff00ff;
- public static final int MAX_BRIGHTNESS = 0xf000f0;
- protected static final float[] LIGHTNESS = { 0.5F, 1.0F, 0.8F, 0.8F, 0.6F, 0.6F };
- private final RenderBlocks renderBlocks;
- /**
- * Brightness for side.
- */
- private int brightness;
- /**
- * Ambient occlusion values for all four corners of side.
- */
- private float aoTopLeft, aoBottomLeft, aoBottomRight, aoTopRight;
-
- private boolean hasLightnessOverride;
- private float lightnessOverride;
- private boolean hasBrightnessOverride;
- private int brightnessOverride;
- private boolean hasColorOverride;
- private int colorOverride = 0xffffff;
-
- /**
- * Class constructor specifying the {@link RenderBlocks}.
- *
- * @param renderBlocks the {@link RenderBlocks}
- */
- public LightingHelper(RenderBlocks renderBlocks) {
- this.renderBlocks = renderBlocks;
- }
-
- /**
- * Gets average brightness from two brightness values.
- *
- * @param brightnessA the first brightness value
- * @param brightnessB the second brightness value
- * @return the mixed brightness
- */
- public static int getAverageBrightness(int brightnessA, int brightnessB) {
- int sectionA1 = brightnessA >> 16 & 0xff;
- int sectionA2 = brightnessA & 255;
-
- int sectionB1 = brightnessB >> 16 & 0xff;
- int sectionB2 = brightnessB & 255;
-
- int difference1 = (int) ((sectionA1 + sectionB1) / 2.0F);
- int difference2 = (int) ((sectionA2 + sectionB2) / 2.0F);
-
- return difference1 << 16 | difference2;
- }
-
- /**
- * Gets rgb color from RGBA array.
- *
- * @param color the integer color
- * @return a float array with rgb values
- */
- public static float[] getRGB(short[] color) {
- float red = color[0] / 255.0F;
- float green = color[1] / 255.0F;
- float blue = color[2] / 255.0F;
-
- return new float[] { red, green, blue };
- }
-
- /**
- * Clears brightness override.
- */
- public void clearBrightnessOverride() {
- hasBrightnessOverride = false;
- }
-
- /**
- * Clears color override.
- */
- public void clearColorOverride() {
- hasColorOverride = false;
- }
-
- /**
- * Clears lightness override.
- */
- public void clearLightnessOverride() {
- hasLightnessOverride = false;
- }
-
- /**
- * @return the Ambient Occlusion for Bottom-Left corner
- */
- public float getAoBottomLeft() {
- return aoBottomLeft;
- }
-
- /**
- * @return the Ambient Occlusion for Bottom-Right corner
- */
- public float getAoBottomRight() {
- return aoBottomRight;
- }
-
- /**
- * @return the Ambient Occlusion for Top-Left corner
- */
- public float getAoTopLeft() {
- return aoTopLeft;
- }
-
- /**
- * @return the Ambient Occlusion for Top-Right corner
- */
- public float getAoTopRight() {
- return aoTopRight;
- }
-
- /**
- * Sets brightness override.
- *
- * @param brightness the brightness override
- * @return the {@link LightingHelper}
- */
- public LightingHelper setBrightnessOverride(int brightness) {
- hasBrightnessOverride = true;
- brightnessOverride = brightness;
- return this;
- }
-
- public LightingHelper setColorOverride(short[] color) {
- return setColorOverride(getColor(color));
- }
-
- /**
- * Sets color override.
- *
- * @param color the color override
- * @return the {@link LightingHelper}
- */
- public LightingHelper setColorOverride(int color) {
- hasColorOverride = true;
- colorOverride = color;
- return this;
- }
-
- /**
- * Gets int color from RGBA array.
- *
- * @param rgba the short RGBA color array
- * @return int color
- */
- public static int getColor(short[] rgba) {
- return (rgba[2] & 0xff) | (rgba[1] & 0xff) << 8 | (rgba[0] & 0xff) << 16;
- }
-
- /**
- * Sets lightness override.
- *
- * @param lightness the lightness override
- * @return the {@link LightingHelper}
- */
- public LightingHelper setLightnessOverride(float lightness) {
- hasLightnessOverride = true;
- lightnessOverride = lightness;
- return this;
- }
-
- /**
- * 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
- */
- public void setupColor(int side, short[] rgba) {
- setupColor(side, getColor(rgba));
- }
-
- /**
- * 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
- */
- public void setupColor(int side, int hexColor) {
- Tessellator tessellator = Tessellator.instance;
- float lightness = hasLightnessOverride ? lightnessOverride : LIGHTNESS[side];
- float[] rgb = getRGB(hexColor);
-
- if (hasColorOverride && !renderBlocks.hasOverrideBlockTexture()) {
- rgb = getRGB(colorOverride);
- }
-
- applyAnaglyph(rgb);
-
- if (renderBlocks.enableAO) {
- tessellator.setBrightness(hasBrightnessOverride ? brightnessOverride : brightness);
-
- 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];
-
- } 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 *= aoTopLeft;
- renderBlocks.colorGreenTopLeft *= aoTopLeft;
- renderBlocks.colorBlueTopLeft *= aoTopLeft;
- renderBlocks.colorRedBottomLeft *= aoBottomLeft;
- renderBlocks.colorGreenBottomLeft *= aoBottomLeft;
- renderBlocks.colorBlueBottomLeft *= aoBottomLeft;
- renderBlocks.colorRedBottomRight *= aoBottomRight;
- renderBlocks.colorGreenBottomRight *= aoBottomRight;
- renderBlocks.colorBlueBottomRight *= aoBottomRight;
- renderBlocks.colorRedTopRight *= aoTopRight;
- renderBlocks.colorGreenTopRight *= aoTopRight;
- renderBlocks.colorBlueTopRight *= aoTopRight;
- }
-
- } else {
-
- tessellator.setColorOpaque_F(rgb[0] * lightness, rgb[1] * lightness, rgb[2] * lightness);
- }
- }
-
- /**
- * Gets rgb color from integer.
- *
- * @param color the integer color
- * @return a float array with rgb values
- */
- public static float[] getRGB(int color) {
- float red = (color >> 16 & 0xff) / 255.0F;
- float green = (color >> 8 & 0xff) / 255.0F;
- float blue = (color & 0xff) / 255.0F;
-
- 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.
- *
- * @param rgb array containing red, green and blue float values
- */
- public void applyAnaglyph(float[] rgb) {
- if (EntityRenderer.anaglyphEnable) {
- rgb[0] = (rgb[0] * 30.0F + rgb[1] * 59.0F + rgb[2] * 11.0F) / 100.0F;
- rgb[1] = (rgb[0] * 30.0F + rgb[1] * 70.0F) / 100.0F;
- rgb[2] = (rgb[0] * 30.0F + rgb[2] * 70.0F) / 100.0F;
- }
- }
-
- /**
- * 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
- * @param ratio the ratio for mixing
- * @return the mixed red, green, blue float values
- */
- public static float getMixedAo(float ao1, float ao2, double ratio) {
- float diff = (float) (Math.abs(ao1 - ao2) * (1.0F - ratio));
-
- return ao1 > ao2 ? ao1 - diff : ao1 + diff;
- }
-
- /**
- * 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:
- * <p>
- * <ul>
- * <li>{@link RenderBlocks#enableAO}</li>
- * <li>{@link RenderBlocks#partialRenderBounds}</li>
- * </ul>
- *
- * @param block the block {@link Block}
- * @param x the x coordinate
- * @param y the y coordinate
- * @param z the z coordinate
- * @return the {@link LightingHelper}
- */
- public LightingHelper setupLightingXNeg(Block block, int x, int y, int z) {
-
- if (renderBlocks.enableAO) {
-
- int xOffset = renderBlocks.renderMinX > 0.0F ? x : x - 1;
-
- int mixedBrightness = block.getMixedBrightnessForBlock(renderBlocks.blockAccess, xOffset, y, z);
- brightness = mixedBrightness;
-
- 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.aoLightValueScratchXYNN = getMixedAo(
- renderBlocks.blockAccess.getBlock(x - 1, y - 1, z).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x, y - 1, z).getAmbientOcclusionLightValue(),
- ratio);
- renderBlocks.aoLightValueScratchXZNN = getMixedAo(
- renderBlocks.blockAccess.getBlock(x - 1, y, z - 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x, y, z - 1).getAmbientOcclusionLightValue(),
- ratio);
- renderBlocks.aoLightValueScratchXZNP = getMixedAo(
- renderBlocks.blockAccess.getBlock(x - 1, y, z + 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x, y, z + 1).getAmbientOcclusionLightValue(),
- ratio);
- renderBlocks.aoLightValueScratchXYNP = getMixedAo(
- renderBlocks.blockAccess.getBlock(x - 1, y + 1, z).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x, y + 1, z).getAmbientOcclusionLightValue(),
- ratio);
- renderBlocks.aoLightValueScratchXYZNNN = getMixedAo(
- renderBlocks.blockAccess.getBlock(x - 1, y - 1, z - 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x, y - 1, z - 1).getAmbientOcclusionLightValue(),
- ratio);
- renderBlocks.aoLightValueScratchXYZNNP = getMixedAo(
- renderBlocks.blockAccess.getBlock(x - 1, y - 1, z + 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x, y - 1, z + 1).getAmbientOcclusionLightValue(),
- ratio);
- renderBlocks.aoLightValueScratchXYZNPN = getMixedAo(
- renderBlocks.blockAccess.getBlock(x - 1, y + 1, z - 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x, y + 1, z - 1).getAmbientOcclusionLightValue(),
- ratio);
- renderBlocks.aoLightValueScratchXYZNPP = getMixedAo(
- renderBlocks.blockAccess.getBlock(x - 1, y + 1, z + 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x, y + 1, z + 1).getAmbientOcclusionLightValue(),
- ratio);
-
- int brightnessMixedXYZNPN = renderBlocks.getAoBrightness(
- renderBlocks.aoBrightnessXZNN,
- renderBlocks.aoBrightnessXYZNPN,
- renderBlocks.aoBrightnessXYNP,
- mixedBrightness);
- int brightnessMixedXYZNNN = renderBlocks.getAoBrightness(
- renderBlocks.aoBrightnessXYZNNN,
- renderBlocks.aoBrightnessXYNN,
- renderBlocks.aoBrightnessXZNN,
- mixedBrightness);
- int brightnessMixedXYZNNP = renderBlocks.getAoBrightness(
- renderBlocks.aoBrightnessXYNN,
- renderBlocks.aoBrightnessXYZNNP,
- renderBlocks.aoBrightnessXZNP,
- mixedBrightness);
- int brightnessMixedXYZNPP = renderBlocks.getAoBrightness(
- renderBlocks.aoBrightnessXZNP,
- renderBlocks.aoBrightnessXYNP,
- 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;
-
- aoTopLeft = (float) (aoMixedXYZNPP * renderBlocks.renderMaxY * renderBlocks.renderMaxZ
- + aoMixedXYZNPN * renderBlocks.renderMaxY * (1.0D - renderBlocks.renderMaxZ)
- + aoMixedXYZNNN * (1.0D - renderBlocks.renderMaxY) * (1.0D - renderBlocks.renderMaxZ)
- + aoMixedXYZNNP * (1.0D - renderBlocks.renderMaxY) * renderBlocks.renderMaxZ);
- aoBottomLeft = (float) (aoMixedXYZNPP * renderBlocks.renderMaxY * renderBlocks.renderMinZ
- + aoMixedXYZNPN * renderBlocks.renderMaxY * (1.0D - renderBlocks.renderMinZ)
- + aoMixedXYZNNN * (1.0D - renderBlocks.renderMaxY) * (1.0D - renderBlocks.renderMinZ)
- + aoMixedXYZNNP * (1.0D - renderBlocks.renderMaxY) * renderBlocks.renderMinZ);
- aoBottomRight = (float) (aoMixedXYZNPP * renderBlocks.renderMinY * renderBlocks.renderMinZ
- + aoMixedXYZNPN * renderBlocks.renderMinY * (1.0D - renderBlocks.renderMinZ)
- + aoMixedXYZNNN * (1.0D - renderBlocks.renderMinY) * (1.0D - renderBlocks.renderMinZ)
- + aoMixedXYZNNP * (1.0D - renderBlocks.renderMinY) * renderBlocks.renderMinZ);
- aoTopRight = (float) (aoMixedXYZNPP * renderBlocks.renderMinY * renderBlocks.renderMaxZ
- + aoMixedXYZNPN * renderBlocks.renderMinY * (1.0D - renderBlocks.renderMaxZ)
- + aoMixedXYZNNN * (1.0D - renderBlocks.renderMinY) * (1.0D - renderBlocks.renderMaxZ)
- + aoMixedXYZNNP * (1.0D - renderBlocks.renderMinY) * renderBlocks.renderMaxZ);
-
- renderBlocks.brightnessTopLeft = renderBlocks.mixAoBrightness(
- brightnessMixedXYZNPP,
- brightnessMixedXYZNPN,
- brightnessMixedXYZNNN,
- brightnessMixedXYZNNP,
- renderBlocks.renderMaxY * renderBlocks.renderMaxZ,
- renderBlocks.renderMaxY * (1.0D - renderBlocks.renderMaxZ),
- (1.0D - renderBlocks.renderMaxY) * (1.0D - renderBlocks.renderMaxZ),
- (1.0D - renderBlocks.renderMaxY) * renderBlocks.renderMaxZ);
- renderBlocks.brightnessBottomLeft = renderBlocks.mixAoBrightness(
- brightnessMixedXYZNPP,
- brightnessMixedXYZNPN,
- brightnessMixedXYZNNN,
- brightnessMixedXYZNNP,
- renderBlocks.renderMaxY * renderBlocks.renderMinZ,
- renderBlocks.renderMaxY * (1.0D - renderBlocks.renderMinZ),
- (1.0D - renderBlocks.renderMaxY) * (1.0D - renderBlocks.renderMinZ),
- (1.0D - renderBlocks.renderMaxY) * renderBlocks.renderMinZ);
- renderBlocks.brightnessBottomRight = renderBlocks.mixAoBrightness(
- brightnessMixedXYZNPP,
- brightnessMixedXYZNPN,
- brightnessMixedXYZNNN,
- brightnessMixedXYZNNP,
- renderBlocks.renderMinY * renderBlocks.renderMinZ,
- renderBlocks.renderMinY * (1.0D - renderBlocks.renderMinZ),
- (1.0D - renderBlocks.renderMinY) * (1.0D - renderBlocks.renderMinZ),
- (1.0D - renderBlocks.renderMinY) * renderBlocks.renderMinZ);
- renderBlocks.brightnessTopRight = renderBlocks.mixAoBrightness(
- brightnessMixedXYZNPP,
- brightnessMixedXYZNPN,
- brightnessMixedXYZNNN,
- brightnessMixedXYZNNP,
- renderBlocks.renderMinY * renderBlocks.renderMaxZ,
- renderBlocks.renderMinY * (1.0D - renderBlocks.renderMaxZ),
- (1.0D - renderBlocks.renderMinY) * (1.0D - renderBlocks.renderMaxZ),
- (1.0D - renderBlocks.renderMinY) * renderBlocks.renderMaxZ);
- }
-
- return this;
- }
-
- /**
- * 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:
- * <p>
- * <ul>
- * <li>{@link RenderBlocks#enableAO}</li>
- * <li>{@link RenderBlocks#partialRenderBounds}</li>
- * </ul>
- *
- * @param block the block {@link Block}
- * @param x the x coordinate
- * @param y the y coordinate
- * @param z the z coordinate
- * @return the {@link LightingHelper}
- */
- public LightingHelper setupLightingXPos(Block block, int x, int y, int z) {
-
- if (renderBlocks.enableAO) {
-
- int xOffset = renderBlocks.renderMaxX < 1.0F ? x : x + 1;
-
- int mixedBrightness = block.getMixedBrightnessForBlock(renderBlocks.blockAccess, xOffset, y, z);
- brightness = mixedBrightness;
-
- 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.aoLightValueScratchXYPN = getMixedAo(
- renderBlocks.blockAccess.getBlock(x + 1, y - 1, z).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x, y - 1, z).getAmbientOcclusionLightValue(),
- renderBlocks.renderMaxX);
- renderBlocks.aoLightValueScratchXZPN = getMixedAo(
- renderBlocks.blockAccess.getBlock(x + 1, y, z - 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x, y, z - 1).getAmbientOcclusionLightValue(),
- renderBlocks.renderMaxX);
- renderBlocks.aoLightValueScratchXZPP = getMixedAo(
- renderBlocks.blockAccess.getBlock(x + 1, y, z + 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x, y, z + 1).getAmbientOcclusionLightValue(),
- renderBlocks.renderMaxX);
- renderBlocks.aoLightValueScratchXYPP = getMixedAo(
- renderBlocks.blockAccess.getBlock(x + 1, y + 1, z).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x, y + 1, z).getAmbientOcclusionLightValue(),
- renderBlocks.renderMaxX);
- renderBlocks.aoLightValueScratchXYZPNN = getMixedAo(
- renderBlocks.blockAccess.getBlock(x + 1, y - 1, z - 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x, y - 1, z - 1).getAmbientOcclusionLightValue(),
- renderBlocks.renderMaxX);
- renderBlocks.aoLightValueScratchXYZPNP = getMixedAo(
- renderBlocks.blockAccess.getBlock(x + 1, y - 1, z + 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x, y - 1, z + 1).getAmbientOcclusionLightValue(),
- renderBlocks.renderMaxX);
- renderBlocks.aoLightValueScratchXYZPPN = getMixedAo(
- renderBlocks.blockAccess.getBlock(x + 1, y + 1, z - 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x, y + 1, z - 1).getAmbientOcclusionLightValue(),
- renderBlocks.renderMaxX);
- renderBlocks.aoLightValueScratchXYZPPP = getMixedAo(
- renderBlocks.blockAccess.getBlock(x + 1, y + 1, z + 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x, y + 1, z + 1).getAmbientOcclusionLightValue(),
- renderBlocks.renderMaxX);
-
- int brightnessMixedXYZPPP = renderBlocks.getAoBrightness(
- renderBlocks.aoBrightnessXZPP,
- renderBlocks.aoBrightnessXYPP,
- renderBlocks.aoBrightnessXYZPPP,
- mixedBrightness);
- int brightnessMixedXYZPNP = renderBlocks.getAoBrightness(
- renderBlocks.aoBrightnessXYPN,
- renderBlocks.aoBrightnessXYZPNP,
- renderBlocks.aoBrightnessXZPP,
- mixedBrightness);
- int brightnessMixedXYZPNN = renderBlocks.getAoBrightness(
- renderBlocks.aoBrightnessXYZPNN,
- renderBlocks.aoBrightnessXYPN,
- renderBlocks.aoBrightnessXZPN,
- mixedBrightness);
- int brightnessMixedXYZPPN = renderBlocks.getAoBrightness(
- renderBlocks.aoBrightnessXZPN,
- renderBlocks.aoBrightnessXYZPPN,
- 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;
-
- aoTopLeft = (float) (aoMixedXYZPNP * (1.0D - renderBlocks.renderMinY) * renderBlocks.renderMaxZ
- + aoMixedXYZPNN * (1.0D - renderBlocks.renderMinY) * (1.0D - renderBlocks.renderMaxZ)
- + aoMixedXYZPPN * renderBlocks.renderMinY * (1.0D - renderBlocks.renderMaxZ)
- + aoMixedXYZPPP * renderBlocks.renderMinY * renderBlocks.renderMaxZ);
- aoBottomLeft = (float) (aoMixedXYZPNP * (1.0D - renderBlocks.renderMinY) * renderBlocks.renderMinZ
- + aoMixedXYZPNN * (1.0D - renderBlocks.renderMinY) * (1.0D - renderBlocks.renderMinZ)
- + aoMixedXYZPPN * renderBlocks.renderMinY * (1.0D - renderBlocks.renderMinZ)
- + aoMixedXYZPPP * renderBlocks.renderMinY * renderBlocks.renderMinZ);
- aoBottomRight = (float) (aoMixedXYZPNP * (1.0D - renderBlocks.renderMaxY) * renderBlocks.renderMinZ
- + aoMixedXYZPNN * (1.0D - renderBlocks.renderMaxY) * (1.0D - renderBlocks.renderMinZ)
- + aoMixedXYZPPN * renderBlocks.renderMaxY * (1.0D - renderBlocks.renderMinZ)
- + aoMixedXYZPPP * renderBlocks.renderMaxY * renderBlocks.renderMinZ);
- aoTopRight = (float) (aoMixedXYZPNP * (1.0D - renderBlocks.renderMaxY) * renderBlocks.renderMaxZ
- + aoMixedXYZPNN * (1.0D - renderBlocks.renderMaxY) * (1.0D - renderBlocks.renderMaxZ)
- + aoMixedXYZPPN * renderBlocks.renderMaxY * (1.0D - renderBlocks.renderMaxZ)
- + aoMixedXYZPPP * renderBlocks.renderMaxY * renderBlocks.renderMaxZ);
-
- renderBlocks.brightnessTopLeft = renderBlocks.mixAoBrightness(
- brightnessMixedXYZPNP,
- brightnessMixedXYZPNN,
- brightnessMixedXYZPPN,
- brightnessMixedXYZPPP,
- (1.0D - renderBlocks.renderMinY) * renderBlocks.renderMaxZ,
- (1.0D - renderBlocks.renderMinY) * (1.0D - renderBlocks.renderMaxZ),
- renderBlocks.renderMinY * (1.0D - renderBlocks.renderMaxZ),
- renderBlocks.renderMinY * renderBlocks.renderMaxZ);
- renderBlocks.brightnessBottomLeft = renderBlocks.mixAoBrightness(
- brightnessMixedXYZPNP,
- brightnessMixedXYZPNN,
- brightnessMixedXYZPPN,
- brightnessMixedXYZPPP,
- (1.0D - renderBlocks.renderMinY) * renderBlocks.renderMinZ,
- (1.0D - renderBlocks.renderMinY) * (1.0D - renderBlocks.renderMinZ),
- renderBlocks.renderMinY * (1.0D - renderBlocks.renderMinZ),
- renderBlocks.renderMinY * renderBlocks.renderMinZ);
- renderBlocks.brightnessBottomRight = renderBlocks.mixAoBrightness(
- brightnessMixedXYZPNP,
- brightnessMixedXYZPNN,
- brightnessMixedXYZPPN,
- brightnessMixedXYZPPP,
- (1.0D - renderBlocks.renderMaxY) * renderBlocks.renderMinZ,
- (1.0D - renderBlocks.renderMaxY) * (1.0D - renderBlocks.renderMinZ),
- renderBlocks.renderMaxY * (1.0D - renderBlocks.renderMinZ),
- renderBlocks.renderMaxY * renderBlocks.renderMinZ);
- renderBlocks.brightnessTopRight = renderBlocks.mixAoBrightness(
- brightnessMixedXYZPNP,
- brightnessMixedXYZPNN,
- brightnessMixedXYZPPN,
- brightnessMixedXYZPPP,
- (1.0D - renderBlocks.renderMaxY) * renderBlocks.renderMaxZ,
- (1.0D - renderBlocks.renderMaxY) * (1.0D - renderBlocks.renderMaxZ),
- renderBlocks.renderMaxY * (1.0D - renderBlocks.renderMaxZ),
- renderBlocks.renderMaxY * renderBlocks.renderMaxZ);
- }
-
- return this;
- }
-
- /**
- * 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:
- * <p>
- * <ul>
- * <li>{@link RenderBlocks#enableAO}</li>
- * <li>{@link RenderBlocks#partialRenderBounds}</li>
- * </ul>
- *
- * @param block the block {@link Block}
- * @param x the x coordinate
- * @param y the y coordinate
- * @param z the z coordinate
- * @return the {@link LightingHelper}
- */
- public LightingHelper setupLightingYNeg(Block block, int x, int y, int z) {
-
- if (renderBlocks.enableAO) {
-
- int yOffset = renderBlocks.renderMinY > 0.0F ? y : y - 1;
-
- int mixedBrightness = block.getMixedBrightnessForBlock(renderBlocks.blockAccess, x, yOffset, z);
- brightness = mixedBrightness;
-
- 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.aoLightValueScratchXYNN = getMixedAo(
- renderBlocks.blockAccess.getBlock(x - 1, y - 1, z).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x - 1, y, z).getAmbientOcclusionLightValue(),
- ratio);
- renderBlocks.aoLightValueScratchYZNN = getMixedAo(
- renderBlocks.blockAccess.getBlock(x, y - 1, z - 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x, y, z - 1).getAmbientOcclusionLightValue(),
- ratio);
- renderBlocks.aoLightValueScratchYZNP = getMixedAo(
- renderBlocks.blockAccess.getBlock(x, y - 1, z + 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x, y, z + 1).getAmbientOcclusionLightValue(),
- ratio);
- renderBlocks.aoLightValueScratchXYPN = getMixedAo(
- renderBlocks.blockAccess.getBlock(x + 1, y - 1, z).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x + 1, y, z).getAmbientOcclusionLightValue(),
- ratio);
- renderBlocks.aoLightValueScratchXYZNNN = getMixedAo(
- renderBlocks.blockAccess.getBlock(x - 1, y - 1, z - 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x - 1, y, z - 1).getAmbientOcclusionLightValue(),
- ratio);
- renderBlocks.aoLightValueScratchXYZNNP = getMixedAo(
- renderBlocks.blockAccess.getBlock(x - 1, y - 1, z + 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x - 1, y, z + 1).getAmbientOcclusionLightValue(),
- ratio);
- renderBlocks.aoLightValueScratchXYZPNN = getMixedAo(
- renderBlocks.blockAccess.getBlock(x + 1, y - 1, z - 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x + 1, y, z - 1).getAmbientOcclusionLightValue(),
- ratio);
- renderBlocks.aoLightValueScratchXYZPNP = getMixedAo(
- renderBlocks.blockAccess.getBlock(x + 1, y - 1, z + 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x + 1, y, z + 1).getAmbientOcclusionLightValue(),
- ratio);
-
- int brightnessMixedXYZPNP = renderBlocks.getAoBrightness(
- renderBlocks.aoBrightnessYZNP,
- renderBlocks.aoBrightnessXYZPNP,
- renderBlocks.aoBrightnessXYPN,
- mixedBrightness);
- int brightnessMixedXYZPNN = renderBlocks.getAoBrightness(
- renderBlocks.aoBrightnessYZNN,
- renderBlocks.aoBrightnessXYPN,
- renderBlocks.aoBrightnessXYZPNN,
- mixedBrightness);
- int brightnessMixedXYZNNN = renderBlocks.getAoBrightness(
- renderBlocks.aoBrightnessXYNN,
- renderBlocks.aoBrightnessXYZNNN,
- renderBlocks.aoBrightnessYZNN,
- mixedBrightness);
- int brightnessMixedXYZNNP = renderBlocks.getAoBrightness(
- renderBlocks.aoBrightnessXYZNNP,
- renderBlocks.aoBrightnessXYNN,
- 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;
-
- aoTopLeft = (float) (aoMixedXYZNNP * renderBlocks.renderMaxZ * (1.0D - renderBlocks.renderMinX)
- + aoMixedXYZPNP * renderBlocks.renderMaxZ * renderBlocks.renderMinX
- + aoMixedXYZPNN * (1.0D - renderBlocks.renderMaxZ) * renderBlocks.renderMinX
- + aoMixedXYZNNN * (1.0D - renderBlocks.renderMaxZ) * (1.0D - renderBlocks.renderMinX));
- aoBottomLeft = (float) (aoMixedXYZNNP * renderBlocks.renderMinZ * (1.0D - renderBlocks.renderMinX)
- + aoMixedXYZPNP * renderBlocks.renderMinZ * renderBlocks.renderMinX
- + aoMixedXYZPNN * (1.0D - renderBlocks.renderMinZ) * renderBlocks.renderMinX
- + aoMixedXYZNNN * (1.0D - renderBlocks.renderMinZ) * (1.0D - renderBlocks.renderMinX));
- aoBottomRight = (float) (aoMixedXYZNNP * renderBlocks.renderMinZ * (1.0D - renderBlocks.renderMaxX)
- + aoMixedXYZPNP * renderBlocks.renderMinZ * renderBlocks.renderMaxX
- + aoMixedXYZPNN * (1.0D - renderBlocks.renderMinZ) * renderBlocks.renderMaxX
- + aoMixedXYZNNN * (1.0D - renderBlocks.renderMinZ) * (1.0D - renderBlocks.renderMaxX));
- aoTopRight = (float) (aoMixedXYZNNP * renderBlocks.renderMaxZ * (1.0D - renderBlocks.renderMaxX)
- + aoMixedXYZPNP * renderBlocks.renderMaxZ * renderBlocks.renderMaxX
- + aoMixedXYZPNN * (1.0D - renderBlocks.renderMaxZ) * renderBlocks.renderMaxX
- + aoMixedXYZNNN * (1.0D - renderBlocks.renderMaxZ) * (1.0D - renderBlocks.renderMaxX));
-
- renderBlocks.brightnessTopLeft = renderBlocks.mixAoBrightness(
- brightnessMixedXYZNNP,
- brightnessMixedXYZPNP,
- brightnessMixedXYZPNN,
- brightnessMixedXYZNNN,
- renderBlocks.renderMaxZ * (1.0D - renderBlocks.renderMinX),
- renderBlocks.renderMaxZ * renderBlocks.renderMinX,
- (1.0D - renderBlocks.renderMaxZ) * renderBlocks.renderMinX,
- (1.0D - renderBlocks.renderMaxZ) * (1.0D - renderBlocks.renderMinX));
- renderBlocks.brightnessBottomLeft = renderBlocks.mixAoBrightness(
- brightnessMixedXYZNNP,
- brightnessMixedXYZPNP,
- brightnessMixedXYZPNN,
- brightnessMixedXYZNNN,
- renderBlocks.renderMinZ * (1.0D - renderBlocks.renderMinX),
- renderBlocks.renderMinZ * renderBlocks.renderMinX,
- (1.0D - renderBlocks.renderMinZ) * renderBlocks.renderMinX,
- (1.0D - renderBlocks.renderMinZ) * (1.0D - renderBlocks.renderMinX));
- renderBlocks.brightnessBottomRight = renderBlocks.mixAoBrightness(
- brightnessMixedXYZNNP,
- brightnessMixedXYZPNP,
- brightnessMixedXYZPNN,
- brightnessMixedXYZNNN,
- renderBlocks.renderMinZ * (1.0D - renderBlocks.renderMaxX),
- renderBlocks.renderMinZ * renderBlocks.renderMaxX,
- (1.0D - renderBlocks.renderMinZ) * renderBlocks.renderMaxX,
- (1.0D - renderBlocks.renderMinZ) * (1.0D - renderBlocks.renderMaxX));
- renderBlocks.brightnessTopRight = renderBlocks.mixAoBrightness(
- brightnessMixedXYZNNP,
- brightnessMixedXYZPNP,
- brightnessMixedXYZPNN,
- brightnessMixedXYZNNN,
- renderBlocks.renderMaxZ * (1.0D - renderBlocks.renderMaxX),
- renderBlocks.renderMaxZ * renderBlocks.renderMaxX,
- (1.0D - renderBlocks.renderMaxZ) * renderBlocks.renderMaxX,
- (1.0D - renderBlocks.renderMaxZ) * (1.0D - renderBlocks.renderMaxX));
- }
-
- return this;
- }
-
- /**
- * 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:
- * <p>
- * <ul>
- * <li>{@link RenderBlocks#enableAO}</li>
- * <li>{@link RenderBlocks#partialRenderBounds}</li>
- * </ul>
- *
- * @param block the block {@link Block}
- * @param x the x coordinate
- * @param y the y coordinate
- * @param z the z coordinate
- * @return the {@link LightingHelper}
- */
- public LightingHelper setupLightingYPos(Block block, int x, int y, int z) {
-
- if (renderBlocks.enableAO) {
-
- int yOffset = renderBlocks.renderMaxY < 1.0F ? y : y + 1;
-
- int mixedBrightness = block.getMixedBrightnessForBlock(renderBlocks.blockAccess, x, yOffset, z);
- brightness = mixedBrightness;
-
- 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.aoLightValueScratchXYNP = getMixedAo(
- renderBlocks.blockAccess.getBlock(x - 1, y + 1, z).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x - 1, y, z).getAmbientOcclusionLightValue(),
- renderBlocks.renderMaxY);
- renderBlocks.aoLightValueScratchXYPP = getMixedAo(
- renderBlocks.blockAccess.getBlock(x + 1, y + 1, z).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x + 1, y, z).getAmbientOcclusionLightValue(),
- renderBlocks.renderMaxY);
- renderBlocks.aoLightValueScratchYZPN = getMixedAo(
- renderBlocks.blockAccess.getBlock(x, y + 1, z - 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x, y, z - 1).getAmbientOcclusionLightValue(),
- renderBlocks.renderMaxY);
- renderBlocks.aoLightValueScratchYZPP = getMixedAo(
- renderBlocks.blockAccess.getBlock(x, y + 1, z + 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x, y, z + 1).getAmbientOcclusionLightValue(),
- renderBlocks.renderMaxY);
- renderBlocks.aoLightValueScratchXYZNPN = getMixedAo(
- renderBlocks.blockAccess.getBlock(x - 1, y + 1, z - 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x - 1, y, z - 1).getAmbientOcclusionLightValue(),
- renderBlocks.renderMaxY);
- renderBlocks.aoLightValueScratchXYZPPN = getMixedAo(
- renderBlocks.blockAccess.getBlock(x + 1, y + 1, z - 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x + 1, y, z - 1).getAmbientOcclusionLightValue(),
- renderBlocks.renderMaxY);
- renderBlocks.aoLightValueScratchXYZNPP = getMixedAo(
- renderBlocks.blockAccess.getBlock(x - 1, y + 1, z + 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x - 1, y, z + 1).getAmbientOcclusionLightValue(),
- renderBlocks.renderMaxY);
- renderBlocks.aoLightValueScratchXYZPPP = getMixedAo(
- renderBlocks.blockAccess.getBlock(x + 1, y + 1, z + 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x + 1, y, z + 1).getAmbientOcclusionLightValue(),
- renderBlocks.renderMaxY);
-
- int brightnessMixedXYZPPP = renderBlocks.getAoBrightness(
- renderBlocks.aoBrightnessYZPP,
- renderBlocks.aoBrightnessXYZPPP,
- renderBlocks.aoBrightnessXYPP,
- mixedBrightness);
- int brightnessMixedXYZPPN = renderBlocks.getAoBrightness(
- renderBlocks.aoBrightnessYZPN,
- renderBlocks.aoBrightnessXYPP,
- renderBlocks.aoBrightnessXYZPPN,
- mixedBrightness);
- int brightnessMixedXYZNPN = renderBlocks.getAoBrightness(
- renderBlocks.aoBrightnessXYNP,
- renderBlocks.aoBrightnessXYZNPN,
- renderBlocks.aoBrightnessYZPN,
- mixedBrightness);
- int brightnessMixedXYZNPP = renderBlocks.getAoBrightness(
- renderBlocks.aoBrightnessXYZNPP,
- renderBlocks.aoBrightnessXYNP,
- 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)
- + 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)
- + 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)
- + 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)
- + aoMixedXYZPPP * renderBlocks.renderMaxZ * renderBlocks.renderMinX
- + aoMixedXYZPPN * (1.0D - renderBlocks.renderMaxZ) * renderBlocks.renderMinX
- + aoMixedXYZNPN * (1.0D - renderBlocks.renderMaxZ) * (1.0D - renderBlocks.renderMinX));
-
- renderBlocks.brightnessTopLeft = renderBlocks.mixAoBrightness(
- brightnessMixedXYZNPP,
- brightnessMixedXYZPPP,
- brightnessMixedXYZPPN,
- brightnessMixedXYZNPN,
- renderBlocks.renderMaxZ * (1.0D - renderBlocks.renderMaxX),
- renderBlocks.renderMaxZ * renderBlocks.renderMaxX,
- (1.0D - renderBlocks.renderMaxZ) * renderBlocks.renderMaxX,
- (1.0D - renderBlocks.renderMaxZ) * (1.0D - renderBlocks.renderMaxX));
- renderBlocks.brightnessBottomLeft = renderBlocks.mixAoBrightness(
- brightnessMixedXYZNPP,
- brightnessMixedXYZPPP,
- brightnessMixedXYZPPN,
- brightnessMixedXYZNPN,
- renderBlocks.renderMinZ * (1.0D - renderBlocks.renderMaxX),
- renderBlocks.renderMinZ * renderBlocks.renderMaxX,
- (1.0D - renderBlocks.renderMinZ) * renderBlocks.renderMaxX,
- (1.0D - renderBlocks.renderMinZ) * (1.0D - renderBlocks.renderMaxX));
- renderBlocks.brightnessBottomRight = renderBlocks.mixAoBrightness(
- brightnessMixedXYZNPP,
- brightnessMixedXYZPPP,
- brightnessMixedXYZPPN,
- brightnessMixedXYZNPN,
- renderBlocks.renderMinZ * (1.0D - renderBlocks.renderMinX),
- renderBlocks.renderMinZ * renderBlocks.renderMinX,
- (1.0D - renderBlocks.renderMinZ) * renderBlocks.renderMinX,
- (1.0D - renderBlocks.renderMinZ) * (1.0D - renderBlocks.renderMinX));
- renderBlocks.brightnessTopRight = renderBlocks.mixAoBrightness(
- brightnessMixedXYZNPP,
- brightnessMixedXYZPPP,
- brightnessMixedXYZPPN,
- brightnessMixedXYZNPN,
- renderBlocks.renderMaxZ * (1.0D - renderBlocks.renderMinX),
- renderBlocks.renderMaxZ * renderBlocks.renderMinX,
- (1.0D - renderBlocks.renderMaxZ) * renderBlocks.renderMinX,
- (1.0D - renderBlocks.renderMaxZ) * (1.0D - renderBlocks.renderMinX));
- }
-
- return this;
- }
-
- /**
- * 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:
- * <p>
- * <ul>
- * <li>{@link RenderBlocks#enableAO}</li>
- * <li>{@link RenderBlocks#partialRenderBounds}</li>
- * </ul>
- *
- * @param block the block {@link Block}
- * @param x the x coordinate
- * @param y the y coordinate
- * @param z the z coordinate
- * @return the {@link LightingHelper}
- */
- public LightingHelper setupLightingZNeg(Block block, int x, int y, int z) {
-
- if (renderBlocks.enableAO) {
-
- int zOffset = renderBlocks.renderMinZ > 0.0F ? z : z - 1;
-
- int mixedBrightness = block.getMixedBrightnessForBlock(renderBlocks.blockAccess, x, y, zOffset);
- brightness = mixedBrightness;
-
- 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.aoLightValueScratchXZNN = getMixedAo(
- renderBlocks.blockAccess.getBlock(x - 1, y, z - 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x - 1, y, z).getAmbientOcclusionLightValue(),
- ratio);
- renderBlocks.aoLightValueScratchYZNN = getMixedAo(
- renderBlocks.blockAccess.getBlock(x, y - 1, z - 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x, y - 1, z).getAmbientOcclusionLightValue(),
- ratio);
- renderBlocks.aoLightValueScratchYZPN = getMixedAo(
- renderBlocks.blockAccess.getBlock(x, y + 1, z - 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x, y + 1, z).getAmbientOcclusionLightValue(),
- ratio);
- renderBlocks.aoLightValueScratchXZPN = getMixedAo(
- renderBlocks.blockAccess.getBlock(x + 1, y, z - 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x + 1, y, z).getAmbientOcclusionLightValue(),
- ratio);
- renderBlocks.aoLightValueScratchXYZNNN = getMixedAo(
- renderBlocks.blockAccess.getBlock(x - 1, y - 1, z - 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x - 1, y - 1, z).getAmbientOcclusionLightValue(),
- ratio);
- renderBlocks.aoLightValueScratchXYZNPN = getMixedAo(
- renderBlocks.blockAccess.getBlock(x - 1, y + 1, z - 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x - 1, y + 1, z).getAmbientOcclusionLightValue(),
- ratio);
- renderBlocks.aoLightValueScratchXYZPNN = getMixedAo(
- renderBlocks.blockAccess.getBlock(x + 1, y - 1, z - 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x + 1, y - 1, z).getAmbientOcclusionLightValue(),
- ratio);
- renderBlocks.aoLightValueScratchXYZPPN = getMixedAo(
- renderBlocks.blockAccess.getBlock(x + 1, y + 1, z - 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x + 1, y + 1, z).getAmbientOcclusionLightValue(),
- ratio);
-
- int brightnessMixedXYZPPN = renderBlocks.getAoBrightness(
- renderBlocks.aoBrightnessYZPN,
- renderBlocks.aoBrightnessXZPN,
- renderBlocks.aoBrightnessXYZPPN,
- mixedBrightness);
- int brightnessMixedXYZPNN = renderBlocks.getAoBrightness(
- renderBlocks.aoBrightnessYZNN,
- renderBlocks.aoBrightnessXYZPNN,
- renderBlocks.aoBrightnessXZPN,
- mixedBrightness);
- int brightnessMixedXYZNNN = renderBlocks.getAoBrightness(
- renderBlocks.aoBrightnessXYZNNN,
- renderBlocks.aoBrightnessXZNN,
- renderBlocks.aoBrightnessYZNN,
- mixedBrightness);
- int brightnessMixedXYZNPN = renderBlocks.getAoBrightness(
- renderBlocks.aoBrightnessXZNN,
- renderBlocks.aoBrightnessXYZNPN,
- 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;
-
- aoTopLeft = (float) (aoMixedXYZNPN * renderBlocks.renderMaxY * (1.0D - renderBlocks.renderMinX)
- + aoMixedXYZPPN * renderBlocks.renderMaxY * renderBlocks.renderMinX
- + aoMixedXYZPNN * (1.0D - renderBlocks.renderMaxY) * renderBlocks.renderMinX
- + aoMixedXYZNNN * (1.0D - renderBlocks.renderMaxY) * (1.0D - renderBlocks.renderMinX));
- aoBottomLeft = (float) (aoMixedXYZNPN * renderBlocks.renderMaxY * (1.0D - renderBlocks.renderMaxX)
- + aoMixedXYZPPN * renderBlocks.renderMaxY * renderBlocks.renderMaxX
- + aoMixedXYZPNN * (1.0D - renderBlocks.renderMaxY) * renderBlocks.renderMaxX
- + aoMixedXYZNNN * (1.0D - renderBlocks.renderMaxY) * (1.0D - renderBlocks.renderMaxX));
- aoBottomRight = (float) (aoMixedXYZNPN * renderBlocks.renderMinY * (1.0D - renderBlocks.renderMaxX)
- + aoMixedXYZPPN * renderBlocks.renderMinY * renderBlocks.renderMaxX
- + aoMixedXYZPNN * (1.0D - renderBlocks.renderMinY) * renderBlocks.renderMaxX
- + aoMixedXYZNNN * (1.0D - renderBlocks.renderMinY) * (1.0D - renderBlocks.renderMaxX));
- aoTopRight = (float) (aoMixedXYZNPN * renderBlocks.renderMinY * (1.0D - renderBlocks.renderMinX)
- + aoMixedXYZPPN * renderBlocks.renderMinY * renderBlocks.renderMinX
- + aoMixedXYZPNN * (1.0D - renderBlocks.renderMinY) * renderBlocks.renderMinX
- + aoMixedXYZNNN * (1.0D - renderBlocks.renderMinY) * (1.0D - renderBlocks.renderMinX));
-
- renderBlocks.brightnessTopLeft = renderBlocks.mixAoBrightness(
- brightnessMixedXYZNPN,
- brightnessMixedXYZPPN,
- brightnessMixedXYZPNN,
- brightnessMixedXYZNNN,
- renderBlocks.renderMaxY * (1.0D - renderBlocks.renderMinX),
- renderBlocks.renderMaxY * renderBlocks.renderMinX,
- (1.0D - renderBlocks.renderMaxY) * renderBlocks.renderMinX,
- (1.0D - renderBlocks.renderMaxY) * (1.0D - renderBlocks.renderMinX));
- renderBlocks.brightnessBottomLeft = renderBlocks.mixAoBrightness(
- brightnessMixedXYZNPN,
- brightnessMixedXYZPPN,
- brightnessMixedXYZPNN,
- brightnessMixedXYZNNN,
- renderBlocks.renderMaxY * (1.0D - renderBlocks.renderMaxX),
- renderBlocks.renderMaxY * renderBlocks.renderMaxX,
- (1.0D - renderBlocks.renderMaxY) * renderBlocks.renderMaxX,
- (1.0D - renderBlocks.renderMaxY) * (1.0D - renderBlocks.renderMaxX));
- renderBlocks.brightnessBottomRight = renderBlocks.mixAoBrightness(
- brightnessMixedXYZNPN,
- brightnessMixedXYZPPN,
- brightnessMixedXYZPNN,
- brightnessMixedXYZNNN,
- renderBlocks.renderMinY * (1.0D - renderBlocks.renderMaxX),
- renderBlocks.renderMinY * renderBlocks.renderMaxX,
- (1.0D - renderBlocks.renderMinY) * renderBlocks.renderMaxX,
- (1.0D - renderBlocks.renderMinY) * (1.0D - renderBlocks.renderMaxX));
- renderBlocks.brightnessTopRight = renderBlocks.mixAoBrightness(
- brightnessMixedXYZNPN,
- brightnessMixedXYZPPN,
- brightnessMixedXYZPNN,
- brightnessMixedXYZNNN,
- renderBlocks.renderMinY * (1.0D - renderBlocks.renderMinX),
- renderBlocks.renderMinY * renderBlocks.renderMinX,
- (1.0D - renderBlocks.renderMinY) * renderBlocks.renderMinX,
- (1.0D - renderBlocks.renderMinY) * (1.0D - renderBlocks.renderMinX));
- }
-
- return this;
- }
-
- /**
- * 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:
- * <p>
- * <ul>
- * <li>{@link RenderBlocks#enableAO}</li>
- * <li>{@link RenderBlocks#partialRenderBounds}</li>
- * </ul>
- *
- * @param block the block {@link Block}
- * @param x the x coordinate
- * @param y the y coordinate
- * @param z the z coordinate
- * @return the {@link LightingHelper}
- */
- public LightingHelper setupLightingZPos(Block block, int x, int y, int z) {
-
- if (renderBlocks.enableAO) {
-
- int zOffset = renderBlocks.renderMaxZ < 1.0F ? z : z + 1;
-
- int mixedBrightness = block.getMixedBrightnessForBlock(renderBlocks.blockAccess, x, y, zOffset);
- brightness = mixedBrightness;
-
- 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.aoLightValueScratchXZNP = getMixedAo(
- renderBlocks.blockAccess.getBlock(x - 1, y, z + 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x - 1, y, z).getAmbientOcclusionLightValue(),
- renderBlocks.renderMaxZ);
- renderBlocks.aoLightValueScratchXZPP = getMixedAo(
- renderBlocks.blockAccess.getBlock(x + 1, y, z + 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x + 1, y, z).getAmbientOcclusionLightValue(),
- renderBlocks.renderMaxZ);
- renderBlocks.aoLightValueScratchYZNP = getMixedAo(
- renderBlocks.blockAccess.getBlock(x, y - 1, z + 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x, y - 1, z).getAmbientOcclusionLightValue(),
- renderBlocks.renderMaxZ);
- renderBlocks.aoLightValueScratchYZPP = getMixedAo(
- renderBlocks.blockAccess.getBlock(x, y + 1, z + 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x, y + 1, z).getAmbientOcclusionLightValue(),
- renderBlocks.renderMaxZ);
- renderBlocks.aoLightValueScratchXYZNNP = getMixedAo(
- renderBlocks.blockAccess.getBlock(x - 1, y - 1, z + 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x - 1, y - 1, z).getAmbientOcclusionLightValue(),
- renderBlocks.renderMaxZ);
- renderBlocks.aoLightValueScratchXYZNPP = getMixedAo(
- renderBlocks.blockAccess.getBlock(x - 1, y + 1, z + 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x - 1, y + 1, z).getAmbientOcclusionLightValue(),
- renderBlocks.renderMaxZ);
- renderBlocks.aoLightValueScratchXYZPNP = getMixedAo(
- renderBlocks.blockAccess.getBlock(x + 1, y - 1, z + 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x + 1, y - 1, z).getAmbientOcclusionLightValue(),
- renderBlocks.renderMaxZ);
- renderBlocks.aoLightValueScratchXYZPPP = getMixedAo(
- renderBlocks.blockAccess.getBlock(x + 1, y + 1, z + 1).getAmbientOcclusionLightValue(),
- renderBlocks.blockAccess.getBlock(x + 1, y + 1, z).getAmbientOcclusionLightValue(),
- renderBlocks.renderMaxZ);
-
- int brightnessMixedXYZNPP = renderBlocks.getAoBrightness(
- renderBlocks.aoBrightnessXZNP,
- renderBlocks.aoBrightnessXYZNPP,
- renderBlocks.aoBrightnessYZPP,
- mixedBrightness);
- int brightnessMixedXYZNNP = renderBlocks.getAoBrightness(
- renderBlocks.aoBrightnessXYZNNP,
- renderBlocks.aoBrightnessXZNP,
- renderBlocks.aoBrightnessYZNP,
- mixedBrightness);
- int brightnessMixedXYZPNP = renderBlocks.getAoBrightness(
- renderBlocks.aoBrightnessYZNP,
- renderBlocks.aoBrightnessXYZPNP,
- renderBlocks.aoBrightnessXZPP,
- mixedBrightness);
- int brightnessMixedXYZPPP = renderBlocks.getAoBrightness(
- renderBlocks.aoBrightnessYZPP,
- renderBlocks.aoBrightnessXZPP,
- 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;
-
- aoTopLeft = (float) (aoMixedXYZNPP * renderBlocks.renderMaxY * (1.0D - renderBlocks.renderMinX)
- + aoMixedXYZPPP * renderBlocks.renderMaxY * renderBlocks.renderMinX
- + aoMixedXYZPNP * (1.0D - renderBlocks.renderMaxY) * renderBlocks.renderMinX
- + aoMixedXYZNNP * (1.0D - renderBlocks.renderMaxY) * (1.0D - renderBlocks.renderMinX));
- aoBottomLeft = (float) (aoMixedXYZNPP * renderBlocks.renderMinY * (1.0D - renderBlocks.renderMinX)
- + aoMixedXYZPPP * renderBlocks.renderMinY * renderBlocks.renderMinX
- + aoMixedXYZPNP * (1.0D - renderBlocks.renderMinY) * renderBlocks.renderMinX
- + aoMixedXYZNNP * (1.0D - renderBlocks.renderMinY) * (1.0D - renderBlocks.renderMinX));
- aoBottomRight = (float) (aoMixedXYZNPP * renderBlocks.renderMinY * (1.0D - renderBlocks.renderMaxX)
- + aoMixedXYZPPP * renderBlocks.renderMinY * renderBlocks.renderMaxX
- + aoMixedXYZPNP * (1.0D - renderBlocks.renderMinY) * renderBlocks.renderMaxX
- + aoMixedXYZNNP * (1.0D - renderBlocks.renderMinY) * (1.0D - renderBlocks.renderMaxX));
- aoTopRight = (float) (aoMixedXYZNPP * renderBlocks.renderMaxY * (1.0D - renderBlocks.renderMaxX)
- + aoMixedXYZPPP * renderBlocks.renderMaxY * renderBlocks.renderMaxX
- + aoMixedXYZPNP * (1.0D - renderBlocks.renderMaxY) * renderBlocks.renderMaxX
- + aoMixedXYZNNP * (1.0D - renderBlocks.renderMaxY) * (1.0D - renderBlocks.renderMaxX));
-
- renderBlocks.brightnessTopLeft = renderBlocks.mixAoBrightness(
- brightnessMixedXYZNPP,
- brightnessMixedXYZNNP,
- brightnessMixedXYZPNP,
- brightnessMixedXYZPPP,
- renderBlocks.renderMaxY * (1.0D - renderBlocks.renderMinX),
- (1.0D - renderBlocks.renderMaxY) * (1.0D - renderBlocks.renderMinX),
- (1.0D - renderBlocks.renderMaxY) * renderBlocks.renderMinX,
- renderBlocks.renderMaxY * renderBlocks.renderMinX);
- renderBlocks.brightnessBottomLeft = renderBlocks.mixAoBrightness(
- brightnessMixedXYZNPP,
- brightnessMixedXYZNNP,
- brightnessMixedXYZPNP,
- brightnessMixedXYZPPP,
- renderBlocks.renderMinY * (1.0D - renderBlocks.renderMinX),
- (1.0D - renderBlocks.renderMinY) * (1.0D - renderBlocks.renderMinX),
- (1.0D - renderBlocks.renderMinY) * renderBlocks.renderMinX,
- renderBlocks.renderMinY * renderBlocks.renderMinX);
- renderBlocks.brightnessBottomRight = renderBlocks.mixAoBrightness(
- brightnessMixedXYZNPP,
- brightnessMixedXYZNNP,
- brightnessMixedXYZPNP,
- brightnessMixedXYZPPP,
- renderBlocks.renderMinY * (1.0D - renderBlocks.renderMaxX),
- (1.0D - renderBlocks.renderMinY) * (1.0D - renderBlocks.renderMaxX),
- (1.0D - renderBlocks.renderMinY) * renderBlocks.renderMaxX,
- renderBlocks.renderMinY * renderBlocks.renderMaxX);
- renderBlocks.brightnessTopRight = renderBlocks.mixAoBrightness(
- brightnessMixedXYZNPP,
- brightnessMixedXYZNNP,
- brightnessMixedXYZPNP,
- brightnessMixedXYZPPP,
- renderBlocks.renderMaxY * (1.0D - renderBlocks.renderMaxX),
- (1.0D - renderBlocks.renderMaxY) * (1.0D - renderBlocks.renderMaxX),
- (1.0D - renderBlocks.renderMaxY) * renderBlocks.renderMaxX,
- renderBlocks.renderMaxY * renderBlocks.renderMaxX);
- }
-
- return this;
- }
-}