diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/fluid/ControlValveBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/fluid/ControlValveBlockEntity.java index 60ea748b88..e1e82a6ed5 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/fluid/ControlValveBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/fluid/ControlValveBlockEntity.java @@ -15,6 +15,7 @@ import net.minecraft.core.HolderLookup; import net.minecraft.core.NonNullList; import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.chat.Component; import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.game.ClientGamePacketListener; @@ -285,4 +286,9 @@ private record FilterData(int slot, FluidStack fluid) { FluidStack.OPTIONAL_CODEC.fieldOf("Fluid").forGetter(FilterData::fluid) ).apply(instance, FilterData::new)); } + + @Override + public void writeClientSideData(AbstractContainerMenu menu, RegistryFriendlyByteBuf buffer) { + buffer.writeBlockPos(this.getBlockPos()); + } } diff --git a/src/main/java/dev/dubhe/anvilcraft/client/gui/screen/ControlValveScreen.java b/src/main/java/dev/dubhe/anvilcraft/client/gui/screen/ControlValveScreen.java index 04143f85de..95c0f63575 100644 --- a/src/main/java/dev/dubhe/anvilcraft/client/gui/screen/ControlValveScreen.java +++ b/src/main/java/dev/dubhe/anvilcraft/client/gui/screen/ControlValveScreen.java @@ -127,6 +127,12 @@ protected void init() { _ -> this.updateSlider(FluidRateSlider.MAX) )); this.addRenderableWidget(this.valueBox); + ControlValveBlockEntity blockEntity = this.menu.getBlockEntity(); + if (blockEntity != null) { + this.setValue(blockEntity.getMaxRate()); + this.setFilter(0, blockEntity.getFilter(0)); + this.setFilterItem(blockEntity.getFilterItem()); + } this.setValue(this.value); }