aboutsummaryrefslogtreecommitdiff
path: root/runtime/src/main/java
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2021-03-18 01:22:16 +0800
committershedaniel <daniel@shedaniel.me>2021-03-18 01:22:16 +0800
commite7508133081539684416f1d8183b5adb9b12e40f (patch)
treed2b11fd409b052a31e167c8618c2e89685ef6864 /runtime/src/main/java
parent809cc85848e157a02d32720562ea77ab7a462596 (diff)
downloadRoughlyEnoughItems-e7508133081539684416f1d8183b5adb9b12e40f.tar.gz
RoughlyEnoughItems-e7508133081539684416f1d8183b5adb9b12e40f.tar.bz2
RoughlyEnoughItems-e7508133081539684416f1d8183b5adb9b12e40f.zip
Remove getAmount and setAmount and split out the serializer for EntryDefinition
Signed-off-by: shedaniel <daniel@shedaniel.me>
Diffstat (limited to 'runtime/src/main/java')
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/gui/plugin/DefaultRuntimePlugin.java3
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/gui/plugin/entry/FluidEntryDefinition.java34
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/gui/plugin/entry/ItemEntryDefinition.java32
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/gui/widget/EntryListEntryWidget.java2
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/gui/widget/TabWidget.java3
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/ClientHelperImpl.java2
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/TypedEntryStack.java10
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/entry/EmptyEntryDefinition.java43
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/plugin/autocrafting/DefaultCategoryHandler.java2
9 files changed, 70 insertions, 61 deletions
diff --git a/runtime/src/main/java/me/shedaniel/rei/gui/plugin/DefaultRuntimePlugin.java b/runtime/src/main/java/me/shedaniel/rei/gui/plugin/DefaultRuntimePlugin.java
index d3570aa5c..b0f2a7ebf 100644
--- a/runtime/src/main/java/me/shedaniel/rei/gui/plugin/DefaultRuntimePlugin.java
+++ b/runtime/src/main/java/me/shedaniel/rei/gui/plugin/DefaultRuntimePlugin.java
@@ -194,7 +194,6 @@ public class DefaultRuntimePlugin implements REIPlugin {
public EntryStackFavoriteEntry(EntryStack<?> stack) {
this.stack = stack.copy();
- this.stack.setAmount(Fraction.ofWhole(127));
if (this.stack.getType() == VanillaEntryTypes.ITEM)
this.stack.setting(EntryStack.Settings.RENDER_COUNTS, EntryStack.Settings.FALSE);
else if (this.stack.getType() == VanillaEntryTypes.FLUID)
@@ -224,7 +223,7 @@ public class DefaultRuntimePlugin implements REIPlugin {
}
}
if (entry.getType() == VanillaEntryTypes.ITEM)
- entry.setAmount(Fraction.ofWhole(button != 1 && !Screen.hasShiftDown() ? 1 : ((ItemStack) entry.getValue()).getMaxStackSize()));
+ entry.<ItemStack>cast().getValue().setCount(button != 1 && !Screen.hasShiftDown() ? 1 : ((ItemStack) entry.getValue()).getMaxStackSize());
return ClientHelper.getInstance().tryCheatingEntry(entry);
}
diff --git a/runtime/src/main/java/me/shedaniel/rei/gui/plugin/entry/FluidEntryDefinition.java b/runtime/src/main/java/me/shedaniel/rei/gui/plugin/entry/FluidEntryDefinition.java
index 1c90ca6a2..569dcd67a 100644
--- a/runtime/src/main/java/me/shedaniel/rei/gui/plugin/entry/FluidEntryDefinition.java
+++ b/runtime/src/main/java/me/shedaniel/rei/gui/plugin/entry/FluidEntryDefinition.java
@@ -57,7 +57,7 @@ import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
-public class FluidEntryDefinition implements EntryDefinition<FluidStack> {
+public class FluidEntryDefinition implements EntryDefinition<FluidStack>, EntrySerializer<FluidStack> {
private final EntryRenderer<FluidStack> renderer = new FluidEntryRenderer();
@Override
@@ -81,16 +81,6 @@ public class FluidEntryDefinition implements EntryDefinition<FluidStack> {
}
@Override
- public @NotNull Fraction getAmount(EntryStack<FluidStack> entry, FluidStack value) {
- return value.getAmount();
- }
-
- @Override
- public void setAmount(EntryStack<FluidStack> entry, FluidStack value, Fraction amount) {
- value.setAmount(amount);
- }
-
- @Override
public boolean isEmpty(EntryStack<FluidStack> entry, FluidStack value) {
return value.isEmpty();
}
@@ -125,12 +115,28 @@ public class FluidEntryDefinition implements EntryDefinition<FluidStack> {
}
@Override
- public @NotNull CompoundTag toTag(EntryStack<FluidStack> entry, FluidStack value) {
+ @Nullable
+ public EntrySerializer<FluidStack> getSerializer() {
+ return this;
+ }
+
+ @Override
+ public boolean supportSaving() {
+ return true;
+ }
+
+ @Override
+ public boolean supportReading() {
+ return true;
+ }
+
+ @Override
+ public CompoundTag save(EntryStack<FluidStack> entry, FluidStack value) {
return value.write(new CompoundTag());
}
@Override
- public @NotNull FluidStack fromTag(@NotNull CompoundTag tag) {
+ public FluidStack read(CompoundTag tag) {
return FluidStack.read(tag);
}
@@ -178,7 +184,7 @@ public class FluidEntryDefinition implements EntryDefinition<FluidStack> {
if (!entry.get(EntryStack.Settings.TOOLTIP_ENABLED).get() || entry.isEmpty())
return null;
List<Component> toolTip = Lists.newArrayList(entry.asFormattedText());
- Fraction amount = entry.getAmount();
+ Fraction amount = entry.getValue().getAmount();
if (!amount.isLessThan(Fraction.zero())) {
String amountTooltip = entry.get(EntryStack.Settings.Fluid.AMOUNT_TOOLTIP).apply(entry);
if (amountTooltip != null)
diff --git a/runtime/src/main/java/me/shedaniel/rei/gui/plugin/entry/ItemEntryDefinition.java b/runtime/src/main/java/me/shedaniel/rei/gui/plugin/entry/ItemEntryDefinition.java
index 91b171c73..817786b1a 100644
--- a/runtime/src/main/java/me/shedaniel/rei/gui/plugin/entry/ItemEntryDefinition.java
+++ b/runtime/src/main/java/me/shedaniel/rei/gui/plugin/entry/ItemEntryDefinition.java
@@ -64,7 +64,7 @@ import java.util.Collections;
import java.util.List;
import java.util.Optional;
-public class ItemEntryDefinition implements EntryDefinition<ItemStack> {
+public class ItemEntryDefinition implements EntryDefinition<ItemStack>, EntrySerializer<ItemStack> {
private final EntryRenderer<ItemStack> renderer = new ItemEntryRenderer();
@Override
@@ -88,16 +88,6 @@ public class ItemEntryDefinition implements EntryDefinition<ItemStack> {
}
@Override
- public @NotNull Fraction getAmount(EntryStack<ItemStack> entry, ItemStack value) {
- return Fraction.ofWhole(value.getCount());
- }
-
- @Override
- public void setAmount(EntryStack<ItemStack> entry, ItemStack value, Fraction amount) {
- value.setCount(amount.intValue());
- }
-
- @Override
public boolean isEmpty(EntryStack<ItemStack> entry, ItemStack value) {
return value.isEmpty();
}
@@ -186,12 +176,28 @@ public class ItemEntryDefinition implements EntryDefinition<ItemStack> {
}
@Override
- public @NotNull CompoundTag toTag(EntryStack<ItemStack> entry, ItemStack value) {
+ @Nullable
+ public EntrySerializer<ItemStack> getSerializer() {
+ return this;
+ }
+
+ @Override
+ public boolean supportSaving() {
+ return true;
+ }
+
+ @Override
+ public boolean supportReading() {
+ return true;
+ }
+
+ @Override
+ public CompoundTag save(EntryStack<ItemStack> entry, ItemStack value) {
return value.save(new CompoundTag());
}
@Override
- public @NotNull ItemStack fromTag(@NotNull CompoundTag tag) {
+ public ItemStack read(CompoundTag tag) {
return ItemStack.of(tag);
}
diff --git a/runtime/src/main/java/me/shedaniel/rei/gui/widget/EntryListEntryWidget.java b/runtime/src/main/java/me/shedaniel/rei/gui/widget/EntryListEntryWidget.java
index 02b3880f7..a4c770b95 100644
--- a/runtime/src/main/java/me/shedaniel/rei/gui/widget/EntryListEntryWidget.java
+++ b/runtime/src/main/java/me/shedaniel/rei/gui/widget/EntryListEntryWidget.java
@@ -87,7 +87,7 @@ public abstract class EntryListEntryWidget extends EntryWidget {
}
}
if (entry.getValueType() == ItemStack.class)
- entry.setAmount(Fraction.ofWhole(button != 1 && !Screen.hasShiftDown() ? 1 : ((ItemStack) entry.getValue()).getMaxStackSize()));
+ entry.<ItemStack>cast().getValue().setCount(button != 1 && !Screen.hasShiftDown() ? 1 : ((ItemStack) entry.getValue()).getMaxStackSize());
return ClientHelper.getInstance().tryCheatingEntry(entry);
}
diff --git a/runtime/src/main/java/me/shedaniel/rei/gui/widget/TabWidget.java b/runtime/src/main/java/me/shedaniel/rei/gui/widget/TabWidget.java
index 681818a97..715a7e0c2 100644
--- a/runtime/src/main/java/me/shedaniel/rei/gui/widget/TabWidget.java
+++ b/runtime/src/main/java/me/shedaniel/rei/gui/widget/TabWidget.java
@@ -140,7 +140,8 @@ public class TabWidget extends WidgetWithBounds implements DraggableStackProvide
}
@Override
- public @Nullable DraggableStack getHoveredStack(DraggingContext context, double mouseX, double mouseY) {
+ @Nullable
+ public DraggableStack getHoveredStack(DraggingContext context, double mouseX, double mouseY) {
if (isShown() && renderer instanceof EntryStack && containsMouse(mouseX, mouseY)) {
return new DraggableStack() {
EntryStack<?> stack = ((EntryStack<?>) renderer).copy();
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/ClientHelperImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/ClientHelperImpl.java
index c877da769..1f327fb7b 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/ClientHelperImpl.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/ClientHelperImpl.java
@@ -154,7 +154,7 @@ public class ClientHelperImpl implements ClientHelper {
Inventory inventory = Minecraft.getInstance().player.inventory;
EntryStack<ItemStack> stack = entry.copy();
if (!inventory.getCarried().isEmpty() && EntryStacks.equalsIgnoreCount(EntryStacks.of(inventory.getCarried()), stack)) {
- stack.setAmount(Fraction.ofWhole(Mth.clamp(stack.getAmount().intValue() + inventory.getCarried().getCount(), 1, stack.getValue().getMaxStackSize())));
+ stack.getValue().setCount(Mth.clamp(stack.getValue().getCount() + inventory.getCarried().getCount(), 1, stack.getValue().getMaxStackSize()));
} else if (!inventory.getCarried().isEmpty()) {
return false;
}
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/TypedEntryStack.java b/runtime/src/main/java/me/shedaniel/rei/impl/TypedEntryStack.java
index bf521cf61..6c6da8652 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/TypedEntryStack.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/TypedEntryStack.java
@@ -71,16 +71,6 @@ public class TypedEntryStack<T> extends AbstractEntryStack<T> {
}
@Override
- public Fraction getAmount() {
- return getDefinition().getAmount(this, value);
- }
-
- @Override
- public void setAmount(Fraction amount) {
- getDefinition().setAmount(this, value, amount);
- }
-
- @Override
public boolean isEmpty() {
return getDefinition().isEmpty(this, value);
}
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/entry/EmptyEntryDefinition.java b/runtime/src/main/java/me/shedaniel/rei/impl/entry/EmptyEntryDefinition.java
index 8220ff971..59fa733ad 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/entry/EmptyEntryDefinition.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/entry/EmptyEntryDefinition.java
@@ -46,7 +46,7 @@ import java.util.Optional;
import java.util.function.Supplier;
@ApiStatus.Internal
-public enum EmptyEntryDefinition implements EntryDefinition<Object> {
+public enum EmptyEntryDefinition implements EntryDefinition<Object>, EntrySerializer<Object> {
EMPTY(BuiltinEntryTypes.EMPTY, true, () -> Unit.INSTANCE, EmptyRenderer.INSTANCE),
RENDERING(BuiltinEntryTypes.RENDERING, false, EmptyEntryDefinition::throwRendering, DeferredRenderer.INSTANCE);
@@ -87,16 +87,6 @@ public enum EmptyEntryDefinition implements EntryDefinition<Object> {
}
@Override
- public Fraction getAmount(EntryStack<Object> entry, Object value) {
- return Fraction.zero();
- }
-
- @Override
- public void setAmount(EntryStack<Object> entry, Object value, Fraction amount) {
-
- }
-
- @Override
public boolean isEmpty(EntryStack<Object> entry, Object value) {
return empty;
}
@@ -117,13 +107,9 @@ public enum EmptyEntryDefinition implements EntryDefinition<Object> {
}
@Override
- public CompoundTag toTag(EntryStack<Object> entry, Object value) {
- return new CompoundTag();
- }
-
- @Override
- public Object fromTag(CompoundTag tag) {
- return defaultValue.get();
+ @Nullable
+ public EntrySerializer<Object> getSerializer() {
+ return this;
}
@Override
@@ -142,6 +128,27 @@ public enum EmptyEntryDefinition implements EntryDefinition<Object> {
return Collections.emptyList();
}
+ @Override
+ public boolean supportReading() {
+ return true;
+ }
+
+ @Override
+ public boolean supportSaving() {
+ return true;
+ }
+
+ @Override
+ public CompoundTag save(EntryStack<Object> entry, Object value) {
+ return new CompoundTag();
+ }
+
+ @Override
+ public Object read(CompoundTag tag) {
+ return defaultValue.get();
+ }
+
+
private enum EmptyRenderer implements EntryRenderer<Unit> {
INSTANCE;
diff --git a/runtime/src/main/java/me/shedaniel/rei/plugin/autocrafting/DefaultCategoryHandler.java b/runtime/src/main/java/me/shedaniel/rei/plugin/autocrafting/DefaultCategoryHandler.java
index 8ebd18416..6aecc2554 100644
--- a/runtime/src/main/java/me/shedaniel/rei/plugin/autocrafting/DefaultCategoryHandler.java
+++ b/runtime/src/main/java/me/shedaniel/rei/plugin/autocrafting/DefaultCategoryHandler.java
@@ -130,7 +130,7 @@ public class DefaultCategoryHandler implements TransferHandler {
for (EntryStack<?> possibleStack : possibleStacks) {
if (!done) {
if (possibleStack.getType() == VanillaEntryTypes.ITEM) {
- int invRequiredCount = possibleStack.getAmount().intValue();
+ int invRequiredCount = possibleStack.<ItemStack>cast().getValue().getCount();
int key = RecipeFinder.getItemId((ItemStack) possibleStack.getValue());
while (invRequiredCount > 0 && recipeFinder.contains(key)) {
invRequiredCount--;