Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ public void preInit(FMLPreInitializationEvent event)
@Mod.EventHandler
public void init(FMLInitializationEvent event)
{
LoadedMods.init();
proxy.init();
ModRecipes.init();
ModWorldGen.init();
Expand All @@ -85,7 +86,6 @@ public void init(FMLInitializationEvent event)
@Mod.EventHandler
public void postInit(FMLPostInitializationEvent event)
{
LoadedMods.init();
GeneralReference.init();

//ConditionalFluidEffect.init();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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");
Expand Down Expand Up @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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;
}
Expand Down Expand Up @@ -145,7 +154,7 @@ public void setInventorySlotContentsNoSave(int slot, @Nullable ItemStack stack)
stack = null;
}

getInventory()[slot] = stack;
inventory[slot] = stack;
}

@Override
Expand All @@ -155,6 +164,7 @@ public void dirtyInventory()
markDirty();
}

@Deprecated
@Override
public void dirtyTanks()
{
Expand All @@ -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);
}
}
}
Expand All @@ -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();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand All @@ -76,7 +75,7 @@ public class TileAdventureBackpack extends TileAdventure implements IInventoryBa

public TileAdventureBackpack()
{
sleepingBagDeployed = false;
super(Constants.INVENTORY_SIZE);
}

@Override
Expand Down Expand Up @@ -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};
}
Expand Down Expand Up @@ -197,6 +196,7 @@ public boolean updateTankSlots()
return changesMade;
}

@Deprecated
@Override
public void dirtyExtended()
{
Expand All @@ -205,6 +205,7 @@ public void dirtyExtended()
dirtyInventory();
}

@Deprecated
@Override
public void dirtyTime()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
Expand All @@ -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)
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -75,16 +62,14 @@ 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++)
{
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));
}
}

Expand All @@ -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);
}
Expand All @@ -119,6 +105,7 @@ public void detectAndSendChanges()
super.detectAndSendChanges();
}

@SuppressWarnings("unchecked")
private void syncCraftResultToServer()
{
ItemStack stackA = ((Slot) inventorySlots.get(CRAFT_RESULT)).getStack();
Expand All @@ -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)
{
Expand Down Expand Up @@ -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();

Expand Down
Loading