Display active machines in controller.
This commit is contained in:
		| @@ -1,8 +1,13 @@ | ||||
| package refinedstorage.gui; | ||||
|  | ||||
| import net.minecraft.block.Block; | ||||
| import net.minecraft.block.state.IBlockState; | ||||
| import net.minecraft.client.renderer.RenderHelper; | ||||
| import net.minecraft.item.ItemStack; | ||||
| import refinedstorage.container.ContainerController; | ||||
| import refinedstorage.gui.sidebutton.SideButtonRedstoneMode; | ||||
| import refinedstorage.tile.TileController; | ||||
| import refinedstorage.tile.TileMachine; | ||||
|  | ||||
| public class GuiController extends GuiBase | ||||
| { | ||||
| @@ -11,7 +16,9 @@ public class GuiController extends GuiBase | ||||
| 	private int barX = 8; | ||||
| 	private int barY = 20; | ||||
| 	private int barWidth = 16; | ||||
| 	private int barHeight = 58; | ||||
| 	private int barHeight = 59; | ||||
|  | ||||
| 	private Scrollbar scrollbar = new Scrollbar(157, 20, 12, 59); | ||||
|  | ||||
| 	public GuiController(ContainerController container, TileController controller) | ||||
| 	{ | ||||
| @@ -29,6 +36,7 @@ public class GuiController extends GuiBase | ||||
| 	@Override | ||||
| 	public void update(int x, int y) | ||||
| 	{ | ||||
| 		scrollbar.setCanScroll(getRows() > getVisibleRows()); | ||||
| 	} | ||||
|  | ||||
| 	@Override | ||||
| @@ -41,19 +49,72 @@ public class GuiController extends GuiBase | ||||
| 		int barHeightNew = (int) ((float) controller.getEnergyStored(null) / (float) controller.getMaxEnergyStored(null) * (float) barHeight); | ||||
|  | ||||
| 		drawTexture(x + barX, y + barY + barHeight - barHeightNew, 178, 0 + (barHeight - barHeightNew), barWidth, barHeightNew); | ||||
|  | ||||
| 		scrollbar.draw(this); | ||||
| 	} | ||||
|  | ||||
| 	@Override | ||||
| 	public void drawForeground(int mouseX, int mouseY) | ||||
| 	{ | ||||
| 		scrollbar.update(this, mouseX, mouseY); | ||||
|  | ||||
| 		drawString(7, 7, t("gui.refinedstorage:controller." + controller.getType().getId())); | ||||
| 		drawString(7, 87, t("container.inventory")); | ||||
|  | ||||
| 		drawString(31, 20, t("misc.refinedstorage:energy_usage", controller.getEnergyUsage())); | ||||
| 		int x = 33; | ||||
| 		int y = 26; | ||||
|  | ||||
| 		int slot = getOffset() * 2; | ||||
|  | ||||
| 		RenderHelper.enableGUIStandardItemLighting(); | ||||
|  | ||||
| 		for (int i = 0; i < 4; ++i) | ||||
| 		{ | ||||
| 			if (slot < controller.getMachines().size()) | ||||
| 			{ | ||||
| 				TileMachine machine = controller.getMachines().get(slot); | ||||
| 				IBlockState machineState = machine.getWorld().getBlockState(machine.getPos()); | ||||
| 				Block machineBlock = machineState.getBlock(); | ||||
|  | ||||
| 				ItemStack machineStack = new ItemStack(machineBlock, 1, machineBlock.getMetaFromState(machineState)); | ||||
|  | ||||
| 				drawItem(x, y, machineStack); | ||||
| 				drawString(x + 21, y + 5, t("misc.refinedstorage:energy_usage_minimal", machine.getEnergyUsage())); | ||||
| 			} | ||||
|  | ||||
| 			if (i == 1) | ||||
| 			{ | ||||
| 				x = 33; | ||||
| 				y += 30; | ||||
| 			} | ||||
| 			else | ||||
| 			{ | ||||
| 				x += 60; | ||||
| 			} | ||||
|  | ||||
| 			slot++; | ||||
| 		} | ||||
|  | ||||
| 		if (inBounds(barX, barY, barWidth, barHeight, mouseX, mouseY)) | ||||
| 		{ | ||||
| 			drawTooltip(mouseX, mouseY, t("misc.refinedstorage:energy_stored", controller.getEnergyStored(null), controller.getMaxEnergyStored(null))); | ||||
| 			drawTooltip(mouseX, mouseY, t("misc.refinedstorage:energy_usage", controller.getEnergyUsage()) + "\n" + t("misc.refinedstorage:energy_stored", controller.getEnergyStored(null), controller.getMaxEnergyStored(null))); | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	public int getOffset() | ||||
| 	{ | ||||
| 		return (int) (scrollbar.getCurrentScroll() / 59f * (float) getRows()); | ||||
| 	} | ||||
|  | ||||
| 	private int getRows() | ||||
| 	{ | ||||
| 		int max = (int) Math.ceil((float) controller.getMachines().size() / (float) 2); | ||||
|  | ||||
| 		return max < 0 ? 0 : max; | ||||
| 	} | ||||
|  | ||||
| 	private int getVisibleRows() | ||||
| 	{ | ||||
| 		return 2; | ||||
| 	} | ||||
| } | ||||
|   | ||||
| @@ -12,7 +12,6 @@ import net.minecraft.client.renderer.GlStateManager; | ||||
| import net.minecraft.client.renderer.RenderHelper; | ||||
| import net.minecraft.init.SoundEvents; | ||||
| import net.minecraft.inventory.Slot; | ||||
| import org.lwjgl.input.Mouse; | ||||
| import refinedstorage.RefinedStorage; | ||||
| import refinedstorage.block.EnumGridType; | ||||
| import refinedstorage.container.ContainerGrid; | ||||
| @@ -66,24 +65,6 @@ public class GuiGrid extends GuiBase | ||||
| 	public void update(int x, int y) | ||||
| 	{ | ||||
| 		scrollbar.setCanScroll(getRows() > getVisibleRows()); | ||||
|  | ||||
| 		if (scrollbar.canScroll()) | ||||
| 		{ | ||||
| 			int wheel = Mouse.getDWheel(); | ||||
|  | ||||
| 			wheel = Math.max(Math.min(-wheel, 1), -1); | ||||
|  | ||||
| 			float delta = 20; | ||||
|  | ||||
| 			if (wheel == -1) | ||||
| 			{ | ||||
| 				scrollbar.setCurrentScroll(scrollbar.getCurrentScroll() - delta); | ||||
| 			} | ||||
| 			else if (wheel == 1) | ||||
| 			{ | ||||
| 				scrollbar.setCurrentScroll(scrollbar.getCurrentScroll() + delta); | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	public int getOffset() | ||||
|   | ||||
| @@ -73,6 +73,21 @@ public class Scrollbar | ||||
| 		} | ||||
| 		else | ||||
| 		{ | ||||
| 			int wheel = Mouse.getDWheel(); | ||||
|  | ||||
| 			wheel = Math.max(Math.min(-wheel, 1), -1); | ||||
|  | ||||
| 			float delta = 15; | ||||
|  | ||||
| 			if (wheel == -1) | ||||
| 			{ | ||||
| 				setCurrentScroll(currentScroll - delta); | ||||
| 			} | ||||
| 			else if (wheel == 1) | ||||
| 			{ | ||||
| 				setCurrentScroll(currentScroll + delta); | ||||
| 			} | ||||
|  | ||||
| 			boolean down = Mouse.isButtonDown(0); | ||||
|  | ||||
| 			if (!wasClicking && down && gui.inBounds(x, y, scrollbarWidth, scrollbarHeight, mouseX, mouseY)) | ||||
|   | ||||
| @@ -413,6 +413,21 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor | ||||
| 		{ | ||||
| 			items.add(new StorageItem(buf)); | ||||
| 		} | ||||
|  | ||||
| 		machines.clear(); | ||||
|  | ||||
| 		size = buf.readInt(); | ||||
|  | ||||
| 		for (int i = 0; i < size; ++i) | ||||
| 		{ | ||||
| 			TileEntity tile = worldObj.getTileEntity(new BlockPos(buf.readInt(), buf.readInt(), buf.readInt())); | ||||
|  | ||||
| 			if (tile instanceof TileMachine) | ||||
| 			{ | ||||
| 				machines.add((TileMachine) tile); | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 	} | ||||
|  | ||||
| 	@Override | ||||
| @@ -429,5 +444,14 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor | ||||
| 		{ | ||||
| 			item.toBytes(buf, items.indexOf(item)); | ||||
| 		} | ||||
|  | ||||
| 		buf.writeInt(machines.size()); | ||||
|  | ||||
| 		for (TileMachine machine : machines) | ||||
| 		{ | ||||
| 			buf.writeInt(machine.getPos().getX()); | ||||
| 			buf.writeInt(machine.getPos().getY()); | ||||
| 			buf.writeInt(machine.getPos().getZ()); | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|   | ||||
| @@ -44,7 +44,7 @@ public class TileDetector extends TileMachine implements ICompareSetting | ||||
| 	@Override | ||||
| 	public int getEnergyUsage() | ||||
| 	{ | ||||
| 		return 4; | ||||
| 		return 3; | ||||
| 	} | ||||
|  | ||||
| 	@Override | ||||
|   | ||||
| @@ -52,7 +52,7 @@ public class TileGrid extends TileMachine | ||||
| 	@Override | ||||
| 	public int getEnergyUsage() | ||||
| 	{ | ||||
| 		return 5; | ||||
| 		return 4; | ||||
| 	} | ||||
|  | ||||
| 	@Override | ||||
|   | ||||
| @@ -25,7 +25,7 @@ public class TileInterface extends TileMachine implements ICompareSetting, ISide | ||||
| 	@Override | ||||
| 	public int getEnergyUsage() | ||||
| 	{ | ||||
| 		return 5; | ||||
| 		return 4; | ||||
| 	} | ||||
|  | ||||
| 	@Override | ||||
|   | ||||
| @@ -45,7 +45,7 @@ public class TileStorage extends TileMachine implements IStorageProvider, IStora | ||||
| 	@Override | ||||
| 	public int getEnergyUsage() | ||||
| 	{ | ||||
| 		return 1; | ||||
| 		return 3; | ||||
| 	} | ||||
|  | ||||
| 	@Override | ||||
|   | ||||
| @@ -26,7 +26,7 @@ public class TileWirelessTransmitter extends TileMachine implements IInventory | ||||
| 	@Override | ||||
| 	public int getEnergyUsage() | ||||
| 	{ | ||||
| 		return 4; | ||||
| 		return 3; | ||||
| 	} | ||||
|  | ||||
| 	@Override | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Raoul Van den Berge
					Raoul Van den Berge