aboutsummaryrefslogtreecommitdiff
path: root/api/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'api/src/main/java')
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntry.java17
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntryType.java6
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/client/gui/DisplayRenderer.java3
-rw-r--r--api/src/main/java/me/shedaniel/rei/api/common/entry/EntryStack.java39
-rw-r--r--api/src/main/java/me/shedaniel/rei/impl/ClientInternals.java12
5 files changed, 21 insertions, 56 deletions
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntry.java b/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntry.java
index da68b4d39..9ca3b960e 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntry.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntry.java
@@ -23,10 +23,10 @@
package me.shedaniel.rei.api.client.favorites;
-import com.google.gson.JsonObject;
import me.shedaniel.rei.api.client.gui.Renderer;
import me.shedaniel.rei.api.common.entry.EntryStack;
import me.shedaniel.rei.impl.ClientInternals;
+import net.minecraft.nbt.CompoundTag;
import net.minecraft.resources.ResourceLocation;
import org.jetbrains.annotations.Nullable;
@@ -40,12 +40,12 @@ public abstract class FavoriteEntry {
public static final String TYPE_KEY = "type";
private final UUID uuid = UUID.randomUUID();
- public static FavoriteEntry delegate(Supplier<FavoriteEntry> supplier, @Nullable Supplier<JsonObject> toJson) {
+ public static FavoriteEntry delegate(Supplier<FavoriteEntry> supplier, @Nullable Supplier<CompoundTag> toJson) {
return ClientInternals.delegateFavoriteEntry(supplier, toJson);
}
@Nullable
- public static FavoriteEntry fromJson(JsonObject object) {
+ public static FavoriteEntry read(CompoundTag object) {
return ClientInternals.favoriteEntryFromJson(object);
}
@@ -57,9 +57,9 @@ public abstract class FavoriteEntry {
return entry == null || entry.isInvalid();
}
- public JsonObject toJson(JsonObject object) {
- object.addProperty(TYPE_KEY, getType().toString());
- return Objects.requireNonNull(Objects.requireNonNull(FavoriteEntryType.registry().get(getType())).toJson(this, object));
+ public CompoundTag save(CompoundTag tag) {
+ tag.putString(TYPE_KEY, getType().toString());
+ return Objects.requireNonNull(Objects.requireNonNull(FavoriteEntryType.registry().get(getType())).save(this, tag));
}
public UUID getUuid() {
@@ -94,7 +94,10 @@ public abstract class FavoriteEntry {
@Override
public int hashCode() {
- return hashIgnoreAmount();
+ int result = 1;
+ result = 31 * result + getType().hashCode();
+ result = 31 * result + hashIgnoreAmount();
+ return result;
}
public abstract boolean isSame(FavoriteEntry other);
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntryType.java b/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntryType.java
index c341581a9..b3e79bf4f 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntryType.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntryType.java
@@ -23,11 +23,11 @@
package me.shedaniel.rei.api.client.favorites;
-import com.google.gson.JsonObject;
import me.shedaniel.rei.api.client.plugins.REIClientPlugin;
import me.shedaniel.rei.api.common.entry.EntryStack;
import me.shedaniel.rei.api.common.plugins.PluginManager;
import me.shedaniel.rei.api.common.registry.Reloadable;
+import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component;
import net.minecraft.resources.ResourceLocation;
import org.jetbrains.annotations.ApiStatus;
@@ -45,11 +45,11 @@ public interface FavoriteEntryType<T extends FavoriteEntry> {
return PluginManager.getClientInstance().get(FavoriteEntryType.Registry.class);
}
- T fromJson(JsonObject object);
+ T read(CompoundTag object);
T fromArgs(Object... args);
- JsonObject toJson(T entry, JsonObject object);
+ CompoundTag save(T entry, CompoundTag tag);
@ApiStatus.NonExtendable
interface Registry extends Reloadable<REIClientPlugin> {
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/DisplayRenderer.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/DisplayRenderer.java
index 29d3593bc..adfb9b087 100644
--- a/api/src/main/java/me/shedaniel/rei/api/client/gui/DisplayRenderer.java
+++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/DisplayRenderer.java
@@ -37,7 +37,8 @@ public abstract class DisplayRenderer extends AbstractRenderer {
}
@Override
- public @Nullable Tooltip getTooltip(Point mouse) {
+ @Nullable
+ public Tooltip getTooltip(Point mouse) {
return null;
}
}
diff --git a/api/src/main/java/me/shedaniel/rei/api/common/entry/EntryStack.java b/api/src/main/java/me/shedaniel/rei/api/common/entry/EntryStack.java
index ce7201d51..cd3defe83 100644
--- a/api/src/main/java/me/shedaniel/rei/api/common/entry/EntryStack.java
+++ b/api/src/main/java/me/shedaniel/rei/api/common/entry/EntryStack.java
@@ -23,10 +23,6 @@
package me.shedaniel.rei.api.common.entry;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import com.mojang.serialization.Dynamic;
-import com.mojang.serialization.JsonOps;
import me.shedaniel.math.Point;
import me.shedaniel.rei.api.client.config.ConfigObject;
import me.shedaniel.rei.api.client.entry.renderer.EntryRenderer;
@@ -41,11 +37,8 @@ import me.shedaniel.rei.impl.Internals;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.nbt.CompoundTag;
-import net.minecraft.nbt.NbtOps;
-import net.minecraft.nbt.TagParser;
import net.minecraft.network.chat.Component;
import net.minecraft.resources.ResourceLocation;
-import net.minecraft.util.GsonHelper;
import net.minecraft.util.Unit;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Nullable;
@@ -69,38 +62,6 @@ public interface EntryStack<T> extends TextRepresentable, Renderer {
return of(type.getDefinition(), value);
}
- @ApiStatus.Internal
- static EntryStack<?> readFromJson(JsonElement jsonElement) {
- try {
- JsonObject obj = jsonElement.getAsJsonObject();
- EntryType<Object> type = EntryType.deferred(new ResourceLocation(GsonHelper.getAsString(obj, "type")));
- EntrySerializer<Object> serializer = type.getDefinition().getSerializer();
- if (serializer != null && serializer.supportReading()) {
- Object o = serializer.read(TagParser.parseTag(obj.toString()));
- return EntryStack.of(type, o);
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- return EntryStack.empty();
- }
-
- @ApiStatus.Internal
- @Nullable
- default JsonElement toJson() {
- try {
- EntrySerializer<T> serializer = getDefinition().getSerializer();
- if (serializer != null && serializer.supportSaving()) {
- JsonObject object = Dynamic.convert(NbtOps.INSTANCE, JsonOps.INSTANCE, serializer.save(this, getValue())).getAsJsonObject();
- object.addProperty("type", getType().getId().toString());
- return object;
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- return null;
- }
-
static EntryStack<?> read(CompoundTag tag) {
EntryDefinition<?> definition = EntryTypeRegistry.getInstance().get(new ResourceLocation(tag.getString("type")));
EntrySerializer<?> serializer = definition.getSerializer();
diff --git a/api/src/main/java/me/shedaniel/rei/impl/ClientInternals.java b/api/src/main/java/me/shedaniel/rei/impl/ClientInternals.java
index 1daaa568d..50e512c49 100644
--- a/api/src/main/java/me/shedaniel/rei/impl/ClientInternals.java
+++ b/api/src/main/java/me/shedaniel/rei/impl/ClientInternals.java
@@ -23,7 +23,6 @@
package me.shedaniel.rei.impl;
-import com.google.gson.JsonObject;
import me.shedaniel.math.Point;
import me.shedaniel.math.Rectangle;
import me.shedaniel.rei.api.client.ClientHelper;
@@ -37,6 +36,7 @@ import me.shedaniel.rei.api.client.view.ViewSearchBuilder;
import me.shedaniel.rei.api.common.plugins.PluginManager;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
+import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.FormattedText;
import net.minecraft.resources.ResourceLocation;
@@ -57,8 +57,8 @@ public final class ClientInternals {
private static Supplier<ViewSearchBuilder> viewSearchBuilder = ClientInternals::throwNotSetup;
private static Supplier<PluginManager<REIClientPlugin>> clientPluginManager = ClientInternals::throwNotSetup;
private static Supplier<EntryRenderer<?>> emptyEntryRenderer = ClientInternals::throwNotSetup;
- private static BiFunction<Supplier<FavoriteEntry>, Supplier<JsonObject>, FavoriteEntry> delegateFavoriteEntry = (supplier, toJson) -> throwNotSetup();
- private static Function<JsonObject, FavoriteEntry> favoriteEntryFromJson = (object) -> throwNotSetup();
+ private static BiFunction<Supplier<FavoriteEntry>, Supplier<CompoundTag>, FavoriteEntry> delegateFavoriteEntry = (supplier, toJson) -> throwNotSetup();
+ private static Function<CompoundTag, FavoriteEntry> favoriteEntryFromJson = (object) -> throwNotSetup();
private static Function<Boolean, ClickArea.Result> clickAreaHandlerResult = (result) -> throwNotSetup();
private static BiFunction<@Nullable Point, Collection<Component>, Tooltip> tooltipProvider = (point, texts) -> throwNotSetup();
private static Supplier<List<String>> jeiCompatMods = ClientInternals::throwNotSetup;
@@ -117,12 +117,12 @@ public final class ClientInternals {
return tooltipProvider.apply(point, texts);
}
- public static FavoriteEntry delegateFavoriteEntry(Supplier<FavoriteEntry> supplier, Supplier<JsonObject> toJoin) {
+ public static FavoriteEntry delegateFavoriteEntry(Supplier<FavoriteEntry> supplier, Supplier<CompoundTag> toJoin) {
return delegateFavoriteEntry.apply(supplier, toJoin);
}
- public static FavoriteEntry favoriteEntryFromJson(JsonObject object) {
- return favoriteEntryFromJson.apply(object);
+ public static FavoriteEntry favoriteEntryFromJson(CompoundTag tag) {
+ return favoriteEntryFromJson.apply(tag);
}
public static <T> EntryRenderer<T> getEmptyEntryRenderer() {