Fix the magic energy absorber
This commit is contained in:
parent
09cdfd27ba
commit
682069aa3b
1 changed files with 24 additions and 21 deletions
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue