More gui stuff for PP encoder
This commit is contained in:
@@ -36,6 +36,6 @@ public class ContainerProcessingPatternEncoder extends ContainerBase {
|
||||
addSlotToContainer(new SlotFiltered(ppEncoder, 0, 152, 18, new BasicItemValidator(RefinedStorageItems.PATTERN)));
|
||||
addSlotToContainer(new SlotOutput(ppEncoder, 1, 152, 58));
|
||||
|
||||
addPlayerInventory(8, 93);
|
||||
addPlayerInventory(8, 90);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import net.minecraft.client.renderer.GlStateManager;
|
||||
import net.minecraft.client.renderer.RenderHelper;
|
||||
import net.minecraft.init.SoundEvents;
|
||||
import net.minecraft.inventory.Slot;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraftforge.fml.client.config.GuiCheckBox;
|
||||
import net.minecraftforge.fml.common.FMLCommonHandler;
|
||||
import refinedstorage.RefinedStorage;
|
||||
@@ -303,7 +304,8 @@ public class GuiGrid extends GuiBase {
|
||||
|
||||
if (grid.isConnected()) {
|
||||
if (clickedCreatePattern) {
|
||||
RefinedStorage.NETWORK.sendToServer(new MessageGridPatternCreate((TileGrid) grid));
|
||||
BlockPos gridPos = ((TileGrid) grid).getPos();
|
||||
RefinedStorage.NETWORK.sendToServer(new MessageGridPatternCreate(gridPos.getX(), gridPos.getY(), gridPos.getZ()));
|
||||
} 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) {
|
||||
|
||||
@@ -1,15 +1,27 @@
|
||||
package refinedstorage.gui;
|
||||
|
||||
import net.minecraft.client.audio.PositionedSoundRecord;
|
||||
import net.minecraft.init.SoundEvents;
|
||||
import refinedstorage.RefinedStorage;
|
||||
import refinedstorage.block.EnumGridType;
|
||||
import refinedstorage.container.ContainerProcessingPatternEncoder;
|
||||
import refinedstorage.gui.sidebutton.SideButtonCompare;
|
||||
import refinedstorage.gui.sidebutton.SideButtonMode;
|
||||
import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
|
||||
import refinedstorage.network.MessageGridPatternCreate;
|
||||
import refinedstorage.tile.autocrafting.TileProcessingPatternEncoder;
|
||||
import refinedstorage.tile.grid.TileGrid;
|
||||
import refinedstorage.util.InventoryUtils;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public class GuiProcessingPatternEncoder extends GuiBase {
|
||||
private TileProcessingPatternEncoder ppEncoder;
|
||||
|
||||
public GuiProcessingPatternEncoder(ContainerProcessingPatternEncoder container, TileProcessingPatternEncoder ppEncoder) {
|
||||
super(container, 176, 172);
|
||||
|
||||
this.ppEncoder = ppEncoder;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -20,16 +32,65 @@ public class GuiProcessingPatternEncoder extends GuiBase {
|
||||
public void update(int x, int y) {
|
||||
}
|
||||
|
||||
public boolean isHoveringOverCreatePattern(int mouseX, int mouseY) {
|
||||
return inBounds(152, 38, 16, 16, mouseX, mouseY) && isCreatePatternEnabled();
|
||||
}
|
||||
|
||||
public boolean isCreatePatternEnabled() {
|
||||
int inputsFilled = 0, outputsFilled = 0;
|
||||
|
||||
for (int i = 0; i < 9; ++i) {
|
||||
if (ppEncoder.getInputsOutputsInventory().getStackInSlot(i) != null) {
|
||||
inputsFilled++;
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 9; i < 18; ++i) {
|
||||
if (ppEncoder.getInputsOutputsInventory().getStackInSlot(i) != null) {
|
||||
outputsFilled++;
|
||||
}
|
||||
}
|
||||
|
||||
return inputsFilled > 0 && outputsFilled > 0 && ppEncoder.getStackInSlot(0) != null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void drawBackground(int x, int y, int mouseX, int mouseY) {
|
||||
bindTexture("gui/processing_pattern_encoder.png");
|
||||
|
||||
drawTexture(x, y, 0, 0, width, height);
|
||||
|
||||
int ty = 0;
|
||||
|
||||
if (isHoveringOverCreatePattern(mouseX - guiLeft, mouseY - guiTop)) {
|
||||
ty = 1;
|
||||
}
|
||||
|
||||
if (!isCreatePatternEnabled()) {
|
||||
ty = 2;
|
||||
}
|
||||
|
||||
drawTexture(x + 152, y + 38, 178, ty * 16, 16, 16);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void drawForeground(int mouseX, int mouseY) {
|
||||
drawString(7, 7, t("gui.refinedstorage:processing_pattern_encoder"));
|
||||
drawString(7, 77, t("container.inventory"));
|
||||
drawString(7, 78, t("container.inventory"));
|
||||
|
||||
if (isHoveringOverCreatePattern(mouseX, mouseY)) {
|
||||
drawTooltip(mouseX, mouseY, t("gui.refinedstorage:processing_pattern_encoder.pattern_create"));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException {
|
||||
super.mouseClicked(mouseX, mouseY, mouseButton);
|
||||
|
||||
if (isHoveringOverCreatePattern(mouseX - guiLeft, mouseY - guiTop)) {
|
||||
RefinedStorage.NETWORK.sendToServer(new MessageGridPatternCreate(ppEncoder.getPos().getX(), ppEncoder.getPos().getY(), ppEncoder.getPos().getZ()));
|
||||
|
||||
mc.getSoundHandler().playSound(PositionedSoundRecord.getMasterRecord(SoundEvents.ui_button_click, 1.0F));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ 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.autocrafting.TileProcessingPatternEncoder;
|
||||
import refinedstorage.tile.grid.TileGrid;
|
||||
|
||||
public class MessageGridPatternCreate extends MessageHandlerPlayerToServer<MessageGridPatternCreate> implements IMessage {
|
||||
@@ -16,10 +17,10 @@ public class MessageGridPatternCreate extends MessageHandlerPlayerToServer<Messa
|
||||
public MessageGridPatternCreate() {
|
||||
}
|
||||
|
||||
public MessageGridPatternCreate(TileGrid grid) {
|
||||
this.x = grid.getPos().getX();
|
||||
this.y = grid.getPos().getY();
|
||||
this.z = grid.getPos().getZ();
|
||||
public MessageGridPatternCreate(int x, int y, int z) {
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
this.z = z;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -42,6 +43,8 @@ public class MessageGridPatternCreate extends MessageHandlerPlayerToServer<Messa
|
||||
|
||||
if (tile instanceof TileGrid && ((TileGrid) tile).getType() == EnumGridType.PATTERN) {
|
||||
((TileGrid) tile).onCreatePattern();
|
||||
} else if (tile instanceof TileProcessingPatternEncoder) {
|
||||
((TileProcessingPatternEncoder) tile).onCreatePattern();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -146,4 +146,8 @@ public class TileProcessingPatternEncoder extends TileBase implements ISidedInve
|
||||
public InventorySimple getInputsOutputsInventory() {
|
||||
return inputsOutputsInventory;
|
||||
}
|
||||
|
||||
public void onCreatePattern() {
|
||||
System.out.println("Create pattern!!");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,6 +25,7 @@ gui.refinedstorage:wireless_transmitter=Wireless Transmitter
|
||||
gui.refinedstorage:wireless_transmitter.distance=%d blocks
|
||||
gui.refinedstorage:crafter=Crafter
|
||||
gui.refinedstorage:processing_pattern_encoder=Processing Pattern Encoder
|
||||
gui.refinedstorage:processing_pattern_encoder.pattern_create=Create Pattern
|
||||
|
||||
misc.refinedstorage:energy_stored=%d / %d RF
|
||||
misc.refinedstorage:energy_usage=Usage: %d RF/t
|
||||
|
||||
@@ -25,6 +25,7 @@ gui.refinedstorage:wireless_transmitter=Draadloze Zender
|
||||
gui.refinedstorage:wireless_transmitter.distance=%d blokken
|
||||
gui.refinedstorage:crafter=Crafter
|
||||
gui.refinedstorage:processing_pattern_encoder=Verwerkingspatroon Codeerder
|
||||
gui.refinedstorage:processing_pattern_encoder.pattern_create=Patroon maken
|
||||
|
||||
misc.refinedstorage:energy_stored=%d / %d RF
|
||||
misc.refinedstorage:energy_usage=Vebruik: %d RF/t
|
||||
|
||||
Reference in New Issue
Block a user