Reworked the crafting monitor.
This commit is contained in:
@@ -1,7 +1,9 @@
|
|||||||
# Refined Storage Changelog
|
# Refined Storage Changelog
|
||||||
|
|
||||||
### 1.6.4
|
### 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
|
### 1.6.3
|
||||||
- Fixed crash with Wireless Fluid Grid (raoulvdberge)
|
- Fixed crash with Wireless Fluid Grid (raoulvdberge)
|
||||||
|
@@ -12,13 +12,12 @@ import javax.annotation.Nullable;
|
|||||||
*/
|
*/
|
||||||
public interface ICraftingMonitorElement {
|
public interface ICraftingMonitorElement {
|
||||||
/**
|
/**
|
||||||
* @param x position on the x axis to render
|
* @param x position on the x axis to render
|
||||||
* @param y position on the y axis to render
|
* @param y position on the y axis to render
|
||||||
* @param drawers the drawers that this element can use
|
* @param drawers the drawers that this element can use
|
||||||
* @param selected whether the element is selected
|
|
||||||
*/
|
*/
|
||||||
@SideOnly(Side.CLIENT)
|
@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.
|
* Returns the id of this element, used for serialization and deserialization over the network.
|
||||||
|
@@ -36,6 +36,10 @@ public interface IElementDrawers {
|
|||||||
return getNullDrawer();
|
return getNullDrawer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default IElementDrawer getErrorDrawer() {
|
||||||
|
return getNullDrawer();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the font renderer
|
* @return the font renderer
|
||||||
*/
|
*/
|
||||||
|
@@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
@@ -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();
|
||||||
|
}
|
||||||
|
}
|
@@ -7,38 +7,86 @@ import com.raoulvdberge.refinedstorage.util.RenderUtils;
|
|||||||
import com.raoulvdberge.refinedstorage.util.StackUtils;
|
import com.raoulvdberge.refinedstorage.util.StackUtils;
|
||||||
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBuf;
|
||||||
import net.minecraft.client.renderer.GlStateManager;
|
import net.minecraft.client.renderer.GlStateManager;
|
||||||
|
import net.minecraft.client.resources.I18n;
|
||||||
import net.minecraftforge.fluids.FluidStack;
|
import net.minecraftforge.fluids.FluidStack;
|
||||||
import net.minecraftforge.fml.relauncher.Side;
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
public class CraftingMonitorElementFluidRender implements ICraftingMonitorElement {
|
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";
|
public static final String ID = "fluid_render";
|
||||||
|
|
||||||
private FluidStack stack;
|
private FluidStack stack;
|
||||||
private int quantity;
|
private int stored;
|
||||||
private int offset;
|
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.stack = stack;
|
||||||
this.quantity = quantity;
|
this.stored = stored;
|
||||||
this.offset = offset;
|
this.missing = missing;
|
||||||
|
this.processing = processing;
|
||||||
|
this.scheduled = scheduled;
|
||||||
|
this.crafting = crafting;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
public void draw(int x, int y, IElementDrawers drawers, boolean selected) {
|
public void draw(int x, int y, IElementDrawers drawers) {
|
||||||
if (selected) {
|
if (missing > 0) {
|
||||||
drawers.getOverlayDrawer().draw(x, y, 0xFFCCCCCC);
|
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;
|
float scale = drawers.getFontRenderer().getUnicodeFlag() ? 1F : 0.5F;
|
||||||
|
|
||||||
GlStateManager.pushMatrix();
|
GlStateManager.pushMatrix();
|
||||||
GlStateManager.scale(scale, scale, 1);
|
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();
|
GlStateManager.popMatrix();
|
||||||
}
|
}
|
||||||
@@ -48,17 +96,30 @@ public class CraftingMonitorElementFluidRender implements ICraftingMonitorElemen
|
|||||||
return ID;
|
return ID;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
@Override
|
||||||
|
public String getTooltip() {
|
||||||
|
return stack.getLocalizedName();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void write(ByteBuf buf) {
|
public void write(ByteBuf buf) {
|
||||||
StackUtils.writeFluidStack(buf, stack);
|
StackUtils.writeFluidStack(buf, stack);
|
||||||
buf.writeInt(quantity);
|
buf.writeInt(stored);
|
||||||
buf.writeInt(offset);
|
buf.writeInt(missing);
|
||||||
|
buf.writeInt(processing);
|
||||||
|
buf.writeInt(scheduled);
|
||||||
|
buf.writeInt(crafting);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean merge(ICraftingMonitorElement element) {
|
public boolean merge(ICraftingMonitorElement element) {
|
||||||
if (element.getId().equals(getId()) && elementHashCode() == element.elementHashCode()) {
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
|
@@ -7,38 +7,87 @@ import com.raoulvdberge.refinedstorage.util.RenderUtils;
|
|||||||
import com.raoulvdberge.refinedstorage.util.StackUtils;
|
import com.raoulvdberge.refinedstorage.util.StackUtils;
|
||||||
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBuf;
|
||||||
import net.minecraft.client.renderer.GlStateManager;
|
import net.minecraft.client.renderer.GlStateManager;
|
||||||
|
import net.minecraft.client.resources.I18n;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraftforge.fml.relauncher.Side;
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
public class CraftingMonitorElementItemRender implements ICraftingMonitorElement {
|
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";
|
public static final String ID = "item_render";
|
||||||
|
|
||||||
private ItemStack stack;
|
private ItemStack stack;
|
||||||
private int quantity;
|
private int stored;
|
||||||
private int offset;
|
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.stack = stack;
|
||||||
this.quantity = quantity;
|
this.stored = stored;
|
||||||
this.offset = offset;
|
this.missing = missing;
|
||||||
|
this.processing = processing;
|
||||||
|
this.scheduled = scheduled;
|
||||||
|
this.crafting = crafting;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
public void draw(int x, int y, IElementDrawers drawers, boolean selected) {
|
public void draw(int x, int y, IElementDrawers drawers) {
|
||||||
if (selected) {
|
if (missing > 0) {
|
||||||
drawers.getOverlayDrawer().draw(x, y, 0xFFCCCCCC);
|
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;
|
float scale = drawers.getFontRenderer().getUnicodeFlag() ? 1F : 0.5F;
|
||||||
|
|
||||||
GlStateManager.pushMatrix();
|
GlStateManager.pushMatrix();
|
||||||
GlStateManager.scale(scale, scale, 1);
|
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();
|
GlStateManager.popMatrix();
|
||||||
}
|
}
|
||||||
@@ -48,17 +97,30 @@ public class CraftingMonitorElementItemRender implements ICraftingMonitorElement
|
|||||||
return ID;
|
return ID;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
@Override
|
||||||
|
public String getTooltip() {
|
||||||
|
return RenderUtils.getItemTooltip(this.stack).stream().collect(Collectors.joining("\n"));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void write(ByteBuf buf) {
|
public void write(ByteBuf buf) {
|
||||||
StackUtils.writeItemStack(buf, stack);
|
StackUtils.writeItemStack(buf, stack);
|
||||||
buf.writeInt(quantity);
|
buf.writeInt(stored);
|
||||||
buf.writeInt(offset);
|
buf.writeInt(missing);
|
||||||
|
buf.writeInt(processing);
|
||||||
|
buf.writeInt(scheduled);
|
||||||
|
buf.writeInt(crafting);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean merge(ICraftingMonitorElement element) {
|
public boolean merge(ICraftingMonitorElement element) {
|
||||||
if (element.getId().equals(getId()) && elementHashCode() == element.elementHashCode()) {
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
|
@@ -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();
|
|
||||||
}
|
|
||||||
}
|
|
@@ -15,10 +15,9 @@ import com.raoulvdberge.refinedstorage.api.util.Action;
|
|||||||
import com.raoulvdberge.refinedstorage.api.util.IComparer;
|
import com.raoulvdberge.refinedstorage.api.util.IComparer;
|
||||||
import com.raoulvdberge.refinedstorage.api.util.IStackList;
|
import com.raoulvdberge.refinedstorage.api.util.IStackList;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
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.CraftingMonitorElementFluidRender;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.craftingmonitor.CraftingMonitorElementItemRender;
|
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.CraftingPreviewElementFluidStack;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.preview.CraftingPreviewElementItemStack;
|
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.preview.CraftingPreviewElementItemStack;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.storage.disk.StorageDiskFluid;
|
import com.raoulvdberge.refinedstorage.apiimpl.storage.disk.StorageDiskFluid;
|
||||||
@@ -32,6 +31,8 @@ import net.minecraftforge.items.ItemHandlerHelper;
|
|||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
|
// TODO: Calculation time.
|
||||||
|
// TODO: Progressive outputs?
|
||||||
public class CraftingTask implements ICraftingTask {
|
public class CraftingTask implements ICraftingTask {
|
||||||
private INetwork network;
|
private INetwork network;
|
||||||
private ICraftingRequestInfo requested;
|
private ICraftingRequestInfo requested;
|
||||||
@@ -716,74 +717,83 @@ public class CraftingTask implements ICraftingTask {
|
|||||||
public List<ICraftingMonitorElement> getCraftingMonitorElements() {
|
public List<ICraftingMonitorElement> getCraftingMonitorElements() {
|
||||||
ICraftingMonitorElementList elements = API.instance().createCraftingMonitorElementList();
|
ICraftingMonitorElementList elements = API.instance().createCraftingMonitorElementList();
|
||||||
|
|
||||||
if (!missing.isEmpty() && !missingFluids.isEmpty()) {
|
for (ItemStack stack : this.internalStorage.getStacks()) {
|
||||||
elements.directAdd(new CraftingMonitorElementText("gui.refinedstorage:crafting_monitor.missing", 5));
|
elements.add(new CraftingMonitorElementItemRender(stack, stack.getCount(), 0, 0, 0, 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!missing.isEmpty()) {
|
for (ItemStack missing : this.missing.getStacks()) {
|
||||||
for (ItemStack missing : this.missing.getStacks()) {
|
elements.add(new CraftingMonitorElementItemRender(missing, 0, missing.getCount(), 0, 0, 0));
|
||||||
elements.add(new CraftingMonitorElementColor(new CraftingMonitorElementItemRender(missing, missing.getCount(), 0), "", CraftingMonitorElementColor.COLOR_ERROR));
|
}
|
||||||
|
|
||||||
|
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()) {
|
if (processing.getState() == ProcessingState.MACHINE_DOES_NOT_ACCEPT) {
|
||||||
for (FluidStack missing : this.missingFluids.getStacks()) {
|
element = new CraftingMonitorElementError(element, "gui.refinedstorage:crafting_monitor.machine_does_not_accept_item");
|
||||||
elements.add(new CraftingMonitorElementColor(new CraftingMonitorElementFluidRender(missing, missing.amount, 0), "", CraftingMonitorElementColor.COLOR_ERROR));
|
} else if (processing.getState() == ProcessingState.MACHINE_NONE) {
|
||||||
}
|
element = new CraftingMonitorElementError(element, "gui.refinedstorage:crafting_monitor.machine_none");
|
||||||
|
}
|
||||||
|
|
||||||
elements.commit();
|
elements.add(element);
|
||||||
}
|
|
||||||
|
|
||||||
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.commit();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!this.processing.isEmpty()) {
|
elements.commit();
|
||||||
elements.directAdd(new CraftingMonitorElementText("gui.refinedstorage:crafting_monitor.processing", 5));
|
|
||||||
|
|
||||||
for (Processing p : this.processing) {
|
for (FluidStack stack : this.internalFluidStorage.getStacks()) {
|
||||||
for (ItemStack s : p.getItemsToReceive().getStacks()) {
|
elements.add(new CraftingMonitorElementFluidRender(stack, stack.amount, 0, 0, 0, 0));
|
||||||
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 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();
|
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
|
@Override
|
||||||
public List<ICraftingPreviewElement> getPreviewStacks() {
|
public List<ICraftingPreviewElement> getPreviewStacks() {
|
||||||
Map<Integer, CraftingPreviewElementItemStack> map = new LinkedHashMap<>();
|
Map<Integer, CraftingPreviewElementItemStack> map = new LinkedHashMap<>();
|
||||||
|
@@ -4,7 +4,6 @@ import com.google.common.base.Optional;
|
|||||||
import com.raoulvdberge.refinedstorage.RS;
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingManager;
|
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingManager;
|
||||||
import com.raoulvdberge.refinedstorage.api.autocrafting.task.ICraftingTask;
|
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.ICraftingMonitor;
|
||||||
import com.raoulvdberge.refinedstorage.tile.craftingmonitor.TileCraftingMonitor;
|
import com.raoulvdberge.refinedstorage.tile.craftingmonitor.TileCraftingMonitor;
|
||||||
import com.raoulvdberge.refinedstorage.tile.data.TileDataManager;
|
import com.raoulvdberge.refinedstorage.tile.data.TileDataManager;
|
||||||
@@ -23,11 +22,9 @@ import java.util.UUID;
|
|||||||
public class NetworkNodeCraftingMonitor extends NetworkNode implements ICraftingMonitor {
|
public class NetworkNodeCraftingMonitor extends NetworkNode implements ICraftingMonitor {
|
||||||
public static final String ID = "crafting_monitor";
|
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_SELECTED = "TabSelected";
|
||||||
private static final String NBT_TAB_PAGE = "TabPage";
|
private static final String NBT_TAB_PAGE = "TabPage";
|
||||||
|
|
||||||
private int size = IGrid.SIZE_STRETCH;
|
|
||||||
private Optional<UUID> tabSelected = Optional.absent();
|
private Optional<UUID> tabSelected = Optional.absent();
|
||||||
private int tabPage;
|
private int tabPage;
|
||||||
|
|
||||||
@@ -35,20 +32,6 @@ public class NetworkNodeCraftingMonitor extends NetworkNode implements ICrafting
|
|||||||
super(world, pos);
|
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
|
@Override
|
||||||
public int getEnergyUsage() {
|
public int getEnergyUsage() {
|
||||||
return RS.INSTANCE.config.craftingMonitorUsage;
|
return RS.INSTANCE.config.craftingMonitorUsage;
|
||||||
@@ -92,24 +75,6 @@ public class NetworkNodeCraftingMonitor extends NetworkNode implements ICrafting
|
|||||||
return network != null ? network.getCraftingManager() : null;
|
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
|
@Override
|
||||||
public NBTTagCompound write(NBTTagCompound tag) {
|
public NBTTagCompound write(NBTTagCompound tag) {
|
||||||
super.write(tag);
|
super.write(tag);
|
||||||
|
@@ -3,7 +3,6 @@ package com.raoulvdberge.refinedstorage.container;
|
|||||||
import com.raoulvdberge.refinedstorage.RS;
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingManager;
|
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingManager;
|
||||||
import com.raoulvdberge.refinedstorage.api.autocrafting.craftingmonitor.ICraftingMonitorListener;
|
import com.raoulvdberge.refinedstorage.api.autocrafting.craftingmonitor.ICraftingMonitorListener;
|
||||||
import com.raoulvdberge.refinedstorage.gui.IResizableDisplay;
|
|
||||||
import com.raoulvdberge.refinedstorage.network.MessageCraftingMonitorElements;
|
import com.raoulvdberge.refinedstorage.network.MessageCraftingMonitorElements;
|
||||||
import com.raoulvdberge.refinedstorage.tile.craftingmonitor.ICraftingMonitor;
|
import com.raoulvdberge.refinedstorage.tile.craftingmonitor.ICraftingMonitor;
|
||||||
import com.raoulvdberge.refinedstorage.tile.craftingmonitor.TileCraftingMonitor;
|
import com.raoulvdberge.refinedstorage.tile.craftingmonitor.TileCraftingMonitor;
|
||||||
@@ -17,23 +16,12 @@ import javax.annotation.Nullable;
|
|||||||
|
|
||||||
public class ContainerCraftingMonitor extends ContainerBase implements ICraftingMonitorListener {
|
public class ContainerCraftingMonitor extends ContainerBase implements ICraftingMonitorListener {
|
||||||
private ICraftingMonitor craftingMonitor;
|
private ICraftingMonitor craftingMonitor;
|
||||||
private IResizableDisplay resizableDisplay;
|
|
||||||
private boolean addedListener;
|
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);
|
super(craftingMonitorTile, player);
|
||||||
|
|
||||||
this.craftingMonitor = craftingMonitor;
|
this.craftingMonitor = craftingMonitor;
|
||||||
this.resizableDisplay = resizableDisplay;
|
|
||||||
|
|
||||||
initSlots();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void initSlots() {
|
|
||||||
this.inventorySlots.clear();
|
|
||||||
this.inventoryItemStacks.clear();
|
|
||||||
|
|
||||||
addPlayerInventory(8, resizableDisplay.getYPlayerInventory());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -2,7 +2,6 @@ package com.raoulvdberge.refinedstorage.container;
|
|||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.api.network.grid.GridType;
|
import com.raoulvdberge.refinedstorage.api.network.grid.GridType;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
|
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.IFluidGridHandler;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.grid.handler.IItemGridHandler;
|
import com.raoulvdberge.refinedstorage.api.network.grid.handler.IItemGridHandler;
|
||||||
import com.raoulvdberge.refinedstorage.api.storage.IStorageCache;
|
import com.raoulvdberge.refinedstorage.api.storage.IStorageCache;
|
||||||
@@ -108,7 +107,7 @@ public class ContainerGrid extends ContainerBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void addPortableGridSlots() {
|
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());
|
transferManager.addBiTransfer(getPlayer().inventory, ((IPortableGrid) grid).getDisk());
|
||||||
}
|
}
|
||||||
@@ -121,14 +120,14 @@ public class ContainerGrid extends ContainerBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < 4; ++i) {
|
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());
|
transferManager.addBiTransfer(getPlayer().inventory, grid.getFilter());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addCraftingSlots() {
|
private void addCraftingSlots() {
|
||||||
int headerAndSlots = getTabDelta() + display.getTopHeight() + (display.getVisibleRows() * 18);
|
int headerAndSlots = display.getTopHeight() + (display.getVisibleRows() * 18);
|
||||||
|
|
||||||
int x = 26;
|
int x = 26;
|
||||||
int y = headerAndSlots + 4;
|
int y = headerAndSlots + 4;
|
||||||
@@ -148,7 +147,7 @@ public class ContainerGrid extends ContainerBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void addPatternSlots() {
|
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(), 0, 172, headerAndSlots + 4));
|
||||||
addSlotToContainer(new SlotItemHandler(((NetworkNodeGrid) grid).getPatterns(), 1, 172, headerAndSlots + 40));
|
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())));
|
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() {
|
public IGrid getGrid() {
|
||||||
return grid;
|
return grid;
|
||||||
}
|
}
|
||||||
|
@@ -5,7 +5,6 @@ import com.google.common.collect.Lists;
|
|||||||
import com.raoulvdberge.refinedstorage.RS;
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
import com.raoulvdberge.refinedstorage.api.autocrafting.craftingmonitor.ICraftingMonitorElement;
|
import com.raoulvdberge.refinedstorage.api.autocrafting.craftingmonitor.ICraftingMonitorElement;
|
||||||
import com.raoulvdberge.refinedstorage.api.autocrafting.task.ICraftingRequestInfo;
|
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.network.grid.IGridTab;
|
||||||
import com.raoulvdberge.refinedstorage.api.render.IElementDrawer;
|
import com.raoulvdberge.refinedstorage.api.render.IElementDrawer;
|
||||||
import com.raoulvdberge.refinedstorage.api.render.IElementDrawers;
|
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.apiimpl.API;
|
||||||
import com.raoulvdberge.refinedstorage.container.ContainerCraftingMonitor;
|
import com.raoulvdberge.refinedstorage.container.ContainerCraftingMonitor;
|
||||||
import com.raoulvdberge.refinedstorage.gui.control.Scrollbar;
|
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.SideButtonRedstoneMode;
|
||||||
import com.raoulvdberge.refinedstorage.gui.control.TabList;
|
import com.raoulvdberge.refinedstorage.gui.control.TabList;
|
||||||
import com.raoulvdberge.refinedstorage.network.MessageCraftingMonitorCancel;
|
import com.raoulvdberge.refinedstorage.network.MessageCraftingMonitorCancel;
|
||||||
@@ -33,18 +31,32 @@ import java.util.Collections;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public class GuiCraftingMonitor extends GuiBase implements IResizableDisplay {
|
public class GuiCraftingMonitor extends GuiBase {
|
||||||
public class CraftingMonitorElementDrawers extends ElementDrawers {
|
public class CraftingMonitorElementDrawers extends ElementDrawers {
|
||||||
private IElementDrawer<Integer> overlayDrawer = (x, y, color) -> {
|
private IElementDrawer<Integer> overlayDrawer = (x, y, color) -> {
|
||||||
GlStateManager.color(1, 1, 1, 1);
|
GlStateManager.color(1, 1, 1, 1);
|
||||||
GlStateManager.disableLighting();
|
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
|
@Override
|
||||||
public IElementDrawer<Integer> getOverlayDrawer() {
|
public IElementDrawer<Integer> getOverlayDrawer() {
|
||||||
return overlayDrawer;
|
return overlayDrawer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IElementDrawer getErrorDrawer() {
|
||||||
|
return errorDrawer;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class CraftingMonitorTask implements IGridTab {
|
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 ROWS = 5;
|
||||||
private static final int ITEM_HEIGHT = 18;
|
|
||||||
|
private static final int ITEM_WIDTH = 73;
|
||||||
|
private static final int ITEM_HEIGHT = 29;
|
||||||
|
|
||||||
private GuiButton cancelButton;
|
private GuiButton cancelButton;
|
||||||
private GuiButton cancelAllButton;
|
private GuiButton cancelAllButton;
|
||||||
@@ -103,12 +117,10 @@ public class GuiCraftingMonitor extends GuiBase implements IResizableDisplay {
|
|||||||
private List<IGridTab> tasks = Collections.emptyList();
|
private List<IGridTab> tasks = Collections.emptyList();
|
||||||
private TabList tabs;
|
private TabList tabs;
|
||||||
|
|
||||||
private int elementSelected = -1;
|
|
||||||
|
|
||||||
private IElementDrawers drawers = new CraftingMonitorElementDrawers();
|
private IElementDrawers drawers = new CraftingMonitorElementDrawers();
|
||||||
|
|
||||||
public GuiCraftingMonitor(ContainerCraftingMonitor container, ICraftingMonitor craftingMonitor) {
|
public GuiCraftingMonitor(ContainerCraftingMonitor container, ICraftingMonitor craftingMonitor) {
|
||||||
super(container, 176, 230);
|
super(container, 254, 201);
|
||||||
|
|
||||||
this.craftingMonitor = craftingMonitor;
|
this.craftingMonitor = craftingMonitor;
|
||||||
|
|
||||||
@@ -153,47 +165,41 @@ public class GuiCraftingMonitor extends GuiBase implements IResizableDisplay {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init(int x, int y) {
|
public void init(int x, int y) {
|
||||||
((ContainerCraftingMonitor) this.inventorySlots).initSlots();
|
|
||||||
|
|
||||||
this.tabs.init(xSize);
|
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) {
|
if (craftingMonitor.getRedstoneModeParameter() != null) {
|
||||||
addSideButton(new SideButtonRedstoneMode(this, craftingMonitor.getRedstoneModeParameter()));
|
addSideButton(new SideButtonRedstoneMode(this, craftingMonitor.getRedstoneModeParameter()));
|
||||||
}
|
}
|
||||||
|
|
||||||
addSideButton(new SideButtonGridSize(this, () -> craftingMonitor.getSize(), size -> craftingMonitor.onSizeChanged(size)));
|
|
||||||
|
|
||||||
String cancel = t("gui.cancel");
|
String cancel = t("gui.cancel");
|
||||||
String cancelAll = t("misc.refinedstorage:cancel_all");
|
String cancelAll = t("misc.refinedstorage:cancel_all");
|
||||||
|
|
||||||
int cancelButtonWidth = 14 + fontRenderer.getStringWidth(cancel);
|
int cancelButtonWidth = 14 + fontRenderer.getStringWidth(cancel);
|
||||||
int cancelAllButtonWidth = 14 + fontRenderer.getStringWidth(cancelAll);
|
int cancelAllButtonWidth = 14 + fontRenderer.getStringWidth(cancelAll);
|
||||||
|
|
||||||
int by = y + getTopHeight() + (getVisibleRows() * 18) + 3 + tabs.getHeight();
|
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);
|
||||||
this.cancelButton = addButton(x + 7, by, cancelButtonWidth, 20, cancel, false, true);
|
|
||||||
this.cancelAllButton = addButton(x + 7 + cancelButtonWidth + 4, by, cancelAllButtonWidth, 20, cancelAll, false, true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateScrollbar() {
|
private void updateScrollbar() {
|
||||||
if (scrollbar != null) {
|
if (scrollbar != null) {
|
||||||
scrollbar.setEnabled(getRows() > getVisibleRows());
|
scrollbar.setEnabled(getRows() > ROWS);
|
||||||
scrollbar.setMaxOffset(getRows() - getVisibleRows());
|
scrollbar.setMaxOffset(getRows() - ROWS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private int getRows() {
|
||||||
|
return Math.max(0, (int) Math.ceil((float) getElements().size() / 3F));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void update(int x, int y) {
|
public void update(int x, int y) {
|
||||||
updateScrollbar();
|
updateScrollbar();
|
||||||
|
|
||||||
this.tabs.update();
|
this.tabs.update();
|
||||||
|
|
||||||
if (elementSelected >= getElements().size()) {
|
|
||||||
elementSelected = -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (cancelButton != null) {
|
if (cancelButton != null) {
|
||||||
cancelButton.enabled = hasValidTabSelected();
|
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);
|
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
|
@Override
|
||||||
public void drawBackground(int x, int y, int mouseX, int mouseY) {
|
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());
|
tabs.drawForeground(x, y - tabs.getHeight(), mouseX, mouseY);
|
||||||
|
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void drawForeground(int mouseX, int mouseY) {
|
public void drawForeground(int mouseX, int mouseY) {
|
||||||
drawString(7, 7 + tabs.getHeight(), t(craftingMonitor.getGuiTitle()));
|
drawString(7, 7, t(craftingMonitor.getGuiTitle()));
|
||||||
drawString(7, getYPlayerInventory() - 12, t("container.inventory"));
|
|
||||||
|
|
||||||
int item = scrollbar != null ? scrollbar.getOffset() : 0;
|
int item = scrollbar != null ? scrollbar.getOffset() * 3 : 0;
|
||||||
|
|
||||||
RenderHelper.enableGUIStandardItemLighting();
|
RenderHelper.enableGUIStandardItemLighting();
|
||||||
|
|
||||||
int x = 8;
|
int x = 7;
|
||||||
int y = 20 + tabs.getHeight();
|
int y = 20;
|
||||||
|
|
||||||
String itemSelectedTooltip = null;
|
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()) {
|
if (item < getElements().size()) {
|
||||||
ICraftingMonitorElement element = getElements().get(item);
|
ICraftingMonitorElement element = getElements().get(item);
|
||||||
|
|
||||||
|
element.draw(x, y, drawers);
|
||||||
|
|
||||||
if (inBounds(x, y, ITEM_WIDTH, ITEM_HEIGHT, mouseX, mouseY)) {
|
if (inBounds(x, y, ITEM_WIDTH, ITEM_HEIGHT, mouseX, mouseY)) {
|
||||||
itemSelectedTooltip = element.getTooltip();
|
itemSelectedTooltip = element.getTooltip();
|
||||||
}
|
}
|
||||||
|
|
||||||
element.draw(x, y, drawers, item == elementSelected);
|
if ((i + 1) % 3 == 0) {
|
||||||
|
x = 7;
|
||||||
y += ITEM_HEIGHT;
|
y += 30;
|
||||||
|
} else {
|
||||||
|
x += 74;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
item++;
|
item++;
|
||||||
@@ -299,59 +289,6 @@ public class GuiCraftingMonitor extends GuiBase implements IResizableDisplay {
|
|||||||
tabs.drawTooltip(fontRenderer, mouseX, mouseY);
|
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
|
@Override
|
||||||
protected void actionPerformed(GuiButton button) throws IOException {
|
protected void actionPerformed(GuiButton button) throws IOException {
|
||||||
super.actionPerformed(button);
|
super.actionPerformed(button);
|
||||||
@@ -370,20 +307,5 @@ public class GuiCraftingMonitor extends GuiBase implements IResizableDisplay {
|
|||||||
super.mouseClicked(mouseX, mouseY, mouseButton);
|
super.mouseClicked(mouseX, mouseY, mouseButton);
|
||||||
|
|
||||||
this.tabs.mouseClicked();
|
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -50,7 +50,7 @@ public class GuiHandler implements IGuiHandler {
|
|||||||
case RSGui.INTERFACE:
|
case RSGui.INTERFACE:
|
||||||
return new ContainerInterface((TileInterface) tile, player);
|
return new ContainerInterface((TileInterface) tile, player);
|
||||||
case RSGui.CRAFTING_MONITOR:
|
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:
|
case RSGui.WIRELESS_TRANSMITTER:
|
||||||
return new ContainerWirelessTransmitter((TileWirelessTransmitter) tile, player);
|
return new ContainerWirelessTransmitter((TileWirelessTransmitter) tile, player);
|
||||||
case RSGui.CRAFTER:
|
case RSGui.CRAFTER:
|
||||||
@@ -128,7 +128,7 @@ public class GuiHandler implements IGuiHandler {
|
|||||||
case RSGui.CRAFTING_MONITOR: {
|
case RSGui.CRAFTING_MONITOR: {
|
||||||
NetworkNodeCraftingMonitor node = ((TileCraftingMonitor) tile).getNode();
|
NetworkNodeCraftingMonitor node = ((TileCraftingMonitor) tile).getNode();
|
||||||
GuiCraftingMonitor gui = new GuiCraftingMonitor(null, node);
|
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;
|
return gui;
|
||||||
}
|
}
|
||||||
case RSGui.WIRELESS_TRANSMITTER:
|
case RSGui.WIRELESS_TRANSMITTER:
|
||||||
@@ -186,12 +186,12 @@ public class GuiHandler implements IGuiHandler {
|
|||||||
WirelessCraftingMonitor craftingMonitor = getCraftingMonitor(player, hand, networkDimension);
|
WirelessCraftingMonitor craftingMonitor = getCraftingMonitor(player, hand, networkDimension);
|
||||||
|
|
||||||
GuiCraftingMonitor gui = new GuiCraftingMonitor(null, craftingMonitor);
|
GuiCraftingMonitor gui = new GuiCraftingMonitor(null, craftingMonitor);
|
||||||
gui.inventorySlots = new ContainerCraftingMonitor(craftingMonitor, null, player, gui);
|
gui.inventorySlots = new ContainerCraftingMonitor(craftingMonitor, null, player);
|
||||||
return gui;
|
return gui;
|
||||||
}
|
}
|
||||||
|
|
||||||
private ContainerCraftingMonitor getCraftingMonitorContainer(EntityPlayer player, int hand, int networkDimension) {
|
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) {
|
private ContainerFilter getFilterContainer(EntityPlayer player, int hand) {
|
||||||
|
@@ -78,7 +78,7 @@ public class GuiGrid extends GuiBase implements IResizableDisplay {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void calcHeight() {
|
protected void calcHeight() {
|
||||||
this.ySize = getTopHeight() + getBottomHeight() + (getVisibleRows() * 18) + tabs.getHeight();
|
this.ySize = getTopHeight() + getBottomHeight() + (getVisibleRows() * 18);
|
||||||
this.screenHeight = ySize;
|
this.screenHeight = ySize;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -88,14 +88,14 @@ public class GuiGrid extends GuiBase implements IResizableDisplay {
|
|||||||
|
|
||||||
this.tabs.init(xSize - 32);
|
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) {
|
if (grid instanceof NetworkNodeGrid || grid instanceof TilePortableGrid) {
|
||||||
addSideButton(new SideButtonRedstoneMode(this, grid instanceof NetworkNodeGrid ? TileGrid.REDSTONE_MODE : TilePortableGrid.REDSTONE_MODE));
|
addSideButton(new SideButtonRedstoneMode(this, grid instanceof NetworkNodeGrid ? TileGrid.REDSTONE_MODE : TilePortableGrid.REDSTONE_MODE));
|
||||||
}
|
}
|
||||||
|
|
||||||
int sx = x + 80 + 1;
|
int sx = x + 80 + 1;
|
||||||
int sy = y + 6 + 1 + tabs.getHeight();
|
int sy = y + 6 + 1;
|
||||||
|
|
||||||
if (searchField == null) {
|
if (searchField == null) {
|
||||||
searchField = new TextFieldSearch(0, fontRenderer, sx, sy, 88 - 6);
|
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)));
|
addSideButton(new SideButtonGridSize(this, () -> grid.getSize(), size -> grid.onSizeChanged(size)));
|
||||||
|
|
||||||
if (grid.getGridType() == GridType.PATTERN) {
|
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;
|
boolean showOredict = true;
|
||||||
if (((NetworkNodeGrid) grid).isProcessingPattern() && ((NetworkNodeGrid) grid).getType() == IType.FLUIDS) {
|
if (((NetworkNodeGrid) grid).isProcessingPattern() && ((NetworkNodeGrid) grid).getType() == IType.FLUIDS) {
|
||||||
@@ -126,7 +126,7 @@ public class GuiGrid extends GuiBase implements IResizableDisplay {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (showOredict) {
|
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));
|
addSideButton(new SideButtonType(this, TileGrid.PROCESSING_TYPE));
|
||||||
@@ -135,11 +135,6 @@ public class GuiGrid extends GuiBase implements IResizableDisplay {
|
|||||||
updateScrollbar();
|
updateScrollbar();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected int getSideButtonYStart() {
|
|
||||||
return super.getSideButtonYStart() + tabs.getHeight();
|
|
||||||
}
|
|
||||||
|
|
||||||
public IGrid getGrid() {
|
public IGrid getGrid() {
|
||||||
return grid;
|
return grid;
|
||||||
}
|
}
|
||||||
@@ -181,7 +176,7 @@ public class GuiGrid extends GuiBase implements IResizableDisplay {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getYPlayerInventory() {
|
public int getYPlayerInventory() {
|
||||||
int yp = tabs.getHeight() + getTopHeight() + (getVisibleRows() * 18);
|
int yp = getTopHeight() + (getVisibleRows() * 18);
|
||||||
|
|
||||||
if (grid.getGridType() == GridType.NORMAL || grid.getGridType() == GridType.FLUID) {
|
if (grid.getGridType() == GridType.NORMAL || grid.getGridType() == GridType.FLUID) {
|
||||||
yp += 16;
|
yp += 16;
|
||||||
@@ -213,7 +208,7 @@ public class GuiGrid extends GuiBase implements IResizableDisplay {
|
|||||||
public int getVisibleRows() {
|
public int getVisibleRows() {
|
||||||
switch (grid.getSize()) {
|
switch (grid.getSize()) {
|
||||||
case IGrid.SIZE_STRETCH:
|
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));
|
return Math.max(3, Math.min((screenSpaceAvailable / 18) - 3, RS.INSTANCE.config.maxRowsStretch));
|
||||||
case IGrid.SIZE_SMALL:
|
case IGrid.SIZE_SMALL:
|
||||||
@@ -236,7 +231,7 @@ public class GuiGrid extends GuiBase implements IResizableDisplay {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean isOverSlotArea(int mouseX, int mouseY) {
|
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() {
|
public int getSlotNumber() {
|
||||||
@@ -244,7 +239,7 @@ public class GuiGrid extends GuiBase implements IResizableDisplay {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private boolean isOverClear(int mouseX, int mouseY) {
|
private boolean isOverClear(int mouseX, int mouseY) {
|
||||||
int y = tabs.getHeight() + getTopHeight() + (getVisibleRows() * 18) + 4;
|
int y = getTopHeight() + (getVisibleRows() * 18) + 4;
|
||||||
|
|
||||||
switch (grid.getGridType()) {
|
switch (grid.getGridType()) {
|
||||||
case CRAFTING:
|
case CRAFTING:
|
||||||
@@ -261,12 +256,12 @@ public class GuiGrid extends GuiBase implements IResizableDisplay {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private boolean isOverCreatePattern(int mouseX, int mouseY) {
|
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
|
@Override
|
||||||
public void drawBackground(int x, int y, int mouseX, int mouseY) {
|
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) {
|
if (grid instanceof IPortableGrid) {
|
||||||
bindTexture("gui/portable_grid.png");
|
bindTexture("gui/portable_grid.png");
|
||||||
@@ -278,12 +273,12 @@ public class GuiGrid extends GuiBase implements IResizableDisplay {
|
|||||||
bindTexture("gui/grid.png");
|
bindTexture("gui/grid.png");
|
||||||
}
|
}
|
||||||
|
|
||||||
int yy = y + tabs.getHeight();
|
int yy = y;
|
||||||
|
|
||||||
drawTexture(x, yy, 0, 0, screenWidth - 34, getTopHeight());
|
drawTexture(x, yy, 0, 0, screenWidth - 34, getTopHeight());
|
||||||
|
|
||||||
// Filters and/or portable grid disk
|
// 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();
|
int rows = getVisibleRows();
|
||||||
|
|
||||||
@@ -308,10 +303,10 @@ public class GuiGrid extends GuiBase implements IResizableDisplay {
|
|||||||
ty = 2;
|
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) {
|
if (searchField != null) {
|
||||||
searchField.drawTextBox();
|
searchField.drawTextBox();
|
||||||
@@ -331,11 +326,11 @@ public class GuiGrid extends GuiBase implements IResizableDisplay {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void drawForeground(int mouseX, int mouseY) {
|
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"));
|
drawString(7, getYPlayerInventory() - 12, t("container.inventory"));
|
||||||
|
|
||||||
int x = 8;
|
int x = 8;
|
||||||
int y = 19 + tabs.getHeight();
|
int y = 19;
|
||||||
|
|
||||||
this.slotNumber = -1;
|
this.slotNumber = -1;
|
||||||
|
|
||||||
|
@@ -2,7 +2,6 @@ package com.raoulvdberge.refinedstorage.item;
|
|||||||
|
|
||||||
import com.google.common.base.Optional;
|
import com.google.common.base.Optional;
|
||||||
import com.raoulvdberge.refinedstorage.RS;
|
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.INetworkItem;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
|
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.item.NetworkItemWirelessCraftingMonitor;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.item.NetworkItemWirelessCraftingMonitor;
|
||||||
@@ -19,7 +18,6 @@ import javax.annotation.Nonnull;
|
|||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public class ItemWirelessCraftingMonitor extends ItemNetworkItem {
|
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_SELECTED = "TabSelected";
|
||||||
public static final String NBT_TAB_PAGE = "TabPage";
|
public static final String NBT_TAB_PAGE = "TabPage";
|
||||||
|
|
||||||
@@ -39,22 +37,6 @@ public class ItemWirelessCraftingMonitor extends ItemNetworkItem {
|
|||||||
return new NetworkItemWirelessCraftingMonitor(handler, player, stack);
|
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<UUID> getTabSelected(ItemStack stack) {
|
public static Optional<UUID> getTabSelected(ItemStack stack) {
|
||||||
if (stack.hasTagCompound() && stack.getTagCompound().hasUniqueId(NBT_TAB_SELECTED)) {
|
if (stack.hasTagCompound() && stack.getTagCompound().hasUniqueId(NBT_TAB_SELECTED)) {
|
||||||
return Optional.of(stack.getTagCompound().getUniqueId(NBT_TAB_SELECTED));
|
return Optional.of(stack.getTagCompound().getUniqueId(NBT_TAB_SELECTED));
|
||||||
|
@@ -1,7 +1,6 @@
|
|||||||
package com.raoulvdberge.refinedstorage.network;
|
package com.raoulvdberge.refinedstorage.network;
|
||||||
|
|
||||||
import com.google.common.base.Optional;
|
import com.google.common.base.Optional;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
|
|
||||||
import com.raoulvdberge.refinedstorage.container.ContainerCraftingMonitor;
|
import com.raoulvdberge.refinedstorage.container.ContainerCraftingMonitor;
|
||||||
import com.raoulvdberge.refinedstorage.item.ItemWirelessCraftingMonitor;
|
import com.raoulvdberge.refinedstorage.item.ItemWirelessCraftingMonitor;
|
||||||
import com.raoulvdberge.refinedstorage.tile.craftingmonitor.WirelessCraftingMonitor;
|
import com.raoulvdberge.refinedstorage.tile.craftingmonitor.WirelessCraftingMonitor;
|
||||||
@@ -14,23 +13,19 @@ import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
|||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public class MessageWirelessCraftingMonitorSettings extends MessageHandlerPlayerToServer<MessageWirelessCraftingMonitorSettings> implements IMessage {
|
public class MessageWirelessCraftingMonitorSettings extends MessageHandlerPlayerToServer<MessageWirelessCraftingMonitorSettings> implements IMessage {
|
||||||
private int size;
|
|
||||||
private Optional<UUID> tabSelected = Optional.absent();
|
private Optional<UUID> tabSelected = Optional.absent();
|
||||||
private int tabPage;
|
private int tabPage;
|
||||||
|
|
||||||
public MessageWirelessCraftingMonitorSettings() {
|
public MessageWirelessCraftingMonitorSettings() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public MessageWirelessCraftingMonitorSettings(int size, Optional<UUID> tabSelected, int tabPage) {
|
public MessageWirelessCraftingMonitorSettings(Optional<UUID> tabSelected, int tabPage) {
|
||||||
this.size = size;
|
|
||||||
this.tabSelected = tabSelected;
|
this.tabSelected = tabSelected;
|
||||||
this.tabPage = tabPage;
|
this.tabPage = tabPage;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void fromBytes(ByteBuf buf) {
|
public void fromBytes(ByteBuf buf) {
|
||||||
size = buf.readInt();
|
|
||||||
|
|
||||||
if (buf.readBoolean()) {
|
if (buf.readBoolean()) {
|
||||||
tabSelected = Optional.of(UUID.fromString(ByteBufUtils.readUTF8String(buf)));
|
tabSelected = Optional.of(UUID.fromString(ByteBufUtils.readUTF8String(buf)));
|
||||||
}
|
}
|
||||||
@@ -40,8 +35,6 @@ public class MessageWirelessCraftingMonitorSettings extends MessageHandlerPlayer
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void toBytes(ByteBuf buf) {
|
public void toBytes(ByteBuf buf) {
|
||||||
buf.writeInt(size);
|
|
||||||
|
|
||||||
buf.writeBoolean(tabSelected.isPresent());
|
buf.writeBoolean(tabSelected.isPresent());
|
||||||
if (tabSelected.isPresent()) {
|
if (tabSelected.isPresent()) {
|
||||||
ByteBufUtils.writeUTF8String(buf, tabSelected.get().toString());
|
ByteBufUtils.writeUTF8String(buf, tabSelected.get().toString());
|
||||||
@@ -52,10 +45,9 @@ public class MessageWirelessCraftingMonitorSettings extends MessageHandlerPlayer
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handle(MessageWirelessCraftingMonitorSettings message, EntityPlayerMP player) {
|
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();
|
ItemStack stack = ((WirelessCraftingMonitor) ((ContainerCraftingMonitor) player.openContainer).getCraftingMonitor()).getStack();
|
||||||
|
|
||||||
ItemWirelessCraftingMonitor.setSize(stack, message.size);
|
|
||||||
ItemWirelessCraftingMonitor.setTabPage(stack, message.tabPage);
|
ItemWirelessCraftingMonitor.setTabPage(stack, message.tabPage);
|
||||||
ItemWirelessCraftingMonitor.setTabSelected(stack, message.tabSelected);
|
ItemWirelessCraftingMonitor.setTabSelected(stack, message.tabSelected);
|
||||||
}
|
}
|
||||||
|
@@ -5,10 +5,9 @@ import com.raoulvdberge.refinedstorage.RSBlocks;
|
|||||||
import com.raoulvdberge.refinedstorage.RSItems;
|
import com.raoulvdberge.refinedstorage.RSItems;
|
||||||
import com.raoulvdberge.refinedstorage.api.storage.StorageType;
|
import com.raoulvdberge.refinedstorage.api.storage.StorageType;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
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.CraftingMonitorElementFluidRender;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.craftingmonitor.CraftingMonitorElementItemRender;
|
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.CraftingPreviewElementError;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.preview.CraftingPreviewElementFluidStack;
|
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.preview.CraftingPreviewElementFluidStack;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.preview.CraftingPreviewElementItemStack;
|
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().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(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()));
|
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(CraftingMonitorElementText.ID, buf -> new CraftingMonitorElementText(ByteBufUtils.readUTF8String(buf), buf.readInt()));
|
API.instance().getCraftingMonitorElementRegistry().add(CraftingMonitorElementError.ID, buf -> {
|
||||||
API.instance().getCraftingMonitorElementRegistry().add(CraftingMonitorElementColor.ID, buf -> {
|
|
||||||
int color = buf.readInt();
|
|
||||||
String id = ByteBufUtils.readUTF8String(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);
|
API.instance().getCraftingPreviewElementRegistry().add(CraftingPreviewElementItemStack.ID, CraftingPreviewElementItemStack::fromByteBuf);
|
||||||
|
@@ -25,10 +25,6 @@ public interface ICraftingMonitor {
|
|||||||
@Nullable
|
@Nullable
|
||||||
ICraftingManager getCraftingManager();
|
ICraftingManager getCraftingManager();
|
||||||
|
|
||||||
int getSize();
|
|
||||||
|
|
||||||
void onSizeChanged(int size);
|
|
||||||
|
|
||||||
boolean isActive();
|
boolean isActive();
|
||||||
|
|
||||||
void onClosed(EntityPlayer player);
|
void onClosed(EntityPlayer player);
|
||||||
|
@@ -1,10 +1,7 @@
|
|||||||
package com.raoulvdberge.refinedstorage.tile.craftingmonitor;
|
package com.raoulvdberge.refinedstorage.tile.craftingmonitor;
|
||||||
|
|
||||||
import com.google.common.base.Optional;
|
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.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.TileNode;
|
||||||
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
|
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
|
||||||
import net.minecraft.network.datasync.DataSerializers;
|
import net.minecraft.network.datasync.DataSerializers;
|
||||||
@@ -15,12 +12,6 @@ import javax.annotation.Nonnull;
|
|||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public class TileCraftingMonitor extends TileNode<NetworkNodeCraftingMonitor> {
|
public class TileCraftingMonitor extends TileNode<NetworkNodeCraftingMonitor> {
|
||||||
public static final TileDataParameter<Integer, TileCraftingMonitor> 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<Optional<UUID>, TileCraftingMonitor> TAB_SELECTED = new TileDataParameter<>(DataSerializers.OPTIONAL_UNIQUE_ID, Optional.absent(), t -> t.getNode().getTabSelected(), (t, v) -> {
|
public static final TileDataParameter<Optional<UUID>, 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())) {
|
if (v.isPresent() && t.getNode().getTabSelected().isPresent() && v.get().equals(t.getNode().getTabSelected().get())) {
|
||||||
t.getNode().setTabSelected(Optional.absent());
|
t.getNode().setTabSelected(Optional.absent());
|
||||||
@@ -38,7 +29,6 @@ public class TileCraftingMonitor extends TileNode<NetworkNodeCraftingMonitor> {
|
|||||||
});
|
});
|
||||||
|
|
||||||
public TileCraftingMonitor() {
|
public TileCraftingMonitor() {
|
||||||
dataManager.addWatchedParameter(SIZE);
|
|
||||||
dataManager.addWatchedParameter(TAB_SELECTED);
|
dataManager.addWatchedParameter(TAB_SELECTED);
|
||||||
dataManager.addWatchedParameter(TAB_PAGE);
|
dataManager.addWatchedParameter(TAB_PAGE);
|
||||||
}
|
}
|
||||||
|
@@ -5,8 +5,6 @@ import com.raoulvdberge.refinedstorage.RS;
|
|||||||
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingManager;
|
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingManager;
|
||||||
import com.raoulvdberge.refinedstorage.api.autocrafting.task.ICraftingTask;
|
import com.raoulvdberge.refinedstorage.api.autocrafting.task.ICraftingTask;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.INetwork;
|
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.item.ItemWirelessCraftingMonitor;
|
||||||
import com.raoulvdberge.refinedstorage.network.MessageWirelessCraftingMonitorSettings;
|
import com.raoulvdberge.refinedstorage.network.MessageWirelessCraftingMonitorSettings;
|
||||||
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
|
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
|
||||||
@@ -28,7 +26,6 @@ public class WirelessCraftingMonitor implements ICraftingMonitor {
|
|||||||
|
|
||||||
private int networkDimension;
|
private int networkDimension;
|
||||||
private BlockPos network;
|
private BlockPos network;
|
||||||
private int size;
|
|
||||||
private int tabPage;
|
private int tabPage;
|
||||||
private Optional<UUID> tabSelected;
|
private Optional<UUID> tabSelected;
|
||||||
|
|
||||||
@@ -36,7 +33,6 @@ public class WirelessCraftingMonitor implements ICraftingMonitor {
|
|||||||
this.stack = stack;
|
this.stack = stack;
|
||||||
this.networkDimension = networkDimension;
|
this.networkDimension = networkDimension;
|
||||||
this.network = new BlockPos(ItemWirelessCraftingMonitor.getX(stack), ItemWirelessCraftingMonitor.getY(stack), ItemWirelessCraftingMonitor.getZ(stack));
|
this.network = new BlockPos(ItemWirelessCraftingMonitor.getX(stack), ItemWirelessCraftingMonitor.getY(stack), ItemWirelessCraftingMonitor.getZ(stack));
|
||||||
this.size = ItemWirelessCraftingMonitor.getSize(stack);
|
|
||||||
this.tabPage = ItemWirelessCraftingMonitor.getTabPage(stack);
|
this.tabPage = ItemWirelessCraftingMonitor.getTabPage(stack);
|
||||||
this.tabSelected = ItemWirelessCraftingMonitor.getTabSelected(stack);
|
this.tabSelected = ItemWirelessCraftingMonitor.getTabSelected(stack);
|
||||||
}
|
}
|
||||||
@@ -83,20 +79,6 @@ public class WirelessCraftingMonitor implements ICraftingMonitor {
|
|||||||
return null;
|
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() {
|
private INetwork getNetwork() {
|
||||||
World world = DimensionManager.getWorld(networkDimension);
|
World world = DimensionManager.getWorld(networkDimension);
|
||||||
|
|
||||||
@@ -145,7 +127,7 @@ public class WirelessCraftingMonitor implements ICraftingMonitor {
|
|||||||
this.tabSelected = taskId;
|
this.tabSelected = taskId;
|
||||||
}
|
}
|
||||||
|
|
||||||
RS.INSTANCE.network.sendToServer(new MessageWirelessCraftingMonitorSettings(size, tabSelected, tabPage));
|
RS.INSTANCE.network.sendToServer(new MessageWirelessCraftingMonitorSettings(tabSelected, tabPage));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -153,7 +135,7 @@ public class WirelessCraftingMonitor implements ICraftingMonitor {
|
|||||||
if (page >= 0) {
|
if (page >= 0) {
|
||||||
this.tabPage = page;
|
this.tabPage = page;
|
||||||
|
|
||||||
RS.INSTANCE.network.sendToServer(new MessageWirelessCraftingMonitorSettings(size, tabSelected, tabPage));
|
RS.INSTANCE.network.sendToServer(new MessageWirelessCraftingMonitorSettings(tabSelected, tabPage));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -27,17 +27,11 @@ gui.refinedstorage:interface.export=Exportschnittstelle
|
|||||||
gui.refinedstorage:crafting_monitor=Fertigungsmonitor
|
gui.refinedstorage:crafting_monitor=Fertigungsmonitor
|
||||||
gui.refinedstorage:wireless_crafting_monitor=Mobile Fertigungskonsole
|
gui.refinedstorage:wireless_crafting_monitor=Mobile Fertigungskonsole
|
||||||
gui.refinedstorage:crafting_monitor.tooltip.requested=%d angefragt
|
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.processing=Verarbeitung
|
||||||
gui.refinedstorage:crafting_monitor.items_inserting=Items Einfügen
|
|
||||||
gui.refinedstorage:crafting_monitor.missing=Fehlt
|
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_item=Maschine akzeptiert Item nicht
|
||||||
gui.refinedstorage:crafting_monitor.machine_does_not_accept_fluid=Maschine akzeptiert Flüssigkeit 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.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=Funksender
|
||||||
gui.refinedstorage:wireless_transmitter.distance=%d Blöcke
|
gui.refinedstorage:wireless_transmitter.distance=%d Blöcke
|
||||||
gui.refinedstorage:crafter=Fertigungseinheit
|
gui.refinedstorage:crafter=Fertigungseinheit
|
||||||
|
@@ -27,17 +27,14 @@ gui.refinedstorage:interface.export=Interface Export
|
|||||||
gui.refinedstorage:crafting_monitor=Crafting Monitor
|
gui.refinedstorage:crafting_monitor=Crafting Monitor
|
||||||
gui.refinedstorage:wireless_crafting_monitor=Wireless Crafting Monitor
|
gui.refinedstorage:wireless_crafting_monitor=Wireless Crafting Monitor
|
||||||
gui.refinedstorage:crafting_monitor.tooltip.requested=%d requested
|
gui.refinedstorage:crafting_monitor.tooltip.requested=%d requested
|
||||||
gui.refinedstorage:crafting_monitor.items_crafting=Items crafting
|
gui.refinedstorage:crafting_monitor.stored=Stored: %d
|
||||||
gui.refinedstorage:crafting_monitor.processing=Processing
|
gui.refinedstorage:crafting_monitor.missing=Missing: %d
|
||||||
gui.refinedstorage:crafting_monitor.items_inserting=Items inserting
|
gui.refinedstorage:crafting_monitor.processing=Processing: %d
|
||||||
gui.refinedstorage:crafting_monitor.missing=Missing
|
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_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_does_not_accept_fluid=Machine doesn't accept fluid
|
||||||
gui.refinedstorage:crafting_monitor.machine_none=No machine found
|
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=Wireless Transmitter
|
||||||
gui.refinedstorage:wireless_transmitter.distance=%d block(s)
|
gui.refinedstorage:wireless_transmitter.distance=%d block(s)
|
||||||
gui.refinedstorage:crafter=Crafter
|
gui.refinedstorage:crafter=Crafter
|
||||||
|
@@ -24,10 +24,7 @@ gui.refinedstorage:interface.import=Interfaz de Entrada
|
|||||||
gui.refinedstorage:interface.export=Interfaz de Salida
|
gui.refinedstorage:interface.export=Interfaz de Salida
|
||||||
gui.refinedstorage:crafting_monitor=Monitor de fabricación
|
gui.refinedstorage:crafting_monitor=Monitor de fabricación
|
||||||
gui.refinedstorage:wireless_crafting_monitor=Monitor Remoto 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.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=Emisor inalámbrico
|
||||||
gui.refinedstorage:wireless_transmitter.distance=%d bloque(s)
|
gui.refinedstorage:wireless_transmitter.distance=%d bloque(s)
|
||||||
gui.refinedstorage:crafter=Fabricador
|
gui.refinedstorage:crafter=Fabricador
|
||||||
|
@@ -23,10 +23,7 @@ gui.refinedstorage:interface.import=Interface d'import
|
|||||||
gui.refinedstorage:interface.export=Interface d'export
|
gui.refinedstorage:interface.export=Interface d'export
|
||||||
gui.refinedstorage:crafting_monitor=Moniteur de craft
|
gui.refinedstorage:crafting_monitor=Moniteur de craft
|
||||||
gui.refinedstorage:wireless_crafting_monitor=Moniteur de craft sans-fil
|
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.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=Emetteur sans-fil
|
||||||
gui.refinedstorage:wireless_transmitter.distance=%d bloc(s)
|
gui.refinedstorage:wireless_transmitter.distance=%d bloc(s)
|
||||||
gui.refinedstorage:crafter=Crafteur
|
gui.refinedstorage:crafter=Crafteur
|
||||||
|
@@ -22,10 +22,7 @@ gui.refinedstorage:interface.import=인터페이스 입력
|
|||||||
gui.refinedstorage:interface.export=인터페이스 출력
|
gui.refinedstorage:interface.export=인터페이스 출력
|
||||||
gui.refinedstorage:crafting_monitor=조합 모니터
|
gui.refinedstorage:crafting_monitor=조합 모니터
|
||||||
gui.refinedstorage:wireless_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.machine_none=기계를 찾을 수 없음
|
||||||
gui.refinedstorage:crafting_monitor.waiting_for_items=아이템을 기다리는 중
|
|
||||||
gui.refinedstorage:wireless_transmitter=무선 송신기
|
gui.refinedstorage:wireless_transmitter=무선 송신기
|
||||||
gui.refinedstorage:wireless_transmitter.distance=%d블럭
|
gui.refinedstorage:wireless_transmitter.distance=%d블럭
|
||||||
gui.refinedstorage:crafter=조합기
|
gui.refinedstorage:crafter=조합기
|
||||||
|
@@ -18,8 +18,6 @@ gui.refinedstorage:relay=Relais
|
|||||||
gui.refinedstorage:interface.import=Interface Import
|
gui.refinedstorage:interface.import=Interface Import
|
||||||
gui.refinedstorage:interface.export=Interface Export
|
gui.refinedstorage:interface.export=Interface Export
|
||||||
gui.refinedstorage:crafting_monitor=Crafting Monitor
|
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:crafting_monitor.machine_none=Geen machine gevonden
|
||||||
gui.refinedstorage:wireless_transmitter=Draadloze Zender
|
gui.refinedstorage:wireless_transmitter=Draadloze Zender
|
||||||
gui.refinedstorage:wireless_transmitter.distance=%d blokken
|
gui.refinedstorage:wireless_transmitter.distance=%d blokken
|
||||||
|
@@ -23,10 +23,7 @@ gui.refinedstorage:interface.import=Importação da Interface
|
|||||||
gui.refinedstorage:interface.export=Exportação da Interface
|
gui.refinedstorage:interface.export=Exportação da Interface
|
||||||
gui.refinedstorage:crafting_monitor=Monitor de Fabricações
|
gui.refinedstorage:crafting_monitor=Monitor de Fabricações
|
||||||
gui.refinedstorage:wireless_crafting_monitor=Monitor de Fabricações Wireless
|
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.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=Transmissor Wireless
|
||||||
gui.refinedstorage:wireless_transmitter.distance=%d Blocos
|
gui.refinedstorage:wireless_transmitter.distance=%d Blocos
|
||||||
gui.refinedstorage:crafter=Fabricador
|
gui.refinedstorage:crafter=Fabricador
|
||||||
|
@@ -26,11 +26,7 @@ gui.refinedstorage:interface.export=Интерфейс - Экспорт
|
|||||||
gui.refinedstorage:crafting_monitor=Терминал запросов
|
gui.refinedstorage:crafting_monitor=Терминал запросов
|
||||||
gui.refinedstorage:wireless_crafting_monitor=Беспроводной монитор создания
|
gui.refinedstorage:wireless_crafting_monitor=Беспроводной монитор создания
|
||||||
gui.refinedstorage:crafting_monitor.tooltip.requested=Требует %d
|
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.machine_none=Машина не найдена
|
||||||
gui.refinedstorage:crafting_monitor.waiting_for_items=Ожидание предметов
|
|
||||||
gui.refinedstorage:crafting_monitor.network_full=Сеть полна
|
|
||||||
gui.refinedstorage:wireless_transmitter=Передатчик
|
gui.refinedstorage:wireless_transmitter=Передатчик
|
||||||
gui.refinedstorage:wireless_transmitter.distance=%d блоков
|
gui.refinedstorage:wireless_transmitter.distance=%d блоков
|
||||||
gui.refinedstorage:crafter=Крафтер
|
gui.refinedstorage:crafter=Крафтер
|
||||||
|
@@ -24,10 +24,7 @@ gui.refinedstorage:interface.import=输入端
|
|||||||
gui.refinedstorage:interface.export=输出端
|
gui.refinedstorage:interface.export=输出端
|
||||||
gui.refinedstorage:crafting_monitor=合成监控处理器
|
gui.refinedstorage:crafting_monitor=合成监控处理器
|
||||||
gui.refinedstorage:wireless_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.machine_none=找不到机器
|
||||||
gui.refinedstorage:crafting_monitor.waiting_for_items=正在等待物品
|
|
||||||
gui.refinedstorage:wireless_transmitter=无线访问点
|
gui.refinedstorage:wireless_transmitter=无线访问点
|
||||||
gui.refinedstorage:wireless_transmitter.distance=%d 方块
|
gui.refinedstorage:wireless_transmitter.distance=%d 方块
|
||||||
gui.refinedstorage:crafter=装配室
|
gui.refinedstorage:crafter=装配室
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 885 B After Width: | Height: | Size: 1.8 KiB |
Reference in New Issue
Block a user