aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/loaders
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/loaders')
-rw-r--r--src/main/java/gregtech/loaders/postload/GT_AE2EnergyTunnelLoader.java28
-rw-r--r--src/main/java/gregtech/loaders/postload/PartP2PGTPower.java84
-rw-r--r--src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java17
3 files changed, 125 insertions, 4 deletions
diff --git a/src/main/java/gregtech/loaders/postload/GT_AE2EnergyTunnelLoader.java b/src/main/java/gregtech/loaders/postload/GT_AE2EnergyTunnelLoader.java
new file mode 100644
index 0000000000..bdaa43c408
--- /dev/null
+++ b/src/main/java/gregtech/loaders/postload/GT_AE2EnergyTunnelLoader.java
@@ -0,0 +1,28 @@
+package gregtech.loaders.postload;
+
+import appeng.items.parts.PartType;
+import gregtech.GT_Mod;
+import gregtech.api.util.GT_Log;
+
+import java.lang.reflect.Field;
+
+public class GT_AE2EnergyTunnelLoader implements Runnable {
+ @Override
+ public void run() {
+ if (GT_Mod.gregtechproxy.mAE2Integration) {
+ try {
+ load();
+ } catch (Throwable e) {
+ GT_Log.out.println("Failed to load P2P tunnel for GT electricity");
+ e.printStackTrace(GT_Log.out);
+ }
+ }
+ }
+
+ public void load() throws Throwable {
+ Field f = PartType.class.getDeclaredField("myPart");
+ f.setAccessible(true);
+ f.set(PartType.P2PTunnelEU, PartP2PGTPower.class);
+ }
+}
+
diff --git a/src/main/java/gregtech/loaders/postload/PartP2PGTPower.java b/src/main/java/gregtech/loaders/postload/PartP2PGTPower.java
new file mode 100644
index 0000000000..602b481620
--- /dev/null
+++ b/src/main/java/gregtech/loaders/postload/PartP2PGTPower.java
@@ -0,0 +1,84 @@
+package gregtech.loaders.postload;
+
+import appeng.api.networking.IGridNode;
+import appeng.api.networking.ticking.IGridTickable;
+import appeng.api.networking.ticking.TickRateModulation;
+import appeng.api.networking.ticking.TickingRequest;
+import appeng.parts.p2p.PartP2PIC2Power;
+import gregtech.api.interfaces.tileentity.IEnergyConnected;
+import gregtech.api.util.GT_Utility;
+import net.minecraft.item.ItemStack;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
+
+public class PartP2PGTPower extends PartP2PIC2Power implements IGridTickable {
+ public PartP2PGTPower(ItemStack is) {
+ super(is);
+ }
+
+ public final World getWorld() {
+ return tile.getWorldObj();
+ }
+
+ public final int getXCoord() {
+ return tile.xCoord;
+ }
+
+ public final short getYCoord() {
+ return (short) tile.yCoord;
+ }
+
+ public final int getZCoord() {
+ return tile.zCoord;
+ }
+
+ public final int getOffsetX(byte aSide, int aMultiplier) {
+ return getXCoord() + ForgeDirection.getOrientation(aSide).offsetX * aMultiplier;
+ }
+
+ public final short getOffsetY(byte aSide, int aMultiplier) {
+ return (short) (getYCoord() + ForgeDirection.getOrientation(aSide).offsetY * aMultiplier);
+ }
+
+ public final int getOffsetZ(byte aSide, int aMultiplier) {
+ return getZCoord() + ForgeDirection.getOrientation(aSide).offsetZ * aMultiplier;
+ }
+
+ public final TileEntity getTileEntity(int aX, int aY, int aZ) {
+ return getWorld().getTileEntity(aX, aY, aZ);
+ }
+
+ public final TileEntity getTileEntityAtSide(byte aSide) {
+ int tX = getOffsetX(aSide, 1), tY = getOffsetY(aSide, 1), tZ = getOffsetZ(aSide, 1);
+ return getWorld().getTileEntity(tX, tY, tZ);
+ }
+
+ public boolean outputEnergy() {
+ if (getOfferedEnergy() == 0) {
+ return false;
+ }
+ TileEntity t = getTileEntityAtSide((byte) side.ordinal());
+ if (t instanceof IEnergyConnected) {
+ long voltage = 8 << (getSourceTier() * 2);
+ if (voltage > getOfferedEnergy()) {
+ voltage = (long) getOfferedEnergy();
+ }
+ if (((IEnergyConnected) t).injectEnergyUnits(GT_Utility.getOppositeSide(side.ordinal()), voltage, 1) > 0) {
+ drawEnergy(voltage);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public TickingRequest getTickingRequest(IGridNode iGridNode) {
+ return new TickingRequest(1, 20, false, false);
+ }
+
+ @Override
+ public TickRateModulation tickingRequest(IGridNode iGridNode, int i) {
+ return outputEnergy() ? TickRateModulation.FASTER : TickRateModulation.SLOWER;
+ }
+}
diff --git a/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java b/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java
index 760f796ecf..71fa9e0eae 100644
--- a/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java
+++ b/src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java
@@ -357,8 +357,8 @@ public class GT_Loader_MetaTileEntities implements Runnable {
GT_ModHandler.addCraftingRecipe(ItemList.Hatch_AutoMaintenance.get(1L, new Object[0]), bitsd, new Object[]{"CHC", "AMA", "CHC", 'M', ItemList.Hull_IV,'H',ItemList.Hatch_Maintenance,'A',ItemList.Robot_Arm_IV,'C',OrePrefixes.circuit.get(Materials.Master)});
- ItemList.Hatch_DataAccess_EV.set(new GT_MetaTileEntity_Hatch_DataAccess(131, "hatch.dataaccess", "Data Access Hatch", 4).getStackForm(1L));
- ItemList.Hatch_DataAccess_LuV.set(new GT_MetaTileEntity_Hatch_DataAccess(132, "hatch.dataaccess.adv", "Advanced Data Access Hatch", 6).getStackForm(1L));
+ ItemList.Hatch_DataAccess_EV.set(new GT_MetaTileEntity_Hatch_DataAccess(131, "hatch.dataaccess", "Data Access Hatch", 4).getStackForm(1L));
+ ItemList.Hatch_DataAccess_LuV.set(new GT_MetaTileEntity_Hatch_DataAccess(132, "hatch.dataaccess.adv", "Advanced Data Access Hatch", 6).getStackForm(1L));
GT_ModHandler.addCraftingRecipe(ItemList.Hatch_DataAccess_EV.get(1L, new Object[0]), bitsd, new Object[]{"COC", "OMO", "COC", 'M', ItemList.Hull_EV, 'O', ItemList.Tool_DataStick , 'C' ,OrePrefixes.circuit.get(Materials.Elite)});
GT_ModHandler.addCraftingRecipe(ItemList.Hatch_DataAccess_LuV.get(1L, new Object[0]), bitsd, new Object[]{"COC", "OMO", "COC", 'M', ItemList.Hull_LuV, 'O', ItemList.Tool_DataOrb , 'C' ,OrePrefixes.circuit.get(Materials.Ultimate)});
@@ -1231,8 +1231,17 @@ public class GT_Loader_MetaTileEntities implements Runnable {
GT_ModHandler.addCraftingRecipe(ItemList.Seismic_Prospector.get(1L, new Object[0]), bitsd, new Object[]{"WWW", "EME", "CCC", 'M', ItemList.Hull_Steel, 'W', OrePrefixes.plateDouble.get(Materials.Steel), 'E', OrePrefixes.circuit.get(Materials.Basic), 'C', ItemList.Sensor_LV});
GT_ModHandler.addCraftingRecipe(ItemList.Seismic_Prospector_Adv.get(1L, new Object[0]), bitsd, new Object[] { "WWW", "EME", "CCC", 'M', ItemList.Hull_EV, 'W', OrePrefixes.plateDouble.get(Materials.VanadiumSteel),'E', OrePrefixes.circuit.get(Materials.Data), 'C', ItemList.Sensor_EV });
- ItemList.OilDrill.set(new GT_MetaTileEntity_OilDrill(1157, "multimachine.oildrill", "Oil Drilling Rig").getStackForm(1));
- GT_ModHandler.addCraftingRecipe(ItemList.OilDrill.get(1L, new Object[0]), bitsd, new Object[]{"WWW", "EME", "CCC", 'M', ItemList.Hull_MV, 'W', OrePrefixes.frameGt.get(Materials.Steel), 'E', OrePrefixes.circuit.get(Materials.Good), 'C', ItemList.Electric_Motor_MV});
+ ItemList.OilDrill1.set(new GT_MetaTileEntity_OilDrill1(1157, "multimachine.oildrill1", "Oil Drilling Rig").getStackForm(1));
+ ItemList.OilDrill2.set(new GT_MetaTileEntity_OilDrill2(133, "multimachine.oildrill2", "Oil Drilling Rig II").getStackForm(1));
+ ItemList.OilDrill3.set(new GT_MetaTileEntity_OilDrill3(134, "multimachine.oildrill3", "Oil Drilling Rig III").getStackForm(1));
+ GT_ModHandler.addCraftingRecipe(ItemList.OilDrill1.get(1L, new Object[0]), bitsd, new Object[]{"WWW", "EME", "CCC", 'M', ItemList.Hull_MV, 'W', OrePrefixes.frameGt.get(Materials.Steel), 'E', OrePrefixes.circuit.get(Materials.Good), 'C', ItemList.Electric_Motor_MV});
+ GT_ModHandler.addCraftingRecipe(ItemList.OilDrill1.get(1L, new Object[0]), bitsd, new Object[]{"WWW", "EME", "CCC", 'M', ItemList.OilDrill1, 'W', OrePrefixes.frameGt.get(Materials.Titanium), 'E', OrePrefixes.circuit.get(Materials.Advanced), 'C', ItemList.Electric_Motor_HV});
+ GT_ModHandler.addCraftingRecipe(ItemList.OilDrill1.get(1L, new Object[0]), bitsd, new Object[]{"WWW", "EME", "CCC", 'M', ItemList.OilDrill2, 'W', OrePrefixes.frameGt.get(Materials.TungstenSteel), 'E', OrePrefixes.circuit.get(Materials.Data), 'C', ItemList.Electric_Motor_EV});
+
+ ItemList.ConcreteBackfiller1.set(new GT_MetaTileEntity_ConcreteBackfiller1(135, "multimachine.concretebackfiller1", "Concrete Backfiller").getStackForm(1));
+ ItemList.ConcreteBackfiller2.set(new GT_MetaTileEntity_ConcreteBackfiller2(136, "multimachine.concretebackfiller3", "Advanced Concrete Backfiller").getStackForm(1));
+ GT_ModHandler.addCraftingRecipe(ItemList.ConcreteBackfiller1.get(1L, new Object[0]), bitsd, new Object[]{"WPW", "EME", "CQC", 'M', ItemList.Hull_MV, 'W', OrePrefixes.frameGt.get(Materials.Steel), 'E', OrePrefixes.circuit.get(Materials.Good), 'C', ItemList.Electric_Motor_MV, 'P', OrePrefixes.pipeLarge.get(Materials.Steel), 'Q', ItemList.Electric_Pump_MV});
+ GT_ModHandler.addCraftingRecipe(ItemList.ConcreteBackfiller2.get(1L, new Object[0]), bitsd, new Object[]{"WPW", "EME", "CQC", 'M', ItemList.ConcreteBackfiller1, 'W', OrePrefixes.frameGt.get(Materials.Titanium), 'E', OrePrefixes.circuit.get(Materials.Data), 'C', ItemList.Electric_Motor_EV, 'P', OrePrefixes.pipeLarge.get(Materials.Steel), 'Q', ItemList.Electric_Pump_EV});
ItemList.OreDrill1.set(new GT_MetaTileEntity_OreDrillingPlant1(1158, "multimachine.oredrill1", "Ore Drilling Plant").getStackForm(1));
GT_ModHandler.addCraftingRecipe(ItemList.OreDrill1.get(1L), bitsd, new Object[]{"WWW", "EME", "CCC", 'M', ItemList.Hull_EV, 'W', OrePrefixes.frameGt.get(Materials.Titanium), 'E', OrePrefixes.circuit.get(Materials.Data), 'C', ItemList.Electric_Motor_EV});