diff --git a/dependencies.gradle b/dependencies.gradle index 95e9419..1467b48 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -8,6 +8,7 @@ dependencies { compileOnly('com.github.GTNewHorizons:Baubles:1.0.4:dev') {transitive = false} compileOnly('com.github.GTNewHorizons:Botania:1.10.5-GTNH:api') {transitive = false} compileOnly('thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev') {transitive = false} - compileOnly('com.github.GTNewHorizons:GT5-Unofficial:5.09.45.53:dev') + compileOnly('com.github.GTNewHorizons:GT5-Unofficial:5.09.45.43:dev') + compileOnly('com.github.GTNewHorizons:ThaumicEnergistics:1.6.1-GTNH:dev') } diff --git a/src/main/java/magicbees/main/Config.java b/src/main/java/magicbees/main/Config.java index 32fd247..e7ae10d 100644 --- a/src/main/java/magicbees/main/Config.java +++ b/src/main/java/magicbees/main/Config.java @@ -63,6 +63,7 @@ import magicbees.tileentity.TileEntityEffectJar; import magicbees.tileentity.TileEntityMagicApiary; import magicbees.tileentity.TileEntityManaAuraProvider; import magicbees.tileentity.TileEntityVisAuraProvider; +import thaumicenergistics.api.ThEApi; /** * A class to hold some data related to mod state & functions. @@ -166,6 +167,7 @@ public class Config { // ---- Loaded mods ----------------------------------------- public static boolean isGTLoaded = Loader.isModLoaded("gregtech"); public static boolean isGTNHCoreModLoaded = Loader.isModLoaded("gregtech") && Loader.isModLoaded("dreamcraft"); + public static boolean isThaumicEnergisticsLoaded = Loader.isModLoaded("thaumicenergistics"); public Config(File configFile) { configuration = new Configuration(configFile); @@ -226,6 +228,15 @@ public class Config { setupMiscForestryItemHooks(); } + public void setupThaumicEnergistics() { + if (isThaumicEnergisticsLoaded) { + try { + Class c = BlockApimancersDrainer.drainer; + ThEApi.instance().transportPermissions().addAspectStorageTileToExtractPermissions(c); + } catch (Exception ignored) {} + } + } + private void processConfigFile() { // Pull config from Forestry via reflection Field f; diff --git a/src/main/java/magicbees/main/MagicBees.java b/src/main/java/magicbees/main/MagicBees.java index c1e3af8..58ce3ec 100644 --- a/src/main/java/magicbees/main/MagicBees.java +++ b/src/main/java/magicbees/main/MagicBees.java @@ -73,6 +73,7 @@ public class MagicBees { proxy.registerRenderers(); this.modConfig.saveConfigs(); + this.modConfig.setupThaumicEnergistics(); CraftingManager.setupCrafting(); CraftingManager.registerLiquidContainers(); diff --git a/src/main/java/magicbees/tileentity/TileEntityApimancersDrainerCommon.java b/src/main/java/magicbees/tileentity/TileEntityApimancersDrainerCommon.java index 5692f1e..dbecd53 100644 --- a/src/main/java/magicbees/tileentity/TileEntityApimancersDrainerCommon.java +++ b/src/main/java/magicbees/tileentity/TileEntityApimancersDrainerCommon.java @@ -7,6 +7,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; +import cpw.mods.fml.common.Optional; import forestry.api.apiculture.EnumBeeType; import forestry.api.apiculture.IAlleleBeeSpecies; import forestry.api.apiculture.IBee; @@ -22,8 +23,12 @@ import thaumcraft.api.aspects.Aspect; import thaumcraft.api.aspects.AspectList; import thaumcraft.api.aspects.IAspectContainer; import thaumcraft.api.aspects.IEssentiaTransport; +import thaumicenergistics.api.storage.IAspectStorage; -public class TileEntityApimancersDrainerCommon extends TileEntity implements IAspectContainer, IEssentiaTransport { +@Optional.InterfaceList({ + @Optional.Interface(iface = "thaumicenergistics.api.storage.IAspectStorage", modid = "thaumicenergistics") }) +public class TileEntityApimancersDrainerCommon extends TileEntity + implements IEssentiaTransport, IAspectContainer, IAspectStorage { public Aspect aspect; public AspectList essentia = new AspectList(); @@ -38,6 +43,7 @@ public class TileEntityApimancersDrainerCommon extends TileEntity implements IAs @Override public void updateEntity() { + super.updateEntity(); // If there's no stored aspect we shouldn't even check for the above block. // We also don't need to run all the logic if the cabinet is full. if (aspect == null || essentia.visSize() == maxAmount) return; @@ -100,6 +106,18 @@ public class TileEntityApimancersDrainerCommon extends TileEntity implements IAs housing.getBeeInventory().getQueen().setTagCompound(nbttagcompound); } + @Override + @Optional.Method(modid = "thaumicenergistics") + public int getContainerCapacity() { + return maxAmount; + } + + @Override + @Optional.Method(modid = "thaumicenergistics") + public boolean doesShareCapacity() { + return true; + } + @Override public AspectList getAspects() { return this.essentia;