From 3491fe4e33a685f22e9dd13a8b82d9cb1a8e90a1 Mon Sep 17 00:00:00 2001 From: AlgorithmX2 Date: Fri, 9 May 2014 21:08:56 -0500 Subject: [PATCH] Did what I could with mj6 --- core/Registration.java | 7 +- integration/abstraction/IMJ.java | 10 --- integration/abstraction/IMJ5.java | 10 +++ integration/abstraction/IMJ6.java | 7 ++ .../abstraction/helpers/BaseMJperdition.java | 2 +- integration/modules/BC.java | 55 ++++++++++-- integration/modules/{MJ.java => MJ5.java} | 12 +-- integration/modules/MJ6.java | 26 ++++++ integration/modules/helpers/MJBattery.java | 7 ++ parts/p2p/PartP2PBCPower.java | 4 +- tile/powersink/IC2.java | 2 +- ...craftJoules.java => MinecraftJoules5.java} | 18 ++-- tile/powersink/MinecraftJoules6.java | 87 +++++++++++++++++++ transformer/asm/ASMIntegration.java | 3 +- 14 files changed, 213 insertions(+), 37 deletions(-) delete mode 100644 integration/abstraction/IMJ.java create mode 100644 integration/abstraction/IMJ5.java create mode 100644 integration/abstraction/IMJ6.java rename integration/modules/{MJ.java => MJ5.java} (64%) create mode 100644 integration/modules/MJ6.java create mode 100644 integration/modules/helpers/MJBattery.java rename tile/powersink/{MinecraftJoules.java => MinecraftJoules5.java} (78%) create mode 100644 tile/powersink/MinecraftJoules6.java diff --git a/core/Registration.java b/core/Registration.java index 9b18b0e86..d274fa577 100644 --- a/core/Registration.java +++ b/core/Registration.java @@ -476,12 +476,17 @@ public class Registration ph.registerNewLayer( "appeng.api.parts.layers.LayerIEnergySource", "ic2.api.energy.tile.IEnergySource" ); } - if ( AppEng.instance.isIntegrationEnabled( "MJ" ) ) + if ( AppEng.instance.isIntegrationEnabled( "MJ5" ) ) { ph.registerNewLayer( "appeng.api.parts.layers.LayerIPowerEmitter", "buildcraft.api.power.IPowerEmitter" ); ph.registerNewLayer( "appeng.api.parts.layers.LayerIPowerReceptor", "buildcraft.api.power.IPowerReceptor" ); } + if ( AppEng.instance.isIntegrationEnabled( "MJ6" ) ) + { + ph.registerNewLayer( "appeng.api.parts.layers.LayerIBatteryProvider", "buildcraft.api.mj.IBatteryProvider" ); + } + if ( AppEng.instance.isIntegrationEnabled( "RF" ) ) ph.registerNewLayer( "appeng.api.parts.layers.LayerIEnergyHandler", "cofh.api.energy.IEnergyHandler" ); diff --git a/integration/abstraction/IMJ.java b/integration/abstraction/IMJ.java deleted file mode 100644 index 732ab9387..000000000 --- a/integration/abstraction/IMJ.java +++ /dev/null @@ -1,10 +0,0 @@ -package appeng.integration.abstraction; - -import appeng.tile.powersink.MinecraftJoules; - -public interface IMJ -{ - - Object createPerdition(MinecraftJoules buildCraft); - -} diff --git a/integration/abstraction/IMJ5.java b/integration/abstraction/IMJ5.java new file mode 100644 index 000000000..d8e3833dc --- /dev/null +++ b/integration/abstraction/IMJ5.java @@ -0,0 +1,10 @@ +package appeng.integration.abstraction; + +import appeng.tile.powersink.MinecraftJoules5; + +public interface IMJ5 +{ + + Object createPerdition(MinecraftJoules5 buildCraft); + +} diff --git a/integration/abstraction/IMJ6.java b/integration/abstraction/IMJ6.java new file mode 100644 index 000000000..4ed7cb132 --- /dev/null +++ b/integration/abstraction/IMJ6.java @@ -0,0 +1,7 @@ +package appeng.integration.abstraction; + + +public interface IMJ6 +{ + +} diff --git a/integration/abstraction/helpers/BaseMJperdition.java b/integration/abstraction/helpers/BaseMJperdition.java index 3d6d04bfc..d92815e76 100644 --- a/integration/abstraction/helpers/BaseMJperdition.java +++ b/integration/abstraction/helpers/BaseMJperdition.java @@ -12,7 +12,7 @@ public abstract class BaseMJperdition extends AETileEventHandler super( TileEventType.TICK, TileEventType.WORLD_NBT ); } - @Method(iname = "MJ") + @Method(iname = "MJ5") public abstract PowerReceiver getPowerReceiver(); public abstract double useEnergy(float f, float requred, boolean b); diff --git a/integration/modules/BC.java b/integration/modules/BC.java index 54c16083e..0c468a5cd 100644 --- a/integration/modules/BC.java +++ b/integration/modules/BC.java @@ -109,7 +109,8 @@ public class BC extends BaseModule implements IBC { if ( is == null ) return false; - return is.getItem() instanceof ItemFacade; + + return is.getItem() instanceof ItemFacade && ItemFacade.getType( is ) == ItemFacade.TYPE_BASIC; } @Override @@ -189,7 +190,7 @@ public class BC extends BaseModule implements IBC addFacade( b.blockQuartz.stack( 1 ) ); addFacade( b.blockQuartzChiseled.stack( 1 ) ); addFacade( b.blockQuartzPiller.stack( 1 ) ); - + Block skyStone = b.blockSkyStone.block(); if ( skyStone != null ) { @@ -211,8 +212,27 @@ public class BC extends BaseModule implements IBC @Override public IFacadePart createFacadePart(Block blk, int meta, ForgeDirection side) { - ItemStack fs = ItemFacade.getStack( blk, meta ); - return new FacadePart( fs, side ); + try + { + ItemStack fs = ItemFacade.getFacade( blk, meta ); + return new FacadePart( fs, side ); + } + catch (Throwable t) + { + + } + + try + { + ItemStack fs = ItemFacade.getStack( blk, meta ); + return new FacadePart( fs, side ); + } + catch (Throwable t) + { + + } + + return null; } @Override @@ -224,8 +244,31 @@ public class BC extends BaseModule implements IBC @Override public ItemStack getTextureForFacade(ItemStack facade) { - Block blk = ItemFacade.getBlock( facade ); - return new ItemStack( blk, 1, ItemFacade.getMetaData( facade ) ); + try + { + Block blk[] = ItemFacade.getBlocks( facade ); + int meta[] = ItemFacade.getMetaValues( facade ); + if ( blk == null || blk.length < 1 ) + return null; + + return new ItemStack( blk[0], 1, meta[0] ); + } + catch (Throwable t) + { + + } + + try + { + Block blk = ItemFacade.getBlock( facade ); + return new ItemStack( blk, 1, ItemFacade.getMetaData( facade ) ); + } + catch (Throwable t) + { + + } + + return null; } @Override diff --git a/integration/modules/MJ.java b/integration/modules/MJ5.java similarity index 64% rename from integration/modules/MJ.java rename to integration/modules/MJ5.java index f9d0b7ece..7066c3a75 100644 --- a/integration/modules/MJ.java +++ b/integration/modules/MJ5.java @@ -1,22 +1,22 @@ package appeng.integration.modules; import appeng.integration.BaseModule; -import appeng.integration.abstraction.IMJ; +import appeng.integration.abstraction.IMJ5; import appeng.integration.modules.helpers.MJPerdition; -import appeng.tile.powersink.MinecraftJoules; +import appeng.tile.powersink.MinecraftJoules5; import buildcraft.api.power.IPowerReceptor; -public class MJ extends BaseModule implements IMJ +public class MJ5 extends BaseModule implements IMJ5 { - public static MJ instance; + public static MJ5 instance; - public MJ() { + public MJ5() { TestClass( IPowerReceptor.class ); } @Override - public Object createPerdition(MinecraftJoules buildCraft) + public Object createPerdition(MinecraftJoules5 buildCraft) { if ( buildCraft instanceof IPowerReceptor ) return new MJPerdition( buildCraft ); diff --git a/integration/modules/MJ6.java b/integration/modules/MJ6.java new file mode 100644 index 000000000..7907b7aa7 --- /dev/null +++ b/integration/modules/MJ6.java @@ -0,0 +1,26 @@ +package appeng.integration.modules; + +import appeng.integration.BaseModule; +import appeng.integration.abstraction.IMJ6; +import buildcraft.api.mj.IBatteryObject; + +public class MJ6 extends BaseModule implements IMJ6 +{ + + public static MJ6 instance; + + public MJ6() { + TestClass( IBatteryObject.class ); + } + + @Override + public void Init() throws Throwable + { + } + + @Override + public void PostInit() throws Throwable + { + } + +} diff --git a/integration/modules/helpers/MJBattery.java b/integration/modules/helpers/MJBattery.java new file mode 100644 index 000000000..62c72f7e6 --- /dev/null +++ b/integration/modules/helpers/MJBattery.java @@ -0,0 +1,7 @@ +package appeng.integration.modules.helpers; + + +public class MJBattery +{ + +} diff --git a/parts/p2p/PartP2PBCPower.java b/parts/p2p/PartP2PBCPower.java index fd5db110d..e6f6eab1d 100644 --- a/parts/p2p/PartP2PBCPower.java +++ b/parts/p2p/PartP2PBCPower.java @@ -25,7 +25,7 @@ import buildcraft.api.power.PowerHandler.Type; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -@Interface(iface = "buildcraft.api.power.IPowerReceptor", iname = "BC") +@Interface(iface = "buildcraft.api.power.IPowerReceptor", iname = "MJ5") public class PartP2PBCPower extends PartP2PTunnel implements IPowerReceptor, IGridTickable { @@ -39,7 +39,7 @@ public class PartP2PBCPower extends PartP2PTunnel implements IPo public PartP2PBCPower(ItemStack is) { super( is ); - if ( !AppEng.instance.isIntegrationEnabled( "MJ" ) ) + if ( !AppEng.instance.isIntegrationEnabled( "MJ5" ) && !AppEng.instance.isIntegrationEnabled( "MJ6" ) ) throw new RuntimeException( "MJ Not installed!" ); pp = new PowerHandler( this, Type.MACHINE ); diff --git a/tile/powersink/IC2.java b/tile/powersink/IC2.java index 63dc98b8b..2dbc7cf53 100644 --- a/tile/powersink/IC2.java +++ b/tile/powersink/IC2.java @@ -13,7 +13,7 @@ import appeng.transformer.annotations.integration.Interface; import appeng.util.Platform; @Interface(iname = "IC2", iface = "ic2.api.energy.tile.IEnergySink") -public abstract class IC2 extends MinecraftJoules implements IEnergySink +public abstract class IC2 extends MinecraftJoules5 implements IEnergySink { boolean isInIC2 = false; diff --git a/tile/powersink/MinecraftJoules.java b/tile/powersink/MinecraftJoules5.java similarity index 78% rename from tile/powersink/MinecraftJoules.java rename to tile/powersink/MinecraftJoules5.java index c1bd9538f..001c77aa0 100644 --- a/tile/powersink/MinecraftJoules.java +++ b/tile/powersink/MinecraftJoules5.java @@ -4,7 +4,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; import appeng.api.config.PowerUnits; import appeng.core.AppEng; -import appeng.integration.abstraction.IMJ; +import appeng.integration.abstraction.IMJ5; import appeng.integration.abstraction.helpers.BaseMJperdition; import appeng.transformer.annotations.integration.Interface; import appeng.transformer.annotations.integration.Method; @@ -13,20 +13,20 @@ import buildcraft.api.power.IPowerReceptor; import buildcraft.api.power.PowerHandler; import buildcraft.api.power.PowerHandler.PowerReceiver; -@Interface(iname = "BC", iface = "buildcraft.api.power.IPowerReceptor") -public abstract class MinecraftJoules extends AERootPoweredTile implements IPowerReceptor +@Interface(iname = "MJ5", iface = "buildcraft.api.power.IPowerReceptor") +public abstract class MinecraftJoules5 extends AERootPoweredTile implements IPowerReceptor { BaseMJperdition bcPowerWrapper; - public MinecraftJoules() { + public MinecraftJoules5() { if ( Platform.isServer() ) { try { - if ( AppEng.instance.isIntegrationEnabled( "MJ" ) ) + if ( AppEng.instance.isIntegrationEnabled( "MJ5" ) ) { - IMJ mjIntegration = (IMJ) AppEng.instance.getIntegration( "MJ" ); + IMJ5 mjIntegration = (IMJ5) AppEng.instance.getIntegration( "MJ5" ); if ( mjIntegration != null ) { addNewHandler( bcPowerWrapper = (BaseMJperdition) mjIntegration.createPerdition( this ) ); @@ -43,7 +43,7 @@ public abstract class MinecraftJoules extends AERootPoweredTile implements IPowe } @Override - @Method(iname = "BC") + @Method(iname = "MJ5") final public PowerReceiver getPowerReceiver(ForgeDirection side) { if ( internalCanAcceptPower && getPowerSides().contains( side ) && bcPowerWrapper != null ) @@ -52,7 +52,7 @@ public abstract class MinecraftJoules extends AERootPoweredTile implements IPowe } @Override - @Method(iname = "BC") + @Method(iname = "MJ5") final public void doWork(PowerHandler workProvider) { float requred = (float) getExternalPowerDemand( PowerUnits.MJ ); @@ -62,7 +62,7 @@ public abstract class MinecraftJoules extends AERootPoweredTile implements IPowe } @Override - @Method(iname = "BC") + @Method(iname = "MJ5") final public World getWorld() { return worldObj; diff --git a/tile/powersink/MinecraftJoules6.java b/tile/powersink/MinecraftJoules6.java new file mode 100644 index 000000000..d0f2a5107 --- /dev/null +++ b/tile/powersink/MinecraftJoules6.java @@ -0,0 +1,87 @@ +package appeng.tile.powersink; + +import appeng.api.config.PowerUnits; +import appeng.transformer.annotations.integration.Interface; +import appeng.transformer.annotations.integration.InterfaceList; +import appeng.transformer.annotations.integration.Method; +import buildcraft.api.mj.IBatteryObject; +import buildcraft.api.mj.IBatteryProvider; + +@InterfaceList(value = { @Interface(iname = "MJ6", iface = "buildcraft.api.mj.IBatteryProvider"), + @Interface(iname = "MJ6", iface = "buildcraft.api.mj.IBatteryObject") }) +public abstract class MinecraftJoules6 extends AERootPoweredTile implements IBatteryProvider, IBatteryObject +{ + + @Override + @Method(iname = "MJ6") + public double getEnergyRequested() + { + return getExternalPowerDemand( PowerUnits.MJ ); + } + + @Override + @Method(iname = "MJ6") + public double addEnergy(double amount) + { + double overflow = PowerUnits.MJ.convertTo( PowerUnits.AE, injectExternalPower( PowerUnits.MJ, amount ) ); + return amount - overflow; + } + + @Override + @Method(iname = "MJ6") + public double addEnergy(double amount, boolean ignoreCycleLimit) + { + double overflow = PowerUnits.MJ.convertTo( PowerUnits.AE, injectExternalPower( PowerUnits.MJ, amount ) ); + return amount - overflow; + } + + @Override + @Method(iname = "MJ6") + public double getEnergyStored() + { + return PowerUnits.AE.convertTo( PowerUnits.MJ, internalCurrentPower ); + } + + @Override + @Method(iname = "MJ6") + public void setEnergyStored(double mj) + { + internalCurrentPower = PowerUnits.MJ.convertTo( PowerUnits.AE, mj ); + } + + @Override + @Method(iname = "MJ6") + public double maxCapacity() + { + return PowerUnits.AE.convertTo( PowerUnits.MJ, internalMaxPower ); + } + + @Override + @Method(iname = "MJ6") + public double minimumConsumption() + { + return 0.1; + } + + @Override + @Method(iname = "MJ6") + public double maxReceivedPerCycle() + { + return 999999.0; + } + + @Override + @Method(iname = "MJ6") + public IBatteryObject reconfigure(double maxCapacity, double maxReceivedPerCycle, double minimumConsumption) + { + return getMjBattery(); + } + + @Override + @Method(iname = "MJ6") + public IBatteryObject getMjBattery() + { + return this; + } + +} diff --git a/transformer/asm/ASMIntegration.java b/transformer/asm/ASMIntegration.java index 0ebfef173..7e84ed241 100644 --- a/transformer/asm/ASMIntegration.java +++ b/transformer/asm/ASMIntegration.java @@ -35,7 +35,8 @@ public class ASMIntegration implements IClassTransformer // integrationModules.add( IntegrationSide.BOTH, "Thermal Expansion", "ThermalExpansion", "TE" ); // integrationModules.add( IntegrationSide.BOTH, "Mystcraft", "Mystcraft", "Mystcraft" ); integrationModules.add( IntegrationSide.BOTH, "BuildCraft", "BuildCraft|Silicon", "BC" ); - integrationModules.add( IntegrationSide.BOTH, "BuildCraft Power", null, "MJ" ); + integrationModules.add( IntegrationSide.BOTH, "BuildCraft5 Power", null, "MJ5" ); + integrationModules.add( IntegrationSide.BOTH, "BuildCraft6 Power", null, "MJ6" ); integrationModules.add( IntegrationSide.BOTH, "RedstoneFlux Power", null, "RF" ); // integrationModules.add( IntegrationSide.BOTH, "Greg Tech", "gregtech_addon", "GT" ); // integrationModules.add( IntegrationSide.BOTH, "Universal Electricity", null, "UE" );