Skip to content

Commit cd6c135

Browse files
committed
wip porting recipes
1 parent ddf0c91 commit cd6c135

File tree

4 files changed

+61
-99
lines changed

4 files changed

+61
-99
lines changed

src/main/java/com/mrh0/createaddition/blocks/modular_accumulator/ModularAccumulatorBlockEntity.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import com.mrh0.createaddition.energy.IMultiTileEnergyContainer;
99
import com.mrh0.createaddition.energy.InternalEnergyStorage;
1010
import com.mrh0.createaddition.index.CABlockEntities;
11+
import com.mrh0.createaddition.network.EnergyNetworkPacketPayload;
1112
import com.mrh0.createaddition.network.IObserveTileEntity;
1213
import com.mrh0.createaddition.network.ObservePacketPayload;
1314
import com.mrh0.createaddition.sound.CASoundScapes;
@@ -122,7 +123,7 @@ protected void updateConnectivity() {
122123
public void tick() {
123124
super.tick();
124125
if(!invalidSides.isEmpty()) {
125-
invalidSides.forEach(this::updateCache);
126+
updateCache();
126127
invalidSides.clear();
127128
}
128129

@@ -489,7 +490,7 @@ public boolean addToGoggleTooltip(List<Component> tooltip, boolean isPlayerSneak
489490
tooltip.add(Component.literal(spacing)
490491
.append(Component.translatable(CreateAddition.MODID + ".tooltip.energy.stored").withStyle(ChatFormatting.GRAY)));
491492
tooltip.add(Component.literal(spacing).append(Component.literal(" "))
492-
.append(Util.format((int)EnergyNetworkPacket.clientBuff)).append("fe").withStyle(ChatFormatting.AQUA));
493+
.append(Util.format((int)EnergyNetworkPacketPayload.clientBuff)).append("fe").withStyle(ChatFormatting.AQUA));
493494

494495
tooltip.add(Component.literal(spacing)
495496
.append(Component.translatable(CreateAddition.MODID + ".tooltip.energy.capacity").withStyle(ChatFormatting.GRAY)));
@@ -505,7 +506,7 @@ public void onObserved(ServerPlayer player, ObservePacketPayload pack) {
505506
ModularAccumulatorBlockEntity controllerTE = getControllerBE();
506507
if (controllerTE == null) return;
507508

508-
EnergyNetworkPacket.send(worldPosition, 0, controllerTE.energyStorage.getEnergyStored(), player);
509+
EnergyNetworkPacketPayload.send(worldPosition, 0, controllerTE.energyStorage.getEnergyStored(), player);
509510
}
510511

511512
public boolean hasAccumulator() {

src/main/java/com/mrh0/createaddition/recipe/CARecipeSerializer.java

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

src/main/java/com/mrh0/createaddition/recipe/charging/ChargingRecipe.java

Lines changed: 57 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,48 @@
11
package com.mrh0.createaddition.recipe.charging;
22

3+
import com.mojang.serialization.Codec;
4+
import com.mojang.serialization.MapCodec;
5+
import com.mojang.serialization.codecs.RecordCodecBuilder;
36
import com.mrh0.createaddition.CreateAddition;
47
import com.mrh0.createaddition.index.CARecipes;
58
import net.minecraft.core.HolderLookup;
69
import net.minecraft.core.Registry;
710
import net.minecraft.core.RegistryAccess;
11+
import net.minecraft.network.RegistryFriendlyByteBuf;
12+
import net.minecraft.network.codec.StreamCodec;
813
import net.minecraft.resources.ResourceLocation;
914
import net.minecraft.world.item.ItemStack;
10-
import net.minecraft.world.item.crafting.Ingredient;
11-
import net.minecraft.world.item.crafting.Recipe;
12-
import net.minecraft.world.item.crafting.RecipeSerializer;
13-
import net.minecraft.world.item.crafting.RecipeType;
15+
import net.minecraft.world.item.crafting.*;
1416
import net.minecraft.world.level.Level;
1517
import net.neoforged.neoforge.items.wrapper.RecipeWrapper;
1618
import org.jetbrains.annotations.NotNull;
1719

18-
public class ChargingRecipe implements Recipe<RecipeWrapper> {
20+
public class ChargingRecipe implements Recipe<CraftingInput> {
1921

20-
public final ResourceLocation id;
2122
public Ingredient ingredient;
2223
public ItemStack output;
2324
public int energy;
2425
public int maxChargeRate;
2526

26-
public ChargingRecipe(ResourceLocation id, Ingredient ingredient, ItemStack output, int energy, int maxChargeRate) {
27-
this.id = id;
27+
public ChargingRecipe(String group, Ingredient ingredient, ItemStack output, int energy, int maxChargeRate) {
2828
this.ingredient = ingredient;
2929
this.output = output;
3030
this.energy = energy;
3131
this.maxChargeRate = maxChargeRate;
3232
}
3333

34+
public CraftingBookCategory category() {
35+
return CraftingBookCategory.MISC;
36+
}
3437

3538
@Override
36-
public boolean matches(@NotNull RecipeWrapper wrapper, @NotNull Level world) {
39+
public boolean matches(@NotNull CraftingInput wrapper, @NotNull Level world) {
3740
if(ingredient == null) return false;
3841
return ingredient.test(wrapper.getItem(0));
3942
}
4043

4144
@Override
42-
public @NotNull ItemStack assemble(@NotNull RecipeWrapper recipeWrapper, HolderLookup.@NotNull Provider provider) {
45+
public @NotNull ItemStack assemble(@NotNull CraftingInput recipeWrapper, HolderLookup.@NotNull Provider provider) {
4346
return output;
4447
}
4548

@@ -76,4 +79,48 @@ public int getMaxChargeRate() {
7679
return maxChargeRate;
7780
}
7881

82+
public static class Serializer implements RecipeSerializer<ChargingRecipe> {
83+
private static final MapCodec<ChargingRecipe> CODEC = RecordCodecBuilder.mapCodec(
84+
builder -> builder.group(
85+
Codec.STRING.optionalFieldOf("group", "").forGetter(ChargingRecipe::getGroup),
86+
//CraftingBookCategory.CODEC.fieldOf("category").orElse(CraftingBookCategory.MISC).forGetter(ChargingRecipe::category),
87+
Ingredient.CODEC.fieldOf("ingredient").forGetter(r -> r.ingredient),
88+
ItemStack.STRICT_CODEC.fieldOf("result").forGetter(r -> r.output),
89+
Codec.INT.optionalFieldOf("energy", 0).forGetter(r -> r.energy),
90+
Codec.INT.optionalFieldOf("max_charge_rate", 0).forGetter(r -> r.maxChargeRate)
91+
).apply(builder, ChargingRecipe::new)
92+
);
93+
94+
public static final StreamCodec<RegistryFriendlyByteBuf, ChargingRecipe> STREAM_CODEC = StreamCodec.of(
95+
Serializer::toNetwork, Serializer::fromNetwork
96+
);
97+
98+
@Override
99+
public MapCodec<ChargingRecipe> codec() {
100+
return CODEC;
101+
}
102+
103+
@Override
104+
public StreamCodec<RegistryFriendlyByteBuf, ChargingRecipe> streamCodec() {
105+
return STREAM_CODEC;
106+
}
107+
108+
private static ChargingRecipe fromNetwork(RegistryFriendlyByteBuf buffer) {
109+
String group = buffer.readUtf();
110+
int maxChargeRate = buffer.readInt();
111+
int energy = buffer.readInt();
112+
ItemStack output = ItemStack.STREAM_CODEC.decode(buffer);
113+
Ingredient input = Ingredient.CONTENTS_STREAM_CODEC.decode(buffer);
114+
return new ChargingRecipe(group, input, output, energy, maxChargeRate);
115+
}
116+
117+
private static void toNetwork(RegistryFriendlyByteBuf buffer, ChargingRecipe recipe) {
118+
buffer.writeUtf(recipe.getGroup());
119+
buffer.writeInt(recipe.maxChargeRate);
120+
buffer.writeInt(recipe.energy);
121+
ItemStack.STREAM_CODEC.encode(buffer, recipe.output);
122+
Ingredient.CONTENTS_STREAM_CODEC.encode(buffer, recipe.ingredient);
123+
}
124+
}
125+
79126
}

src/main/java/com/mrh0/createaddition/recipe/charging/ChargingRecipeSerializer.java

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

0 commit comments

Comments
 (0)