diff --git a/src/main/java/com/darkona/adventurebackpack/AdventureBackpack.java b/src/main/java/com/darkona/adventurebackpack/AdventureBackpack.java index 7c8e0d90..7ed743e8 100644 --- a/src/main/java/com/darkona/adventurebackpack/AdventureBackpack.java +++ b/src/main/java/com/darkona/adventurebackpack/AdventureBackpack.java @@ -73,6 +73,7 @@ public void preInit(FMLPreInitializationEvent event) @Mod.EventHandler public void init(FMLInitializationEvent event) { + LoadedMods.init(); proxy.init(); ModRecipes.init(); ModWorldGen.init(); @@ -85,7 +86,6 @@ public void init(FMLInitializationEvent event) @Mod.EventHandler public void postInit(FMLPostInitializationEvent event) { - LoadedMods.init(); GeneralReference.init(); //ConditionalFluidEffect.init(); diff --git a/src/main/java/com/darkona/adventurebackpack/block/BlockAdventureBackpack.java b/src/main/java/com/darkona/adventurebackpack/block/BlockAdventureBackpack.java index ae65096e..1f4fb490 100644 --- a/src/main/java/com/darkona/adventurebackpack/block/BlockAdventureBackpack.java +++ b/src/main/java/com/darkona/adventurebackpack/block/BlockAdventureBackpack.java @@ -193,7 +193,7 @@ public String getUnlocalizedName() @Override @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) + public void registerBlockIcons(IIconRegister iconRegister) //TODO why this is HERE? { Icons.milkStill = iconRegister.registerIcon(ModInfo.MOD_ID + ":fluid.milk"); Icons.melonJuiceStill = iconRegister.registerIcon(ModInfo.MOD_ID + ":fluid.melonJuiceStill"); @@ -408,7 +408,6 @@ public void breakBlock(World world, int x, int y, int z, Block block, int meta) world.spawnEntityInWorld(droppedItem); } } - } super.breakBlock(world, x, y, z, world.getBlock(x, y, z), meta); diff --git a/src/main/java/com/darkona/adventurebackpack/block/TileAdventure.java b/src/main/java/com/darkona/adventurebackpack/block/TileAdventure.java index b14b0834..b7d7e507 100644 --- a/src/main/java/com/darkona/adventurebackpack/block/TileAdventure.java +++ b/src/main/java/com/darkona/adventurebackpack/block/TileAdventure.java @@ -20,16 +20,25 @@ @SuppressWarnings("WeakerAccess") abstract class TileAdventure extends TileEntity implements IInventoryTanks { + // when porting to java 8+ most this methods should move to IInventoryTanks + + protected final ItemStack[] inventory; + + protected TileAdventure(int inventorySize) + { + this.inventory = new ItemStack[inventorySize]; + } + @Override public int getSizeInventory() { - return getInventory().length; + return inventory.length; } @Override public ItemStack getStackInSlot(int slot) { - return getInventory()[slot]; + return inventory[slot]; } @Nullable @@ -56,9 +65,9 @@ public ItemStack decrStackSize(int slot, int quantity) @Override public ItemStack getStackInSlotOnClosing(int slot) { - for (int s : getSlotsOnClosingArray()) + for (int s : getSlotsOnClosing()) if (slot == s) - return getInventory()[slot]; + return inventory[slot]; return null; } @@ -145,7 +154,7 @@ public void setInventorySlotContentsNoSave(int slot, @Nullable ItemStack stack) stack = null; } - getInventory()[slot] = stack; + inventory[slot] = stack; } @Override @@ -155,6 +164,7 @@ public void dirtyInventory() markDirty(); } + @Deprecated @Override public void dirtyTanks() { @@ -171,7 +181,7 @@ protected void setInventoryFromTagList(NBTTagList items) byte slot = item.getByte(TAG_SLOT); if (slot >= 0 && slot < getSizeInventory()) { - getInventory()[slot] = ItemStack.loadItemStackFromNBT(item); + inventory[slot] = ItemStack.loadItemStackFromNBT(item); } } } @@ -181,7 +191,7 @@ protected NBTTagList getInventoryTagList() NBTTagList items = new NBTTagList(); for (int i = 0; i < getSizeInventory(); i++) { - ItemStack stack = getInventory()[i]; + ItemStack stack = inventory[i]; if (stack != null) { NBTTagCompound item = new NBTTagCompound(); diff --git a/src/main/java/com/darkona/adventurebackpack/block/TileAdventureBackpack.java b/src/main/java/com/darkona/adventurebackpack/block/TileAdventureBackpack.java index c8716e75..7ce27b05 100644 --- a/src/main/java/com/darkona/adventurebackpack/block/TileAdventureBackpack.java +++ b/src/main/java/com/darkona/adventurebackpack/block/TileAdventureBackpack.java @@ -55,7 +55,6 @@ public class TileAdventureBackpack extends TileAdventure implements IInventoryBa private static final int[] MAIN_INVENTORY_SLOTS = Utils.createSlotArray(0, Constants.INVENTORY_MAIN_SIZE); private BackpackTypes type = BackpackTypes.STANDARD; - private ItemStack[] inventory = new ItemStack[Constants.INVENTORY_SIZE]; private FluidTank leftTank = new FluidTank(Constants.BASIC_TANK_CAPACITY); private FluidTank rightTank = new FluidTank(Constants.BASIC_TANK_CAPACITY); private NBTTagCompound extendedProperties = new NBTTagCompound(); @@ -76,7 +75,7 @@ public class TileAdventureBackpack extends TileAdventure implements IInventoryBa public TileAdventureBackpack() { - sleepingBagDeployed = false; + super(Constants.INVENTORY_SIZE); } @Override @@ -110,7 +109,7 @@ public FluidTank[] getTanksArray() } @Override - public int[] getSlotsOnClosingArray() + public int[] getSlotsOnClosing() { return new int[]{BUCKET_IN_LEFT, BUCKET_IN_RIGHT, BUCKET_OUT_LEFT, BUCKET_OUT_RIGHT}; } @@ -197,6 +196,7 @@ public boolean updateTankSlots() return changesMade; } + @Deprecated @Override public void dirtyExtended() { @@ -205,6 +205,7 @@ public void dirtyExtended() dirtyInventory(); } + @Deprecated @Override public void dirtyTime() { diff --git a/src/main/java/com/darkona/adventurebackpack/inventory/ContainerAdventure.java b/src/main/java/com/darkona/adventurebackpack/inventory/ContainerAdventure.java index f53fc4c1..08e8decb 100644 --- a/src/main/java/com/darkona/adventurebackpack/inventory/ContainerAdventure.java +++ b/src/main/java/com/darkona/adventurebackpack/inventory/ContainerAdventure.java @@ -23,10 +23,20 @@ abstract class ContainerAdventure extends Container protected static final int PLAYER_INV_END = PLAYER_INV_START + 26; protected static final int PLAYER_INV_LENGTH = PLAYER_INV_END + 1; - protected EntityPlayer player; - protected Source source; + protected final EntityPlayer player; + protected final IInventoryTanks inventory; + protected final Source source; - public abstract IInventoryTanks getInventoryTanks(); + private final int[] fluidsAmount; + private int itemsCount; + + protected ContainerAdventure(EntityPlayer player, IInventoryTanks inventory, Source source) + { + this.player = player; + this.inventory = inventory; + this.source = source; + this.fluidsAmount = new int[this.inventory.getTanksArray().length]; + } protected void bindPlayerInventory(InventoryPlayer invPlayer, int startX, int startY) { @@ -51,14 +61,44 @@ public void detectAndSendChanges() if (source == Source.HOLDING) // used for refresh tooltips and redraw tanks content while GUI is open { - if (detectChanges() && player instanceof EntityPlayerMP) + if ((detectItemChanges() | detectFluidChanges()) && player instanceof EntityPlayerMP) { ((EntityPlayerMP) player).sendContainerAndContentsToPlayer(this, this.getInventory()); } } } - protected abstract boolean detectChanges(); + protected boolean detectItemChanges() + { + ItemStack[] inv = inventory.getInventory(); + int tempCount = 0; + for (int i = 0; i < inv.length - inventory.getSlotsOnClosing().length; i++) + { + if (inv[i] != null) + tempCount++; + } + if (itemsCount != tempCount) + { + itemsCount = tempCount; + return true; + } + return false; + } + + private boolean detectFluidChanges() + { + boolean changesDetected = false; + for (int i = 0; i < fluidsAmount.length; i++) + { + int amount = inventory.getTanksArray()[i].getFluidAmount(); + if (fluidsAmount[i] != amount) + { + fluidsAmount[i] = amount; + changesDetected = true; + } + } + return changesDetected; + } @Override public ItemStack transferStackInSlot(EntityPlayer player, int fromSlot) @@ -126,7 +166,7 @@ public ItemStack slotClick(int slot, int button, int flag, EntityPlayer player) @Override public boolean canInteractWith(EntityPlayer player) { - return getInventoryTanks().isUseableByPlayer(player); + return inventory.isUseableByPlayer(player); } @Override @@ -221,14 +261,12 @@ public void onContainerClosed(EntityPlayer player) protected void dropContentOnClose() { - IInventoryTanks inv = getInventoryTanks(); - - for (int i = 0; i < inv.getSizeInventory(); i++) + for (int i = 0; i < inventory.getSizeInventory(); i++) { - ItemStack itemstack = inv.getStackInSlotOnClosing(i); + ItemStack itemstack = inventory.getStackInSlotOnClosing(i); if (itemstack != null) { - inv.setInventorySlotContents(i, null); + inventory.setInventorySlotContents(i, null); player.dropPlayerItemWithRandomChoice(itemstack, false); } } diff --git a/src/main/java/com/darkona/adventurebackpack/inventory/ContainerBackpack.java b/src/main/java/com/darkona/adventurebackpack/inventory/ContainerBackpack.java index b986d3f7..7422cf02 100644 --- a/src/main/java/com/darkona/adventurebackpack/inventory/ContainerBackpack.java +++ b/src/main/java/com/darkona/adventurebackpack/inventory/ContainerBackpack.java @@ -43,30 +43,17 @@ public class ContainerBackpack extends ContainerAdventure private InventoryCraftingBackpack craftMatrix = new InventoryCraftingBackpack(this, MATRIX_DIMENSION, MATRIX_DIMENSION); private IInventory craftResult = new InventoryCraftResult(); - private IInventoryBackpack inventory; - - private int leftAmount; - private int rightAmount; - private int invCount; public ContainerBackpack(EntityPlayer player, IInventoryBackpack backpack, Source source) { - this.player = player; - inventory = backpack; + super(player, backpack, source); makeSlots(player.inventory); inventory.openInventory(); - this.source = source; } public IInventoryBackpack getInventoryBackpack() { - return inventory; - } - - @Override - public IInventoryTanks getInventoryTanks() - { - return inventory; + return (IInventoryBackpack) inventory; } private void makeSlots(InventoryPlayer invPlayer) @@ -75,8 +62,6 @@ private void makeSlots(InventoryPlayer invPlayer) int startX = 62; int startY = 7; - int slot = 0; - for (int row = 0; row < BACK_INV_ROWS; row++) // 6*8 inventory, 48 Slots (#1-#48) [36-83] { for (int col = 0; col < BACK_INV_COLUMNS; col++) @@ -84,7 +69,7 @@ private void makeSlots(InventoryPlayer invPlayer) int offsetX = startX + (18 * col); int offsetY = startY + (18 * row); - addSlotToContainer(new SlotBackpack(inventory, slot++, offsetX, offsetY)); + addSlotToContainer(new SlotBackpack((IInventoryBackpack) inventory, (row * BACK_INV_COLUMNS + col), offsetX, offsetY)); } } @@ -108,6 +93,7 @@ private void makeSlots(InventoryPlayer invPlayer) addSlotToContainer(new SlotCraftMatrix(craftMatrix, (row * MATRIX_DIMENSION + col), offsetX, offsetY)); } } + addSlotToContainer(new SlotCraftResult(this, invPlayer.player, craftMatrix, craftResult, 0, 226, 97)); // craftResult [99] syncCraftMatrixWithInventory(true); } @@ -119,6 +105,7 @@ public void detectAndSendChanges() super.detectAndSendChanges(); } + @SuppressWarnings("unchecked") private void syncCraftResultToServer() { ItemStack stackA = ((Slot) inventorySlots.get(CRAFT_RESULT)).getStack(); @@ -134,38 +121,6 @@ private void syncCraftResultToServer() } } - @Override - protected boolean detectChanges() - { - boolean changesDetected = false; - - ItemStack[] inv = inventory.getInventory(); - int tempCount = 0; - for (int i = 0; i <= TOOL_LOWER; i++) - { - if (inv[i] != null) - tempCount++; - } - if (invCount != tempCount) - { - invCount = tempCount; - changesDetected = true; - } - - if (leftAmount != inventory.getLeftTank().getFluidAmount()) - { - leftAmount = inventory.getLeftTank().getFluidAmount(); - changesDetected = true; - } - if (rightAmount != inventory.getRightTank().getFluidAmount()) - { - rightAmount = inventory.getRightTank().getFluidAmount(); - changesDetected = true; - } - - return changesDetected; - } - @Override protected boolean transferStackToPack(ItemStack stack) { @@ -215,13 +170,13 @@ private boolean mergeRightBucket(ItemStack stack) private boolean isHoldingSpace() { - return inventory.getExtendedProperties().hasKey(Constants.TAG_HOLDING_SPACE); + return getInventoryBackpack().getExtendedProperties().hasKey(Constants.TAG_HOLDING_SPACE); } private boolean transferFluidContainer(ItemStack container) { - FluidTank leftTank = inventory.getLeftTank(); - FluidTank rightTank = inventory.getRightTank(); + FluidTank leftTank = getInventoryBackpack().getLeftTank(); + FluidTank rightTank = getInventoryBackpack().getRightTank(); ItemStack leftStackOut = getSlot(BUCKET_LEFT + 1).getStack(); ItemStack rightStackOut = getSlot(BUCKET_RIGHT + 1).getStack(); diff --git a/src/main/java/com/darkona/adventurebackpack/inventory/ContainerCopter.java b/src/main/java/com/darkona/adventurebackpack/inventory/ContainerCopter.java index 56388b3b..60c2a3c5 100644 --- a/src/main/java/com/darkona/adventurebackpack/inventory/ContainerCopter.java +++ b/src/main/java/com/darkona/adventurebackpack/inventory/ContainerCopter.java @@ -19,22 +19,11 @@ public class ContainerCopter extends ContainerAdventure { private static final int COPTER_INV_START = PLAYER_INV_END + 1; - private InventoryCopterPack inventory; - private int fuelAmount; - public ContainerCopter(EntityPlayer player, InventoryCopterPack copter, Source source) { - this.player = player; - inventory = copter; + super(player, copter, source); makeSlots(player.inventory); inventory.openInventory(); - this.source = source; - } - - @Override - public IInventoryTanks getInventoryTanks() - { - return inventory; } private void makeSlots(InventoryPlayer invPlayer) @@ -45,26 +34,12 @@ private void makeSlots(InventoryPlayer invPlayer) addSlotToContainer(new SlotFluidFuel(inventory, BUCKET_OUT, 44, 53)); } - @Override - protected boolean detectChanges() - { - boolean changesDetected = false; - - if (fuelAmount != inventory.getFuelTank().getFluidAmount()) - { - fuelAmount = inventory.getFuelTank().getFluidAmount(); - changesDetected = true; - } - - return changesDetected; - } - @Override public boolean transferStackToPack(ItemStack stack) { if (SlotFluid.isContainer(stack)) { - FluidTank fuelTank = inventory.getFuelTank(); + FluidTank fuelTank = ((InventoryCopterPack) inventory).getFuelTank(); ItemStack stackOut = getSlot(COPTER_INV_START + 1).getStack(); boolean isFuelTankEmpty = SlotFluid.isEmpty(fuelTank); diff --git a/src/main/java/com/darkona/adventurebackpack/inventory/ContainerJetpack.java b/src/main/java/com/darkona/adventurebackpack/inventory/ContainerJetpack.java index c74b2f1b..70239b56 100644 --- a/src/main/java/com/darkona/adventurebackpack/inventory/ContainerJetpack.java +++ b/src/main/java/com/darkona/adventurebackpack/inventory/ContainerJetpack.java @@ -21,25 +21,13 @@ public class ContainerJetpack extends ContainerAdventure private static final int JETPACK_INV_START = PLAYER_INV_END + 1; private static final int JETPACK_FUEL_START = PLAYER_INV_END + 3; - private InventoryCoalJetpack inventory; - - private int waterAmount; - private int steamAmount; private ItemStack fuelStack; public ContainerJetpack(EntityPlayer player, InventoryCoalJetpack jetpack, Source source) { - this.player = player; - inventory = jetpack; + super(player, jetpack, source); makeSlots(player.inventory); inventory.openInventory(); - this.source = source; - } - - @Override - public IInventoryTanks getInventoryTanks() - { - return inventory; } private void makeSlots(InventoryPlayer invPlayer) @@ -52,29 +40,16 @@ private void makeSlots(InventoryPlayer invPlayer) } @Override - protected boolean detectChanges() + protected boolean detectItemChanges() { - boolean changesDetected = false; - + // determine not only the presence of item in the slot but also check if the item type same as tick before ItemStack[] inv = inventory.getInventory(); if (inv[FUEL_SLOT] != fuelStack) { fuelStack = inv[FUEL_SLOT]; - changesDetected = true; + return true; } - - if (waterAmount != inventory.getWaterTank().getFluidAmount()) - { - waterAmount = inventory.getWaterTank().getFluidAmount(); - changesDetected = true; - } - if (steamAmount != inventory.getSteamTank().getFluidAmount()) - { - steamAmount = inventory.getSteamTank().getFluidAmount(); - changesDetected = true; - } - - return changesDetected; + return false; } @Override @@ -82,7 +57,7 @@ public boolean transferStackToPack(ItemStack stack) { if (SlotFluid.isContainer(stack)) { - FluidTank waterTank = inventory.getWaterTank(); + FluidTank waterTank = ((InventoryCoalJetpack ) inventory).getWaterTank(); ItemStack stackOut = getSlot(JETPACK_INV_START + 1).getStack(); boolean isWaterTankEmpty = SlotFluid.isEmpty(waterTank); diff --git a/src/main/java/com/darkona/adventurebackpack/inventory/IInventoryTanks.java b/src/main/java/com/darkona/adventurebackpack/inventory/IInventoryTanks.java index a11aa3fb..2b4456ba 100644 --- a/src/main/java/com/darkona/adventurebackpack/inventory/IInventoryTanks.java +++ b/src/main/java/com/darkona/adventurebackpack/inventory/IInventoryTanks.java @@ -15,7 +15,7 @@ public interface IInventoryTanks extends IAsynchronousInventory FluidTank[] getTanksArray(); - int[] getSlotsOnClosingArray(); + int[] getSlotsOnClosing(); void loadFromNBT(NBTTagCompound compound); diff --git a/src/main/java/com/darkona/adventurebackpack/inventory/InventoryAdventure.java b/src/main/java/com/darkona/adventurebackpack/inventory/InventoryAdventure.java index b5c80b24..57e076ae 100644 --- a/src/main/java/com/darkona/adventurebackpack/inventory/InventoryAdventure.java +++ b/src/main/java/com/darkona/adventurebackpack/inventory/InventoryAdventure.java @@ -19,18 +19,27 @@ @SuppressWarnings("WeakerAccess") abstract class InventoryAdventure implements IInventoryTanks { - ItemStack containerStack; + // when porting to java 8+ most this methods should move to IInventoryTanks + + protected final ItemStack containerStack; + protected final ItemStack[] inventory; + + protected InventoryAdventure(ItemStack container, int inventorySize) + { + this.containerStack = container; + this.inventory = new ItemStack[inventorySize]; + } @Override public int getSizeInventory() { - return getInventory().length; + return inventory.length; } @Override public ItemStack getStackInSlot(int slot) { - return getInventory()[slot]; + return inventory[slot]; } @Nullable @@ -52,9 +61,9 @@ public ItemStack decrStackSize(int slot, int quantity) @Override public ItemStack getStackInSlotOnClosing(int slot) { - for (int s : getSlotsOnClosingArray()) + for (int s : getSlotsOnClosing()) if (slot == s) - return getInventory()[slot]; + return inventory[slot]; return null; } @@ -145,7 +154,7 @@ public void setInventorySlotContentsNoSave(int slot, @Nullable ItemStack stack) stack = null; } - getInventory()[slot] = stack; + inventory[slot] = stack; } @Override @@ -171,7 +180,7 @@ protected void setInventoryFromTagList(NBTTagList items) byte slot = item.getByte(TAG_SLOT); if (slot >= 0 && slot < getSizeInventory()) { - getInventory()[slot] = ItemStack.loadItemStackFromNBT(item); + inventory[slot] = ItemStack.loadItemStackFromNBT(item); } } } @@ -181,7 +190,7 @@ protected NBTTagList getInventoryTagList() NBTTagList items = new NBTTagList(); for (int i = 0; i < getSizeInventory(); i++) { - ItemStack stack = getInventory()[i]; + ItemStack stack = inventory[i]; if (stack != null) { NBTTagCompound item = new NBTTagCompound(); diff --git a/src/main/java/com/darkona/adventurebackpack/inventory/InventoryBackpack.java b/src/main/java/com/darkona/adventurebackpack/inventory/InventoryBackpack.java index 5aca48ed..b8d48d5d 100644 --- a/src/main/java/com/darkona/adventurebackpack/inventory/InventoryBackpack.java +++ b/src/main/java/com/darkona/adventurebackpack/inventory/InventoryBackpack.java @@ -40,7 +40,6 @@ public class InventoryBackpack extends InventoryAdventure implements IInventoryB private static final String TAG_SLEEPING_BAG_Z = "sleepingBagZ"; private BackpackTypes type = BackpackTypes.STANDARD; - private ItemStack[] inventory = new ItemStack[Constants.INVENTORY_SIZE]; private FluidTank leftTank = new FluidTank(Constants.BASIC_TANK_CAPACITY); private FluidTank rightTank = new FluidTank(Constants.BASIC_TANK_CAPACITY); private NBTTagCompound extendedProperties = new NBTTagCompound(); @@ -56,7 +55,7 @@ public class InventoryBackpack extends InventoryAdventure implements IInventoryB public InventoryBackpack(ItemStack backpack) { - containerStack = backpack; + super(backpack, Constants.INVENTORY_SIZE); detectAndConvertFromOldNBTFormat(containerStack.stackTagCompound); openInventory(); } @@ -92,7 +91,7 @@ public FluidTank[] getTanksArray() } @Override - public int[] getSlotsOnClosingArray() + public int[] getSlotsOnClosing() { return new int[]{BUCKET_IN_LEFT, BUCKET_IN_RIGHT, BUCKET_OUT_LEFT, BUCKET_OUT_RIGHT}; } @@ -107,7 +106,7 @@ public NBTTagCompound getExtendedProperties() public void loadFromNBT(NBTTagCompound compound) { if (compound == null) - return; //this need for NEI trying to render tile.backpack and comes here w/o nbt + return; // this need for NEI and WAILA trying to render tile.backpack and comes here w/o nbt NBTTagCompound backpackTag = compound.getCompoundTag(TAG_WEARABLE_COMPOUND); type = BackpackTypes.getType(backpackTag.getByte(TAG_TYPE)); diff --git a/src/main/java/com/darkona/adventurebackpack/inventory/InventoryCoalJetpack.java b/src/main/java/com/darkona/adventurebackpack/inventory/InventoryCoalJetpack.java index 3ef396d1..e5c46018 100644 --- a/src/main/java/com/darkona/adventurebackpack/inventory/InventoryCoalJetpack.java +++ b/src/main/java/com/darkona/adventurebackpack/inventory/InventoryCoalJetpack.java @@ -24,7 +24,6 @@ */ public class InventoryCoalJetpack extends InventoryAdventure { - private ItemStack[] inventory = new ItemStack[Constants.Jetpack.INVENTORY_SIZE]; private FluidTank waterTank = new FluidTank(Constants.Jetpack.WATER_CAPACITY); private FluidTank steamTank = new FluidTank(Constants.Jetpack.STEAM_CAPACITY); @@ -39,7 +38,7 @@ public class InventoryCoalJetpack extends InventoryAdventure public InventoryCoalJetpack(final ItemStack jetpack) { - containerStack = jetpack; + super(jetpack, Constants.Jetpack.INVENTORY_SIZE); detectAndConvertFromOldNBTFormat(containerStack.stackTagCompound); openInventory(); } @@ -67,7 +66,7 @@ public FluidTank[] getTanksArray() } @Override - public int[] getSlotsOnClosingArray() + public int[] getSlotsOnClosing() { return new int[]{BUCKET_IN, BUCKET_OUT}; } diff --git a/src/main/java/com/darkona/adventurebackpack/inventory/InventoryCopterPack.java b/src/main/java/com/darkona/adventurebackpack/inventory/InventoryCopterPack.java index 357b20f1..85c95f55 100644 --- a/src/main/java/com/darkona/adventurebackpack/inventory/InventoryCopterPack.java +++ b/src/main/java/com/darkona/adventurebackpack/inventory/InventoryCopterPack.java @@ -10,7 +10,6 @@ import static com.darkona.adventurebackpack.common.Constants.Copter.BUCKET_IN; import static com.darkona.adventurebackpack.common.Constants.Copter.BUCKET_OUT; -import static com.darkona.adventurebackpack.common.Constants.Copter.INVENTORY_SIZE; import static com.darkona.adventurebackpack.common.Constants.Copter.TAG_FUEL_TANK; import static com.darkona.adventurebackpack.common.Constants.Copter.TAG_STATUS; import static com.darkona.adventurebackpack.common.Constants.TAG_INVENTORY; @@ -24,14 +23,13 @@ public class InventoryCopterPack extends InventoryAdventure { private FluidTank fuelTank = new FluidTank(Constants.Copter.FUEL_CAPACITY); - private ItemStack[] inventory = new ItemStack[INVENTORY_SIZE]; private byte status = ItemCopterPack.OFF_MODE; private int tickCounter = 0; public InventoryCopterPack(ItemStack copterPack) { - containerStack = copterPack; + super(copterPack, Constants.Copter.INVENTORY_SIZE); detectAndConvertFromOldNBTFormat(containerStack.stackTagCompound); openInventory(); } @@ -54,7 +52,7 @@ public FluidTank[] getTanksArray() } @Override - public int[] getSlotsOnClosingArray() + public int[] getSlotsOnClosing() { return new int[]{BUCKET_IN, BUCKET_OUT}; } diff --git a/src/main/java/com/darkona/adventurebackpack/proxy/ClientProxy.java b/src/main/java/com/darkona/adventurebackpack/proxy/ClientProxy.java index ae9b3307..d2fb5703 100644 --- a/src/main/java/com/darkona/adventurebackpack/proxy/ClientProxy.java +++ b/src/main/java/com/darkona/adventurebackpack/proxy/ClientProxy.java @@ -4,9 +4,11 @@ import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.client.MinecraftForgeClient; import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.oredict.OreDictionary; import cpw.mods.fml.client.registry.ClientRegistry; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.FMLCommonHandler; @@ -35,6 +37,7 @@ import com.darkona.adventurebackpack.init.ModBlocks; import com.darkona.adventurebackpack.init.ModItems; import com.darkona.adventurebackpack.playerProperties.BackpackProperty; +import com.darkona.adventurebackpack.reference.LoadedMods; /** * Created on 10/10/2014 @@ -54,6 +57,12 @@ public void init() initRenderers(); registerKeybindings(); MinecraftForge.EVENT_BUS.register(new GuiOverlay(Minecraft.getMinecraft())); + + if (LoadedMods.NEI) + { + codechicken.nei.api.API.hideItem(new ItemStack(ModBlocks.blockBackpack, 1, OreDictionary.WILDCARD_VALUE)); + codechicken.nei.api.API.hideItem(new ItemStack(ModBlocks.blockSleepingBag, 1, OreDictionary.WILDCARD_VALUE)); + } } @Override diff --git a/src/main/java/com/darkona/adventurebackpack/reference/LoadedMods.java b/src/main/java/com/darkona/adventurebackpack/reference/LoadedMods.java index d4985da4..e5172e05 100644 --- a/src/main/java/com/darkona/adventurebackpack/reference/LoadedMods.java +++ b/src/main/java/com/darkona/adventurebackpack/reference/LoadedMods.java @@ -18,6 +18,7 @@ public final class LoadedMods public static final boolean BUILDCRAFT = registerMod("BuildCraft|Core"); public static final boolean ENDERIO = registerMod("EnderIO"); public static final boolean GREGTECH = registerMod("gregtech"); + public static final boolean NEI = registerMod("NotEnoughItems"); public static final boolean TCONSTRUCT = registerMod("TConstruct"); public static final boolean THAUMCRAFT = registerMod("Thaumcraft"); diff --git a/src/main/java/com/darkona/adventurebackpack/reference/WailaTileAdventureBackpack.java b/src/main/java/com/darkona/adventurebackpack/reference/WailaTileAdventureBackpack.java index 67afde62..1bc5e2aa 100644 --- a/src/main/java/com/darkona/adventurebackpack/reference/WailaTileAdventureBackpack.java +++ b/src/main/java/com/darkona/adventurebackpack/reference/WailaTileAdventureBackpack.java @@ -41,8 +41,6 @@ public static void init() FMLInterModComms.sendMessage("Waila", "register", "com.darkona.adventurebackpack.reference.WailaTileAdventureBackpack.callbackRegister"); } - //TODO fix the icon. for some reason WAILA shows "standard" icon for all of backpacks. in the same time NEI tooltips shows right icon - public static void callbackRegister(IWailaRegistrar registrar) { registrar.registerHeadProvider(new WailaTileAdventureBackpack(), TileAdventureBackpack.class);