From a323a8fa5f2b86ced5d4285a149e2399d08f94f9 Mon Sep 17 00:00:00 2001 From: alpha_hhh <2465566076@qq.com> Date: Thu, 15 Jan 2026 23:12:44 +0800 Subject: [PATCH 1/4] =?UTF-8?q?Revert=20"1=E3=80=81=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E8=BF=9B=E5=85=A5=E4=B8=96=E7=95=8C=E6=97=B6=E4=B8=8B=E9=99=8D?= =?UTF-8?q?=E6=B2=BF=E8=84=89=E5=86=B2=E5=8F=91=E7=94=9F=E5=99=A8=E6=97=A0?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=9A=84=E6=83=85=E5=86=B5=E4=B8=8B=E7=AC=AC?= =?UTF-8?q?=E4=B8=80=E6=AC=A1=E6=97=A0=E5=93=8D=E5=BA=94=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit b5c750d36f86fe028d9b00f6a6597564ebb8cabb. --- .../anvilcraft/block/entity/PulseGeneratorBlockEntity.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/PulseGeneratorBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/PulseGeneratorBlockEntity.java index fd9feab47..f1406b8a9 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/PulseGeneratorBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/PulseGeneratorBlockEntity.java @@ -101,7 +101,6 @@ public CompoundTag constructDataNbt() { CompoundTag data = new CompoundTag(); data.putByte("StartMode", this.startMode.index()); data.putBoolean("OutputMode", this.outputInvert); - data.putBoolean("Inputting", this.isInputtingSignal); data.putInt("WaitingTime", this.waitingTime); data.putInt("SignalDuration", this.signalDuration); return data; @@ -110,7 +109,6 @@ public CompoundTag constructDataNbt() { public PulseGeneratorBlockEntity readDataNbt(CompoundTag data) { this.startMode = Mode.fromIndex(data.getByte("StartMode")); this.outputInvert = data.getBoolean("OutputMode"); - this.isInputtingSignal = data.getBoolean("Inputting"); this.waitingTime = data.getInt("WaitingTime"); this.signalDuration = data.getInt("SignalDuration"); return this; @@ -133,9 +131,7 @@ public void setState(State state) { public void setStartMode(int mode) { this.startMode = Mode.fromIndex(mode % 3); - if (this.startMode != Mode.LOOP) { - this.isDeadlock = false; - } else if (!this.isInputtingSignal && this.level != null) { + if (this.startMode.equals(Mode.LOOP) && !this.isInputtingSignal && this.level != null) { Util.castSafely(this.getBlockState().getBlock(), PulseGeneratorBlock.class) .ifPresent(block -> block.update(this.level, this.getBlockPos(), this::getBlockState)); } From e035f06ab23584bf68527a25c5aed02634fcc7e7 Mon Sep 17 00:00:00 2001 From: alpha_hhh <2465566076@qq.com> Date: Wed, 4 Feb 2026 20:57:03 +0800 Subject: [PATCH 2/4] 1 --- .../anvilcraft/api/sliding/SlidingBlockSection.java | 3 ++- .../block/entity/PulseGeneratorBlockEntity.java | 10 ++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/main/java/dev/dubhe/anvilcraft/api/sliding/SlidingBlockSection.java b/src/main/java/dev/dubhe/anvilcraft/api/sliding/SlidingBlockSection.java index bd2a88151..eb205671f 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/sliding/SlidingBlockSection.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/sliding/SlidingBlockSection.java @@ -132,7 +132,8 @@ public void setBlock(Level level, BlockPos center, Entity entity) { Block.dropResources(state, level, pos); continue; } - if (level.getFluidState(pos).getType() == Fluids.WATER) { + if (level.getFluidState(pos).getType() == Fluids.WATER + && state.hasProperty(BlockStateProperties.WATERLOGGED)) { state = state.setValue(BlockStateProperties.WATERLOGGED, true); } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/PulseGeneratorBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/PulseGeneratorBlockEntity.java index f1406b8a9..8d572c87f 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/PulseGeneratorBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/PulseGeneratorBlockEntity.java @@ -2,13 +2,14 @@ import dev.dubhe.anvilcraft.api.item.IDiskCloneable; import dev.dubhe.anvilcraft.block.PulseGeneratorBlock; -import dev.dubhe.anvilcraft.init.ModMenuTypes; import dev.dubhe.anvilcraft.init.block.ModBlockEntities; import dev.dubhe.anvilcraft.init.block.ModBlocks; +import dev.dubhe.anvilcraft.init.ModMenuTypes; import dev.dubhe.anvilcraft.inventory.PulseGeneratorMenu; import dev.dubhe.anvilcraft.util.Util; import lombok.Getter; import lombok.Setter; +import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.core.BlockPos; import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; @@ -26,6 +27,7 @@ import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; import java.util.Optional; @Getter @@ -101,6 +103,7 @@ public CompoundTag constructDataNbt() { CompoundTag data = new CompoundTag(); data.putByte("StartMode", this.startMode.index()); data.putBoolean("OutputMode", this.outputInvert); + data.putBoolean("Inputting", this.isInputtingSignal); data.putInt("WaitingTime", this.waitingTime); data.putInt("SignalDuration", this.signalDuration); return data; @@ -109,6 +112,7 @@ public CompoundTag constructDataNbt() { public PulseGeneratorBlockEntity readDataNbt(CompoundTag data) { this.startMode = Mode.fromIndex(data.getByte("StartMode")); this.outputInvert = data.getBoolean("OutputMode"); + this.isInputtingSignal = data.getBoolean("Inputting"); this.waitingTime = data.getInt("WaitingTime"); this.signalDuration = data.getInt("SignalDuration"); return this; @@ -131,7 +135,9 @@ public void setState(State state) { public void setStartMode(int mode) { this.startMode = Mode.fromIndex(mode % 3); - if (this.startMode.equals(Mode.LOOP) && !this.isInputtingSignal && this.level != null) { + if (this.startMode != Mode.LOOP) { + this.isDeadlock = false; + } else if (!this.isInputtingSignal && this.level != null) { Util.castSafely(this.getBlockState().getBlock(), PulseGeneratorBlock.class) .ifPresent(block -> block.update(this.level, this.getBlockPos(), this::getBlockState)); } From 27eb0b0e75c36ffda88340797dafec8e352babf4 Mon Sep 17 00:00:00 2001 From: alpha_hhh <2465566076@qq.com> Date: Sun, 15 Feb 2026 00:10:56 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E6=BF=80=E6=B4=BB=E6=BB=91=E8=BD=A8?= =?UTF-8?q?=E4=B8=8A=E6=96=B9=E5=8F=AF=E5=85=85=E8=83=BD=E6=96=B9=E5=9D=97?= =?UTF-8?q?=E7=9A=84=E4=BA=94=E4=B8=AA=E6=96=B9=E5=90=91=E8=83=BD=E8=A2=AB?= =?UTF-8?q?=E6=AD=A3=E7=A1=AE=E6=9B=B4=E6=96=B0=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../block/sliding/ActivatorSlidingRailBlock.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/dev/dubhe/anvilcraft/block/sliding/ActivatorSlidingRailBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/sliding/ActivatorSlidingRailBlock.java index b62b2745c..904b0fbfc 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/sliding/ActivatorSlidingRailBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/sliding/ActivatorSlidingRailBlock.java @@ -40,6 +40,8 @@ public class ActivatorSlidingRailBlock extends BaseSlidingRailBlock implements IHammerChangeable, IMoveableEntityBlock { public static final List SIGNAL_SOURCE_SIDES = List.of( Direction.DOWN, Direction.NORTH, Direction.SOUTH, Direction.EAST, Direction.WEST); + public static final List UPDATE_SIDES = List.of( + Direction.UP, Direction.NORTH, Direction.SOUTH, Direction.EAST, Direction.WEST); public static final VoxelShape AABB_X = Stream.of( Block.box(0, 0, 0, 16, 6, 16), Block.box(0, 6, 11, 16, 16, 16), @@ -144,6 +146,7 @@ protected void updatePower(Level level, BlockPos pos, BlockState state, BlockPos boolean shouldPower = this.isPowered(level, pos); if (powered != shouldPower) { level.setBlockAndUpdate(pos, state.setValue(POWERED, shouldPower)); + this.updateAbove(level, pos); } if (powered) { Direction.Axis axis = state.getValue(FACING).getAxis(); @@ -292,10 +295,11 @@ private void updateAbove(Level level, BlockPos pos) { aboveState.onNeighborChange(level, abovePos, pos); level.neighborChanged(aboveState, abovePos, this, pos, false); if (!aboveState.isRedstoneConductor(level, abovePos)) return; - abovePos = abovePos.above(); - aboveState = level.getBlockState(abovePos); - if (!aboveState.getWeakChanges(level, abovePos)) return; - level.neighborChanged(aboveState, abovePos, this, pos, false); + for (Direction dir : UPDATE_SIDES) { + BlockPos neighborPos = abovePos.relative(dir); + BlockState neighborState = level.getBlockState(neighborPos); + level.neighborChanged(neighborState, neighborPos, aboveState.getBlock(), abovePos, false); + } } @Override From 1aaa2dc69bf43c7e0aadbc770bb482e9db4aa571 Mon Sep 17 00:00:00 2001 From: alpha_hhh <2465566076@qq.com> Date: Sun, 15 Feb 2026 00:32:32 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E5=8E=9F=E6=A0=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../anvilcraft/block/entity/PulseGeneratorBlockEntity.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/java/dev/dubhe/anvilcraft/block/entity/PulseGeneratorBlockEntity.java b/src/main/java/dev/dubhe/anvilcraft/block/entity/PulseGeneratorBlockEntity.java index 8d572c87f..fd9feab47 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/entity/PulseGeneratorBlockEntity.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/entity/PulseGeneratorBlockEntity.java @@ -2,14 +2,13 @@ import dev.dubhe.anvilcraft.api.item.IDiskCloneable; import dev.dubhe.anvilcraft.block.PulseGeneratorBlock; +import dev.dubhe.anvilcraft.init.ModMenuTypes; import dev.dubhe.anvilcraft.init.block.ModBlockEntities; import dev.dubhe.anvilcraft.init.block.ModBlocks; -import dev.dubhe.anvilcraft.init.ModMenuTypes; import dev.dubhe.anvilcraft.inventory.PulseGeneratorMenu; import dev.dubhe.anvilcraft.util.Util; import lombok.Getter; import lombok.Setter; -import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.core.BlockPos; import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; @@ -27,7 +26,6 @@ import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; -import javax.annotation.ParametersAreNonnullByDefault; import java.util.Optional; @Getter