Skip to content

Commit

Permalink
use CODECs
Browse files Browse the repository at this point in the history
  • Loading branch information
Mari023 committed Jan 1, 2024
1 parent 57a974f commit d5345df
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 50 deletions.
1 change: 0 additions & 1 deletion src/main/java/de/mari_023/ae2wtlib/AE2wtlibForge.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
import net.neoforged.bus.api.IEventBus;
import net.neoforged.bus.api.SubscribeEvent;
import net.neoforged.fml.common.Mod;
import net.neoforged.fml.javafmlmod.FMLJavaModLoadingContext;
import net.neoforged.neoforge.event.BuildCreativeModeTabContentsEvent;
import net.neoforged.neoforge.event.entity.living.LivingEntityUseItemEvent;
import net.neoforged.neoforge.event.entity.player.EntityItemPickupEvent;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,39 +1,23 @@
package de.mari_023.ae2wtlib.wut.recipe;

import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonSyntaxException;
import com.mojang.serialization.Codec;

import com.mojang.serialization.codecs.RecordCodecBuilder;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.util.ExtraCodecs;
import net.minecraft.util.StringRepresentable;
import net.minecraft.world.item.crafting.Ingredient;

public class CombineSerializer extends Serializer<Combine> {
public static final String NAME = "combine";
private static final Codec<Combine> CODEC = null;/*FIXME ExtraCodecs.adaptJsonSerializer(CombineSerializer::fromJson,
CombineSerializer::toJson);*/

private static Combine fromJson(JsonElement json) {
CombineJsonFormat recipeJson = new Gson().fromJson(json, CombineJsonFormat.class);
if (recipeJson.terminalA == null || recipeJson.terminalB == null || validateOutput(recipeJson.terminalAName)
|| validateOutput(recipeJson.terminalBName))
throw new JsonSyntaxException("A required attribute is missing or invalid!");

return new Combine(Ingredient.fromJson(recipeJson.terminalA, true),
Ingredient.fromJson(recipeJson.terminalB, true),
recipeJson.terminalAName, recipeJson.terminalBName);
}

private static JsonElement toJson(Combine recipe) {
JsonObject json = new JsonObject();
//FIXME json.add("terminalA", recipe.getTerminalA().toJson(false));
//FIXME json.add("terminalB", recipe.getTerminalB().toJson(false));
json.addProperty("terminalAName", recipe.getTerminalAName());
json.addProperty("terminalBName", recipe.getTerminalBName());
return json;
}
private static final Codec<Combine> CODEC = RecordCodecBuilder.create(
builder -> builder.group(
Ingredient.CODEC.fieldOf("terminalA").forGetter(Combine::getTerminalA),
Ingredient.CODEC.fieldOf("terminalB").forGetter(Combine::getTerminalB),
StringRepresentable.StringRepresentableCodec.STRING.fieldOf("terminalNameA").forGetter(Combine::getTerminalAName),
StringRepresentable.StringRepresentableCodec.STRING.fieldOf("terminalNameB").forGetter(Combine::getTerminalBName)
)
.apply(builder, Combine::new)
);

@Override
public Codec<Combine> codec() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,34 +1,21 @@
package de.mari_023.ae2wtlib.wut.recipe;

import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonSyntaxException;
import com.mojang.serialization.Codec;

import com.mojang.serialization.codecs.RecordCodecBuilder;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.util.ExtraCodecs;
import net.minecraft.util.StringRepresentable;
import net.minecraft.world.item.crafting.Ingredient;

public class UpgradeSerializer extends Serializer<Upgrade> {
public static final String NAME = "upgrade";
private static final Codec<Upgrade> CODEC = null;/*FIXME ExtraCodecs.adaptJsonSerializer(UpgradeSerializer::fromJson,
UpgradeSerializer::toJson);*/

private static Upgrade fromJson(JsonElement json) {
UpgradeJsonFormat recipeJson = new Gson().fromJson(json, UpgradeJsonFormat.class);
if (recipeJson.terminal == null || validateOutput(recipeJson.terminalName))
throw new JsonSyntaxException("A required attribute is missing or invalid!");

return new Upgrade(Ingredient.fromJson(recipeJson.terminal, true), recipeJson.terminalName);
}

private static JsonElement toJson(Upgrade recipe) {
JsonObject json = new JsonObject();
//FIXME json.add("terminal", recipe.getTerminal().toJson(false));
json.addProperty("terminalName", recipe.getTerminalName());
return json;
}
private static final Codec<Upgrade> CODEC = RecordCodecBuilder.create(
builder -> builder.group(
Ingredient.CODEC.fieldOf("terminal").forGetter(Upgrade::getTerminal),
StringRepresentable.StringRepresentableCodec.STRING.fieldOf("terminalName").forGetter(Upgrade::getTerminalName)
)
.apply(builder, Upgrade::new)
);

@Override
public Codec<Upgrade> codec() {
Expand Down

0 comments on commit d5345df

Please sign in to comment.