From 5e2eccadbd91171c01cdb209d1338bcfb7786b1c Mon Sep 17 00:00:00 2001 From: shedaniel Date: Thu, 2 Jan 2020 14:31:16 +0800 Subject: 3.3 Fix #58 Close #134 Close #158 Fix #227 --- src/main/java/me/shedaniel/rei/api/EntryStack.java | 93 +++++++++++----------- 1 file changed, 47 insertions(+), 46 deletions(-) (limited to 'src/main/java/me/shedaniel/rei/api/EntryStack.java') diff --git a/src/main/java/me/shedaniel/rei/api/EntryStack.java b/src/main/java/me/shedaniel/rei/api/EntryStack.java index 8fd4a135a..1fd04a1d9 100644 --- a/src/main/java/me/shedaniel/rei/api/EntryStack.java +++ b/src/main/java/me/shedaniel/rei/api/EntryStack.java @@ -32,27 +32,27 @@ import java.util.function.Supplier; @SuppressWarnings("deprecation") public interface EntryStack { - + static EntryStack empty() { return EmptyEntryStack.EMPTY; } - + static EntryStack create(Fluid fluid) { return new FluidEntryStack(fluid); } - + static EntryStack create(Fluid fluid, int amount) { return new FluidEntryStack(fluid, amount); } - + static EntryStack create(ItemStack stack) { return new ItemEntryStack(stack); } - + static EntryStack create(ItemConvertible item) { return new ItemEntryStack(new ItemStack(item)); } - + @Internal @Deprecated static EntryStack readFromJson(JsonElement jsonElement) { @@ -73,7 +73,7 @@ public interface EntryStack { return EntryStack.empty(); } } - + @Internal @Deprecated @Nullable @@ -102,83 +102,85 @@ public interface EntryStack { return null; } } - + Optional getIdentifier(); - + EntryStack.Type getType(); - + int getAmount(); - + void setAmount(int amount); - + boolean isEmpty(); - + EntryStack copy(); - + Object getObject(); - + boolean equals(EntryStack stack, boolean ignoreTags, boolean ignoreAmount); - + boolean equalsIgnoreTagsAndAmount(EntryStack stack); - + boolean equalsIgnoreTags(EntryStack stack); - + boolean equalsIgnoreAmount(EntryStack stack); - + boolean equalsAll(EntryStack stack); - - /** {@link #hashCode()} for {@link #equalsAll(EntryStack)}. */ + + /** + * {@link #hashCode()} for {@link #equalsAll(EntryStack)}. + */ default int hashOfAll() { return hashCode(); } - + int getZ(); - + void setZ(int z); - + default ItemStack getItemStack() { if (getType() == Type.ITEM) return (ItemStack) getObject(); return null; } - + default Item getItem() { if (getType() == Type.ITEM) return ((ItemStack) getObject()).getItem(); return null; } - + default Fluid getFluid() { if (getType() == Type.FLUID) return (Fluid) getObject(); return null; } - + EntryStack setting(Settings settings, T value); - + EntryStack removeSetting(Settings settings); - + EntryStack clearSettings(); - + default EntryStack addSetting(Settings settings, T value) { return setting(settings, value); } - + ObjectHolder getSetting(Settings settings); - + @Nullable QueuedTooltip getTooltip(int mouseX, int mouseY); - + void render(Rectangle bounds, int mouseX, int mouseY, float delta); - - public static enum Type { + + enum Type { ITEM, FLUID, EMPTY, RENDER } - - public static class Settings { + + class Settings { public static final Supplier TRUE = () -> true; public static final Supplier FALSE = () -> false; public static final Settings> RENDER = new Settings(TRUE); @@ -188,30 +190,29 @@ public interface EntryStack { public static final Settings> RENDER_COUNTS = new Settings(TRUE); public static final Settings>> TOOLTIP_APPEND_EXTRA = new Settings>>(stack -> Collections.emptyList()); public static final Settings> COUNTS = new Settings>(stack -> null); - + private T defaultValue; - + public Settings(T defaultValue) { this.defaultValue = defaultValue; } - + public T getDefaultValue() { return defaultValue; } - + public static class Item { public static final Settings> RENDER_ENCHANTMENT_GLINT = new Settings(TRUE); - @Deprecated - public static final Settings> RENDER_OVERLAY = RENDER_ENCHANTMENT_GLINT; - + @Deprecated public static final Settings> RENDER_OVERLAY = RENDER_ENCHANTMENT_GLINT; + private Item() { } } - + public static class Fluid { // Return null to disable public static final Settings> AMOUNT_TOOLTIP = new Settings>(stack -> I18n.translate("tooltip.rei.fluid_amount", stack.getAmount())); - + private Fluid() { } } -- cgit