Fix the magic energy absorber

This commit is contained in:
Pranav 2017-11-03 22:06:43 -04:00
parent 09cdfd27ba
commit 682069aa3b

View file

@ -1,5 +1,6 @@
package gregtech.common.tileentities.generators; package gregtech.common.tileentities.generators;
import cpw.mods.fml.common.FMLLog;
import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.Loader;
import gregtech.api.GregTech_API; import gregtech.api.GregTech_API;
import gregtech.api.enums.ConfigCategories; import gregtech.api.enums.ConfigCategories;
@ -38,11 +39,13 @@ public class GT_MetaTileEntity_MagicalEnergyAbsorber extends GT_MetaTileEntity_B
public static boolean sAllowMultipleEggs = true; public static boolean sAllowMultipleEggs = true;
public static GT_MetaTileEntity_MagicalEnergyAbsorber mActiveSiphon = null; public static GT_MetaTileEntity_MagicalEnergyAbsorber mActiveSiphon = null;
public static int sEnergyPerEnderCrystal = 32; public static int sEnergyPerEnderCrystal = 32;
public static int sEnergyFromVis = 12800; public static int sEnergyFromVis = 512; //really? this high? no wonder no eu was generating... (it was 12800 at the time)
public static int sDragonEggEnergyPerTick = 128; public static int sDragonEggEnergyPerTick = 128;
public static boolean isThaumcraftLoaded; public static boolean isThaumcraftLoaded;
public static boolean tLameMode = false; // if you use this... lame.
public int mEfficiency; public int mEfficiency;
public EntityEnderCrystal mTargetedCrystal; public EntityEnderCrystal mTargetedCrystal;
//public static int[] VoltageOut = {32, 128,512,2048}; // Because what the fuck even is this code.
public GT_MetaTileEntity_MagicalEnergyAbsorber(int aID, String aName, String aNameRegional, int aTier) { public GT_MetaTileEntity_MagicalEnergyAbsorber(int aID, String aName, String aNameRegional, int aTier) {
super(aID, aName, aNameRegional, aTier, "Feasts on magic close to it", new ITexture[0]); super(aID, aName, aNameRegional, aTier, "Feasts on magic close to it", new ITexture[0]);
@ -109,34 +112,34 @@ public class GT_MetaTileEntity_MagicalEnergyAbsorber extends GT_MetaTileEntity_B
// Energyzed node // Energyzed node
if (isThaumcraftLoaded) { if (isThaumcraftLoaded) {
try { try {
int multFactor = 2;
if (tLameMode){
multFactor = 10; //Don't do this. Unless you want to be cheaty and lame.
}
World tmpWorld = this.getBaseMetaTileEntity().getWorld(); World tmpWorld = this.getBaseMetaTileEntity().getWorld();
int tmpX = this.getBaseMetaTileEntity().getXCoord(); int tmpX = this.getBaseMetaTileEntity().getXCoord();
int tmpY = this.getBaseMetaTileEntity().getYCoord(); int tmpY = this.getBaseMetaTileEntity().getYCoord() + 2; //Add 2 because +1 is the node stabiliser and +2 is the node itself
int tmpZ = this.getBaseMetaTileEntity().getZCoord(); int tmpZ = this.getBaseMetaTileEntity().getZCoord();
int fire = VisNetHandler.drainVis(tmpWorld, tmpX, tmpY, tmpZ, Aspect.FIRE, 1000); int fire = VisNetHandler.drainVis(tmpWorld, tmpX, tmpY, tmpZ, Aspect.FIRE, 1000); // all of these should be 1000
int earth = VisNetHandler.drainVis(tmpWorld, tmpX, tmpY, tmpZ, Aspect.EARTH, 1000); int earth = VisNetHandler.drainVis(tmpWorld, tmpX, tmpY, tmpZ, Aspect.EARTH, 1000);
int air = VisNetHandler.drainVis(tmpWorld, tmpX, tmpY, tmpZ, Aspect.AIR, 1000); int air = VisNetHandler.drainVis(tmpWorld, tmpX, tmpY, tmpZ, Aspect.AIR, 1000);
int destruction = VisNetHandler.drainVis(tmpWorld, tmpX, tmpY, tmpZ, Aspect.ENTROPY, 1000); int entropy = VisNetHandler.drainVis(tmpWorld, tmpX, tmpY, tmpZ, Aspect.ENTROPY, 1000);
int order = VisNetHandler.drainVis(tmpWorld, tmpX, tmpY, tmpZ, Aspect.ORDER, 1000); int order = VisNetHandler.drainVis(tmpWorld, tmpX, tmpY, tmpZ, Aspect.ORDER, 1000);
int water = VisNetHandler.drainVis(tmpWorld, tmpX, tmpY, tmpZ, Aspect.WATER, 1000); int water = VisNetHandler.drainVis(tmpWorld, tmpX, tmpY, tmpZ, Aspect.WATER, 1000);
int visEU = (int) (Math.pow(fire, 4) + Math.pow(earth, 4) + Math.pow(air, 4) + Math.pow(destruction, 4) + Math.pow(order, 4) + Math.pow( int visEU = (int) (Math.pow(fire, 2) + Math.pow(earth, 2) + Math.pow(air, 2) + Math.pow(entropy, 2) + Math.pow(order, 2) + Math.pow(water, 2));
water, 4)); int mult = 0; //this should make it more dependant on how big your node is
int mult = 85; mult += fire * multFactor;
if (fire > 4) mult += earth * multFactor;
mult += 15; mult += air * multFactor;
if (earth > 4) mult += entropy * multFactor;
mult += 15; mult += order * multFactor;
if (air > 4) mult += water * multFactor;
mult += 15; visEU = (visEU * mult) / 100;
if (destruction > 4)
mult += 15; getBaseMetaTileEntity().increaseStoredEnergyUnits(Math.min(maxEUOutput(), visEU * getEfficiency() / sEnergyFromVis), false);
if (order > 4)
mult += 15;
if (water > 4)
mult += 15;
visEU = (visEU * mult) / 100;
getBaseMetaTileEntity().increaseStoredEnergyUnits(Math.min(maxEUOutput(), visEU * getEfficiency() / this.sEnergyFromVis), false);
} catch (Throwable e) { } catch (Throwable e) {
} }
} }
// EnderCrystal // EnderCrystal