From 877312184c472d9845e5ef1008bc538f4634059f Mon Sep 17 00:00:00 2001 From: Foghrye4 Date: Thu, 10 Aug 2017 18:50:56 +0300 Subject: fix missing source folder --- main/java/gregtech/api/objects/GT_FluidStack.java | 54 +++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 main/java/gregtech/api/objects/GT_FluidStack.java (limited to 'main/java/gregtech/api/objects/GT_FluidStack.java') diff --git a/main/java/gregtech/api/objects/GT_FluidStack.java b/main/java/gregtech/api/objects/GT_FluidStack.java new file mode 100644 index 0000000..351e0ed --- /dev/null +++ b/main/java/gregtech/api/objects/GT_FluidStack.java @@ -0,0 +1,54 @@ +package gregtech.api.objects; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Map; + +import gregtech.api.GregTech_API; +import gregtech.api.util.GT_Log; +import gregtech.api.util.GT_Utility; +import net.minecraftforge.common.ForgeVersion; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidStack; + +/** + * Because Forge fucked this one up royally. + */ +public class GT_FluidStack extends FluidStack { + private static final Collection sAllFluidStacks = new ArrayList(5000); + private Fluid mFluid; + private static boolean lock=false; + + public GT_FluidStack(Fluid aFluid, int aAmount) { + super(aFluid, aAmount); + mFluid = aFluid; + sAllFluidStacks.add(this); + } + + public GT_FluidStack(FluidStack aFluid) { + this(aFluid.getFluid(), aFluid.amount); + } + + public static void fixAllThoseFuckingFluidIDs() { + if(ForgeVersion.getBuildVersion()<1355){ + while(lock){try {Thread.sleep(1);} catch (InterruptedException e) {}} + lock=true; + for (GT_FluidStack tFluid : sAllFluidStacks) tFluid.fixFluidIDForFucksSake(); + for (Map tMap : GregTech_API.sFluidMappings) try {GT_Utility.reMap(tMap);} catch(Throwable e) {e.printStackTrace(GT_Log.err);} + lock=false;} + } + + public void fixFluidIDForFucksSake() { + if(ForgeVersion.getBuildVersion()<1355){ + int fluidID; + try {fluidID = this.getFluid().getID();} catch(Throwable e){System.err.println(e);} + try {fluidID = mFluid.getID();} catch(Throwable e) {fluidID = -1;}} + } + + @Override + public FluidStack copy() { + if(ForgeVersion.getBuildVersion()<1355){ + fixFluidIDForFucksSake();} + return new GT_FluidStack(this); + } +} \ No newline at end of file -- cgit v1.2.3