aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/xmod
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus/xmod')
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_AirIntake.java41
-rw-r--r--src/Java/gtPlusPlus/xmod/sol/HANDLER_SpiceOfLife.java61
2 files changed, 101 insertions, 1 deletions
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_AirIntake.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_AirIntake.java
index 4e6e2bc35b..3a0c101375 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_AirIntake.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_AirIntake.java
@@ -1,6 +1,8 @@
package gtPlusPlus.xmod.gregtech.api.metatileentity.implementations;
import net.minecraftforge.common.util.ForgeDirection;
+import net.minecraftforge.fluids.Fluid;
+import net.minecraftforge.fluids.FluidStack;
import net.minecraft.world.World;
import net.minecraft.item.ItemStack;
@@ -196,6 +198,20 @@ public class GT_MetaTileEntity_Hatch_AirIntake extends GT_MetaTileEntity_Hatch_I
public boolean canTankBeEmptied() {
return true;
}
+
+ private static Fluid AIR;
+
+ public boolean isAirInHatch() {
+ if (this.mFluid != null) {
+ if (AIR == null) {
+ AIR = FluidUtils.getAir(1).getFluid();
+ }
+ if (AIR == this.mFluid.getFluid()) {
+ return true;
+ }
+ }
+ return false;
+ }
public boolean addAirToHatch(long aTick) {
if (!this.getBaseMetaTileEntity().getAirAtSide(this.getBaseMetaTileEntity().getFrontFacing())) {
@@ -209,6 +225,9 @@ public class GT_MetaTileEntity_Hatch_AirIntake extends GT_MetaTileEntity_Hatch_I
return false;
}
else {
+ if (!isAirInHatch()) {
+ return false;
+ }
if (this.mFluid != null && a1) {
this.mFluid.amount += 1000;
return true;
@@ -244,6 +263,26 @@ public class GT_MetaTileEntity_Hatch_AirIntake extends GT_MetaTileEntity_Hatch_I
@Override
public boolean doesFillContainers() {
- return true;
+ return false;
+ }
+
+ @Override
+ public int fill(FluidStack aFluid, boolean doFill) {
+ return 0;
+ }
+
+ @Override
+ public boolean canFill(ForgeDirection aSide, Fluid aFluid) {
+ return false;
+ }
+
+ @Override
+ public int fill(ForgeDirection arg0, FluidStack arg1, boolean arg2) {
+ return 0;
+ }
+
+ @Override
+ public int fill_default(ForgeDirection aSide, FluidStack aFluid, boolean doFill) {
+ return 0;
}
} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/xmod/sol/HANDLER_SpiceOfLife.java b/src/Java/gtPlusPlus/xmod/sol/HANDLER_SpiceOfLife.java
new file mode 100644
index 0000000000..11cc5da89c
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/sol/HANDLER_SpiceOfLife.java
@@ -0,0 +1,61 @@
+package gtPlusPlus.xmod.sol;
+
+import java.lang.reflect.Constructor;
+
+import cpw.mods.fml.common.registry.GameRegistry;
+import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.core.lib.LoadedMods;
+import gtPlusPlus.core.util.reflect.ReflectionUtils;
+import net.minecraft.item.Item;
+
+public class HANDLER_SpiceOfLife {
+
+ public static final void preInit() {
+ if (LoadedMods.SpiceOfLife) {
+ //Add a new Lunch Box with a reasonable amount of slots
+ tryRegisterNewLunchBox("foodcrate", 12);
+ }
+ }
+
+ public static final void init() {
+ if (LoadedMods.SpiceOfLife) {
+
+ }
+ }
+
+ public static final void postInit() {
+ if (LoadedMods.SpiceOfLife) {
+
+ }
+ }
+
+ private static boolean tryRegisterNewLunchBox(String aItemName, int aSlots) {
+ Item aNewBox = getNewLunchBox(aItemName, aSlots);
+ if (aNewBox != null) {
+ GameRegistry.registerItem(aNewBox, aItemName);
+ Logger.INFO("[Spice of Life] Registered "+aItemName+" as a new food container.");
+ return true;
+ }
+ return false;
+ }
+
+ private static Item getNewLunchBox(String aItemName, int aSlots) {
+ Class aItemFoodContainer = ReflectionUtils.getClass("squeek.spiceoflife.items.ItemFoodContainer");
+ if (aItemFoodContainer != null) {
+ Constructor aItemFoodContainerConstructor = ReflectionUtils.getConstructor(aItemFoodContainer, new Class[] {String.class, int.class});
+ if (aItemFoodContainerConstructor != null) {
+ Object aNewObject = ReflectionUtils.createNewInstanceFromConstructor(aItemFoodContainerConstructor, new Object[] {aItemName, aSlots});
+ if (aNewObject instanceof Item) {
+ Item aNewInstance = (Item) aNewObject;
+ return aNewInstance;
+ }
+ }
+ }
+ return null;
+ }
+
+
+
+
+
+}