diff --git a/CHANGELOG.md b/CHANGELOG.md index 2beaabb61..f18f3e47f 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,9 @@ # Refined Storage Changelog ### 1.6.4 -- Image sizes optimized / Improved image compression (samtrion) +- Rewrote autocrafting again (raoulvdberge) +- Reworked the Crafting Monitor (raoulvdberge) +- Optimized image sizes and improved image compression (samtrion) ### 1.6.3 - Fixed crash with Wireless Fluid Grid (raoulvdberge) diff --git a/src/main/java/com/raoulvdberge/refinedstorage/api/autocrafting/craftingmonitor/ICraftingMonitorElement.java b/src/main/java/com/raoulvdberge/refinedstorage/api/autocrafting/craftingmonitor/ICraftingMonitorElement.java index a41afbc40..01df5e3fc 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/api/autocrafting/craftingmonitor/ICraftingMonitorElement.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/api/autocrafting/craftingmonitor/ICraftingMonitorElement.java @@ -12,13 +12,12 @@ import javax.annotation.Nullable; */ public interface ICraftingMonitorElement { /** - * @param x position on the x axis to render - * @param y position on the y axis to render - * @param drawers the drawers that this element can use - * @param selected whether the element is selected + * @param x position on the x axis to render + * @param y position on the y axis to render + * @param drawers the drawers that this element can use */ @SideOnly(Side.CLIENT) - void draw(int x, int y, IElementDrawers drawers, boolean selected); + void draw(int x, int y, IElementDrawers drawers); /** * Returns the id of this element, used for serialization and deserialization over the network. diff --git a/src/main/java/com/raoulvdberge/refinedstorage/api/render/IElementDrawers.java b/src/main/java/com/raoulvdberge/refinedstorage/api/render/IElementDrawers.java index 03d326fcf..293b610fd 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/api/render/IElementDrawers.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/api/render/IElementDrawers.java @@ -36,6 +36,10 @@ public interface IElementDrawers { return getNullDrawer(); } + default IElementDrawer getErrorDrawer() { + return getNullDrawer(); + } + /** * @return the font renderer */ diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementColor.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementColor.java deleted file mode 100644 index cad5a6e26..000000000 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementColor.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.raoulvdberge.refinedstorage.apiimpl.autocrafting.craftingmonitor; - -import com.raoulvdberge.refinedstorage.api.autocrafting.craftingmonitor.ICraftingMonitorElement; -import com.raoulvdberge.refinedstorage.api.render.IElementDrawers; -import io.netty.buffer.ByteBuf; -import net.minecraftforge.fml.common.network.ByteBufUtils; - -import javax.annotation.Nullable; - -public class CraftingMonitorElementColor implements ICraftingMonitorElement { - public static final int COLOR_INFO = 0xFFD9EDF7; - public static final int COLOR_ERROR = 0xFFF2DEDE; - public static final int COLOR_SUCCESS = 0XFFADDBC6; - - public static final String ID = "color"; - - private ICraftingMonitorElement base; - private String tooltip; - private int color; - private int darkenedColor; - - public CraftingMonitorElementColor(ICraftingMonitorElement base, @Nullable String tooltip, int color) { - this.base = base; - this.tooltip = tooltip; - this.color = color; - - float ratio = 1.0F - 0.1F; - int a = (color >> 24) & 0xFF; - int r = (int) (((color >> 16) & 0xFF) * ratio); - int g = (int) (((color >> 8) & 0xFF) * ratio); - int b = (int) ((color & 0xFF) * ratio); - - this.darkenedColor = (a << 24) | (r << 16) | (g << 8) | b; - } - - @Override - public void draw(int x, int y, IElementDrawers drawers, boolean selected) { - drawers.getOverlayDrawer().draw(x, y, selected ? darkenedColor : color); - - base.draw(x, y, drawers, false); - } - - @Override - public String getId() { - return ID; - } - - @Override - @Nullable - public String getTooltip() { - return tooltip; - } - - @Override - public void write(ByteBuf buf) { - buf.writeInt(color); - ByteBufUtils.writeUTF8String(buf, base.getId()); - ByteBufUtils.writeUTF8String(buf, tooltip); - - base.write(buf); - } - - @Override - public boolean merge(ICraftingMonitorElement element) { - return element.getId().equals(getId()) && elementHashCode() == element.elementHashCode() && base.merge(((CraftingMonitorElementColor) element).base); - } - - @Override - public int elementHashCode() { - return base.elementHashCode() ^ tooltip.hashCode() ^ color; - } -} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementError.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementError.java new file mode 100644 index 000000000..63bde4710 --- /dev/null +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementError.java @@ -0,0 +1,59 @@ +package com.raoulvdberge.refinedstorage.apiimpl.autocrafting.craftingmonitor; + +import com.raoulvdberge.refinedstorage.api.autocrafting.craftingmonitor.ICraftingMonitorElement; +import com.raoulvdberge.refinedstorage.api.render.IElementDrawers; +import io.netty.buffer.ByteBuf; +import net.minecraft.client.resources.I18n; +import net.minecraft.util.text.TextFormatting; +import net.minecraftforge.fml.common.network.ByteBufUtils; + +import javax.annotation.Nullable; + +public class CraftingMonitorElementError implements ICraftingMonitorElement { + public static final String ID = "error"; + + private ICraftingMonitorElement base; + private String message; + + public CraftingMonitorElementError(ICraftingMonitorElement base, String message) { + this.base = base; + this.message = message; + } + + @Override + @SuppressWarnings("unchecked") + public void draw(int x, int y, IElementDrawers drawers) { + base.draw(x, y, drawers); + + drawers.getErrorDrawer().draw(x, y, null); + } + + @Nullable + @Override + public String getTooltip() { + return base.getTooltip() + "\n" + TextFormatting.RED + I18n.format(message); + } + + @Override + public String getId() { + return ID; + } + + @Override + public void write(ByteBuf buf) { + ByteBufUtils.writeUTF8String(buf, base.getId()); + ByteBufUtils.writeUTF8String(buf, message); + + base.write(buf); + } + + @Override + public boolean merge(ICraftingMonitorElement element) { + return elementHashCode() == element.elementHashCode() && base.merge(((CraftingMonitorElementError) element).base); + } + + @Override + public int elementHashCode() { + return base.elementHashCode() ^ message.hashCode(); + } +} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementFluidRender.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementFluidRender.java index 62609e727..434ab6ca8 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementFluidRender.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementFluidRender.java @@ -7,38 +7,86 @@ import com.raoulvdberge.refinedstorage.util.RenderUtils; import com.raoulvdberge.refinedstorage.util.StackUtils; import io.netty.buffer.ByteBuf; import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.resources.I18n; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; +import javax.annotation.Nullable; + public class CraftingMonitorElementFluidRender implements ICraftingMonitorElement { + private static final int COLOR_PROCESSING = 0xFFD9EDF7; + private static final int COLOR_MISSING = 0xFFF2DEDE; + private static final int COLOR_SCHEDULED = 0xFFE8E5CA; + private static final int COLOR_CRAFTING = 0xFFADDBC6; + public static final String ID = "fluid_render"; private FluidStack stack; - private int quantity; - private int offset; + private int stored; + private int missing; + private int processing; + private int scheduled; + private int crafting; - public CraftingMonitorElementFluidRender(FluidStack stack, int quantity, int offset) { + public CraftingMonitorElementFluidRender(FluidStack stack, int stored, int missing, int processing, int scheduled, int crafting) { this.stack = stack; - this.quantity = quantity; - this.offset = offset; + this.stored = stored; + this.missing = missing; + this.processing = processing; + this.scheduled = scheduled; + this.crafting = crafting; } @Override @SideOnly(Side.CLIENT) - public void draw(int x, int y, IElementDrawers drawers, boolean selected) { - if (selected) { - drawers.getOverlayDrawer().draw(x, y, 0xFFCCCCCC); + public void draw(int x, int y, IElementDrawers drawers) { + if (missing > 0) { + drawers.getOverlayDrawer().draw(x, y, COLOR_MISSING); + } else if (processing > 0) { + drawers.getOverlayDrawer().draw(x, y, COLOR_PROCESSING); + } else if (scheduled > 0) { + drawers.getOverlayDrawer().draw(x, y, COLOR_SCHEDULED); + } else if (crafting > 0) { + drawers.getOverlayDrawer().draw(x, y, COLOR_CRAFTING); } - drawers.getFluidDrawer().draw(x + 2 + offset, y + 1, stack); + drawers.getFluidDrawer().draw(x + 4, y + 6, stack); float scale = drawers.getFontRenderer().getUnicodeFlag() ? 1F : 0.5F; GlStateManager.pushMatrix(); GlStateManager.scale(scale, scale, 1); - drawers.getStringDrawer().draw(RenderUtils.getOffsetOnScale(x + 21 + offset, scale), RenderUtils.getOffsetOnScale(y + 7, scale), API.instance().getQuantityFormatter().formatInBucketForm(quantity) + " " + stack.getLocalizedName()); + int yy = y + 7; + + if (stored > 0) { + drawers.getStringDrawer().draw(RenderUtils.getOffsetOnScale(x + 25, scale), RenderUtils.getOffsetOnScale(yy, scale), I18n.format("gui.refinedstorage:crafting_monitor.stored", stored)); + + yy += 7; + } + + if (missing > 0) { + drawers.getStringDrawer().draw(RenderUtils.getOffsetOnScale(x + 25, scale), RenderUtils.getOffsetOnScale(yy, scale), I18n.format("gui.refinedstorage:crafting_monitor.missing", missing)); + + yy += 7; + } + + if (processing > 0) { + drawers.getStringDrawer().draw(RenderUtils.getOffsetOnScale(x + 25, scale), RenderUtils.getOffsetOnScale(yy, scale), I18n.format("gui.refinedstorage:crafting_monitor.processing", processing)); + + yy += 7; + } + + if (scheduled > 0) { + drawers.getStringDrawer().draw(RenderUtils.getOffsetOnScale(x + 25, scale), RenderUtils.getOffsetOnScale(yy, scale), I18n.format("gui.refinedstorage:crafting_monitor.scheduled", scheduled)); + + yy += 7; + } + + if (crafting > 0) { + drawers.getStringDrawer().draw(RenderUtils.getOffsetOnScale(x + 25, scale), RenderUtils.getOffsetOnScale(yy, scale), I18n.format("gui.refinedstorage:crafting_monitor.crafting", crafting)); + } GlStateManager.popMatrix(); } @@ -48,17 +96,30 @@ public class CraftingMonitorElementFluidRender implements ICraftingMonitorElemen return ID; } + @Nullable + @Override + public String getTooltip() { + return stack.getLocalizedName(); + } + @Override public void write(ByteBuf buf) { StackUtils.writeFluidStack(buf, stack); - buf.writeInt(quantity); - buf.writeInt(offset); + buf.writeInt(stored); + buf.writeInt(missing); + buf.writeInt(processing); + buf.writeInt(scheduled); + buf.writeInt(crafting); } @Override public boolean merge(ICraftingMonitorElement element) { if (element.getId().equals(getId()) && elementHashCode() == element.elementHashCode()) { - this.quantity += ((CraftingMonitorElementFluidRender) element).quantity; + this.stored += ((CraftingMonitorElementFluidRender) element).stored; + this.missing += ((CraftingMonitorElementFluidRender) element).missing; + this.processing += ((CraftingMonitorElementFluidRender) element).processing; + this.scheduled += ((CraftingMonitorElementFluidRender) element).scheduled; + this.crafting += ((CraftingMonitorElementFluidRender) element).crafting; return true; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementItemRender.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementItemRender.java index f10ccaff4..3b2d5e0d7 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementItemRender.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementItemRender.java @@ -7,38 +7,87 @@ import com.raoulvdberge.refinedstorage.util.RenderUtils; import com.raoulvdberge.refinedstorage.util.StackUtils; import io.netty.buffer.ByteBuf; import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.resources.I18n; import net.minecraft.item.ItemStack; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; +import javax.annotation.Nullable; +import java.util.stream.Collectors; + public class CraftingMonitorElementItemRender implements ICraftingMonitorElement { + private static final int COLOR_PROCESSING = 0xFFD9EDF7; + private static final int COLOR_MISSING = 0xFFF2DEDE; + private static final int COLOR_SCHEDULED = 0xFFE8E5CA; + private static final int COLOR_CRAFTING = 0xFFADDBC6; + public static final String ID = "item_render"; private ItemStack stack; - private int quantity; - private int offset; + private int stored; + private int missing; + private int processing; + private int scheduled; + private int crafting; - public CraftingMonitorElementItemRender(ItemStack stack, int quantity, int offset) { + public CraftingMonitorElementItemRender(ItemStack stack, int stored, int missing, int processing, int scheduled, int crafting) { this.stack = stack; - this.quantity = quantity; - this.offset = offset; + this.stored = stored; + this.missing = missing; + this.processing = processing; + this.scheduled = scheduled; + this.crafting = crafting; } @Override @SideOnly(Side.CLIENT) - public void draw(int x, int y, IElementDrawers drawers, boolean selected) { - if (selected) { - drawers.getOverlayDrawer().draw(x, y, 0xFFCCCCCC); + public void draw(int x, int y, IElementDrawers drawers) { + if (missing > 0) { + drawers.getOverlayDrawer().draw(x, y, COLOR_MISSING); + } else if (processing > 0) { + drawers.getOverlayDrawer().draw(x, y, COLOR_PROCESSING); + } else if (scheduled > 0) { + drawers.getOverlayDrawer().draw(x, y, COLOR_SCHEDULED); + } else if (crafting > 0) { + drawers.getOverlayDrawer().draw(x, y, COLOR_CRAFTING); } - drawers.getItemDrawer().draw(x + 2 + offset, y + 1, stack); + drawers.getItemDrawer().draw(x + 4, y + 6, stack); float scale = drawers.getFontRenderer().getUnicodeFlag() ? 1F : 0.5F; GlStateManager.pushMatrix(); GlStateManager.scale(scale, scale, 1); - drawers.getStringDrawer().draw(RenderUtils.getOffsetOnScale(x + 21 + offset, scale), RenderUtils.getOffsetOnScale(y + 7, scale), quantity + "x " + stack.getDisplayName()); + int yy = y + 7; + + if (stored > 0) { + drawers.getStringDrawer().draw(RenderUtils.getOffsetOnScale(x + 25, scale), RenderUtils.getOffsetOnScale(yy, scale), I18n.format("gui.refinedstorage:crafting_monitor.stored", stored)); + + yy += 7; + } + + if (missing > 0) { + drawers.getStringDrawer().draw(RenderUtils.getOffsetOnScale(x + 25, scale), RenderUtils.getOffsetOnScale(yy, scale), I18n.format("gui.refinedstorage:crafting_monitor.missing", missing)); + + yy += 7; + } + + if (processing > 0) { + drawers.getStringDrawer().draw(RenderUtils.getOffsetOnScale(x + 25, scale), RenderUtils.getOffsetOnScale(yy, scale), I18n.format("gui.refinedstorage:crafting_monitor.processing", processing)); + + yy += 7; + } + + if (scheduled > 0) { + drawers.getStringDrawer().draw(RenderUtils.getOffsetOnScale(x + 25, scale), RenderUtils.getOffsetOnScale(yy, scale), I18n.format("gui.refinedstorage:crafting_monitor.scheduled", scheduled)); + + yy += 7; + } + + if (crafting > 0) { + drawers.getStringDrawer().draw(RenderUtils.getOffsetOnScale(x + 25, scale), RenderUtils.getOffsetOnScale(yy, scale), I18n.format("gui.refinedstorage:crafting_monitor.crafting", crafting)); + } GlStateManager.popMatrix(); } @@ -48,17 +97,30 @@ public class CraftingMonitorElementItemRender implements ICraftingMonitorElement return ID; } + @Nullable + @Override + public String getTooltip() { + return RenderUtils.getItemTooltip(this.stack).stream().collect(Collectors.joining("\n")); + } + @Override public void write(ByteBuf buf) { StackUtils.writeItemStack(buf, stack); - buf.writeInt(quantity); - buf.writeInt(offset); + buf.writeInt(stored); + buf.writeInt(missing); + buf.writeInt(processing); + buf.writeInt(scheduled); + buf.writeInt(crafting); } @Override public boolean merge(ICraftingMonitorElement element) { if (element.getId().equals(getId()) && elementHashCode() == element.elementHashCode()) { - this.quantity += ((CraftingMonitorElementItemRender) element).quantity; + this.stored += ((CraftingMonitorElementItemRender) element).stored; + this.missing += ((CraftingMonitorElementItemRender) element).missing; + this.processing += ((CraftingMonitorElementItemRender) element).processing; + this.scheduled += ((CraftingMonitorElementItemRender) element).scheduled; + this.crafting += ((CraftingMonitorElementItemRender) element).crafting; return true; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementText.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementText.java deleted file mode 100755 index c4042c075..000000000 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/craftingmonitor/CraftingMonitorElementText.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.raoulvdberge.refinedstorage.apiimpl.autocrafting.craftingmonitor; - -import com.raoulvdberge.refinedstorage.api.autocrafting.craftingmonitor.ICraftingMonitorElement; -import com.raoulvdberge.refinedstorage.api.render.IElementDrawers; -import com.raoulvdberge.refinedstorage.util.RenderUtils; -import io.netty.buffer.ByteBuf; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.resources.I18n; -import net.minecraftforge.fml.common.network.ByteBufUtils; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; - -public class CraftingMonitorElementText implements ICraftingMonitorElement { - public static final String ID = "text"; - - private String text; - private int offset; - - public CraftingMonitorElementText(String text, int offset) { - this.text = text; - this.offset = offset; - } - - public String getText() { - return text; - } - - public int getOffset() { - return offset; - } - - @Override - @SideOnly(Side.CLIENT) - public void draw(int x, int y, IElementDrawers drawers, boolean selected) { - if (selected) { - drawers.getOverlayDrawer().draw(x, y, 0xFFCCCCCC); - } - - float scale = drawers.getFontRenderer().getUnicodeFlag() ? 1F : 0.5F; - - GlStateManager.pushMatrix(); - GlStateManager.scale(scale, scale, 1); - - drawers.getStringDrawer().draw(RenderUtils.getOffsetOnScale(x + offset, scale), RenderUtils.getOffsetOnScale(y + 7, scale), I18n.format(text)); - - GlStateManager.popMatrix(); - } - - @Override - public String getId() { - return ID; - } - - @Override - public void write(ByteBuf buf) { - ByteBufUtils.writeUTF8String(buf, text); - buf.writeInt(offset); - } - - @Override - public boolean merge(ICraftingMonitorElement element) { - return element.getId().equals(getId()) && elementHashCode() == element.elementHashCode(); - } - - @Override - public int elementHashCode() { - return text.hashCode(); - } -} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingTask.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingTask.java index b54f45692..2dc5afdc1 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingTask.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/autocrafting/task/CraftingTask.java @@ -15,10 +15,9 @@ import com.raoulvdberge.refinedstorage.api.util.Action; import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.api.util.IStackList; import com.raoulvdberge.refinedstorage.apiimpl.API; -import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.craftingmonitor.CraftingMonitorElementColor; +import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.craftingmonitor.CraftingMonitorElementError; import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.craftingmonitor.CraftingMonitorElementFluidRender; import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.craftingmonitor.CraftingMonitorElementItemRender; -import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.craftingmonitor.CraftingMonitorElementText; import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.preview.CraftingPreviewElementFluidStack; import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.preview.CraftingPreviewElementItemStack; import com.raoulvdberge.refinedstorage.apiimpl.storage.disk.StorageDiskFluid; @@ -32,6 +31,8 @@ import net.minecraftforge.items.ItemHandlerHelper; import javax.annotation.Nullable; import java.util.*; +// TODO: Calculation time. +// TODO: Progressive outputs? public class CraftingTask implements ICraftingTask { private INetwork network; private ICraftingRequestInfo requested; @@ -716,74 +717,83 @@ public class CraftingTask implements ICraftingTask { public List getCraftingMonitorElements() { ICraftingMonitorElementList elements = API.instance().createCraftingMonitorElementList(); - if (!missing.isEmpty() && !missingFluids.isEmpty()) { - elements.directAdd(new CraftingMonitorElementText("gui.refinedstorage:crafting_monitor.missing", 5)); + for (ItemStack stack : this.internalStorage.getStacks()) { + elements.add(new CraftingMonitorElementItemRender(stack, stack.getCount(), 0, 0, 0, 0)); } - if (!missing.isEmpty()) { - for (ItemStack missing : this.missing.getStacks()) { - elements.add(new CraftingMonitorElementColor(new CraftingMonitorElementItemRender(missing, missing.getCount(), 0), "", CraftingMonitorElementColor.COLOR_ERROR)); + for (ItemStack missing : this.missing.getStacks()) { + elements.add(new CraftingMonitorElementItemRender(missing, 0, missing.getCount(), 0, 0, 0)); + } + + for (Crafting crafting : this.crafting) { + for (ItemStack receive : crafting.getPattern().getOutputs()) { + elements.add(new CraftingMonitorElementItemRender(receive, 0, 0, 0, 0, receive.getCount())); + } + } + + for (Processing processing : this.processing) { + if (processing.getState() == ProcessingState.PROCESSED) { + continue; } - elements.commit(); - } + if (processing.getState() == ProcessingState.EXTRACTED_ALL) { + for (ItemStack put : processing.getItemsToPut()) { + elements.add(new CraftingMonitorElementItemRender(put, 0, 0, put.getCount(), 0, 0)); + } + } else if (processing.getState() == ProcessingState.READY || processing.getState() == ProcessingState.MACHINE_DOES_NOT_ACCEPT || processing.getState() == ProcessingState.MACHINE_NONE) { + for (ItemStack receive : processing.getItemsToReceive().getStacks()) { + ICraftingMonitorElement element = new CraftingMonitorElementItemRender(receive, 0, 0, 0, receive.getCount(), 0); - if (!missingFluids.isEmpty()) { - for (FluidStack missing : this.missingFluids.getStacks()) { - elements.add(new CraftingMonitorElementColor(new CraftingMonitorElementFluidRender(missing, missing.amount, 0), "", CraftingMonitorElementColor.COLOR_ERROR)); - } + if (processing.getState() == ProcessingState.MACHINE_DOES_NOT_ACCEPT) { + element = new CraftingMonitorElementError(element, "gui.refinedstorage:crafting_monitor.machine_does_not_accept_item"); + } else if (processing.getState() == ProcessingState.MACHINE_NONE) { + element = new CraftingMonitorElementError(element, "gui.refinedstorage:crafting_monitor.machine_none"); + } - elements.commit(); - } - - if (!this.crafting.isEmpty()) { - elements.directAdd(new CraftingMonitorElementText("gui.refinedstorage:crafting_monitor.items_crafting", 5)); - - for (Crafting c : this.crafting) { - for (ItemStack s : c.getToExtract().getStacks()) { - elements.add(new CraftingMonitorElementItemRender(s, s.getCount(), 0)); + elements.add(element); } } - - elements.commit(); } - if (!this.processing.isEmpty()) { - elements.directAdd(new CraftingMonitorElementText("gui.refinedstorage:crafting_monitor.processing", 5)); + elements.commit(); - for (Processing p : this.processing) { - for (ItemStack s : p.getItemsToReceive().getStacks()) { - elements.add(wrapAccordingToState(new CraftingMonitorElementItemRender(s, s.getCount(), 0), p.getState(), false)); - } - } - - elements.commit(); - - for (Processing p : this.processing) { - for (FluidStack s : p.getFluidsToReceive().getStacks()) { - elements.add(wrapAccordingToState(new CraftingMonitorElementFluidRender(s, s.amount, 0), p.getState(), true)); - } - } - - elements.commit(); + for (FluidStack stack : this.internalFluidStorage.getStacks()) { + elements.add(new CraftingMonitorElementFluidRender(stack, stack.amount, 0, 0, 0, 0)); } + for (FluidStack missing : this.missingFluids.getStacks()) { + elements.add(new CraftingMonitorElementFluidRender(missing, 0, missing.amount, 0, 0, 0)); + } + + for (Processing processing : this.processing) { + if (processing.getState() == ProcessingState.PROCESSED) { + continue; + } + + if (processing.getState() == ProcessingState.EXTRACTED_ALL) { + for (FluidStack put : processing.getFluidsToPut()) { + elements.add(new CraftingMonitorElementFluidRender(put, 0, 0, put.amount, 0, 0)); + } + } else if (processing.getState() == ProcessingState.READY || processing.getState() == ProcessingState.MACHINE_DOES_NOT_ACCEPT || processing.getState() == ProcessingState.MACHINE_NONE) { + for (FluidStack receive : processing.getFluidsToReceive().getStacks()) { + ICraftingMonitorElement element = new CraftingMonitorElementFluidRender(receive, 0, 0, 0, receive.amount, 0); + + if (processing.getState() == ProcessingState.MACHINE_DOES_NOT_ACCEPT) { + element = new CraftingMonitorElementError(element, "gui.refinedstorage:crafting_monitor.machine_does_not_accept_fluid"); + } else if (processing.getState() == ProcessingState.MACHINE_NONE) { + element = new CraftingMonitorElementError(element, "gui.refinedstorage:crafting_monitor.machine_none"); + } + + elements.add(element); + } + } + } + + elements.commit(); + return elements.getElements(); } - private ICraftingMonitorElement wrapAccordingToState(ICraftingMonitorElement element, ProcessingState state, boolean fluid) { - switch (state) { - case MACHINE_NONE: - element = new CraftingMonitorElementColor(element, "gui.refinedstorage:crafting_monitor.machine_none", CraftingMonitorElementColor.COLOR_ERROR); - break; - case MACHINE_DOES_NOT_ACCEPT: - element = new CraftingMonitorElementColor(element, fluid ? "gui.refinedstorage:crafting_monitor.machine_does_not_accept_fluid" : "gui.refinedstorage:crafting_monitor.machine_does_not_accept_item", CraftingMonitorElementColor.COLOR_ERROR); - break; - } - - return element; - } - @Override public List getPreviewStacks() { Map map = new LinkedHashMap<>(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeCraftingMonitor.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeCraftingMonitor.java index 1df12ebd5..9625d20c3 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeCraftingMonitor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeCraftingMonitor.java @@ -4,7 +4,6 @@ import com.google.common.base.Optional; import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingManager; import com.raoulvdberge.refinedstorage.api.autocrafting.task.ICraftingTask; -import com.raoulvdberge.refinedstorage.api.network.grid.IGrid; import com.raoulvdberge.refinedstorage.tile.craftingmonitor.ICraftingMonitor; import com.raoulvdberge.refinedstorage.tile.craftingmonitor.TileCraftingMonitor; import com.raoulvdberge.refinedstorage.tile.data.TileDataManager; @@ -23,11 +22,9 @@ import java.util.UUID; public class NetworkNodeCraftingMonitor extends NetworkNode implements ICraftingMonitor { public static final String ID = "crafting_monitor"; - private static final String NBT_SIZE = "Size"; private static final String NBT_TAB_SELECTED = "TabSelected"; private static final String NBT_TAB_PAGE = "TabPage"; - private int size = IGrid.SIZE_STRETCH; private Optional tabSelected = Optional.absent(); private int tabPage; @@ -35,20 +32,6 @@ public class NetworkNodeCraftingMonitor extends NetworkNode implements ICrafting super(world, pos); } - @Override - public int getSize() { - return world.isRemote ? TileCraftingMonitor.SIZE.getValue() : size; - } - - @Override - public void onSizeChanged(int size) { - TileDataManager.setParameter(TileCraftingMonitor.SIZE, size); - } - - public void setSize(int size) { - this.size = size; - } - @Override public int getEnergyUsage() { return RS.INSTANCE.config.craftingMonitorUsage; @@ -92,24 +75,6 @@ public class NetworkNodeCraftingMonitor extends NetworkNode implements ICrafting return network != null ? network.getCraftingManager() : null; } - @Override - public NBTTagCompound writeConfiguration(NBTTagCompound tag) { - super.writeConfiguration(tag); - - tag.setInteger(NBT_SIZE, size); - - return tag; - } - - @Override - public void readConfiguration(NBTTagCompound tag) { - super.readConfiguration(tag); - - if (tag.hasKey(NBT_SIZE)) { - size = tag.getInteger(NBT_SIZE); - } - } - @Override public NBTTagCompound write(NBTTagCompound tag) { super.write(tag); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerCraftingMonitor.java b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerCraftingMonitor.java index c0ef90e9c..0793a5b33 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerCraftingMonitor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerCraftingMonitor.java @@ -3,7 +3,6 @@ package com.raoulvdberge.refinedstorage.container; import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingManager; import com.raoulvdberge.refinedstorage.api.autocrafting.craftingmonitor.ICraftingMonitorListener; -import com.raoulvdberge.refinedstorage.gui.IResizableDisplay; import com.raoulvdberge.refinedstorage.network.MessageCraftingMonitorElements; import com.raoulvdberge.refinedstorage.tile.craftingmonitor.ICraftingMonitor; import com.raoulvdberge.refinedstorage.tile.craftingmonitor.TileCraftingMonitor; @@ -17,23 +16,12 @@ import javax.annotation.Nullable; public class ContainerCraftingMonitor extends ContainerBase implements ICraftingMonitorListener { private ICraftingMonitor craftingMonitor; - private IResizableDisplay resizableDisplay; private boolean addedListener; - public ContainerCraftingMonitor(ICraftingMonitor craftingMonitor, @Nullable TileCraftingMonitor craftingMonitorTile, EntityPlayer player, IResizableDisplay resizableDisplay) { + public ContainerCraftingMonitor(ICraftingMonitor craftingMonitor, @Nullable TileCraftingMonitor craftingMonitorTile, EntityPlayer player) { super(craftingMonitorTile, player); this.craftingMonitor = craftingMonitor; - this.resizableDisplay = resizableDisplay; - - initSlots(); - } - - public void initSlots() { - this.inventorySlots.clear(); - this.inventoryItemStacks.clear(); - - addPlayerInventory(8, resizableDisplay.getYPlayerInventory()); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerGrid.java index 9c2226b1c..1f45cfe24 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerGrid.java @@ -2,7 +2,6 @@ package com.raoulvdberge.refinedstorage.container; import com.raoulvdberge.refinedstorage.api.network.grid.GridType; import com.raoulvdberge.refinedstorage.api.network.grid.IGrid; -import com.raoulvdberge.refinedstorage.api.network.grid.IGridTab; import com.raoulvdberge.refinedstorage.api.network.grid.handler.IFluidGridHandler; import com.raoulvdberge.refinedstorage.api.network.grid.handler.IItemGridHandler; import com.raoulvdberge.refinedstorage.api.storage.IStorageCache; @@ -108,7 +107,7 @@ public class ContainerGrid extends ContainerBase { } private void addPortableGridSlots() { - addSlotToContainer(new SlotItemHandler(((IPortableGrid) grid).getDisk(), 0, 204, 6 + getTabDelta())); + addSlotToContainer(new SlotItemHandler(((IPortableGrid) grid).getDisk(), 0, 204, 6)); transferManager.addBiTransfer(getPlayer().inventory, ((IPortableGrid) grid).getDisk()); } @@ -121,14 +120,14 @@ public class ContainerGrid extends ContainerBase { } for (int i = 0; i < 4; ++i) { - addSlotToContainer(new SlotItemHandler(grid.getFilter(), i, 204, yStart + (18 * i) + getTabDelta())); + addSlotToContainer(new SlotItemHandler(grid.getFilter(), i, 204, yStart + (18 * i))); } transferManager.addBiTransfer(getPlayer().inventory, grid.getFilter()); } private void addCraftingSlots() { - int headerAndSlots = getTabDelta() + display.getTopHeight() + (display.getVisibleRows() * 18); + int headerAndSlots = display.getTopHeight() + (display.getVisibleRows() * 18); int x = 26; int y = headerAndSlots + 4; @@ -148,7 +147,7 @@ public class ContainerGrid extends ContainerBase { } private void addPatternSlots() { - int headerAndSlots = getTabDelta() + display.getTopHeight() + (display.getVisibleRows() * 18); + int headerAndSlots = display.getTopHeight() + (display.getVisibleRows() * 18); addSlotToContainer(new SlotItemHandler(((NetworkNodeGrid) grid).getPatterns(), 0, 172, headerAndSlots + 4)); addSlotToContainer(new SlotItemHandler(((NetworkNodeGrid) grid).getPatterns(), 1, 172, headerAndSlots + 40)); @@ -196,10 +195,6 @@ public class ContainerGrid extends ContainerBase { addSlotToContainer(patternResultSlot = (new SlotLegacyDisabled(grid.getCraftingResult(), 0, 134, headerAndSlots + 22).setEnableHandler(() -> !((NetworkNodeGrid) grid).isProcessingPattern()))); } - private int getTabDelta() { - return !grid.getTabs().isEmpty() ? IGridTab.TAB_HEIGHT - 4 : 0; - } - public IGrid getGrid() { return grid; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiCraftingMonitor.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiCraftingMonitor.java index d5233098f..e14f612d5 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiCraftingMonitor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiCraftingMonitor.java @@ -5,7 +5,6 @@ import com.google.common.collect.Lists; import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.api.autocrafting.craftingmonitor.ICraftingMonitorElement; import com.raoulvdberge.refinedstorage.api.autocrafting.task.ICraftingRequestInfo; -import com.raoulvdberge.refinedstorage.api.network.grid.IGrid; import com.raoulvdberge.refinedstorage.api.network.grid.IGridTab; import com.raoulvdberge.refinedstorage.api.render.IElementDrawer; import com.raoulvdberge.refinedstorage.api.render.IElementDrawers; @@ -13,7 +12,6 @@ import com.raoulvdberge.refinedstorage.api.util.IFilter; import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.container.ContainerCraftingMonitor; import com.raoulvdberge.refinedstorage.gui.control.Scrollbar; -import com.raoulvdberge.refinedstorage.gui.control.SideButtonGridSize; import com.raoulvdberge.refinedstorage.gui.control.SideButtonRedstoneMode; import com.raoulvdberge.refinedstorage.gui.control.TabList; import com.raoulvdberge.refinedstorage.network.MessageCraftingMonitorCancel; @@ -33,18 +31,32 @@ import java.util.Collections; import java.util.List; import java.util.UUID; -public class GuiCraftingMonitor extends GuiBase implements IResizableDisplay { +public class GuiCraftingMonitor extends GuiBase { public class CraftingMonitorElementDrawers extends ElementDrawers { private IElementDrawer overlayDrawer = (x, y, color) -> { GlStateManager.color(1, 1, 1, 1); GlStateManager.disableLighting(); - drawRect(x, y, x + ITEM_WIDTH, y + ITEM_HEIGHT - 1, color); + drawRect(x, y, x + ITEM_WIDTH, y + ITEM_HEIGHT, color); + }; + + private IElementDrawer errorDrawer = (x, y, nothing) -> { + GlStateManager.color(1, 1, 1, 1); + GlStateManager.disableLighting(); + + bindTexture("gui/crafting_preview.png"); + + drawTexture(x + ITEM_WIDTH - 12 - 2, y + ITEM_HEIGHT - 12 - 2, 0, 244, 12, 12); }; @Override public IElementDrawer getOverlayDrawer() { return overlayDrawer; } + + @Override + public IElementDrawer getErrorDrawer() { + return errorDrawer; + } } public static class CraftingMonitorTask implements IGridTab { @@ -92,8 +104,10 @@ public class GuiCraftingMonitor extends GuiBase implements IResizableDisplay { } } - private static final int ITEM_WIDTH = 143; - private static final int ITEM_HEIGHT = 18; + private static final int ROWS = 5; + + private static final int ITEM_WIDTH = 73; + private static final int ITEM_HEIGHT = 29; private GuiButton cancelButton; private GuiButton cancelAllButton; @@ -103,12 +117,10 @@ public class GuiCraftingMonitor extends GuiBase implements IResizableDisplay { private List tasks = Collections.emptyList(); private TabList tabs; - private int elementSelected = -1; - private IElementDrawers drawers = new CraftingMonitorElementDrawers(); public GuiCraftingMonitor(ContainerCraftingMonitor container, ICraftingMonitor craftingMonitor) { - super(container, 176, 230); + super(container, 254, 201); this.craftingMonitor = craftingMonitor; @@ -153,47 +165,41 @@ public class GuiCraftingMonitor extends GuiBase implements IResizableDisplay { @Override public void init(int x, int y) { - ((ContainerCraftingMonitor) this.inventorySlots).initSlots(); - this.tabs.init(xSize); - this.scrollbar = new Scrollbar(157, getTopHeight() + tabs.getHeight(), 12, (getVisibleRows() * 18) - 1); + this.scrollbar = new Scrollbar(235, 20, 12, 149); if (craftingMonitor.getRedstoneModeParameter() != null) { addSideButton(new SideButtonRedstoneMode(this, craftingMonitor.getRedstoneModeParameter())); } - addSideButton(new SideButtonGridSize(this, () -> craftingMonitor.getSize(), size -> craftingMonitor.onSizeChanged(size))); - String cancel = t("gui.cancel"); String cancelAll = t("misc.refinedstorage:cancel_all"); int cancelButtonWidth = 14 + fontRenderer.getStringWidth(cancel); int cancelAllButtonWidth = 14 + fontRenderer.getStringWidth(cancelAll); - int by = y + getTopHeight() + (getVisibleRows() * 18) + 3 + tabs.getHeight(); - - this.cancelButton = addButton(x + 7, by, cancelButtonWidth, 20, cancel, false, true); - this.cancelAllButton = addButton(x + 7 + cancelButtonWidth + 4, by, cancelAllButtonWidth, 20, cancelAll, false, true); + this.cancelButton = addButton(x + 7, y + 201 - 20 - 7, cancelButtonWidth, 20, cancel, false, true); + this.cancelAllButton = addButton(x + 7 + cancelButtonWidth + 4, y + 201 - 20 - 7, cancelAllButtonWidth, 20, cancelAll, false, true); } private void updateScrollbar() { if (scrollbar != null) { - scrollbar.setEnabled(getRows() > getVisibleRows()); - scrollbar.setMaxOffset(getRows() - getVisibleRows()); + scrollbar.setEnabled(getRows() > ROWS); + scrollbar.setMaxOffset(getRows() - ROWS); } } + private int getRows() { + return Math.max(0, (int) Math.ceil((float) getElements().size() / 3F)); + } + @Override public void update(int x, int y) { updateScrollbar(); this.tabs.update(); - if (elementSelected >= getElements().size()) { - elementSelected = -1; - } - if (cancelButton != null) { cancelButton.enabled = hasValidTabSelected(); } @@ -231,62 +237,46 @@ public class GuiCraftingMonitor extends GuiBase implements IResizableDisplay { return tasks.stream().filter(t -> ((CraftingMonitorTask) t).id.equals(id)).findFirst().orElse(null); } - @Override - protected void calcHeight() { - this.ySize = getTopHeight() + getBottomHeight() + (getVisibleRows() * 18) + tabs.getHeight(); - this.screenHeight = ySize; - } - @Override public void drawBackground(int x, int y, int mouseX, int mouseY) { - tabs.drawBackground(x, y); + tabs.drawBackground(x, y - tabs.getHeight()); - bindTexture("gui/crafting_monitor.png"); + bindTexture("gui/crafting_preview.png"); - int yy = y + tabs.getHeight(); + drawTexture(x, y, 0, 0, screenWidth, screenHeight); - drawTexture(x, yy, 0, 0, screenWidth, getTopHeight()); - - yy += getTopHeight(); - - int rows = getVisibleRows(); - - for (int i = 0; i < rows; ++i) { - drawTexture(x, yy, 0, getTopHeight() + (i > 0 ? (i == rows - 1 ? 18 * 2 : 18) : 0), screenWidth, 18); - - yy += 18; - } - - drawTexture(x, yy, 0, getTopHeight() + (18 * 3), screenWidth, getBottomHeight()); - - tabs.drawForeground(x, y, mouseX, mouseY); + tabs.drawForeground(x, y - tabs.getHeight(), mouseX, mouseY); } @Override public void drawForeground(int mouseX, int mouseY) { - drawString(7, 7 + tabs.getHeight(), t(craftingMonitor.getGuiTitle())); - drawString(7, getYPlayerInventory() - 12, t("container.inventory")); + drawString(7, 7, t(craftingMonitor.getGuiTitle())); - int item = scrollbar != null ? scrollbar.getOffset() : 0; + int item = scrollbar != null ? scrollbar.getOffset() * 3 : 0; RenderHelper.enableGUIStandardItemLighting(); - int x = 8; - int y = 20 + tabs.getHeight(); + int x = 7; + int y = 20; String itemSelectedTooltip = null; - for (int i = scrollbar.getOffset(); i < scrollbar.getOffset() + getVisibleRows(); ++i) { + for (int i = 0; i < 3 * 5; ++i) { if (item < getElements().size()) { ICraftingMonitorElement element = getElements().get(item); + element.draw(x, y, drawers); + if (inBounds(x, y, ITEM_WIDTH, ITEM_HEIGHT, mouseX, mouseY)) { itemSelectedTooltip = element.getTooltip(); } - element.draw(x, y, drawers, item == elementSelected); - - y += ITEM_HEIGHT; + if ((i + 1) % 3 == 0) { + x = 7; + y += 30; + } else { + x += 74; + } } item++; @@ -299,59 +289,6 @@ public class GuiCraftingMonitor extends GuiBase implements IResizableDisplay { tabs.drawTooltip(fontRenderer, mouseX, mouseY); } - @Override - public int getVisibleRows() { - switch (craftingMonitor.getSize()) { - case IGrid.SIZE_STRETCH: - int screenSpaceAvailable = height - getTopHeight() - getBottomHeight() - tabs.getHeight(); - - return Math.max(3, Math.min((screenSpaceAvailable / 18) - 3, RS.INSTANCE.config.maxRowsStretch)); - case IGrid.SIZE_SMALL: - return 3; - case IGrid.SIZE_MEDIUM: - return 5; - case IGrid.SIZE_LARGE: - return 8; - default: - return 3; - } - } - - @Override - public int getRows() { - return getElements().size(); - } - - @Override - public int getCurrentOffset() { - return scrollbar.getOffset(); - } - - @Override - public String getSearchFieldText() { - return null; - } - - @Override - public int getTopHeight() { - return 20; - } - - @Override - public int getBottomHeight() { - return 120; - } - - @Override - public int getYPlayerInventory() { - return getTopHeight() + (18 * getVisibleRows()) + 38 + tabs.getHeight(); - } - - @Override - protected int getSideButtonYStart() { - return super.getSideButtonYStart() + tabs.getHeight(); - } - @Override protected void actionPerformed(GuiButton button) throws IOException { super.actionPerformed(button); @@ -370,20 +307,5 @@ public class GuiCraftingMonitor extends GuiBase implements IResizableDisplay { super.mouseClicked(mouseX, mouseY, mouseButton); this.tabs.mouseClicked(); - - this.elementSelected = -1; - - if (mouseButton == 0) { - int item = scrollbar != null ? scrollbar.getOffset() : 0; - - for (int i = 0; i < getVisibleRows(); ++i) { - int ix = 8; - int iy = 20 + (i * ITEM_HEIGHT) + tabs.getHeight(); - - if (inBounds(ix, iy, ITEM_WIDTH, ITEM_HEIGHT, mouseX - guiLeft, mouseY - guiTop) && (item + i) < getElements().size()) { - this.elementSelected = item + i; - } - } - } } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiHandler.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiHandler.java index 9bd00be36..2ce172cef 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiHandler.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiHandler.java @@ -50,7 +50,7 @@ public class GuiHandler implements IGuiHandler { case RSGui.INTERFACE: return new ContainerInterface((TileInterface) tile, player); case RSGui.CRAFTING_MONITOR: - return new ContainerCraftingMonitor(((TileCraftingMonitor) tile).getNode(), (TileCraftingMonitor) tile, player, new ResizableDisplayDummy()); + return new ContainerCraftingMonitor(((TileCraftingMonitor) tile).getNode(), (TileCraftingMonitor) tile, player); case RSGui.WIRELESS_TRANSMITTER: return new ContainerWirelessTransmitter((TileWirelessTransmitter) tile, player); case RSGui.CRAFTER: @@ -128,7 +128,7 @@ public class GuiHandler implements IGuiHandler { case RSGui.CRAFTING_MONITOR: { NetworkNodeCraftingMonitor node = ((TileCraftingMonitor) tile).getNode(); GuiCraftingMonitor gui = new GuiCraftingMonitor(null, node); - gui.inventorySlots = new ContainerCraftingMonitor(node, (TileCraftingMonitor) tile, player, gui); + gui.inventorySlots = new ContainerCraftingMonitor(node, (TileCraftingMonitor) tile, player); return gui; } case RSGui.WIRELESS_TRANSMITTER: @@ -186,12 +186,12 @@ public class GuiHandler implements IGuiHandler { WirelessCraftingMonitor craftingMonitor = getCraftingMonitor(player, hand, networkDimension); GuiCraftingMonitor gui = new GuiCraftingMonitor(null, craftingMonitor); - gui.inventorySlots = new ContainerCraftingMonitor(craftingMonitor, null, player, gui); + gui.inventorySlots = new ContainerCraftingMonitor(craftingMonitor, null, player); return gui; } private ContainerCraftingMonitor getCraftingMonitorContainer(EntityPlayer player, int hand, int networkDimension) { - return new ContainerCraftingMonitor(getCraftingMonitor(player, hand, networkDimension), null, player, new ResizableDisplayDummy()); + return new ContainerCraftingMonitor(getCraftingMonitor(player, hand, networkDimension), null, player); } private ContainerFilter getFilterContainer(EntityPlayer player, int hand) { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GuiGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GuiGrid.java index b25fa905f..9cc53a7c3 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GuiGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GuiGrid.java @@ -78,7 +78,7 @@ public class GuiGrid extends GuiBase implements IResizableDisplay { @Override protected void calcHeight() { - this.ySize = getTopHeight() + getBottomHeight() + (getVisibleRows() * 18) + tabs.getHeight(); + this.ySize = getTopHeight() + getBottomHeight() + (getVisibleRows() * 18); this.screenHeight = ySize; } @@ -88,14 +88,14 @@ public class GuiGrid extends GuiBase implements IResizableDisplay { this.tabs.init(xSize - 32); - this.scrollbar = new Scrollbar(174, tabs.getHeight() + getTopHeight(), 12, (getVisibleRows() * 18) - 2); + this.scrollbar = new Scrollbar(174, getTopHeight(), 12, (getVisibleRows() * 18) - 2); if (grid instanceof NetworkNodeGrid || grid instanceof TilePortableGrid) { addSideButton(new SideButtonRedstoneMode(this, grid instanceof NetworkNodeGrid ? TileGrid.REDSTONE_MODE : TilePortableGrid.REDSTONE_MODE)); } int sx = x + 80 + 1; - int sy = y + 6 + 1 + tabs.getHeight(); + int sy = y + 6 + 1; if (searchField == null) { searchField = new TextFieldSearch(0, fontRenderer, sx, sy, 88 - 6); @@ -118,7 +118,7 @@ public class GuiGrid extends GuiBase implements IResizableDisplay { addSideButton(new SideButtonGridSize(this, () -> grid.getSize(), size -> grid.onSizeChanged(size))); if (grid.getGridType() == GridType.PATTERN) { - processingPattern = addCheckBox(x + 7, y + tabs.getHeight() + getTopHeight() + (getVisibleRows() * 18) + 60, t("misc.refinedstorage:processing"), TileGrid.PROCESSING_PATTERN.getValue()); + processingPattern = addCheckBox(x + 7, y + getTopHeight() + (getVisibleRows() * 18) + 60, t("misc.refinedstorage:processing"), TileGrid.PROCESSING_PATTERN.getValue()); boolean showOredict = true; if (((NetworkNodeGrid) grid).isProcessingPattern() && ((NetworkNodeGrid) grid).getType() == IType.FLUIDS) { @@ -126,7 +126,7 @@ public class GuiGrid extends GuiBase implements IResizableDisplay { } if (showOredict) { - oredictPattern = addCheckBox(processingPattern.x + processingPattern.width + 5, y + tabs.getHeight() + getTopHeight() + (getVisibleRows() * 18) + 60, t("misc.refinedstorage:oredict"), TileGrid.OREDICT_PATTERN.getValue()); + oredictPattern = addCheckBox(processingPattern.x + processingPattern.width + 5, y + getTopHeight() + (getVisibleRows() * 18) + 60, t("misc.refinedstorage:oredict"), TileGrid.OREDICT_PATTERN.getValue()); } addSideButton(new SideButtonType(this, TileGrid.PROCESSING_TYPE)); @@ -135,11 +135,6 @@ public class GuiGrid extends GuiBase implements IResizableDisplay { updateScrollbar(); } - @Override - protected int getSideButtonYStart() { - return super.getSideButtonYStart() + tabs.getHeight(); - } - public IGrid getGrid() { return grid; } @@ -181,7 +176,7 @@ public class GuiGrid extends GuiBase implements IResizableDisplay { @Override public int getYPlayerInventory() { - int yp = tabs.getHeight() + getTopHeight() + (getVisibleRows() * 18); + int yp = getTopHeight() + (getVisibleRows() * 18); if (grid.getGridType() == GridType.NORMAL || grid.getGridType() == GridType.FLUID) { yp += 16; @@ -213,7 +208,7 @@ public class GuiGrid extends GuiBase implements IResizableDisplay { public int getVisibleRows() { switch (grid.getSize()) { case IGrid.SIZE_STRETCH: - int screenSpaceAvailable = height - getTopHeight() - getBottomHeight() - tabs.getHeight(); + int screenSpaceAvailable = height - getTopHeight() - getBottomHeight(); return Math.max(3, Math.min((screenSpaceAvailable / 18) - 3, RS.INSTANCE.config.maxRowsStretch)); case IGrid.SIZE_SMALL: @@ -236,7 +231,7 @@ public class GuiGrid extends GuiBase implements IResizableDisplay { } public boolean isOverSlotArea(int mouseX, int mouseY) { - return inBounds(7, 19 + tabs.getHeight(), 162, 18 * getVisibleRows(), mouseX, mouseY); + return inBounds(7, 19, 162, 18 * getVisibleRows(), mouseX, mouseY); } public int getSlotNumber() { @@ -244,7 +239,7 @@ public class GuiGrid extends GuiBase implements IResizableDisplay { } private boolean isOverClear(int mouseX, int mouseY) { - int y = tabs.getHeight() + getTopHeight() + (getVisibleRows() * 18) + 4; + int y = getTopHeight() + (getVisibleRows() * 18) + 4; switch (grid.getGridType()) { case CRAFTING: @@ -261,12 +256,12 @@ public class GuiGrid extends GuiBase implements IResizableDisplay { } private boolean isOverCreatePattern(int mouseX, int mouseY) { - return grid.getGridType() == GridType.PATTERN && inBounds(172, tabs.getHeight() + getTopHeight() + (getVisibleRows() * 18) + 22, 16, 16, mouseX, mouseY) && ((NetworkNodeGrid) grid).canCreatePattern(); + return grid.getGridType() == GridType.PATTERN && inBounds(172, getTopHeight() + (getVisibleRows() * 18) + 22, 16, 16, mouseX, mouseY) && ((NetworkNodeGrid) grid).canCreatePattern(); } @Override public void drawBackground(int x, int y, int mouseX, int mouseY) { - tabs.drawBackground(x, y); + tabs.drawBackground(x, y - tabs.getHeight()); if (grid instanceof IPortableGrid) { bindTexture("gui/portable_grid.png"); @@ -278,12 +273,12 @@ public class GuiGrid extends GuiBase implements IResizableDisplay { bindTexture("gui/grid.png"); } - int yy = y + tabs.getHeight(); + int yy = y; drawTexture(x, yy, 0, 0, screenWidth - 34, getTopHeight()); // Filters and/or portable grid disk - drawTexture(x + screenWidth - 34 + 4, y + tabs.getHeight(), 197, 0, 30, grid instanceof IPortableGrid ? 114 : 82); + drawTexture(x + screenWidth - 34 + 4, y, 197, 0, 30, grid instanceof IPortableGrid ? 114 : 82); int rows = getVisibleRows(); @@ -308,10 +303,10 @@ public class GuiGrid extends GuiBase implements IResizableDisplay { ty = 2; } - drawTexture(x + 172, y + tabs.getHeight() + getTopHeight() + (getVisibleRows() * 18) + 22, 240, ty * 16, 16, 16); + drawTexture(x + 172, y + getTopHeight() + (getVisibleRows() * 18) + 22, 240, ty * 16, 16, 16); } - tabs.drawForeground(x, y, mouseX, mouseY); + tabs.drawForeground(x, y - tabs.getHeight(), mouseX, mouseY); if (searchField != null) { searchField.drawTextBox(); @@ -331,11 +326,11 @@ public class GuiGrid extends GuiBase implements IResizableDisplay { @Override public void drawForeground(int mouseX, int mouseY) { - drawString(7, 7 + tabs.getHeight(), t(grid.getGuiTitle())); + drawString(7, 7, t(grid.getGuiTitle())); drawString(7, getYPlayerInventory() - 12, t("container.inventory")); int x = 8; - int y = 19 + tabs.getHeight(); + int y = 19; this.slotNumber = -1; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemWirelessCraftingMonitor.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemWirelessCraftingMonitor.java index e226e33b5..76b6e3541 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemWirelessCraftingMonitor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemWirelessCraftingMonitor.java @@ -2,7 +2,6 @@ package com.raoulvdberge.refinedstorage.item; import com.google.common.base.Optional; import com.raoulvdberge.refinedstorage.RS; -import com.raoulvdberge.refinedstorage.api.network.grid.IGrid; import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem; import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler; import com.raoulvdberge.refinedstorage.apiimpl.network.item.NetworkItemWirelessCraftingMonitor; @@ -19,7 +18,6 @@ import javax.annotation.Nonnull; import java.util.UUID; public class ItemWirelessCraftingMonitor extends ItemNetworkItem { - public static final String NBT_SIZE = "Size"; public static final String NBT_TAB_SELECTED = "TabSelected"; public static final String NBT_TAB_PAGE = "TabPage"; @@ -39,22 +37,6 @@ public class ItemWirelessCraftingMonitor extends ItemNetworkItem { return new NetworkItemWirelessCraftingMonitor(handler, player, stack); } - public static int getSize(ItemStack stack) { - if (stack.hasTagCompound() && stack.getTagCompound().hasKey(NBT_SIZE)) { - return stack.getTagCompound().getInteger(NBT_SIZE); - } - - return IGrid.SIZE_STRETCH; - } - - public static void setSize(ItemStack stack, int size) { - if (!stack.hasTagCompound()) { - stack.setTagCompound(new NBTTagCompound()); - } - - stack.getTagCompound().setInteger(NBT_SIZE, size); - } - public static Optional getTabSelected(ItemStack stack) { if (stack.hasTagCompound() && stack.getTagCompound().hasUniqueId(NBT_TAB_SELECTED)) { return Optional.of(stack.getTagCompound().getUniqueId(NBT_TAB_SELECTED)); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageWirelessCraftingMonitorSettings.java b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageWirelessCraftingMonitorSettings.java index 0be8cae7c..e9ebb90f6 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageWirelessCraftingMonitorSettings.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageWirelessCraftingMonitorSettings.java @@ -1,7 +1,6 @@ package com.raoulvdberge.refinedstorage.network; import com.google.common.base.Optional; -import com.raoulvdberge.refinedstorage.api.network.grid.IGrid; import com.raoulvdberge.refinedstorage.container.ContainerCraftingMonitor; import com.raoulvdberge.refinedstorage.item.ItemWirelessCraftingMonitor; import com.raoulvdberge.refinedstorage.tile.craftingmonitor.WirelessCraftingMonitor; @@ -14,23 +13,19 @@ import net.minecraftforge.fml.common.network.simpleimpl.IMessage; import java.util.UUID; public class MessageWirelessCraftingMonitorSettings extends MessageHandlerPlayerToServer implements IMessage { - private int size; private Optional tabSelected = Optional.absent(); private int tabPage; public MessageWirelessCraftingMonitorSettings() { } - public MessageWirelessCraftingMonitorSettings(int size, Optional tabSelected, int tabPage) { - this.size = size; + public MessageWirelessCraftingMonitorSettings(Optional tabSelected, int tabPage) { this.tabSelected = tabSelected; this.tabPage = tabPage; } @Override public void fromBytes(ByteBuf buf) { - size = buf.readInt(); - if (buf.readBoolean()) { tabSelected = Optional.of(UUID.fromString(ByteBufUtils.readUTF8String(buf))); } @@ -40,8 +35,6 @@ public class MessageWirelessCraftingMonitorSettings extends MessageHandlerPlayer @Override public void toBytes(ByteBuf buf) { - buf.writeInt(size); - buf.writeBoolean(tabSelected.isPresent()); if (tabSelected.isPresent()) { ByteBufUtils.writeUTF8String(buf, tabSelected.get().toString()); @@ -52,10 +45,9 @@ public class MessageWirelessCraftingMonitorSettings extends MessageHandlerPlayer @Override public void handle(MessageWirelessCraftingMonitorSettings message, EntityPlayerMP player) { - if (player.openContainer instanceof ContainerCraftingMonitor && IGrid.isValidSize(message.size)) { + if (player.openContainer instanceof ContainerCraftingMonitor) { ItemStack stack = ((WirelessCraftingMonitor) ((ContainerCraftingMonitor) player.openContainer).getCraftingMonitor()).getStack(); - ItemWirelessCraftingMonitor.setSize(stack, message.size); ItemWirelessCraftingMonitor.setTabPage(stack, message.tabPage); ItemWirelessCraftingMonitor.setTabSelected(stack, message.tabSelected); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyCommon.java b/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyCommon.java index ecece8959..3903df61d 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyCommon.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyCommon.java @@ -5,10 +5,9 @@ import com.raoulvdberge.refinedstorage.RSBlocks; import com.raoulvdberge.refinedstorage.RSItems; import com.raoulvdberge.refinedstorage.api.storage.StorageType; import com.raoulvdberge.refinedstorage.apiimpl.API; -import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.craftingmonitor.CraftingMonitorElementColor; +import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.craftingmonitor.CraftingMonitorElementError; import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.craftingmonitor.CraftingMonitorElementFluidRender; import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.craftingmonitor.CraftingMonitorElementItemRender; -import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.craftingmonitor.CraftingMonitorElementText; import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.preview.CraftingPreviewElementError; import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.preview.CraftingPreviewElementFluidStack; import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.preview.CraftingPreviewElementItemStack; @@ -94,15 +93,13 @@ public class ProxyCommon { API.instance().getCraftingTaskRegistry().add(CraftingTaskFactory.ID, new CraftingTaskFactory()); - API.instance().getCraftingMonitorElementRegistry().add(CraftingMonitorElementItemRender.ID, buf -> new CraftingMonitorElementItemRender(StackUtils.readItemStack(buf), buf.readInt(), buf.readInt())); - API.instance().getCraftingMonitorElementRegistry().add(CraftingMonitorElementFluidRender.ID, buf -> new CraftingMonitorElementFluidRender(StackUtils.readFluidStack(buf), buf.readInt(), buf.readInt())); - API.instance().getCraftingMonitorElementRegistry().add(CraftingMonitorElementText.ID, buf -> new CraftingMonitorElementText(ByteBufUtils.readUTF8String(buf), buf.readInt())); - API.instance().getCraftingMonitorElementRegistry().add(CraftingMonitorElementColor.ID, buf -> { - int color = buf.readInt(); + API.instance().getCraftingMonitorElementRegistry().add(CraftingMonitorElementItemRender.ID, buf -> new CraftingMonitorElementItemRender(StackUtils.readItemStack(buf), buf.readInt(), buf.readInt(), buf.readInt(), buf.readInt(), buf.readInt())); + API.instance().getCraftingMonitorElementRegistry().add(CraftingMonitorElementFluidRender.ID, buf -> new CraftingMonitorElementFluidRender(StackUtils.readFluidStack(buf), buf.readInt(), buf.readInt(), buf.readInt(), buf.readInt(), buf.readInt())); + API.instance().getCraftingMonitorElementRegistry().add(CraftingMonitorElementError.ID, buf -> { String id = ByteBufUtils.readUTF8String(buf); - String tooltip = ByteBufUtils.readUTF8String(buf); + String message = ByteBufUtils.readUTF8String(buf); - return new CraftingMonitorElementColor(API.instance().getCraftingMonitorElementRegistry().get(id).apply(buf), tooltip, color); + return new CraftingMonitorElementError(API.instance().getCraftingMonitorElementRegistry().get(id).apply(buf), message); }); API.instance().getCraftingPreviewElementRegistry().add(CraftingPreviewElementItemStack.ID, CraftingPreviewElementItemStack::fromByteBuf); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/craftingmonitor/ICraftingMonitor.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/craftingmonitor/ICraftingMonitor.java index 576f3549d..71f2debc9 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/craftingmonitor/ICraftingMonitor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/craftingmonitor/ICraftingMonitor.java @@ -25,10 +25,6 @@ public interface ICraftingMonitor { @Nullable ICraftingManager getCraftingManager(); - int getSize(); - - void onSizeChanged(int size); - boolean isActive(); void onClosed(EntityPlayer player); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/craftingmonitor/TileCraftingMonitor.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/craftingmonitor/TileCraftingMonitor.java index 915038487..5708dcc9a 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/craftingmonitor/TileCraftingMonitor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/craftingmonitor/TileCraftingMonitor.java @@ -1,10 +1,7 @@ package com.raoulvdberge.refinedstorage.tile.craftingmonitor; import com.google.common.base.Optional; -import com.raoulvdberge.refinedstorage.api.network.grid.IGrid; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeCraftingMonitor; -import com.raoulvdberge.refinedstorage.gui.GuiBase; -import com.raoulvdberge.refinedstorage.gui.GuiCraftingMonitor; import com.raoulvdberge.refinedstorage.tile.TileNode; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import net.minecraft.network.datasync.DataSerializers; @@ -15,12 +12,6 @@ import javax.annotation.Nonnull; import java.util.UUID; public class TileCraftingMonitor extends TileNode { - public static final TileDataParameter SIZE = new TileDataParameter<>(DataSerializers.VARINT, IGrid.SIZE_STRETCH, t -> t.getNode().getSize(), (t, v) -> { - if (IGrid.isValidSize(v)) { - t.getNode().setSize(v); - t.getNode().markDirty(); - } - }, (initial, p) -> GuiBase.executeLater(GuiCraftingMonitor.class, GuiBase::initGui)); public static final TileDataParameter, TileCraftingMonitor> TAB_SELECTED = new TileDataParameter<>(DataSerializers.OPTIONAL_UNIQUE_ID, Optional.absent(), t -> t.getNode().getTabSelected(), (t, v) -> { if (v.isPresent() && t.getNode().getTabSelected().isPresent() && v.get().equals(t.getNode().getTabSelected().get())) { t.getNode().setTabSelected(Optional.absent()); @@ -38,7 +29,6 @@ public class TileCraftingMonitor extends TileNode { }); public TileCraftingMonitor() { - dataManager.addWatchedParameter(SIZE); dataManager.addWatchedParameter(TAB_SELECTED); dataManager.addWatchedParameter(TAB_PAGE); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/craftingmonitor/WirelessCraftingMonitor.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/craftingmonitor/WirelessCraftingMonitor.java index 4c3ee04f5..c98a9e717 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/craftingmonitor/WirelessCraftingMonitor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/craftingmonitor/WirelessCraftingMonitor.java @@ -5,8 +5,6 @@ import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingManager; import com.raoulvdberge.refinedstorage.api.autocrafting.task.ICraftingTask; import com.raoulvdberge.refinedstorage.api.network.INetwork; -import com.raoulvdberge.refinedstorage.gui.GuiBase; -import com.raoulvdberge.refinedstorage.gui.GuiCraftingMonitor; import com.raoulvdberge.refinedstorage.item.ItemWirelessCraftingMonitor; import com.raoulvdberge.refinedstorage.network.MessageWirelessCraftingMonitorSettings; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; @@ -28,7 +26,6 @@ public class WirelessCraftingMonitor implements ICraftingMonitor { private int networkDimension; private BlockPos network; - private int size; private int tabPage; private Optional tabSelected; @@ -36,7 +33,6 @@ public class WirelessCraftingMonitor implements ICraftingMonitor { this.stack = stack; this.networkDimension = networkDimension; this.network = new BlockPos(ItemWirelessCraftingMonitor.getX(stack), ItemWirelessCraftingMonitor.getY(stack), ItemWirelessCraftingMonitor.getZ(stack)); - this.size = ItemWirelessCraftingMonitor.getSize(stack); this.tabPage = ItemWirelessCraftingMonitor.getTabPage(stack); this.tabSelected = ItemWirelessCraftingMonitor.getTabSelected(stack); } @@ -83,20 +79,6 @@ public class WirelessCraftingMonitor implements ICraftingMonitor { return null; } - @Override - public int getSize() { - return size; - } - - @Override - public void onSizeChanged(int size) { - this.size = size; - - GuiBase.executeLater(GuiCraftingMonitor.class, GuiBase::initGui); - - RS.INSTANCE.network.sendToServer(new MessageWirelessCraftingMonitorSettings(size, tabSelected, tabPage)); - } - private INetwork getNetwork() { World world = DimensionManager.getWorld(networkDimension); @@ -145,7 +127,7 @@ public class WirelessCraftingMonitor implements ICraftingMonitor { this.tabSelected = taskId; } - RS.INSTANCE.network.sendToServer(new MessageWirelessCraftingMonitorSettings(size, tabSelected, tabPage)); + RS.INSTANCE.network.sendToServer(new MessageWirelessCraftingMonitorSettings(tabSelected, tabPage)); } @Override @@ -153,7 +135,7 @@ public class WirelessCraftingMonitor implements ICraftingMonitor { if (page >= 0) { this.tabPage = page; - RS.INSTANCE.network.sendToServer(new MessageWirelessCraftingMonitorSettings(size, tabSelected, tabPage)); + RS.INSTANCE.network.sendToServer(new MessageWirelessCraftingMonitorSettings(tabSelected, tabPage)); } } } diff --git a/src/main/resources/assets/refinedstorage/lang/de_de.lang b/src/main/resources/assets/refinedstorage/lang/de_de.lang index d5f5a9b57..9b3bb49fd 100755 --- a/src/main/resources/assets/refinedstorage/lang/de_de.lang +++ b/src/main/resources/assets/refinedstorage/lang/de_de.lang @@ -27,17 +27,11 @@ gui.refinedstorage:interface.export=Exportschnittstelle gui.refinedstorage:crafting_monitor=Fertigungsmonitor gui.refinedstorage:wireless_crafting_monitor=Mobile Fertigungskonsole gui.refinedstorage:crafting_monitor.tooltip.requested=%d angefragt -gui.refinedstorage:crafting_monitor.items_crafting=Items Herstellen gui.refinedstorage:crafting_monitor.processing=Verarbeitung -gui.refinedstorage:crafting_monitor.items_inserting=Items Einfügen gui.refinedstorage:crafting_monitor.missing=Fehlt gui.refinedstorage:crafting_monitor.machine_does_not_accept_item=Maschine akzeptiert Item nicht gui.refinedstorage:crafting_monitor.machine_does_not_accept_fluid=Maschine akzeptiert Flüssigkeit nicht gui.refinedstorage:crafting_monitor.machine_none=Keine Maschine gefunden -gui.refinedstorage:crafting_monitor.waiting_for_items=Warte auf Items -gui.refinedstorage:crafting_monitor.waiting_for_fluids=Warte auf Flüssigkeiten -gui.refinedstorage:crafting_monitor.network_full=Netzwerk ist voll -gui.refinedstorage:crafting_monitor.inserted_into_machine=Items gesendet, warte auf Ergebnis gui.refinedstorage:wireless_transmitter=Funksender gui.refinedstorage:wireless_transmitter.distance=%d Blöcke gui.refinedstorage:crafter=Fertigungseinheit diff --git a/src/main/resources/assets/refinedstorage/lang/en_us.lang b/src/main/resources/assets/refinedstorage/lang/en_us.lang index f9a69b4ce..1e6e08e50 100644 --- a/src/main/resources/assets/refinedstorage/lang/en_us.lang +++ b/src/main/resources/assets/refinedstorage/lang/en_us.lang @@ -27,17 +27,14 @@ gui.refinedstorage:interface.export=Interface Export gui.refinedstorage:crafting_monitor=Crafting Monitor gui.refinedstorage:wireless_crafting_monitor=Wireless Crafting Monitor gui.refinedstorage:crafting_monitor.tooltip.requested=%d requested -gui.refinedstorage:crafting_monitor.items_crafting=Items crafting -gui.refinedstorage:crafting_monitor.processing=Processing -gui.refinedstorage:crafting_monitor.items_inserting=Items inserting -gui.refinedstorage:crafting_monitor.missing=Missing +gui.refinedstorage:crafting_monitor.stored=Stored: %d +gui.refinedstorage:crafting_monitor.missing=Missing: %d +gui.refinedstorage:crafting_monitor.processing=Processing: %d +gui.refinedstorage:crafting_monitor.scheduled=Scheduled: %d +gui.refinedstorage:crafting_monitor.crafting=Crafting: %d gui.refinedstorage:crafting_monitor.machine_does_not_accept_item=Machine doesn't accept item gui.refinedstorage:crafting_monitor.machine_does_not_accept_fluid=Machine doesn't accept fluid gui.refinedstorage:crafting_monitor.machine_none=No machine found -gui.refinedstorage:crafting_monitor.waiting_for_items=Waiting for items -gui.refinedstorage:crafting_monitor.waiting_for_fluids=Waiting for fluids -gui.refinedstorage:crafting_monitor.network_full=Network is full -gui.refinedstorage:crafting_monitor.inserted_into_machine=Inserted into machine, waiting for result gui.refinedstorage:wireless_transmitter=Wireless Transmitter gui.refinedstorage:wireless_transmitter.distance=%d block(s) gui.refinedstorage:crafter=Crafter diff --git a/src/main/resources/assets/refinedstorage/lang/es_es.lang b/src/main/resources/assets/refinedstorage/lang/es_es.lang index 054c73655..faf1164cb 100644 --- a/src/main/resources/assets/refinedstorage/lang/es_es.lang +++ b/src/main/resources/assets/refinedstorage/lang/es_es.lang @@ -24,10 +24,7 @@ gui.refinedstorage:interface.import=Interfaz de Entrada gui.refinedstorage:interface.export=Interfaz de Salida gui.refinedstorage:crafting_monitor=Monitor de fabricación gui.refinedstorage:wireless_crafting_monitor=Monitor Remoto de Fabricación -gui.refinedstorage:crafting_monitor.items_crafting=Fabrica Objetos -gui.refinedstorage:crafting_monitor.items_inserting=Inserta Objetos gui.refinedstorage:crafting_monitor.machine_none=Maquina no Hallada -gui.refinedstorage:crafting_monitor.waiting_for_items=Esperando Objetos gui.refinedstorage:wireless_transmitter=Emisor inalámbrico gui.refinedstorage:wireless_transmitter.distance=%d bloque(s) gui.refinedstorage:crafter=Fabricador diff --git a/src/main/resources/assets/refinedstorage/lang/fr_fr.lang b/src/main/resources/assets/refinedstorage/lang/fr_fr.lang index 6babe9c04..bccc54039 100755 --- a/src/main/resources/assets/refinedstorage/lang/fr_fr.lang +++ b/src/main/resources/assets/refinedstorage/lang/fr_fr.lang @@ -23,10 +23,7 @@ gui.refinedstorage:interface.import=Interface d'import gui.refinedstorage:interface.export=Interface d'export gui.refinedstorage:crafting_monitor=Moniteur de craft gui.refinedstorage:wireless_crafting_monitor=Moniteur de craft sans-fil -gui.refinedstorage:crafting_monitor.items_crafting=Items en craft -gui.refinedstorage:crafting_monitor.items_inserting=Insertion d'items gui.refinedstorage:crafting_monitor.machine_none=Pas de machine disponible -gui.refinedstorage:crafting_monitor.waiting_for_items=En attente d'items gui.refinedstorage:wireless_transmitter=Emetteur sans-fil gui.refinedstorage:wireless_transmitter.distance=%d bloc(s) gui.refinedstorage:crafter=Crafteur diff --git a/src/main/resources/assets/refinedstorage/lang/ko_kr.lang b/src/main/resources/assets/refinedstorage/lang/ko_kr.lang index f95fd5a11..ea9571d4a 100644 --- a/src/main/resources/assets/refinedstorage/lang/ko_kr.lang +++ b/src/main/resources/assets/refinedstorage/lang/ko_kr.lang @@ -22,10 +22,7 @@ gui.refinedstorage:interface.import=인터페이스 입력 gui.refinedstorage:interface.export=인터페이스 출력 gui.refinedstorage:crafting_monitor=조합 모니터 gui.refinedstorage:wireless_crafting_monitor=무선 조합 모니터 -gui.refinedstorage:crafting_monitor.items_crafting=제작할 아이템 -gui.refinedstorage:crafting_monitor.items_inserting=삽입할 아이템 gui.refinedstorage:crafting_monitor.machine_none=기계를 찾을 수 없음 -gui.refinedstorage:crafting_monitor.waiting_for_items=아이템을 기다리는 중 gui.refinedstorage:wireless_transmitter=무선 송신기 gui.refinedstorage:wireless_transmitter.distance=%d블럭 gui.refinedstorage:crafter=조합기 diff --git a/src/main/resources/assets/refinedstorage/lang/nl_nl.lang b/src/main/resources/assets/refinedstorage/lang/nl_nl.lang index 8180d0bbe..2435bc73e 100755 --- a/src/main/resources/assets/refinedstorage/lang/nl_nl.lang +++ b/src/main/resources/assets/refinedstorage/lang/nl_nl.lang @@ -18,8 +18,6 @@ gui.refinedstorage:relay=Relais gui.refinedstorage:interface.import=Interface Import gui.refinedstorage:interface.export=Interface Export gui.refinedstorage:crafting_monitor=Crafting Monitor -gui.refinedstorage:crafting_monitor.missing_items=Ontbrekende items -gui.refinedstorage:crafting_monitor.items_crafting=Items aan het craften gui.refinedstorage:crafting_monitor.machine_none=Geen machine gevonden gui.refinedstorage:wireless_transmitter=Draadloze Zender gui.refinedstorage:wireless_transmitter.distance=%d blokken diff --git a/src/main/resources/assets/refinedstorage/lang/pt_br.lang b/src/main/resources/assets/refinedstorage/lang/pt_br.lang index 2d4ee4657..7ce84380f 100755 --- a/src/main/resources/assets/refinedstorage/lang/pt_br.lang +++ b/src/main/resources/assets/refinedstorage/lang/pt_br.lang @@ -23,10 +23,7 @@ gui.refinedstorage:interface.import=Importação da Interface gui.refinedstorage:interface.export=Exportação da Interface gui.refinedstorage:crafting_monitor=Monitor de Fabricações gui.refinedstorage:wireless_crafting_monitor=Monitor de Fabricações Wireless -gui.refinedstorage:crafting_monitor.items_crafting=Fabricando itens -gui.refinedstorage:crafting_monitor.items_inserting=Inserindo itens gui.refinedstorage:crafting_monitor.machine_none=Nenhuma máquina encontrada -gui.refinedstorage:crafting_monitor.waiting_for_items=Esperando itens gui.refinedstorage:wireless_transmitter=Transmissor Wireless gui.refinedstorage:wireless_transmitter.distance=%d Blocos gui.refinedstorage:crafter=Fabricador diff --git a/src/main/resources/assets/refinedstorage/lang/ru_ru.lang b/src/main/resources/assets/refinedstorage/lang/ru_ru.lang index 498b224be..fadd734f9 100755 --- a/src/main/resources/assets/refinedstorage/lang/ru_ru.lang +++ b/src/main/resources/assets/refinedstorage/lang/ru_ru.lang @@ -26,11 +26,7 @@ gui.refinedstorage:interface.export=Интерфейс - Экспорт gui.refinedstorage:crafting_monitor=Терминал запросов gui.refinedstorage:wireless_crafting_monitor=Беспроводной монитор создания gui.refinedstorage:crafting_monitor.tooltip.requested=Требует %d -gui.refinedstorage:crafting_monitor.items_crafting=Предметы с возможностью крафта -gui.refinedstorage:crafting_monitor.items_inserting=Вставка предметов gui.refinedstorage:crafting_monitor.machine_none=Машина не найдена -gui.refinedstorage:crafting_monitor.waiting_for_items=Ожидание предметов -gui.refinedstorage:crafting_monitor.network_full=Сеть полна gui.refinedstorage:wireless_transmitter=Передатчик gui.refinedstorage:wireless_transmitter.distance=%d блоков gui.refinedstorage:crafter=Крафтер diff --git a/src/main/resources/assets/refinedstorage/lang/zh_cn.lang b/src/main/resources/assets/refinedstorage/lang/zh_cn.lang index 3f5db7c16..1e69e8988 100755 --- a/src/main/resources/assets/refinedstorage/lang/zh_cn.lang +++ b/src/main/resources/assets/refinedstorage/lang/zh_cn.lang @@ -24,10 +24,7 @@ gui.refinedstorage:interface.import=输入端 gui.refinedstorage:interface.export=输出端 gui.refinedstorage:crafting_monitor=合成监控处理器 gui.refinedstorage:wireless_crafting_monitor=无线合成监控处理器 -gui.refinedstorage:crafting_monitor.items_crafting=正在合成 -gui.refinedstorage:crafting_monitor.items_inserting=物品正在输入 gui.refinedstorage:crafting_monitor.machine_none=找不到机器 -gui.refinedstorage:crafting_monitor.waiting_for_items=正在等待物品 gui.refinedstorage:wireless_transmitter=无线访问点 gui.refinedstorage:wireless_transmitter.distance=%d 方块 gui.refinedstorage:crafter=装配室 diff --git a/src/main/resources/assets/refinedstorage/textures/gui/crafting_preview.png b/src/main/resources/assets/refinedstorage/textures/gui/crafting_preview.png index 2a5cb39ee..eda64fa1c 100755 Binary files a/src/main/resources/assets/refinedstorage/textures/gui/crafting_preview.png and b/src/main/resources/assets/refinedstorage/textures/gui/crafting_preview.png differ