More bugfixes

This commit is contained in:
Raoul Van den Berge
2016-05-07 15:20:26 +02:00
parent 1b2cf968d1
commit e3f13e94a7
2 changed files with 25 additions and 23 deletions

View File

@@ -3,7 +3,6 @@ package refinedstorage.gui;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.RenderHelper;
import net.minecraft.item.ItemStack;
import refinedstorage.RefinedStorage;
import refinedstorage.container.ContainerCraftingMonitor;
import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
@@ -98,34 +97,32 @@ public class GuiCraftingMonitor extends GuiBase {
RenderHelper.enableGUIStandardItemLighting();
List<ItemStack> tasks = craftingMonitor.getTasks();
List<String> infoLines = null;
renderItemSelection = false;
for (int i = 0; i < 6; ++i) {
if (item < tasks.size() && item < craftingMonitor.getInfo().length) {
if (item < craftingMonitor.getTasks().size()) {
if (item == itemSelected) {
renderItemSelection = true;
renderItemSelectionX = x;
renderItemSelectionY = y;
}
ItemStack task = tasks.get(item);
TileCraftingMonitor.ClientSideCraftingTask task = craftingMonitor.getTasks().get(i);
drawItem(x + 4, y + 11, task);
drawItem(x + 4, y + 11, task.output);
GlStateManager.pushMatrix();
float scale = 0.5f;
GlStateManager.scale(scale, scale, 1);
drawString(calculateOffsetOnScale(x + 5, scale), calculateOffsetOnScale(y + 4, scale), task.getDisplayName());
drawString(calculateOffsetOnScale(x + 5, scale), calculateOffsetOnScale(y + 4, scale), task.output.getDisplayName());
GlStateManager.popMatrix();
if (inBounds(x + 5, y + 10, 16, 16, mouseX, mouseY)) {
infoLines = Arrays.asList(craftingMonitor.getInfo()[item].split("\n"));
infoLines = Arrays.asList(task.info.split("\n"));
for (int j = 0; j < infoLines.size(); ++j) {
String line = infoLines.get(j);
@@ -169,7 +166,7 @@ public class GuiCraftingMonitor extends GuiBase {
super.actionPerformed(button);
if (button == cancelButton && itemSelected != -1) {
RefinedStorage.NETWORK.sendToServer(new MessageCraftingMonitorCancel(craftingMonitor, itemSelected));
RefinedStorage.NETWORK.sendToServer(new MessageCraftingMonitorCancel(craftingMonitor, craftingMonitor.getTasks().get(itemSelected).id));
} else if (button == cancelAllButton && craftingMonitor.getTasks().size() > 0) {
RefinedStorage.NETWORK.sendToServer(new MessageCraftingMonitorCancel(craftingMonitor, -1));
}

View File

@@ -12,8 +12,13 @@ import java.util.ArrayList;
import java.util.List;
public class TileCraftingMonitor extends TileMachine {
private List<ItemStack> tasks = new ArrayList<ItemStack>();
private String[] info = new String[0];
public class ClientSideCraftingTask {
public ItemStack output;
public int id;
public String info;
}
private List<ClientSideCraftingTask> tasks = new ArrayList<ClientSideCraftingTask>();
@Override
public int getEnergyUsage() {
@@ -51,31 +56,31 @@ public class TileCraftingMonitor extends TileMachine {
int size = buf.readInt();
List<ItemStack> newTasks = new ArrayList<ItemStack>();
String[] newInfo = new String[size];
List<ClientSideCraftingTask> newTasks = new ArrayList<ClientSideCraftingTask>();
for (int i = 0; i < size; ++i) {
newInfo[i] = ByteBufUtils.readUTF8String(buf);
String info = ByteBufUtils.readUTF8String(buf);
int outputSize = buf.readInt();
int outputs = buf.readInt();
for (int j = 0; j < outputSize; ++j) {
newTasks.add(ByteBufUtils.readItemStack(buf));
for (int j = 0; j < outputs; ++j) {
ClientSideCraftingTask task = new ClientSideCraftingTask();
task.info = info;
task.output = ByteBufUtils.readItemStack(buf);
task.id = i;
newTasks.add(task);
}
}
tasks = newTasks;
info = newInfo;
}
public List<ItemStack> getTasks() {
public List<ClientSideCraftingTask> getTasks() {
return tasks;
}
public String[] getInfo() {
return info;
}
@Override
public Class<? extends Container> getContainer() {
return ContainerCraftingMonitor.class;