fix GUI offsets and textures, finish charging table

This commit is contained in:
Adrian Siekierka 2014-11-08 10:31:47 +01:00
parent 19b3f81c91
commit b78bf28ead
21 changed files with 159 additions and 37 deletions

View file

@ -257,6 +257,8 @@ tile.blockFuel.name=Fuel
tile.blockHopper.name=Chute tile.blockHopper.name=Chute
tile.blockOil.name=Oil tile.blockOil.name=Oil
tile.builderBlock.name=Builder tile.builderBlock.name=Builder
tile.chargingTableBlock.name=Charging Table
tile.constructionMarkerBlock.name=Construction Mark
tile.engineCreative.name=Creative Engine tile.engineCreative.name=Creative Engine
tile.engineIron.name=Combustion Engine tile.engineIron.name=Combustion Engine
tile.engineStone.name=Stirling Engine tile.engineStone.name=Stirling Engine
@ -270,7 +272,6 @@ tile.laserBlock.name=Laser
tile.libraryBlock.name=Blueprint Library tile.libraryBlock.name=Blueprint Library
tile.machineBlock.name=Quarry tile.machineBlock.name=Quarry
tile.markerBlock.name=Land Mark tile.markerBlock.name=Land Mark
tile.constructionMarkerBlock.name=Construction Mark
tile.miningWellBlock.name=Mining Well tile.miningWellBlock.name=Mining Well
tile.pathMarkerBlock.name=Path Mark tile.pathMarkerBlock.name=Path Mark
tile.plainPipeBlock.name=Mining Pipe tile.plainPipeBlock.name=Mining Pipe

Binary file not shown.

After

Width:  |  Height:  |  Size: 387 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 343 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 531 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 624 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 831 B

After

Width:  |  Height:  |  Size: 868 B

View file

@ -8,6 +8,7 @@
*/ */
package buildcraft; package buildcraft;
import buildcraft.silicon.*;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.init.Items; import net.minecraft.init.Items;
import net.minecraft.item.Item; import net.minecraft.item.Item;
@ -56,18 +57,7 @@ import buildcraft.core.robots.boards.BoardRobotPickerNBT;
import buildcraft.core.robots.boards.BoardRobotPlanterNBT; import buildcraft.core.robots.boards.BoardRobotPlanterNBT;
import buildcraft.core.robots.boards.BoardRobotPumpNBT; import buildcraft.core.robots.boards.BoardRobotPumpNBT;
import buildcraft.core.robots.boards.BoardRobotShovelmanNBT; import buildcraft.core.robots.boards.BoardRobotShovelmanNBT;
import buildcraft.silicon.BlockLaser;
import buildcraft.silicon.BlockLaserTable;
import buildcraft.silicon.GuiHandler;
import buildcraft.silicon.ItemLaserTable;
import buildcraft.silicon.ItemRedstoneBoard;
import buildcraft.silicon.ItemRedstoneChipset;
import buildcraft.silicon.ItemRedstoneChipset.Chipset; import buildcraft.silicon.ItemRedstoneChipset.Chipset;
import buildcraft.silicon.SiliconProxy;
import buildcraft.silicon.TileAdvancedCraftingTable;
import buildcraft.silicon.TileAssemblyTable;
import buildcraft.silicon.TileIntegrationTable;
import buildcraft.silicon.TileLaser;
import buildcraft.silicon.boards.BoardRecipe; import buildcraft.silicon.boards.BoardRecipe;
import buildcraft.silicon.boards.ImplRedstoneBoardRegistry; import buildcraft.silicon.boards.ImplRedstoneBoardRegistry;
import buildcraft.silicon.network.PacketHandlerSilicon; import buildcraft.silicon.network.PacketHandlerSilicon;
@ -196,6 +186,8 @@ public class BuildCraftSilicon extends BuildCraftMod {
"net.minecraft.src.buildcraft.factory.TileAssemblyAdvancedWorkbench"); "net.minecraft.src.buildcraft.factory.TileAssemblyAdvancedWorkbench");
CoreProxy.proxy.registerTileEntity(TileIntegrationTable.class, CoreProxy.proxy.registerTileEntity(TileIntegrationTable.class,
"net.minecraft.src.buildcraft.factory.TileIntegrationTable"); "net.minecraft.src.buildcraft.factory.TileIntegrationTable");
CoreProxy.proxy.registerTileEntity(TileChargingTable.class,
"net.minecraft.src.buildcraft.factory.TileChargingTable");
CoreProxy.proxy.registerTileEntity(TileZonePlan.class, "net.minecraft.src.buildcraft.commander.TileZonePlan"); CoreProxy.proxy.registerTileEntity(TileZonePlan.class, "net.minecraft.src.buildcraft.commander.TileZonePlan");
CoreProxy.proxy.registerTileEntity(TileRequester.class, "net.minecraft.src.buildcraft.commander.TileRequester"); CoreProxy.proxy.registerTileEntity(TileRequester.class, "net.minecraft.src.buildcraft.commander.TileRequester");

2
common/buildcraft/core/inventory/CrafterCopy.java Executable file → Normal file
View file

@ -56,7 +56,7 @@ public class CrafterCopy implements IFlexibleCrafter {
} }
@Override @Override
public ItemStack decrCraftingItemgStack(int slotid, int val) { public ItemStack decrCraftingItemStack(int slotid, int val) {
ItemStack result; ItemStack result;
if (val >= items[slotid].stackSize) { if (val >= items[slotid].stackSize) {

4
common/buildcraft/core/recipes/FlexibleRecipe.java Executable file → Normal file
View file

@ -190,7 +190,7 @@ public class FlexibleRecipe<T> implements IFlexibleRecipe<T>, IFlexibleRecipeVie
removed = stack.copy(); removed = stack.copy();
removed.stackSize = expected; removed.stackSize = expected;
} else { } else {
removed = crafter.decrCraftingItemgStack(slotid, expected); removed = crafter.decrCraftingItemStack(slotid, expected);
} }
expected = 0; expected = 0;
@ -198,7 +198,7 @@ public class FlexibleRecipe<T> implements IFlexibleRecipe<T>, IFlexibleRecipeVie
if (preview) { if (preview) {
removed = stack.copy(); removed = stack.copy();
} else { } else {
removed = crafter.decrCraftingItemgStack(slotid, stack.stackSize); removed = crafter.decrCraftingItemStack(slotid, stack.stackSize);
} }
expected -= removed.stackSize; expected -= removed.stackSize;

View file

@ -406,7 +406,7 @@ public class TileRefinery extends TileBuildCraft implements IFluidHandler, IInve
} }
@Override @Override
public ItemStack decrCraftingItemgStack(int slotid, int val) { public ItemStack decrCraftingItemStack(int slotid, int val) {
return null; return null;
} }

View file

@ -31,6 +31,7 @@ import buildcraft.core.CreativeTabBuildCraft;
import buildcraft.core.utils.Utils; import buildcraft.core.utils.Utils;
public class BlockLaserTable extends BlockBuildCraft implements ILaserTargetBlock { public class BlockLaserTable extends BlockBuildCraft implements ILaserTargetBlock {
protected static final int TABLE_MAX = 4;
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
private IIcon[][] icons; private IIcon[][] icons;
@ -85,6 +86,10 @@ public class BlockLaserTable extends BlockBuildCraft implements ILaserTargetBloc
@Override @Override
public IIcon getIcon(int side, int meta) { public IIcon getIcon(int side, int meta) {
if (meta >= TABLE_MAX) {
return null;
}
int s = side > 1 ? 2 : side; int s = side > 1 ? 2 : side;
return icons[meta][s]; return icons[meta][s];
} }
@ -98,6 +103,8 @@ public class BlockLaserTable extends BlockBuildCraft implements ILaserTargetBloc
return new TileAdvancedCraftingTable(); return new TileAdvancedCraftingTable();
case 2: case 2:
return new TileIntegrationTable(); return new TileIntegrationTable();
case 3:
return new TileChargingTable();
} }
return null; return null;
} }
@ -116,18 +123,18 @@ public class BlockLaserTable extends BlockBuildCraft implements ILaserTargetBloc
@Override @Override
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public void getSubBlocks(Item item, CreativeTabs par2CreativeTabs, List par3List) { public void getSubBlocks(Item item, CreativeTabs par2CreativeTabs, List par3List) {
par3List.add(new ItemStack(this, 1, 0)); for (int i = 0; i < TABLE_MAX; i++) {
par3List.add(new ItemStack(this, 1, 1)); par3List.add(new ItemStack(this, 1, i));
par3List.add(new ItemStack(this, 1, 2)); }
} }
@Override @Override
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister par1IconRegister) { public void registerBlockIcons(IIconRegister par1IconRegister) {
icons = new IIcon[3][]; icons = new IIcon[TABLE_MAX][];
icons[0] = new IIcon[3]; for (int i = 0; i < TABLE_MAX; i++) {
icons[1] = new IIcon[3]; icons[i] = new IIcon[3];
icons[2] = new IIcon[3]; }
icons[0][0] = par1IconRegister.registerIcon("buildcraft:assemblytable_bottom"); icons[0][0] = par1IconRegister.registerIcon("buildcraft:assemblytable_bottom");
icons[0][1] = par1IconRegister.registerIcon("buildcraft:assemblytable_top"); icons[0][1] = par1IconRegister.registerIcon("buildcraft:assemblytable_top");
@ -140,5 +147,9 @@ public class BlockLaserTable extends BlockBuildCraft implements ILaserTargetBloc
icons[2][0] = par1IconRegister.registerIcon("buildcraft:integrationtable_bottom"); icons[2][0] = par1IconRegister.registerIcon("buildcraft:integrationtable_bottom");
icons[2][1] = par1IconRegister.registerIcon("buildcraft:integrationtable_top"); icons[2][1] = par1IconRegister.registerIcon("buildcraft:integrationtable_top");
icons[2][2] = par1IconRegister.registerIcon("buildcraft:integrationtable_side"); icons[2][2] = par1IconRegister.registerIcon("buildcraft:integrationtable_side");
icons[3][0] = par1IconRegister.registerIcon("buildcraft:chargingtable_bottom");
icons[3][1] = par1IconRegister.registerIcon("buildcraft:chargingtable_top");
icons[3][2] = par1IconRegister.registerIcon("buildcraft:chargingtable_side");
} }
} }

View file

@ -8,19 +8,13 @@
*/ */
package buildcraft.silicon; package buildcraft.silicon;
import buildcraft.silicon.gui.*;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World; import net.minecraft.world.World;
import cpw.mods.fml.common.network.IGuiHandler; import cpw.mods.fml.common.network.IGuiHandler;
import buildcraft.silicon.gui.ContainerAdvancedCraftingTable;
import buildcraft.silicon.gui.ContainerAssemblyTable;
import buildcraft.silicon.gui.ContainerIntegrationTable;
import buildcraft.silicon.gui.GuiAdvancedCraftingTable;
import buildcraft.silicon.gui.GuiAssemblyTable;
import buildcraft.silicon.gui.GuiIntegrationTable;
public class GuiHandler implements IGuiHandler { public class GuiHandler implements IGuiHandler {
@Override @Override
@ -54,6 +48,13 @@ public class GuiHandler implements IGuiHandler {
return new GuiIntegrationTable(player.inventory, (TileIntegrationTable) tile); return new GuiIntegrationTable(player.inventory, (TileIntegrationTable) tile);
} }
case 3:
if (!(tile instanceof TileChargingTable)) {
return null;
} else {
return new GuiChargingTable(player.inventory, (TileChargingTable) tile);
}
default: default:
return null; return null;
} }
@ -90,6 +91,13 @@ public class GuiHandler implements IGuiHandler {
return new ContainerIntegrationTable(player.inventory, (TileIntegrationTable) tile); return new ContainerIntegrationTable(player.inventory, (TileIntegrationTable) tile);
} }
case 3:
if (!(tile instanceof TileChargingTable)) {
return null;
} else {
return new ContainerChargingTable(player.inventory, (TileChargingTable) tile);
}
default: default:
return null; return null;
} }

View file

@ -30,12 +30,14 @@ public class ItemLaserTable extends ItemBlockBuildCraft {
return "tile.assemblyWorkbenchBlock"; return "tile.assemblyWorkbenchBlock";
case 2: case 2:
return "tile.integrationTableBlock"; return "tile.integrationTableBlock";
case 3:
return "tile.chargingTableBlock";
} }
return super.getUnlocalizedName(); return super.getUnlocalizedName();
} }
@Override @Override
public int getMetadata(int meta) { public int getMetadata(int meta) {
return meta <= 2 ? meta : 0; return meta < BlockLaserTable.TABLE_MAX ? meta : 0;
} }
} }

View file

@ -322,7 +322,7 @@ public class TileAssemblyTable extends TileLaserTableBase implements IInventory,
} }
@Override @Override
public ItemStack decrCraftingItemgStack(int slotid, int val) { public ItemStack decrCraftingItemStack(int slotid, int val) {
return decrStackSize(slotid, val); return decrStackSize(slotid, val);
} }

View file

@ -3,9 +3,31 @@ package buildcraft.silicon;
import buildcraft.api.tiles.IHasWork; import buildcraft.api.tiles.IHasWork;
import buildcraft.core.utils.StringUtils; import buildcraft.core.utils.StringUtils;
import cofh.api.energy.IEnergyContainerItem; import cofh.api.energy.IEnergyContainerItem;
import cpw.mods.fml.common.FMLCommonHandler;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
public class TileChargingTable extends TileLaserTableBase implements IHasWork { public class TileChargingTable extends TileLaserTableBase implements IHasWork {
@Override
public boolean canUpdate() {
return !FMLCommonHandler.instance().getEffectiveSide().isClient();
}
@Override
public void updateEntity() { // WARNING: run only server-side, see canUpdate()
super.updateEntity();
if (getEnergy() > 0) {
if (getRequiredEnergy() > 0) {
ItemStack stack = this.getStackInSlot(0);
IEnergyContainerItem containerItem = (IEnergyContainerItem) stack.getItem();
addEnergy(0 - containerItem.receiveEnergy(stack, getEnergy(), false));
this.setInventorySlotContents(0, stack);
} else {
addEnergy(-10);
}
}
}
@Override @Override
public int getRequiredEnergy() { public int getRequiredEnergy() {
ItemStack stack = this.getStackInSlot(0); ItemStack stack = this.getStackInSlot(0);

View file

@ -228,7 +228,7 @@ public class TileIntegrationTable extends TileLaserTableBase implements IFlexibl
} }
@Override @Override
public ItemStack decrCraftingItemgStack(int slotid, int val) { public ItemStack decrCraftingItemStack(int slotid, int val) {
return decrStackSize(slotid + 3, val); return decrStackSize(slotid + 3, val);
} }

View file

@ -0,0 +1,58 @@
/**
* Copyright (c) 2011-2014, SpaceToad and the BuildCraft Team
* http://www.mod-buildcraft.com
*
* BuildCraft is distributed under the terms of the Minecraft Mod Public
* License 1.0, or MMPL. Please check the contents of the license located in
* http://www.mod-buildcraft.com/MMPL-1.0.txt
*/
package buildcraft.silicon.gui;
import buildcraft.core.gui.BuildCraftContainer;
import buildcraft.core.gui.slots.SlotValidated;
import buildcraft.silicon.TileChargingTable;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.ICrafting;
import net.minecraft.inventory.Slot;
public class ContainerChargingTable extends BuildCraftContainer {
private TileChargingTable table;
public ContainerChargingTable(InventoryPlayer playerInventory, TileChargingTable table) {
super(table.getSizeInventory());
this.table = table;
addSlot(new SlotValidated(table, 0, 80, 18));
for (int y = 0; y < 3; y++) {
for (int x = 0; x < 9; x++) {
addSlotToContainer(new Slot(playerInventory, x + y * 9 + 9, 8 + x * 18, 50 + y * 18));
}
}
for (int x = 0; x < 9; x++) {
addSlotToContainer(new Slot(playerInventory, x, 8 + x * 18, 108));
}
}
@Override
public boolean canInteractWith(EntityPlayer var1) {
return table.isUseableByPlayer(var1);
}
@Override
public void updateProgressBar(int i, int j) {
table.getGUINetworkData(i, j);
}
@Override
public void detectAndSendChanges() {
super.detectAndSendChanges();
for (int i = 0; i < crafters.size(); i++) {
table.sendGUINetworkData(this, (ICrafting) crafters.get(i));
}
}
}

View file

@ -24,7 +24,7 @@ public class GuiAdvancedCraftingTable extends GuiLaserTable {
public GuiAdvancedCraftingTable(InventoryPlayer playerInventory, TileAdvancedCraftingTable advancedWorkbench) { public GuiAdvancedCraftingTable(InventoryPlayer playerInventory, TileAdvancedCraftingTable advancedWorkbench) {
super(playerInventory, new ContainerAdvancedCraftingTable(playerInventory, advancedWorkbench), advancedWorkbench, TEXTURE); super(playerInventory, new ContainerAdvancedCraftingTable(playerInventory, advancedWorkbench), advancedWorkbench, TEXTURE);
this.workbench = advancedWorkbench; this.workbench = advancedWorkbench;
xSize = 175; xSize = 176;
ySize = 240; ySize = 240;
} }

View file

@ -95,7 +95,7 @@ public class GuiAssemblyTable extends GuiAdvancedInterface {
super(new ContainerAssemblyTable(playerInventory, assemblyTable), assemblyTable, TEXTURE); super(new ContainerAssemblyTable(playerInventory, assemblyTable), assemblyTable, TEXTURE);
this.table = assemblyTable; this.table = assemblyTable;
xSize = 175; xSize = 176;
ySize = 207; ySize = 207;
for (int j = 0; j < 2; ++j) { for (int j = 0; j < 2; ++j) {

View file

@ -0,0 +1,28 @@
/**
* Copyright (c) 2011-2014, SpaceToad and the BuildCraft Team
* http://www.mod-buildcraft.com
*
* BuildCraft is distributed under the terms of the Minecraft Mod Public
* License 1.0, or MMPL. Please check the contents of the license located in
* http://www.mod-buildcraft.com/MMPL-1.0.txt
*/
package buildcraft.silicon.gui;
import buildcraft.core.DefaultProps;
import buildcraft.silicon.TileChargingTable;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.util.ResourceLocation;
import org.lwjgl.opengl.GL11;
public class GuiChargingTable extends GuiLaserTable {
public static final ResourceLocation TEXTURE = new ResourceLocation("buildcraft", DefaultProps.TEXTURE_PATH_GUI + "/charging_table.png");
private final TileChargingTable table;
public GuiChargingTable(InventoryPlayer playerInventory, TileChargingTable chargingTable) {
super(playerInventory, new ContainerChargingTable(playerInventory, chargingTable), chargingTable, TEXTURE);
this.table = chargingTable;
xSize = 176;
ySize = 132;
}
}

View file

@ -27,7 +27,7 @@ public class GuiIntegrationTable extends GuiLaserTable {
public GuiIntegrationTable(InventoryPlayer playerInventory, TileIntegrationTable table) { public GuiIntegrationTable(InventoryPlayer playerInventory, TileIntegrationTable table) {
super(playerInventory, new ContainerIntegrationTable(playerInventory, table), table, TEXTURE); super(playerInventory, new ContainerIntegrationTable(playerInventory, table), table, TEXTURE);
this.integrationTable = table; this.integrationTable = table;
xSize = 175; xSize = 176;
ySize = 173; ySize = 173;
} }