mirror of
https://github.com/GTNewHorizons/MagicBees.git
synced 2026-11-14 01:04:21 +00:00
implement alternative housing checker for industrial apiary
This commit is contained in:
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"));
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user