Added ability to mass craft with Engineering Table
This commit is contained in:
parent
8c7e8d7601
commit
05241e740e
2 changed files with 27 additions and 20 deletions
|
@ -68,30 +68,36 @@ public class BlockEngineeringTable extends BlockRI
|
||||||
if (check.distance(hitVector) < regionLength)
|
if (check.distance(hitVector) < regionLength)
|
||||||
{
|
{
|
||||||
int slotID = j * 3 + k;
|
int slotID = j * 3 + k;
|
||||||
|
boolean didInsert = false;
|
||||||
ItemStack checkStack = tile.craftingMatrix[slotID];
|
ItemStack checkStack = tile.craftingMatrix[slotID];
|
||||||
|
|
||||||
if (checkStack != null)
|
if (current != null)
|
||||||
|
{
|
||||||
|
if (checkStack == null || checkStack.isItemEqual(current))
|
||||||
|
{
|
||||||
|
if (ControlKeyModifer.isControlDown(player))
|
||||||
|
{
|
||||||
|
tile.craftingMatrix[slotID] = current;
|
||||||
|
current = null;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
tile.craftingMatrix[slotID] = current.splitStack(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (current == null || current.stackSize <= 0)
|
||||||
|
{
|
||||||
|
player.inventory.setInventorySlotContents(player.inventory.currentItem, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!didInsert && checkStack != null)
|
||||||
{
|
{
|
||||||
InventoryUtility.dropItemStack(world, new Vector3(player), checkStack, 0);
|
InventoryUtility.dropItemStack(world, new Vector3(player), checkStack, 0);
|
||||||
tile.craftingMatrix[slotID] = null;
|
tile.craftingMatrix[slotID] = null;
|
||||||
}
|
}
|
||||||
else if (current != null)
|
|
||||||
{
|
|
||||||
if (ControlKeyModifer.isControlDown(player))
|
|
||||||
{
|
|
||||||
tile.craftingMatrix[slotID] = current.splitStack(1);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
tile.craftingMatrix[slotID] = current;
|
|
||||||
current = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (current == null || current.stackSize <= 0)
|
|
||||||
{
|
|
||||||
player.inventory.setInventorySlotContents(player.inventory.currentItem, null);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
break matrix;
|
break matrix;
|
||||||
}
|
}
|
||||||
|
@ -108,11 +114,12 @@ public class BlockEngineeringTable extends BlockRI
|
||||||
{
|
{
|
||||||
ItemStack output = tile.getStackInSlot(9);
|
ItemStack output = tile.getStackInSlot(9);
|
||||||
|
|
||||||
if (output != null)
|
while (output != null && ControlKeyModifer.isControlDown(player))
|
||||||
{
|
{
|
||||||
InventoryUtility.dropItemStack(world, new Vector3(player), output, 0);
|
InventoryUtility.dropItemStack(world, new Vector3(player), output, 0);
|
||||||
tile.onPickUpFromSlot(player, 9, output);
|
tile.onPickUpFromSlot(player, 9, output);
|
||||||
tile.setInventorySlotContents(9, null);
|
tile.setInventorySlotContents(9, null);
|
||||||
|
output = tile.getStackInSlot(9);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -65,7 +65,7 @@ public class RenderEngineeringTable extends TileEntitySpecialRenderer
|
||||||
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240, 240);
|
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240, 240);
|
||||||
this.renderItem(tileEntity.worldObj, ForgeDirection.UP, tile.craftingMatrix[i], new Vector3(), 0, 0);
|
this.renderItem(tileEntity.worldObj, ForgeDirection.UP, tile.craftingMatrix[i], new Vector3(), 0, 0);
|
||||||
GL11.glPopMatrix();
|
GL11.glPopMatrix();
|
||||||
|
System.out.println(tile.craftingMatrix[i].stackSize);
|
||||||
if (isLooking)
|
if (isLooking)
|
||||||
RenderUtility.renderFloatingText("" + tile.craftingMatrix[i].stackSize, (float) translation.x, (float) translation.y - 2f, (float) translation.z);
|
RenderUtility.renderFloatingText("" + tile.craftingMatrix[i].stackSize, (float) translation.x, (float) translation.y - 2f, (float) translation.z);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue