create method for detecting if housing is present

This commit is contained in:
Quantumlyy committed 2023-12-13 08:32:13 +01:00
1 parent ff20b5f600
commit fb98d686fb
1 file changed
+12 -5
@@ -50,12 +50,9 @@ public class TileEntityPhialingCabinet extends TileEntity implements IAspectCont
if (increment >= Config.thaumcraftEssentiaBeePhialingCabinetTimeBetween) {
increment = 0;
try {
TileEntity above = worldObj.getTileEntity(this.xCoord, this.yCoord + 1, this.zCoord);
Set<String> classes = ClassUtils.getAllInterfaces(above.getClass()).stream().map(Class::getName)
.collect(Collectors.toSet());
if (classes.contains("forestry.api.apiculture.IBeeHousing")) {
IBeeHousing beeHousing = beeHousing();
if (beeHousing != null) {
LogHelper.warn("is housing");
IBeeHousing beeHousing = (IBeeHousing) above;
IBeekeepingLogic beekeepingLogic = beeHousing.getBeekeepingLogic();
// This performs all the checks to see if the bee is a living queen and if the species conditions
@@ -91,6 +88,16 @@ public class TileEntityPhialingCabinet extends TileEntity implements IAspectCont
increment++;
}
protected IBeeHousing beeHousing() {
TileEntity above = worldObj.getTileEntity(this.xCoord, this.yCoord + 1, this.zCoord);
// TODO: Revert once Industrial Apiary is working
Set<String> classes = ClassUtils.getAllInterfaces(above.getClass()).stream().map(Class::getName)
.collect(Collectors.toSet());
LogHelper.warn(classes);
return classes.contains("forestry.api.apiculture.IBeeHousing") ? above : null;
}
private void drainQueen(IBeeHousing housing, IBeeModifier modifier, IBee queen) {
float lifespanModifier = modifier.getLifespanModifier(queen.getGenome(), queen.getMate(), 1.0f);
queen.age(housing.getWorld(), lifespanModifier);