mirror of
https://github.com/GTNewHorizons/MagicBees.git
synced 2026-11-12 08:17:29 +00:00
use apiary inventory and beelistener
This commit is contained in:
1 parent
4103ce72e5
commit
481c22a19d
1 file changed
+38
-42
@@ -6,6 +6,9 @@ import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import forestry.apiculture.ApiaryBeeListener;
|
||||
import forestry.apiculture.IApiary;
|
||||
import forestry.apiculture.inventory.IApiaryInventory;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.inventory.ICrafting;
|
||||
@@ -26,7 +29,6 @@ import net.minecraftforge.common.util.Constants;
|
||||
|
||||
import com.mojang.authlib.GameProfile;
|
||||
|
||||
import forestry.api.apiculture.DefaultBeeListener;
|
||||
import forestry.api.apiculture.DefaultBeeModifier;
|
||||
import forestry.api.apiculture.IBee;
|
||||
import forestry.api.apiculture.IBeeGenome;
|
||||
@@ -50,7 +52,7 @@ import magicbees.main.utils.ItemStackUtils;
|
||||
import magicbees.main.utils.net.EventAuraChargeUpdate;
|
||||
import magicbees.main.utils.net.NetworkEventHandler;
|
||||
|
||||
public class TileEntityMagicApiary extends TileEntity implements ISidedInventory, IBeeHousing, ITileEntityAuraCharged {
|
||||
public class TileEntityMagicApiary extends TileEntity implements ISidedInventory, IApiary, ITileEntityAuraCharged {
|
||||
|
||||
// Constants
|
||||
private static final int AURAPROVIDER_SEARCH_RADIUS = 6;
|
||||
@@ -64,7 +66,7 @@ public class TileEntityMagicApiary extends TileEntity implements ISidedInventory
|
||||
|
||||
private final IBeekeepingLogic beeLogic;
|
||||
private final IErrorLogic errorLogic;
|
||||
private final IBeeListener beeListener;
|
||||
private final IBeeListener beeListener = new ApiaryBeeListener(this);
|
||||
private final IBeeModifier beeModifier;
|
||||
private final MagicApiaryInventory inventory;
|
||||
private final AuraCharges auraCharges = new AuraCharges();
|
||||
@@ -72,7 +74,6 @@ public class TileEntityMagicApiary extends TileEntity implements ISidedInventory
|
||||
public TileEntityMagicApiary() {
|
||||
beeLogic = BeeManager.beeRoot.createBeekeepingLogic(this);
|
||||
beeModifier = new MagicApiaryBeeModifier(this);
|
||||
beeListener = new MagicApiaryBeeListener(this);
|
||||
inventory = new MagicApiaryInventory(this);
|
||||
errorLogic = ForestryAPI.errorStateRegistry.createErrorLogic();
|
||||
}
|
||||
@@ -100,6 +101,11 @@ public class TileEntityMagicApiary extends TileEntity implements ISidedInventory
|
||||
return inventory;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IApiaryInventory getApiaryInventory() {
|
||||
return inventory;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IBeekeepingLogic getBeekeepingLogic() {
|
||||
return beeLogic;
|
||||
@@ -480,7 +486,7 @@ public class TileEntityMagicApiary extends TileEntity implements ISidedInventory
|
||||
return inventory.canExtractItem(i, itemStack, i1);
|
||||
}
|
||||
|
||||
private static class MagicApiaryInventory implements IBeeHousingInventory {
|
||||
private static class MagicApiaryInventory implements IApiaryInventory {
|
||||
|
||||
public static final int SLOT_QUEEN = 0;
|
||||
public static final int SLOT_DRONE = 1;
|
||||
@@ -490,7 +496,7 @@ public class TileEntityMagicApiary extends TileEntity implements ISidedInventory
|
||||
public static final int SLOT_PRODUCTS_COUNT = 7;
|
||||
|
||||
private final TileEntityMagicApiary magicApiary;
|
||||
private ItemStack[] items;
|
||||
private final ItemStack[] items;
|
||||
|
||||
public MagicApiaryInventory(TileEntityMagicApiary magicApiary) {
|
||||
this.magicApiary = magicApiary;
|
||||
@@ -600,6 +606,32 @@ public class TileEntityMagicApiary extends TileEntity implements ISidedInventory
|
||||
return hiveFrames;
|
||||
}
|
||||
|
||||
public void wearOutFrames(IBeeHousing beeHousing,int amount) {
|
||||
IBeekeepingMode beekeepingMode = BeeManager.beeRoot.getBeekeepingMode(magicApiary.getWorldObj());
|
||||
int wear = Math.round(amount * beekeepingMode.getWearModifier());
|
||||
|
||||
for (int i = MagicApiaryInventory.SLOT_FRAME_START; i
|
||||
< MagicApiaryInventory.SLOT_FRAME_START + MagicApiaryInventory.SLOT_FRAME_COUNT; i++) {
|
||||
ItemStack hiveFrameStack = magicApiary.getStackInSlot(i);
|
||||
if (hiveFrameStack == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
Item hiveFrameItem = hiveFrameStack.getItem();
|
||||
if (!(hiveFrameItem instanceof IHiveFrame)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
IHiveFrame hiveFrame = (IHiveFrame) hiveFrameItem;
|
||||
|
||||
ItemStack queenStack = magicApiary.getBeeInventory().getQueen();
|
||||
IBee queen = BeeManager.beeRoot.getMember(queenStack);
|
||||
ItemStack usedFrame = hiveFrame.frameUsed(magicApiary, hiveFrameStack, queen, wear);
|
||||
|
||||
magicApiary.setInventorySlotContents(i, usedFrame);
|
||||
}
|
||||
}
|
||||
|
||||
public void writeToNBT(NBTTagCompound compound) {
|
||||
NBTTagList itemsNBT = new NBTTagList();
|
||||
|
||||
@@ -670,40 +702,4 @@ public class TileEntityMagicApiary extends TileEntity implements ISidedInventory
|
||||
return 0.8f;
|
||||
}
|
||||
}
|
||||
|
||||
private static class MagicApiaryBeeListener extends DefaultBeeListener {
|
||||
|
||||
private final TileEntityMagicApiary magicApiary;
|
||||
|
||||
public MagicApiaryBeeListener(TileEntityMagicApiary magicApiary) {
|
||||
this.magicApiary = magicApiary;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void wearOutEquipment(int amount) {
|
||||
IBeekeepingMode beekeepingMode = BeeManager.beeRoot.getBeekeepingMode(magicApiary.getWorldObj());
|
||||
int wear = Math.round(amount * beekeepingMode.getWearModifier());
|
||||
|
||||
for (int i = MagicApiaryInventory.SLOT_FRAME_START; i
|
||||
< MagicApiaryInventory.SLOT_FRAME_START + MagicApiaryInventory.SLOT_FRAME_COUNT; i++) {
|
||||
ItemStack hiveFrameStack = magicApiary.getStackInSlot(i);
|
||||
if (hiveFrameStack == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
Item hiveFrameItem = hiveFrameStack.getItem();
|
||||
if (!(hiveFrameItem instanceof IHiveFrame)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
IHiveFrame hiveFrame = (IHiveFrame) hiveFrameItem;
|
||||
|
||||
ItemStack queenStack = magicApiary.getBeeInventory().getQueen();
|
||||
IBee queen = BeeManager.beeRoot.getMember(queenStack);
|
||||
ItemStack usedFrame = hiveFrame.frameUsed(magicApiary, hiveFrameStack, queen, wear);
|
||||
|
||||
magicApiary.setInventorySlotContents(i, usedFrame);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user