Skip to content

Commit 1882870

Browse files
committed
Semi working port
1 parent 61fc79a commit 1882870

29 files changed

+129
-202
lines changed

src/main/java/dev/galacticraft/machinelib/api/gametest/SimpleGameTest.java

-2
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,6 @@ protected TestFunction createTest(@Nullable String batch, @Nullable String group
102102
ticks,
103103
setupTicks,
104104
true,
105-
1,
106-
1,
107105
test
108106
);
109107
}

src/main/java/dev/galacticraft/machinelib/api/machine/MachineState.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import dev.galacticraft.machinelib.api.machine.configuration.RedstoneMode;
2626
import dev.galacticraft.machinelib.api.menu.sync.MenuSynchronizable;
2727
import dev.galacticraft.machinelib.api.misc.Deserializable;
28-
import dev.galacticraft.machinelib.api.misc.Serializable;
2928
import dev.galacticraft.machinelib.impl.machine.MachineStateImpl;
3029
import net.minecraft.nbt.CompoundTag;
3130
import net.minecraft.network.chat.Component;
@@ -36,7 +35,7 @@
3635
/**
3736
* Stores the state of a machine.
3837
*/
39-
public interface MachineState extends MenuSynchronizable, Deserializable<CompoundTag>/*, Serializable<MachineState>*/ {
38+
public interface MachineState extends MenuSynchronizable, Deserializable<CompoundTag> {
4039
/**
4140
* Creates a new state instance of the specified type.
4241
*

src/main/java/dev/galacticraft/machinelib/api/machine/MachineStatus.java

-5
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
import net.minecraft.network.chat.Component;
2929
import net.minecraft.network.chat.ComponentSerialization;
3030
import net.minecraft.network.chat.Style;
31-
import net.minecraft.network.codec.StreamCodec;
3231
import org.jetbrains.annotations.Contract;
3332
import org.jetbrains.annotations.NotNull;
3433
import org.jetbrains.annotations.Nullable;
@@ -37,10 +36,6 @@
3736
* Represents the status of a machine.
3837
*/
3938
public interface MachineStatus {
40-
StreamCodec<RegistryFriendlyByteBuf, MachineStatus> STREAM_CODEC = StreamCodec.composite(
41-
42-
);
43-
4439
/**
4540
* Creates a new machine status.
4641
*

src/main/java/dev/galacticraft/machinelib/api/machine/configuration/MachineConfiguration.java

+1-3
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,6 @@
2424

2525
import dev.galacticraft.machinelib.api.menu.sync.MenuSynchronizable;
2626
import dev.galacticraft.machinelib.api.misc.Deserializable;
27-
import dev.galacticraft.machinelib.api.misc.PacketSerializable;
28-
import dev.galacticraft.machinelib.api.misc.Serializable;
2927
import dev.galacticraft.machinelib.impl.machine.MachineConfigurationImpl;
3028
import net.minecraft.nbt.CompoundTag;
3129
import org.jetbrains.annotations.Contract;
@@ -35,7 +33,7 @@
3533
* A class that holds the configuration of a machine.
3634
* Can be used to save and load the configuration of a machine.
3735
*/
38-
public interface MachineConfiguration extends Deserializable<CompoundTag>/*, Serializable<MachineConfiguration>*/, MenuSynchronizable {
36+
public interface MachineConfiguration extends Deserializable<CompoundTag>, MenuSynchronizable {
3937
/**
4038
* Creates a new configuration.
4139
*

src/main/java/dev/galacticraft/machinelib/api/machine/configuration/MachineIOConfig.java

+1-3
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,9 @@
2424

2525
import dev.galacticraft.machinelib.api.menu.sync.MenuSynchronizable;
2626
import dev.galacticraft.machinelib.api.misc.Deserializable;
27-
import dev.galacticraft.machinelib.api.misc.Serializable;
2827
import dev.galacticraft.machinelib.api.util.BlockFace;
2928
import dev.galacticraft.machinelib.client.api.render.MachineRenderData;
3029
import dev.galacticraft.machinelib.impl.machine.MachineIOConfigImpl;
31-
import net.minecraft.nbt.CompoundTag;
3230
import net.minecraft.nbt.ListTag;
3331
import org.jetbrains.annotations.Contract;
3432
import org.jetbrains.annotations.NotNull;
@@ -37,7 +35,7 @@
3735
/**
3836
* Stores the configuration of a machine's I/O for all six faces.
3937
*/
40-
public interface MachineIOConfig extends Deserializable<ListTag>/*, Serializable<MachineIOConfig>*/, MenuSynchronizable, MachineRenderData {
38+
public interface MachineIOConfig extends Deserializable<ListTag>, MenuSynchronizable, MachineRenderData {
4139
/**
4240
* Constructs a new machine i/o configuration.
4341
*

src/main/java/dev/galacticraft/machinelib/api/machine/configuration/MachineIOFace.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
import dev.galacticraft.machinelib.api.compat.transfer.ExposedStorage;
2828
import dev.galacticraft.machinelib.api.menu.sync.MenuSynchronizable;
2929
import dev.galacticraft.machinelib.api.misc.Deserializable;
30-
import dev.galacticraft.machinelib.api.misc.Serializable;
3130
import dev.galacticraft.machinelib.api.storage.MachineEnergyStorage;
3231
import dev.galacticraft.machinelib.api.transfer.ResourceFlow;
3332
import dev.galacticraft.machinelib.api.transfer.ResourceType;
@@ -48,7 +47,7 @@
4847
* Represents a face of a {@link MachineBlockEntity} that has been configured to
4948
* accept certain types of resources.
5049
*/
51-
public interface MachineIOFace extends Deserializable<CompoundTag>/*, Serializable<MachineIOFace>*/, MenuSynchronizable {
50+
public interface MachineIOFace extends Deserializable<CompoundTag>, MenuSynchronizable {
5251
/**
5352
* Creates a new, blank {@link MachineIOFace}.
5453
*

src/main/java/dev/galacticraft/machinelib/api/machine/configuration/SecuritySettings.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424

2525
import dev.galacticraft.machinelib.api.menu.sync.MenuSynchronizable;
2626
import dev.galacticraft.machinelib.api.misc.Deserializable;
27-
import dev.galacticraft.machinelib.api.misc.Serializable;
2827
import dev.galacticraft.machinelib.impl.machine.SecuritySettingsImpl;
2928
import net.minecraft.nbt.CompoundTag;
3029
import net.minecraft.resources.ResourceLocation;
@@ -39,7 +38,7 @@
3938
/**
4039
* Represents a security setting of a machine.
4140
*/
42-
public interface SecuritySettings extends Deserializable<CompoundTag>/*,Serializable<SecuritySettings>*/, MenuSynchronizable {
41+
public interface SecuritySettings extends Deserializable<CompoundTag>, MenuSynchronizable {
4342
/**
4443
* Constructs a new security settings storage with no owner attached.
4544
*

src/main/java/dev/galacticraft/machinelib/api/menu/MachineMenu.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,13 @@
4242
import dev.galacticraft.machinelib.api.util.BlockFace;
4343
import dev.galacticraft.machinelib.api.util.ItemStackUtil;
4444
import dev.galacticraft.machinelib.client.api.screen.Tank;
45-
import dev.galacticraft.machinelib.impl.Constant;
4645
import dev.galacticraft.machinelib.impl.MachineLib;
4746
import dev.galacticraft.machinelib.impl.compat.vanilla.RecipeOutputStorageSlot;
4847
import dev.galacticraft.machinelib.impl.compat.vanilla.StorageSlot;
48+
import dev.galacticraft.machinelib.impl.network.s2c.MenuSyncPacket;
4949
import io.netty.buffer.ByteBufAllocator;
5050
import io.netty.buffer.Unpooled;
51-
import lol.bai.badpackets.api.PacketSender;
51+
import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking;
5252
import net.fabricmc.fabric.api.screenhandler.v1.ExtendedScreenHandlerType;
5353
import net.minecraft.core.BlockPos;
5454
import net.minecraft.network.RegistryFriendlyByteBuf;
@@ -610,7 +610,7 @@ private void synchronizeState() {
610610
handler.sync(buf);
611611
}
612612
}
613-
PacketSender.s2c(this.player).send(Constant.id("storage_sync"), buf);
613+
ServerPlayNetworking.getSender(this.player).sendPacket(new MenuSyncPacket(buf));
614614
}
615615
}
616616
}

src/main/java/dev/galacticraft/machinelib/api/menu/RecipeMachineMenu.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ protected RecipeMachineMenu(int syncId, @NotNull Inventory inventory, @NotNull R
133133
*/
134134
@Contract(value = "_, _, _ -> new", pure = true)
135135
public static <C extends Container, R extends Recipe<C>, Machine extends RecipeMachineBlockEntity<C, R>> @NotNull MenuType<RecipeMachineMenu<C, R, Machine>> createType(@NotNull Supplier<MachineType<Machine, ? extends RecipeMachineMenu<C, R, Machine>>> selfReference, int invX, int invY) {
136-
return new ExtendedScreenHandlerType<>((syncId, inventory, buf) -> new RecipeMachineMenu<>(syncId, inventory, buf, invX, invY, selfReference.get()));
136+
return new ExtendedScreenHandlerType<>((syncId, inventory, buf) -> new RecipeMachineMenu<>(syncId, inventory, buf, invX, invY, selfReference.get()), MachineMenu.BUF_IDENTITY_CODEC);
137137
}
138138

139139
@Override

src/main/java/dev/galacticraft/machinelib/api/misc/PacketSerializable.java

+1-4
Original file line numberDiff line numberDiff line change
@@ -23,22 +23,19 @@
2323
package dev.galacticraft.machinelib.api.misc;
2424

2525
import net.minecraft.network.RegistryFriendlyByteBuf;
26-
import net.minecraft.network.codec.StreamCodec;
2726
import org.jetbrains.annotations.NotNull;
2827

2928
/**
3029
* Represents objects that can be serialized to a packet.
3130
*
3231
* @see PacketDeserializable
3332
*/
34-
public interface PacketSerializable/*<T>*/ {
33+
public interface PacketSerializable {
3534
/**
3635
* Serializes this object into a buffer.
3736
*
3837
* @param buf the buffer to write into
3938
* @see PacketDeserializable#readPacket(RegistryFriendlyByteBuf)
4039
*/
4140
void writePacket(@NotNull RegistryFriendlyByteBuf buf);
42-
43-
// StreamCodec<RegistryFriendlyByteBuf, T> networkCodec();
4441
}

src/main/java/dev/galacticraft/machinelib/api/misc/Serializable.java

+1-4
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,11 @@
3232
* @param <T> The type of tag that represents the serialized object.
3333
* @see Deserializable
3434
*/
35-
public interface Serializable<T extends Tag> extends PacketSerializable/*<T>*/ {
35+
public interface Serializable<T extends Tag> extends PacketSerializable {
3636
/**
3737
* Serializes this object as a tag.
3838
*
3939
* @return the created tag
4040
*/
4141
@NotNull T createTag();
42-
43-
44-
// @NotNull Codec<T> codec();
4542
}

src/main/java/dev/galacticraft/machinelib/api/network/MachineUpdatePacket.java

+57-57
Original file line numberDiff line numberDiff line change
@@ -11,61 +11,61 @@
1111
import net.minecraft.network.codec.StreamEncoder;
1212

1313
public class MachineUpdatePacket {
14-
public static final StreamCodec<RegistryFriendlyByteBuf, MachineUpdatePacket> CODEC = StreamCodec.of((buf, packet) -> {
15-
buf.writeBlockPos(packet.pos);
16-
packet.configuration.networkCodec().encode(buf, packet.configuration);
17-
MachineState.CODEC.encode(buf, packet.state);
18-
MachineEnergyStorage.CODEC.encode(buf, packet.energy);
19-
MachineItemStorage.CODEC.encode(buf, packet.items);
20-
MachineFluidStorage.CODEC.encode(buf, packet.fluids);
21-
}, MachineUpdatePacket::new);
22-
23-
protected final BlockPos pos;
24-
protected final MachineConfiguration configuration;
25-
protected final MachineState state;
26-
protected final MachineEnergyStorage energy;
27-
protected final MachineItemStorage items;
28-
protected final MachineFluidStorage fluids;
29-
30-
public MachineUpdatePacket(BlockPos pos, MachineConfiguration configuration, MachineState state, MachineEnergyStorage energy, MachineItemStorage items, MachineFluidStorage fluids) {
31-
this.pos = pos;
32-
this.configuration = configuration;
33-
this.state = state;
34-
this.energy = energy;
35-
this.items = items;
36-
this.fluids = fluids;
37-
}
38-
39-
public MachineUpdatePacket(RegistryFriendlyByteBuf buf) {
40-
this.pos = buf.readBlockPos();
41-
this.configuration = MachineConfiguration.CODEC.decode(buf);
42-
this.state = MachineState.CODEC.decode(buf);
43-
this.energy = MachineEnergyStorage.CODEC.decode(buf);
44-
this.items = MachineItemStorage.CODEC.decode(buf);
45-
this.fluids = MachineFluidStorage.CODEC.decode(buf);
46-
}
47-
48-
public BlockPos getPos() {
49-
return pos;
50-
}
51-
52-
public MachineConfiguration getConfiguration() {
53-
return configuration;
54-
}
55-
56-
public MachineState getState() {
57-
return state;
58-
}
59-
60-
public MachineEnergyStorage getEnergy() {
61-
return energy;
62-
}
63-
64-
public MachineItemStorage getItems() {
65-
return items;
66-
}
67-
68-
public MachineFluidStorage getFluids() {
69-
return fluids;
70-
}
14+
// public static final StreamCodec<RegistryFriendlyByteBuf, MachineUpdatePacket> CODEC = StreamCodec.ofMember((buf, packet) -> {
15+
// buf.writeBlockPos(packet.pos);
16+
// packet.configuration.networkCodec().encode(buf, packet.configuration);
17+
// MachineState.CODEC.encode(buf, packet.state);
18+
// MachineEnergyStorage.CODEC.encode(buf, packet.energy);
19+
// MachineItemStorage.CODEC.encode(buf, packet.items);
20+
// MachineFluidStorage.CODEC.encode(buf, packet.fluids);
21+
// }, MachineUpdatePacket::new);
22+
//
23+
// protected final BlockPos pos;
24+
// protected final MachineConfiguration configuration;
25+
// protected final MachineState state;
26+
// protected final MachineEnergyStorage energy;
27+
// protected final MachineItemStorage items;
28+
// protected final MachineFluidStorage fluids;
29+
//
30+
// public MachineUpdatePacket(BlockPos pos, MachineConfiguration configuration, MachineState state, MachineEnergyStorage energy, MachineItemStorage items, MachineFluidStorage fluids) {
31+
// this.pos = pos;
32+
// this.configuration = configuration;
33+
// this.state = state;
34+
// this.energy = energy;
35+
// this.items = items;
36+
// this.fluids = fluids;
37+
// }
38+
//
39+
// public MachineUpdatePacket(RegistryFriendlyByteBuf buf) {
40+
// this.pos = buf.readBlockPos();
41+
// this.configuration = MachineConfiguration.CODEC.decode(buf);
42+
// this.state = MachineState.CODEC.decode(buf);
43+
// this.energy = MachineEnergyStorage.CODEC.decode(buf);
44+
// this.items = MachineItemStorage.CODEC.decode(buf);
45+
// this.fluids = MachineFluidStorage.CODEC.decode(buf);
46+
// }
47+
//
48+
// public BlockPos getPos() {
49+
// return pos;
50+
// }
51+
//
52+
// public MachineConfiguration getConfiguration() {
53+
// return configuration;
54+
// }
55+
//
56+
// public MachineState getState() {
57+
// return state;
58+
// }
59+
//
60+
// public MachineEnergyStorage getEnergy() {
61+
// return energy;
62+
// }
63+
//
64+
// public MachineItemStorage getItems() {
65+
// return items;
66+
// }
67+
//
68+
// public MachineFluidStorage getFluids() {
69+
// return fluids;
70+
// }
7171
}

src/main/java/dev/galacticraft/machinelib/api/storage/StorageAccess.java

-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424

2525
import net.fabricmc.fabric.api.transfer.v1.transaction.TransactionContext;
2626
import net.minecraft.core.component.DataComponentPatch;
27-
import net.minecraft.nbt.CompoundTag;
2827
import org.jetbrains.annotations.NotNull;
2928
import org.jetbrains.annotations.Nullable;
3029

src/main/java/dev/galacticraft/machinelib/api/util/ItemStackUtil.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,8 @@ public class ItemStackUtil {
4141
public static @NotNull ItemStack copy(ResourceSlot<Item> slot) {
4242
if (slot.isEmpty()) return ItemStack.EMPTY;
4343
assert slot.getResource() != null && slot.getAmount() < Integer.MAX_VALUE;
44-
ItemStack stack = new ItemStack(slot.getResource(), (int) slot.getAmount());
45-
stack.setTag(slot.copyTag());
46-
return stack;
44+
DataComponentPatch comoponents = slot.getComponents();
45+
return new ItemStack(slot.getResource().builtInRegistryHolder(), (int) slot.getAmount(), comoponents == null ? DataComponentPatch.EMPTY : comoponents);
4746
}
4847

4948
public static ItemStack of(@Nullable Item resource, DataComponentPatch components, int amount) {

src/main/java/dev/galacticraft/machinelib/client/impl/model/MachineBakedModel.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ public void emitItemQuads(ItemStack stack, Supplier<RandomSource> randomSupplier
230230
if (beTag.contains(Constant.Nbt.CONFIGURATION, Tag.TAG_COMPOUND)) {
231231
CompoundTag confTag = beTag.getCompound(Constant.Nbt.CONFIGURATION);
232232
if (confTag.contains(Constant.Nbt.CONFIGURATION, Tag.TAG_COMPOUND)) {
233-
config.readTag(confTag.getCompound(Constant.Nbt.CONFIGURATION));
233+
config.readTag(confTag.getList(Constant.Nbt.CONFIGURATION, Tag.TAG_COMPOUND));
234234
}
235235
}
236236
}

src/main/java/dev/galacticraft/machinelib/impl/MachineLib.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424

2525
import dev.galacticraft.machinelib.api.config.Config;
2626
import dev.galacticraft.machinelib.api.machine.MachineComponents;
27+
import dev.galacticraft.machinelib.impl.network.MachineLibPackets;
2728
import net.fabricmc.api.ModInitializer;
2829
import net.fabricmc.fabric.api.transfer.v1.fluid.FluidVariantAttributes;
2930
import net.fabricmc.loader.api.FabricLoader;
@@ -38,7 +39,8 @@ public final class MachineLib implements ModInitializer {
3839

3940
@Override
4041
public void onInitialize() {
41-
MachineLibC2SPackets.register();
42+
MachineLibPackets.registerChannels();
43+
MachineLibPackets.registerServer();
4244
MachineComponents.register();
4345

4446
if (CONFIG.enableColoredVanillaFluidNames()) {

src/main/java/dev/galacticraft/machinelib/impl/block/face/DirectionlessMachineIOFaceImpl.java

-14
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222

2323
package dev.galacticraft.machinelib.impl.block.face;
2424

25-
import com.mojang.serialization.Codec;
2625
import dev.galacticraft.machinelib.api.compat.transfer.ExposedStorage;
2726
import dev.galacticraft.machinelib.api.machine.configuration.MachineIOFace;
2827
import dev.galacticraft.machinelib.api.menu.sync.MenuSyncHandler;
@@ -34,7 +33,6 @@
3433
import net.fabricmc.fabric.api.transfer.v1.item.ItemVariant;
3534
import net.minecraft.nbt.CompoundTag;
3635
import net.minecraft.network.RegistryFriendlyByteBuf;
37-
import net.minecraft.network.codec.StreamCodec;
3836
import net.minecraft.world.item.Item;
3937
import net.minecraft.world.level.material.Fluid;
4038
import org.jetbrains.annotations.ApiStatus;
@@ -45,8 +43,6 @@
4543

4644
@ApiStatus.Internal
4745
public final class DirectionlessMachineIOFaceImpl implements MachineIOFace {
48-
public static final Codec<MachineIOFace> CODEC = Codec.unit(DirectionlessMachineIOFaceImpl::new);
49-
public static final StreamCodec<RegistryFriendlyByteBuf, MachineIOFace> STREAM_CODEC = StreamCodec.of((buf, face) -> {}, buf -> new DirectionlessMachineIOFaceImpl());
5046
private @Nullable ExposedStorage<Item, ItemVariant> cachedItemStorage = null;
5147
private @Nullable ExposedStorage<Fluid, FluidVariant> cachedFluidStorage = null;
5248
private @Nullable EnergyStorage cachedEnergyStorage = null;
@@ -109,16 +105,6 @@ public void writePacket(@NotNull RegistryFriendlyByteBuf buf) {
109105
public void readPacket(@NotNull RegistryFriendlyByteBuf buf) {
110106
}
111107

112-
// @Override
113-
// public @NotNull Codec<MachineIOFace> codec() {
114-
// return CODEC;
115-
// }
116-
//
117-
// @Override
118-
// public StreamCodec<RegistryFriendlyByteBuf, MachineIOFace> networkCodec() {
119-
// return STREAM_CODEC;
120-
// }
121-
122108
@Contract(" -> new")
123109
@Override
124110
public @NotNull MenuSyncHandler createSyncHandler() {

0 commit comments

Comments
 (0)