aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/impl/AbstractEntryStack.java
diff options
context:
space:
mode:
authorDanielshe <shekwancheung0528@gmail.com>2019-11-03 14:44:52 +0800
committerDanielshe <shekwancheung0528@gmail.com>2019-11-03 14:44:59 +0800
commit9f5a9eae9a7863412cc5eb433bf15e5ee71da616 (patch)
tree0e6b0b94af061c5e9023b1ff19f339a6c30149be /src/main/java/me/shedaniel/rei/impl/AbstractEntryStack.java
parent3e3e25855b9f6df507a7d4c8a07c64b9a502fae2 (diff)
downloadRoughlyEnoughItems-9f5a9eae9a7863412cc5eb433bf15e5ee71da616.tar.gz
RoughlyEnoughItems-9f5a9eae9a7863412cc5eb433bf15e5ee71da616.tar.bz2
RoughlyEnoughItems-9f5a9eae9a7863412cc5eb433bf15e5ee71da616.zip
3.2.1
Diffstat (limited to 'src/main/java/me/shedaniel/rei/impl/AbstractEntryStack.java')
-rw-r--r--src/main/java/me/shedaniel/rei/impl/AbstractEntryStack.java78
1 files changed, 78 insertions, 0 deletions
diff --git a/src/main/java/me/shedaniel/rei/impl/AbstractEntryStack.java b/src/main/java/me/shedaniel/rei/impl/AbstractEntryStack.java
new file mode 100644
index 000000000..e32ac3275
--- /dev/null
+++ b/src/main/java/me/shedaniel/rei/impl/AbstractEntryStack.java
@@ -0,0 +1,78 @@
+/*
+ * Roughly Enough Items by Danielshe.
+ * Licensed under the MIT License.
+ */
+
+package me.shedaniel.rei.impl;
+
+import me.shedaniel.rei.api.EntryStack;
+import me.shedaniel.rei.api.ObjectHolder;
+import net.minecraft.client.gui.DrawableHelper;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@Deprecated
+public abstract class AbstractEntryStack extends DrawableHelper implements EntryStack {
+ private Map<Settings, Object> settings = new HashMap<>();
+
+ @Override
+ public <T> EntryStack setting(Settings<T> settings, T value) {
+ this.settings.put(settings, value);
+ return this;
+ }
+
+ @Override
+ public <T> EntryStack removeSetting(Settings<T> settings) {
+ this.settings.remove(settings);
+ return this;
+ }
+
+ @Override
+ public EntryStack clearSettings() {
+ this.settings.clear();
+ return this;
+ }
+
+ protected Map<Settings, Object> getSettings() {
+ return settings;
+ }
+
+ @Override
+ public <T> ObjectHolder<T> getSetting(Settings<T> settings) {
+ Object o = this.settings.get(settings);
+ if (o == null)
+ return new ObjectHolderImpl(settings.getDefaultValue());
+ return new ObjectHolderImpl(o);
+ }
+
+ @Override
+ public boolean equals(EntryStack stack, boolean ignoreTags, boolean ignoreAmount) {
+ if (ignoreTags && ignoreAmount)
+ return equalsIgnoreTagsAndAmount(stack);
+ if (ignoreAmount)
+ return equalsIgnoreAmount(stack);
+ if (ignoreTags)
+ return equalsIgnoreTags(stack);
+ return equalsAll(stack);
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (!(obj instanceof EntryStack))
+ return false;
+ EntryStack stack = (EntryStack) obj;
+ boolean checkTags = getSetting(Settings.CHECK_TAGS).value().get() || stack.getSetting(Settings.CHECK_TAGS).value().get();
+ return equals(stack, !checkTags, true);
+ }
+
+ @Override
+ public int getZ() {
+ return blitOffset;
+ }
+
+ @Override
+ public void setZ(int z) {
+ blitOffset = z;
+ }
+}