Skip to content

Commit ec52588

Browse files
committed
[INTERNAL] Swap custom RecipeLayerTypeCodec for a Forge reg codec
Usage from MiniaturizationRecipe remains the same, this removes a pointless custom codec that Forge now provides for registry entries
1 parent a815459 commit ec52588

File tree

4 files changed

+37
-99
lines changed

4 files changed

+37
-99
lines changed

forge-main/src/main/java/dev/compactmods/crafting/recipes/MiniaturizationRecipe.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,10 @@
1111
import dev.compactmods.crafting.api.components.IPositionalComponentLookup;
1212
import dev.compactmods.crafting.api.components.RecipeComponentType;
1313
import dev.compactmods.crafting.api.recipe.layers.RecipeLayerType;
14+
import dev.compactmods.crafting.core.CCLayerTypes;
1415
import dev.compactmods.crafting.core.CCMiniaturizationRecipes;
1516
import dev.compactmods.crafting.api.catalyst.ICatalystMatcher;
16-
import dev.compactmods.crafting.api.components.IRecipeBlockComponent;
1717
import dev.compactmods.crafting.api.components.IRecipeComponent;
18-
import dev.compactmods.crafting.api.components.IRecipeComponents;
1918
import dev.compactmods.crafting.api.field.MiniaturizationFieldSize;
2019
import dev.compactmods.crafting.api.recipe.IMiniaturizationRecipe;
2120
import dev.compactmods.crafting.api.recipe.layers.IRecipeBlocks;
@@ -24,15 +23,14 @@
2423
import dev.compactmods.crafting.api.recipe.layers.dim.IDynamicSizedRecipeLayer;
2524
import dev.compactmods.crafting.api.recipe.layers.dim.IFixedSizedRecipeLayer;
2625
import dev.compactmods.crafting.recipes.catalyst.CatalystMatcherCodec;
27-
import dev.compactmods.crafting.recipes.components.EmptyBlockComponent;
2826
import dev.compactmods.crafting.recipes.components.MiniaturizationRecipeComponents;
2927
import dev.compactmods.crafting.recipes.components.RecipeComponentTypeCodec;
30-
import dev.compactmods.crafting.recipes.layers.RecipeLayerTypeCodec;
3128
import dev.compactmods.crafting.recipes.layers.RecipeLayerUtil;
3229
import dev.compactmods.crafting.recipes.setup.RecipeBase;
3330
import dev.compactmods.crafting.server.ServerConfig;
3431
import dev.compactmods.crafting.util.BlockSpaceUtil;
3532
import dev.compactmods.crafting.util.CodecExtensions;
33+
import net.minecraft.util.ExtraCodecs;
3634
import net.minecraft.world.item.ItemStack;
3735
import net.minecraft.world.item.crafting.RecipeSerializer;
3836
import net.minecraft.world.item.crafting.RecipeType;
@@ -53,8 +51,10 @@ public class MiniaturizationRecipe extends RecipeBase implements IMiniaturizatio
5351
private Map<String, Integer> cachedComponentTotals;
5452
private final MiniaturizationRecipeComponents components;
5553

56-
public static final Codec<IRecipeLayer> LAYER_CODEC =
57-
RecipeLayerTypeCodec.INSTANCE.dispatchStable(IRecipeLayer::getType, RecipeLayerType::getCodec);
54+
public static final Codec<IRecipeLayer> LAYER_CODEC = ExtraCodecs.lazyInitializedCodec(() -> {
55+
final var reg = CCLayerTypes.RECIPE_LAYER_TYPES.get();
56+
return reg.getCodec().dispatchStable(IRecipeLayer::getType, RecipeLayerType::getCodec);
57+
});
5858

5959
public static final Codec<IRecipeComponent> COMPONENT_CODEC =
6060
RecipeComponentTypeCodec.INSTANCE.dispatchStable(IRecipeComponent::getType, RecipeComponentType::getCodec);

forge-main/src/main/java/dev/compactmods/crafting/recipes/layers/RecipeLayerTypeCodec.java

Lines changed: 0 additions & 41 deletions
This file was deleted.
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package dev.compactmods.crafting.tests.recipes.layers;
2+
3+
import com.google.gson.JsonObject;
4+
import com.mojang.serialization.JsonOps;
5+
import dev.compactmods.crafting.CompactCrafting;
6+
import dev.compactmods.crafting.recipes.MiniaturizationRecipe;
7+
import dev.compactmods.crafting.recipes.layers.FilledComponentRecipeLayer;
8+
import dev.compactmods.crafting.tests.GameTestTemplates;
9+
import dev.compactmods.crafting.tests.components.GameTestAssertions;
10+
import net.minecraft.gametest.framework.GameTest;
11+
import net.minecraft.gametest.framework.GameTestHelper;
12+
import net.minecraftforge.gametest.GameTestHolder;
13+
import net.minecraftforge.gametest.PrefixGameTestTemplate;
14+
15+
@PrefixGameTestTemplate(false)
16+
@GameTestHolder(CompactCrafting.MOD_ID)
17+
public class RecipeLayerCodecTests {
18+
19+
@GameTest(template = GameTestTemplates.EMPTY)
20+
public static void HandlesBadTypeIdentifier(final GameTestHelper test) {
21+
JsonObject el = new JsonObject();
22+
el.addProperty("type", "compactcrafting:unknown_123");
23+
24+
final var result = MiniaturizationRecipe.LAYER_CODEC.parse(JsonOps.INSTANCE, el);
25+
26+
if (result.error().isEmpty())
27+
test.fail("Expected a deserialization error.");
28+
29+
test.succeed();
30+
}
31+
}

forge-main/src/test/java/dev/compactmods/crafting/tests/recipes/layers/RecipeLayerTypeCodecTests.java

Lines changed: 0 additions & 52 deletions
This file was deleted.

0 commit comments

Comments
 (0)