diff --git a/integration/IntegrationType.java b/integration/IntegrationType.java index f6fdbcd46..02d1ec9ce 100644 --- a/integration/IntegrationType.java +++ b/integration/IntegrationType.java @@ -40,7 +40,9 @@ public enum IntegrationType Mekanism(IntegrationSide.BOTH, "Mekanism", "Mekanism"), - ImmibisMicroblocks(IntegrationSide.BOTH, "ImmibisMicroblocks", "ImmibisMicroblocks"); + ImmibisMicroblocks(IntegrationSide.BOTH, "ImmibisMicroblocks", "ImmibisMicroblocks"), + + BetterStorage(IntegrationSide.BOTH, "BetterStorage", "betterstorage" ); public final IntegrationSide side; public final String dspName; diff --git a/integration/abstraction/IBS.java b/integration/abstraction/IBetterStorage.java similarity index 83% rename from integration/abstraction/IBS.java rename to integration/abstraction/IBetterStorage.java index 437372488..7acd679d8 100644 --- a/integration/abstraction/IBS.java +++ b/integration/abstraction/IBetterStorage.java @@ -3,7 +3,7 @@ package appeng.integration.abstraction; import net.minecraftforge.common.util.ForgeDirection; import appeng.util.InventoryAdaptor; -public interface IBS +public interface IBetterStorage { boolean isStorageCrate(Object te); diff --git a/integration/modules/dead/BS.java b/integration/modules/BetterStorage.java similarity index 68% rename from integration/modules/dead/BS.java rename to integration/modules/BetterStorage.java index ace05046d..ec095bd70 100644 --- a/integration/modules/dead/BS.java +++ b/integration/modules/BetterStorage.java @@ -1,18 +1,18 @@ -package appeng.integration.modules.dead; +package appeng.integration.modules; import net.mcft.copy.betterstorage.api.ICrateStorage; import net.minecraftforge.common.util.ForgeDirection; import appeng.api.AEApi; import appeng.integration.IIntegrationModule; -import appeng.integration.abstraction.IBS; -import appeng.integration.modules.helpers.dead.BSCrateHandler; -import appeng.integration.modules.helpers.dead.BSCrateStorageAdaptor; +import appeng.integration.abstraction.IBetterStorage; +import appeng.integration.modules.helpers.BSCrateHandler; +import appeng.integration.modules.helpers.BSCrateStorageAdaptor; import appeng.util.InventoryAdaptor; -public class BS implements IIntegrationModule, IBS +public class BetterStorage implements IIntegrationModule, IBetterStorage { - public static BS instance; + public static BetterStorage instance; @Override public boolean isStorageCrate(Object te) diff --git a/integration/modules/dead/Mekanism.java b/integration/modules/dead/Mekanism.java deleted file mode 100644 index 9e4288abb..000000000 --- a/integration/modules/dead/Mekanism.java +++ /dev/null @@ -1,41 +0,0 @@ -package appeng.integration.modules.dead; - -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import appeng.api.AEApi; -import appeng.integration.IIntegrationModule; - -public class Mekanism implements IIntegrationModule -{ - - public static Mekanism instance; - - @Override - public void Init() - { - // TODO Auto-generated method stub - - } - - @Override - public void PostInit() - { - // certus quartz - crusher( AEApi.instance().materials().materialCertusQuartzCrystal.stack( 1 ), - AEApi.instance().materials().materialCertusQuartzDust.stack( 1 ) ); - - crusher( AEApi.instance().materials().materialCertusQuartzCrystalCharged.stack( 1 ), - AEApi.instance().materials().materialCertusQuartzDust.stack( 1 ) ); - - // fluix - crusher( AEApi.instance().materials().materialFluixCrystal.stack( 1 ), AEApi.instance().materials().materialFluixDust.stack( 1 ) ); - - // nether quartz - crusher( new ItemStack( Item.netherQuartz ), AEApi.instance().materials().materialNetherQuartzDust.stack( 1 ) ); - } - - private void crusher(ItemStack input, ItemStack output) - { - mekanism.api.RecipeHelper.addCrusherRecipe( input, output ); - } -} diff --git a/integration/modules/dead/TE.java b/integration/modules/dead/TE.java deleted file mode 100644 index e5f08662f..000000000 --- a/integration/modules/dead/TE.java +++ /dev/null @@ -1,78 +0,0 @@ -package appeng.integration.modules; - -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; -import appeng.api.AEApi; -import appeng.integration.BaseModule; -import appeng.integration.IIntegrationModule; -import appeng.integration.abstraction.ITE; -import cpw.mods.fml.common.event.FMLInterModComms; - -public class TE extends BaseModule implements IIntegrationModule, ITE -{ - - public static TE instance; - - @Override - public void Init() - { - - } - - @Override - public void PostInit() - { - // certus quartz - pulverizer( AEApi.instance().materials().materialCertusQuartzCrystal.stack( 1 ), AEApi.instance().materials().materialCertusQuartzDust.stack( 1 ) ); - - pulverizer( AEApi.instance().materials().materialCertusQuartzCrystalCharged.stack( 1 ), AEApi.instance().materials().materialCertusQuartzDust.stack( 1 ) ); - - // fluix - pulverizer( AEApi.instance().materials().materialFluixCrystal.stack( 1 ), AEApi.instance().materials().materialFluixDust.stack( 1 ) ); - - // nether quartz - pulverizer( new ItemStack( Item.netherQuartz ), AEApi.instance().materials().materialNetherQuartzDust.stack( 1 ) ); - } - - private void pulverizer(ItemStack in, ItemStack out) - { - NBTTagCompound toSend = new NBTTagCompound(); - toSend.setInteger( "energy", 3200 ); - toSend.setTag( "input", new NBTTagCompound() ); - toSend.setTag( "primaryOutput", new NBTTagCompound() ); - - in.writeToNBT( toSend.getCompoundTag( "input" ) ); - out.writeToNBT( toSend.getCompoundTag( "primaryOutput" ) ); - FMLInterModComms.sendMessage( "ThermalExpansion", "PulverizerRecipe", toSend ); - } - - @Override - public ItemStack addItemsToPipe(TileEntity ad, ItemStack itemstack, ForgeDirection dir) - { - return ((IItemConduit) ad).insertItem( dir, itemstack ); - } - - @Override - public void addPulverizerRecipe(int i, ItemStack blkQuartz, ItemStack blockDust) - { - // TODO Auto-generated method stub - - } - - @Override - public void addPulverizerRecipe(int i, ItemStack blkQuartzOre, ItemStack matQuartz, ItemStack matQuartzDust) - { - // TODO Auto-generated method stub - - } - - @Override - public boolean isPipe(TileEntity te, ForgeDirection opposite) - { - return te instanceof IItemConduit; - } - -} diff --git a/integration/modules/helpers/dead/BSCrate.java b/integration/modules/helpers/BSCrate.java similarity index 97% rename from integration/modules/helpers/dead/BSCrate.java rename to integration/modules/helpers/BSCrate.java index 5140eaab0..bdcbe8320 100644 --- a/integration/modules/helpers/dead/BSCrate.java +++ b/integration/modules/helpers/BSCrate.java @@ -1,4 +1,4 @@ -package appeng.integration.modules.helpers.dead; +package appeng.integration.modules.helpers; import net.mcft.copy.betterstorage.api.ICrateStorage; import net.minecraft.item.ItemStack; diff --git a/integration/modules/helpers/dead/BSCrateHandler.java b/integration/modules/helpers/BSCrateHandler.java similarity index 65% rename from integration/modules/helpers/dead/BSCrateHandler.java rename to integration/modules/helpers/BSCrateHandler.java index d7524c8dc..45220ff50 100644 --- a/integration/modules/helpers/dead/BSCrateHandler.java +++ b/integration/modules/helpers/BSCrateHandler.java @@ -1,8 +1,9 @@ -package appeng.integration.modules.helpers.dead; +package appeng.integration.modules.helpers; import net.mcft.copy.betterstorage.api.ICrateStorage; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; +import appeng.api.networking.security.BaseActionSource; import appeng.api.storage.IExternalStorageHandler; import appeng.api.storage.IMEInventory; import appeng.api.storage.StorageChannel; @@ -11,15 +12,15 @@ public class BSCrateHandler implements IExternalStorageHandler { @Override - public boolean canHandle(TileEntity te, ForgeDirection d, StorageChannel chan) + public boolean canHandle(TileEntity te, ForgeDirection d, StorageChannel channel, BaseActionSource mySrc) { - return chan == StorageChannel.ITEMS && te instanceof ICrateStorage; + return channel == StorageChannel.ITEMS && te instanceof ICrateStorage; } @Override - public IMEInventory getInventory(TileEntity te, ForgeDirection d, StorageChannel chan) + public IMEInventory getInventory(TileEntity te, ForgeDirection d, StorageChannel channel, BaseActionSource src) { - if ( chan == StorageChannel.ITEMS ) + if ( channel == StorageChannel.ITEMS ) return new BSCrate( te, ForgeDirection.UNKNOWN ); return null; } diff --git a/integration/modules/helpers/dead/BSCrateStorageAdaptor.java b/integration/modules/helpers/BSCrateStorageAdaptor.java similarity index 98% rename from integration/modules/helpers/dead/BSCrateStorageAdaptor.java rename to integration/modules/helpers/BSCrateStorageAdaptor.java index efece6d67..202238f29 100644 --- a/integration/modules/helpers/dead/BSCrateStorageAdaptor.java +++ b/integration/modules/helpers/BSCrateStorageAdaptor.java @@ -1,4 +1,4 @@ -package appeng.integration.modules.helpers.dead; +package appeng.integration.modules.helpers; import java.util.Iterator; diff --git a/util/InventoryAdaptor.java b/util/InventoryAdaptor.java index 47f09b596..ac792b1da 100644 --- a/util/InventoryAdaptor.java +++ b/util/InventoryAdaptor.java @@ -9,6 +9,9 @@ import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntityChest; import net.minecraftforge.common.util.ForgeDirection; import appeng.api.config.FuzzyMode; +import appeng.core.AppEng; +import appeng.integration.IntegrationType; +import appeng.integration.abstraction.IBetterStorage; import appeng.util.inv.AdaptorIInventory; import appeng.util.inv.AdaptorISpecialInventory; import appeng.util.inv.AdaptorList; @@ -43,7 +46,9 @@ public abstract class InventoryAdaptor implements Iterable { if ( te == null ) return null; - + + IBetterStorage bs = (IBetterStorage) (AppEng.instance.isIntegrationEnabled( IntegrationType.BetterStorage ) ? AppEng.instance.getIntegration( IntegrationType.BetterStorage ) : null); + if ( te instanceof EntityPlayer ) { return new AdaptorIInventory( new AdaptorPlayerInventory( ((EntityPlayer) te).inventory ) ); @@ -51,10 +56,11 @@ public abstract class InventoryAdaptor implements Iterable else if ( te instanceof ArrayList ) { return new AdaptorList( (ArrayList) te ); - }/* - * else if ( BS.instance != null && BS.instance.isStorageCrate( te ) ) { return BS.instance.getAdaptor( te, d ); - * } - */ + } + else if ( bs != null && bs.isStorageCrate( te ) ) + { + return bs.getAdaptor( te, d ); + } else if ( te instanceof TileEntityChest ) { return new AdaptorIInventory( (IInventory) Platform.GetChestInv( te ) );