AbstractEntryStack.java 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. /*
  2. * Roughly Enough Items by Danielshe.
  3. * Licensed under the MIT License.
  4. */
  5. package me.shedaniel.rei.impl;
  6. import me.shedaniel.rei.api.EntryStack;
  7. import me.shedaniel.rei.api.ObjectHolder;
  8. import net.minecraft.client.gui.DrawableHelper;
  9. import java.util.HashMap;
  10. import java.util.Map;
  11. @Deprecated
  12. public abstract class AbstractEntryStack extends DrawableHelper implements EntryStack {
  13. private Map<Settings, Object> settings = new HashMap<>();
  14. @Override
  15. public <T> EntryStack setting(Settings<T> settings, T value) {
  16. this.settings.put(settings, value);
  17. return this;
  18. }
  19. @Override
  20. public <T> EntryStack removeSetting(Settings<T> settings) {
  21. this.settings.remove(settings);
  22. return this;
  23. }
  24. @Override
  25. public EntryStack clearSettings() {
  26. this.settings.clear();
  27. return this;
  28. }
  29. protected Map<Settings, Object> getSettings() {
  30. return settings;
  31. }
  32. @Override
  33. public <T> ObjectHolder<T> getSetting(Settings<T> settings) {
  34. Object o = this.settings.get(settings);
  35. if (o == null)
  36. return ObjectHolder.of(settings.getDefaultValue());
  37. return ObjectHolder.of((T) o);
  38. }
  39. @Override
  40. public boolean equals(EntryStack stack, boolean ignoreTags, boolean ignoreAmount) {
  41. if (ignoreTags && ignoreAmount)
  42. return equalsIgnoreTagsAndAmount(stack);
  43. if (ignoreAmount)
  44. return equalsIgnoreAmount(stack);
  45. if (ignoreTags)
  46. return equalsIgnoreTags(stack);
  47. return equalsAll(stack);
  48. }
  49. @Override
  50. public boolean equals(Object obj) {
  51. if (!(obj instanceof EntryStack))
  52. return false;
  53. EntryStack stack = (EntryStack) obj;
  54. boolean checkTags = getSetting(Settings.CHECK_TAGS).value().get() || stack.getSetting(Settings.CHECK_TAGS).value().get();
  55. return equals(stack, !checkTags, true);
  56. }
  57. @Override
  58. public int getZ() {
  59. return getBlitOffset();
  60. }
  61. @Override
  62. public void setZ(int z) {
  63. setBlitOffset(z);
  64. }
  65. }