diff --git a/src/main/java/magicbees/block/BlockApiamancersDrainer.java b/src/main/java/magicbees/block/BlockApiamancersDrainer.java index db9cb94..2485399 100644 --- a/src/main/java/magicbees/block/BlockApiamancersDrainer.java +++ b/src/main/java/magicbees/block/BlockApiamancersDrainer.java @@ -77,14 +77,7 @@ public class BlockApiamancersDrainer extends BlockContainer { @Override @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta) { - - if (side == 0) { - return icons[0]; - } else if (side == 1) { - return icons[1]; - } else { - return icons[2]; - } + return icons[side <= 1 ? side : 2]; } @Override @@ -92,8 +85,8 @@ public class BlockApiamancersDrainer extends BlockContainer { public void registerBlockIcons(IIconRegister register) { icons = new IIcon[4]; - icons[0] = register.registerIcon(CommonProxy.DOMAIN + ":apiamancersdrainer.0"); - icons[1] = register.registerIcon(CommonProxy.DOMAIN + ":apiamancersdrainer.1"); - icons[2] = register.registerIcon(CommonProxy.DOMAIN + ":apiamancersdrainer.2"); + for (int i = 0; i < icons.length; i++) { + icons[i] = register.registerIcon(CommonProxy.DOMAIN + ":apiamancersdrainer." + i); + } } } diff --git a/src/main/java/magicbees/tileentity/TileEntityApiamancersDrainerCommon.java b/src/main/java/magicbees/tileentity/TileEntityApiamancersDrainerCommon.java index 800525d..d129d95 100644 --- a/src/main/java/magicbees/tileentity/TileEntityApiamancersDrainerCommon.java +++ b/src/main/java/magicbees/tileentity/TileEntityApiamancersDrainerCommon.java @@ -1,16 +1,12 @@ package magicbees.tileentity; import java.util.Objects; -import java.util.Set; -import java.util.stream.Collectors; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; -import org.apache.commons.lang3.ClassUtils; - import forestry.api.apiculture.EnumBeeType; import forestry.api.apiculture.IAlleleBeeSpecies; import forestry.api.apiculture.IBee; @@ -35,7 +31,7 @@ public class TileEntityApiamancersDrainerCommon extends TileEntity implements IA public final int maxAmount = Config.drainerCapacity; - private int increment = 0; + protected int increment = 0; public void setAspect(Aspect sAspect) { aspect = sAspect; @@ -54,11 +50,10 @@ public class TileEntityApiamancersDrainerCommon extends TileEntity implements IA IBeeHousing beeHousing = beeHousing(above); if (beeHousing != null) { LogHelper.warn("is housing"); - IBeekeepingLogic beekeepingLogic = beeHousing.getBeekeepingLogic(); // This performs all the checks to see if the bee is a living queen and if the species conditions // are met. - if (!beekeepingLogic.canWork()) return; + if (!canWork(beeHousing, above)) return; LogHelper.warn("can work"); ItemStack queenStack = beeHousing.getBeeInventory().getQueen(); @@ -88,12 +83,12 @@ public class TileEntityApiamancersDrainerCommon extends TileEntity implements IA } protected IBeeHousing beeHousing(TileEntity above) { - // TODO: Revert once Industrial Apiary is working - Set classes = ClassUtils.getAllInterfaces(above.getClass()).stream().map(Class::getName) - .collect(Collectors.toSet()); - LogHelper.warn(classes); + return above instanceof IBeeHousing ? (IBeeHousing) above : null; + } - return classes.contains("forestry.api.apiculture.IBeeHousing") ? (IBeeHousing) above : null; + protected boolean canWork(IBeeHousing beeHousing, TileEntity above) { + IBeekeepingLogic beekeepingLogic = beeHousing.getBeekeepingLogic(); + return beekeepingLogic.canWork(); } private void drainQueen(IBeeHousing housing, IBeeModifier modifier, IBee queen) { @@ -143,9 +138,8 @@ public class TileEntityApiamancersDrainerCommon extends TileEntity implements IA if (this.essentia.getAmount(tag) >= amount) { this.essentia.reduce(tag, amount); return true; - } else { - return false; } + return false; } @Override @@ -163,9 +157,8 @@ public class TileEntityApiamancersDrainerCommon extends TileEntity implements IA essentia.reduce(next, ot.getAmount(next)); } return true; - } else { - return false; } + return false; } @Override diff --git a/src/main/java/magicbees/tileentity/TileEntityApiamancersDrainerGT.java b/src/main/java/magicbees/tileentity/TileEntityApiamancersDrainerGT.java index 1ee764b..200df05 100644 --- a/src/main/java/magicbees/tileentity/TileEntityApiamancersDrainerGT.java +++ b/src/main/java/magicbees/tileentity/TileEntityApiamancersDrainerGT.java @@ -1,18 +1,12 @@ 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 { @@ -23,21 +17,30 @@ public class TileEntityApiamancersDrainerGT extends TileEntityApiamancersDrainer IBeeHousing regularCheck = super.beeHousing(above); if (regularCheck != null) return regularCheck; - boolean isGTMetaTileEntity = above instanceof BaseMetaTileEntity; + BaseMetaTileEntity GTMetaTileEntity = GTTileEntity(above); - if (isGTMetaTileEntity) { - BaseMetaTileEntity metaTileEntity = (BaseMetaTileEntity) above; - IMetaTileEntity underlyingMetaTileEntity = metaTileEntity.getMetaTileEntity(); + if (GTMetaTileEntity != null) { + IMetaTileEntity underlyingMetaTileEntity = GTMetaTileEntity.getMetaTileEntity(); if (!(underlyingMetaTileEntity instanceof GT_MetaTileEntity_IndustrialApiary)) return null; - Set classes = ClassUtils.getAllInterfaces(underlyingMetaTileEntity.getClass()).stream() - .map(Class::getName).collect(Collectors.toSet()); - LogHelper.warn(classes); - return (IBeeHousing) underlyingMetaTileEntity; } return null; } + + @Override + protected boolean canWork(IBeeHousing beeHousing, TileEntity te) { + boolean canNormallyWork = super.canWork(beeHousing, te); + BaseMetaTileEntity GTMetaTileEntity = GTTileEntity(te); + + return GTMetaTileEntity != null ? GTMetaTileEntity.isActive() : canNormallyWork; + } + + private BaseMetaTileEntity GTTileEntity(TileEntity te) { + boolean isGTMetaTileEntity = te instanceof BaseMetaTileEntity; + + return isGTMetaTileEntity ? (BaseMetaTileEntity) te : null; + } } diff --git a/src/main/resources/assets/magicbees/lang/en_US.lang b/src/main/resources/assets/magicbees/lang/en_US.lang index 1198b8c..526c245 100644 --- a/src/main/resources/assets/magicbees/lang/en_US.lang +++ b/src/main/resources/assets/magicbees/lang/en_US.lang @@ -38,7 +38,7 @@ item.beeRing.name=Collector's Bee Ring tile.effectJar.name=Bee Collector's Jar tile.magicApiary.name=Magic Apiary tile.visAuraProvider.name=Vis Apiary Booster -tile.apiamancersdrainer.name=Apiamancer's Drainer +tile.ApiamancersDrainer.name=Apiamancer's Drainer tile.manaAuraProvider.name=Mana Apiary Booster tile.hive.curious.name=Curious Hive tile.hive.unusual.name=Unusual Hive