GUI improvements

This commit is contained in:
Raoul Van den Berge
2016-04-13 20:16:34 +02:00
parent 13ebdc676c
commit 22f7c79dcf
11 changed files with 101 additions and 18 deletions

View File

@@ -67,8 +67,8 @@ public class ContainerGrid extends ContainerBase {
addSlotToContainer(new SlotDisabled(((TileGrid) grid).getCraftingResultInventory(), 0, 116 + 4, 120 + 4));
addSlotToContainer(new SlotFiltered(((TileGrid) grid).getPatternsInventory(), 0, 152, 106, new BasicItemValidator(RefinedStorageItems.PATTERN)));
addSlotToContainer(new SlotOutput(((TileGrid) grid).getPatternsInventory(), 1, 152, 142));
addSlotToContainer(new SlotFiltered(((TileGrid) grid).getPatternsInventory(), 0, 152, 104, new BasicItemValidator(RefinedStorageItems.PATTERN)));
addSlotToContainer(new SlotOutput(((TileGrid) grid).getPatternsInventory(), 1, 152, 144));
}
}
@@ -121,12 +121,6 @@ public class ContainerGrid extends ContainerBase {
}
}
if (!player.worldObj.isRemote && slot instanceof SlotDisabled && grid.getType() == EnumGridType.PATTERN && slot.getHasStack()) {
((TileGrid) grid).onCreatePattern();
return null;
}
return super.func_184996_a(id, clickedButton, clickType, player);
}
}

View File

@@ -13,8 +13,8 @@ public class ContainerWirelessTransmitter extends ContainerBase {
public ContainerWirelessTransmitter(EntityPlayer player, TileWirelessTransmitter wirelessTransmitter) {
super(player);
for (int i = 0; i < 9; ++i) {
addSlotToContainer(new SlotFiltered(wirelessTransmitter, i, 8 + (i * 18), 20, new IItemValidator() {
for (int i = 0; i < 4; ++i) {
addSlotToContainer(new SlotFiltered(wirelessTransmitter, i, 187, 6 + (i * 18), new IItemValidator() {
@Override
public boolean isValid(ItemStack stack) {
return stack.getItem() == RefinedStorageItems.UPGRADE && stack.getMetadata() == ItemUpgrade.TYPE_RANGE;

View File

@@ -19,6 +19,7 @@ import refinedstorage.jei.PluginRefinedStorage;
import refinedstorage.network.GridPullFlags;
import refinedstorage.network.MessageGridCraftingClear;
import refinedstorage.network.MessageGridCraftingPush;
import refinedstorage.network.MessageGridPatternCreate;
import refinedstorage.storage.ItemGroup;
import refinedstorage.tile.grid.IGrid;
import refinedstorage.tile.grid.TileGrid;
@@ -153,6 +154,18 @@ public class GuiGrid extends GuiBase {
return false;
}
public boolean isHoveringOverCreatePattern(int mouseX, int mouseY) {
if (grid.getType() == EnumGridType.PATTERN) {
return inBounds(152, 124, 16, 16, mouseX, mouseY) && isCreatePatternEnabled();
}
return false;
}
public boolean isCreatePatternEnabled() {
return ((TileGrid) grid).getCraftingResultInventory().getStackInSlot(0) != null && ((TileGrid) grid).getPatternsInventory().getStackInSlot(0) != null;
}
@Override
public void drawBackground(int x, int y, int mouseX, int mouseY) {
if (grid.getType() == EnumGridType.CRAFTING) {
@@ -165,6 +178,20 @@ public class GuiGrid extends GuiBase {
drawTexture(x, y, 0, 0, width, height);
if (grid.getType() == EnumGridType.PATTERN) {
int ty = 0;
if (isHoveringOverCreatePattern(mouseX - guiLeft, mouseY - guiTop)) {
ty = 1;
}
if (!isCreatePatternEnabled()) {
ty = 2;
}
drawTexture(x + 152, y + 124, 195, ty * 16, 16, 16);
}
scrollbar.draw(this);
searchField.drawTextBox();
@@ -259,6 +286,10 @@ public class GuiGrid extends GuiBase {
if (isHoveringOverClear(mouseX, mouseY)) {
drawTooltip(mouseX, mouseY, t("misc.refinedstorage:clear"));
}
if (isHoveringOverCreatePattern(mouseX, mouseY)) {
drawTooltip(mouseX, mouseY, t("gui.refinedstorage:grid.pattern_create"));
}
}
@Override
@@ -266,9 +297,14 @@ public class GuiGrid extends GuiBase {
super.mouseClicked(mouseX, mouseY, clickedButton);
boolean clickedClear = clickedButton == 0 && isHoveringOverClear(mouseX - guiLeft, mouseY - guiTop);
boolean playClickSound = clickedClear;
if (grid.isConnected()) {
if (isHoveringOverSlot() && container.getPlayer().inventory.getItemStack() != null && (clickedButton == 0 || clickedButton == 1)) {
if (isHoveringOverCreatePattern(mouseX - guiLeft, mouseY - guiTop)) {
RefinedStorage.NETWORK.sendToServer(new MessageGridPatternCreate((TileGrid) grid));
playClickSound = true;
} else if (isHoveringOverSlot() && container.getPlayer().inventory.getItemStack() != null && (clickedButton == 0 || clickedButton == 1)) {
grid.onItemPush(-1, clickedButton == 1);
} else if (isHoveringOverItemInSlot() && container.getPlayer().inventory.getItemStack() == null) {
if (items.get(hoveringSlot).getQuantity() == 0) {
@@ -313,7 +349,7 @@ public class GuiGrid extends GuiBase {
}
}
if (clickedClear) {
if (playClickSound) {
mc.getSoundHandler().playSound(PositionedSoundRecord.getMasterRecord(SoundEvents.ui_button_click, 1.0F));
}
}

View File

@@ -8,7 +8,7 @@ public class GuiWirelessTransmitter extends GuiBase {
private TileWirelessTransmitter wirelessTransmitter;
public GuiWirelessTransmitter(ContainerWirelessTransmitter container, TileWirelessTransmitter wirelessTransmitter) {
super(container, 176, 137);
super(container, 211, 137);
this.wirelessTransmitter = wirelessTransmitter;
}
@@ -31,7 +31,8 @@ public class GuiWirelessTransmitter extends GuiBase {
@Override
public void drawForeground(int mouseX, int mouseY) {
drawString(7, 7, t("gui.refinedstorage:wireless_transmitter", wirelessTransmitter.getRange()));
drawString(7, 7, t("gui.refinedstorage:wireless_transmitter"));
drawString(28, 24, t("gui.refinedstorage:wireless_transmitter.distance", wirelessTransmitter.getRange()));
drawString(7, 43, t("container.inventory"));
}
}

View File

@@ -0,0 +1,47 @@
package refinedstorage.network;
import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.math.BlockPos;
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
import refinedstorage.block.EnumGridType;
import refinedstorage.tile.grid.TileGrid;
public class MessageGridPatternCreate extends MessageHandlerPlayerToServer<MessageGridPatternCreate> implements IMessage {
private int x;
private int y;
private int z;
public MessageGridPatternCreate() {
}
public MessageGridPatternCreate(TileGrid grid) {
this.x = grid.getPos().getX();
this.y = grid.getPos().getY();
this.z = grid.getPos().getZ();
}
@Override
public void fromBytes(ByteBuf buf) {
x = buf.readInt();
y = buf.readInt();
z = buf.readInt();
}
@Override
public void toBytes(ByteBuf buf) {
buf.writeInt(x);
buf.writeInt(y);
buf.writeInt(z);
}
@Override
public void handle(MessageGridPatternCreate message, EntityPlayerMP player) {
TileEntity tile = player.worldObj.getTileEntity(new BlockPos(message.x, message.y, message.z));
if (tile instanceof TileGrid && ((TileGrid) tile).getType() == EnumGridType.PATTERN) {
((TileGrid) tile).onCreatePattern();
}
}
}

View File

@@ -50,6 +50,7 @@ public class CommonProxy {
RefinedStorage.NETWORK.registerMessage(MessageGridCraftingShift.class, MessageGridCraftingShift.class, 19, Side.SERVER);
RefinedStorage.NETWORK.registerMessage(MessageGridCraftingStart.class, MessageGridCraftingStart.class, 20, Side.SERVER);
RefinedStorage.NETWORK.registerMessage(MessageWirelessGridCraftingStart.class, MessageWirelessGridCraftingStart.class, 21, Side.SERVER);
RefinedStorage.NETWORK.registerMessage(MessageGridPatternCreate.class, MessageGridPatternCreate.class, 22, Side.SERVER);
NetworkRegistry.INSTANCE.registerGuiHandler(RefinedStorage.INSTANCE, new GuiHandler());

View File

@@ -13,7 +13,7 @@ public class TileWirelessTransmitter extends TileMachine implements IInventory {
public static final int RANGE_PER_UPGRADE = 8;
public static final int RF_PER_UPGRADE = 8;
private InventorySimple inventory = new InventorySimple("upgrades", 9, this);
private InventorySimple inventory = new InventorySimple("upgrades", 4, this);
@Override
public int getEnergyUsage() {
@@ -45,7 +45,7 @@ public class TileWirelessTransmitter extends TileMachine implements IInventory {
private int getUpgrades() {
int upgrades = 0;
for (int i = 0; i < 9; ++i) {
for (int i = 0; i < inventory.getSizeInventory(); ++i) {
if (inventory.getStackInSlot(i) != null) {
upgrades++;
}

View File

@@ -7,6 +7,7 @@ gui.refinedstorage:controller.machine_position.y=Y: %d
gui.refinedstorage:controller.machine_position.z=Z: %d
gui.refinedstorage:grid=Grid
gui.refinedstorage:grid.pattern=Pattern
gui.refinedstorage:grid.pattern_create=Create Pattern
gui.refinedstorage:wireless_grid=Wireless Grid
gui.refinedstorage:disk_drive=Drive
gui.refinedstorage:external_storage=External Storage
@@ -21,7 +22,8 @@ gui.refinedstorage:interface.import=Interface Import
gui.refinedstorage:interface.export=Interface Export
gui.refinedstorage:interface.patterns=Patterns
gui.refinedstorage:crafting_monitor=Crafting Monitor
gui.refinedstorage:wireless_transmitter=Wireless Transmitter (%d blocks)
gui.refinedstorage:wireless_transmitter=Wireless Transmitter
gui.refinedstorage:wireless_transmitter.distance=%d blocks
misc.refinedstorage:energy_stored=%d / %d RF
misc.refinedstorage:energy_usage=Usage: %d RF/t

View File

@@ -7,6 +7,7 @@ gui.refinedstorage:controller.machine_position.y=Y: %d
gui.refinedstorage:controller.machine_position.z=Z: %d
gui.refinedstorage:grid=Rooster
gui.refinedstorage:grid.pattern=Patroon
gui.refinedstorage:grid.pattern_create=Patroon maken
gui.refinedstorage:wireless_grid=Draadloos Rooster
gui.refinedstorage:disk_drive=Schijf
gui.refinedstorage:external_storage=Externe Opslag
@@ -21,7 +22,8 @@ gui.refinedstorage:interface.import=Interface Import
gui.refinedstorage:interface.export=Interface Export
gui.refinedstorage:interface.patterns=Patronen
gui.refinedstorage:crafting_monitor=Crafting Monitor
gui.refinedstorage:wireless_transmitter=Draadloze Zender (%d blokken)
gui.refinedstorage:wireless_transmitter=Draadloze Zender
gui.refinedstorage:wireless_transmitter.distance=%d blokken
misc.refinedstorage:energy_stored=%d / %d RF
misc.refinedstorage:energy_usage=Vebruik: %d RF/t

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB