implement alternative housing checker for industrial apiary

This commit is contained in:
Quantumlyy committed 2023-12-13 09:19:05 +01:00
1 parent 6e6cbbab48
commit 123ff12302
4 files changed
+54 -12

No files matched your search

@@ -15,7 +15,8 @@ import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import magicbees.main.CommonProxy;
import magicbees.main.utils.TabMagicBees;
import magicbees.tileentity.TileEntityApiamancersDrainer;
import magicbees.tileentity.TileEntityApiamancersDrainerCommon;
import magicbees.tileentity.TileEntityApiamancersDrainerGT;
import thaumcraft.api.aspects.Aspect;
import thaumcraft.api.aspects.IEssentiaContainerItem;
@@ -35,7 +36,8 @@ public class BlockApiamancersDrainer extends BlockContainer {
@Override
public TileEntity createNewTileEntity(World world, int metadata) {
return new TileEntityApiamancersDrainer();
return TileEntityApiamancersDrainerGT.isGTLoaded ? new TileEntityApiamancersDrainerGT()
: new TileEntityApiamancersDrainerCommon();
}
@Override
@@ -45,7 +47,7 @@ public class BlockApiamancersDrainer extends BlockContainer {
return false;
} else {
TileEntity tile = world.getTileEntity(x, y, z);
if (tile instanceof TileEntityApiamancersDrainer) {
if (tile instanceof TileEntityApiamancersDrainerCommon) {
ItemStack tItemStack = player.getHeldItem();
if (tItemStack != null) {
Item tItem = tItemStack.getItem();
@@ -54,14 +56,14 @@ public class BlockApiamancersDrainer extends BlockContainer {
&& ((IEssentiaContainerItem) tItem).getAspects(player.getHeldItem()).size() > 0) {
Aspect tLocked = ((IEssentiaContainerItem) tItem).getAspects(player.getHeldItem())
.getAspects()[0];
((TileEntityApiamancersDrainer) tile).setAspect(tLocked);
((TileEntityApiamancersDrainerCommon) tile).setAspect(tLocked);
// TODO: improve text
player.addChatMessage(
new ChatComponentTranslation("Producing " + tLocked.getLocalizedDescription()));
}
} else {
((TileEntityApiamancersDrainer) tile).setAspect(null);
((TileEntityApiamancersDrainerCommon) tile).setAspect(null);
// TODO: improve text
player.addChatMessage(new ChatComponentTranslation("Cleared production specifier"));
+5 -6
View File
@@ -57,11 +57,7 @@ import magicbees.main.utils.VersionInfo;
import magicbees.main.utils.compat.BotaniaHelper;
import magicbees.main.utils.compat.ThaumcraftHelper;
import magicbees.storage.BackpackDefinition;
import magicbees.tileentity.TileEntityApiamancersDrainer;
import magicbees.tileentity.TileEntityEffectJar;
import magicbees.tileentity.TileEntityMagicApiary;
import magicbees.tileentity.TileEntityManaAuraProvider;
import magicbees.tileentity.TileEntityVisAuraProvider;
import magicbees.tileentity.*;
/**
* A class to hold some data related to mod state & functions.
@@ -505,7 +501,10 @@ public class Config {
apiamancersDrainer = new BlockApiamancersDrainer();
GameRegistry.registerBlock(apiamancersDrainer, "apiamancersDrainer");
GameRegistry.registerTileEntity(TileEntityApiamancersDrainer.class, "apiamancersDrainer");
GameRegistry.registerTileEntity(
TileEntityApiamancersDrainerGT.isGTLoaded ? TileEntityApiamancersDrainerGT.class
: TileEntityApiamancersDrainerCommon.class,
"apiamancersDrainer");
}
}
@@ -28,7 +28,7 @@ import thaumcraft.api.aspects.AspectList;
import thaumcraft.api.aspects.IAspectContainer;
import thaumcraft.api.aspects.IEssentiaTransport;
public class TileEntityApiamancersDrainer extends TileEntity implements IAspectContainer, IEssentiaTransport {
public class TileEntityApiamancersDrainerCommon extends TileEntity implements IAspectContainer, IEssentiaTransport {
public Aspect aspect;
public AspectList essentia = new AspectList();
@@ -0,0 +1,41 @@
package magicbees.tileentity;
import java.util.Set;
import java.util.stream.Collectors;
import net.minecraft.tileentity.TileEntity;
import org.apache.commons.lang3.ClassUtils;
import cpw.mods.fml.common.Loader;
import forestry.api.apiculture.*;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.metatileentity.BaseMetaTileEntity;
import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_IndustrialApiary;
import magicbees.main.utils.LogHelper;
public class TileEntityApiamancersDrainerGT extends TileEntityApiamancersDrainerCommon {
public static boolean isGTLoaded = Loader.isModLoaded("gregtech");
@Override
protected IBeeHousing beeHousing() {
TileEntity above = worldObj.getTileEntity(this.xCoord, this.yCoord + 1, this.zCoord);
boolean isGTMetaTileEntity = above instanceof BaseMetaTileEntity;
if (isGTMetaTileEntity) {
BaseMetaTileEntity metaTileEntity = (BaseMetaTileEntity) above;
IMetaTileEntity underlyingMetaTileEntity = metaTileEntity.getMetaTileEntity();
if (!(underlyingMetaTileEntity instanceof GT_MetaTileEntity_IndustrialApiary)) return null;
Set<String> classes = ClassUtils.getAllInterfaces(underlyingMetaTileEntity.getClass()).stream()
.map(Class::getName).collect(Collectors.toSet());
LogHelper.warn(classes);
return (IBeeHousing) underlyingMetaTileEntity;
}
return null;
}
}