From 3cf232fbe17c3c129eda16d9b349952cc77eb139 Mon Sep 17 00:00:00 2001 From: Fff Date: Thu, 12 Nov 2026 11:36:14 -0800 Subject: [PATCH] =?UTF-8?q?fix(menu):=20=E4=BF=AE=E5=A4=8D=E6=97=81?= =?UTF-8?q?=E8=A7=82=E8=80=85=E6=89=93=E5=BC=80=E6=8E=A7=E5=88=B6=E9=98=80?= =?UTF-8?q?=E6=97=B6=E6=96=AD=E5=BC=80=E8=BF=9E=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在控制阀菜单初始化数据中发送方块位置 - 打开界面时读取已同步的流速与过滤配置 --- .../block/entity/fluid/ControlValveBlockEntity.java | 6 ++++++ .../anvilcraft/client/gui/screen/ControlValveScreen.java | 6 ++++++ 2 files changed, 12 insertions(+) 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); }