Merge pull request #37 from Quantumlyy/drainer-energistics

Add Thaumic Energistics support to the Apimancers drainer
This commit is contained in:
Martin Robertz authored and GitHub committed 2024-01-28 19:55:12 +01:00
commit dcfa448af3
4 files changed
+33 -2

No files matched your search

+2 -1
View File
@@ -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')
}
+11
View File
@@ -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;
@@ -73,6 +73,7 @@ public class MagicBees {
proxy.registerRenderers();
this.modConfig.saveConfigs();
this.modConfig.setupThaumicEnergistics();
CraftingManager.setupCrafting();
CraftingManager.registerLiquidContainers();
@@ -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;