From 150444819c9df01ee1eafcf757d14af8c30d69f7 Mon Sep 17 00:00:00 2001 From: jhqwqmc Date: Sat, 20 Sep 2025 02:46:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...hedHorizontalDirectionalBlockBehavior.java | 20 +++++++++---------- .../src/main/resources/translations/en.yml | 3 +++ .../src/main/resources/translations/zh_cn.yml | 3 +++ .../core/block/properties/Properties.java | 4 ++-- .../{AttachFace.java => AnchorType.java} | 2 +- 5 files changed, 19 insertions(+), 13 deletions(-) rename core/src/main/java/net/momirealms/craftengine/core/block/state/properties/{AttachFace.java => AnchorType.java} (80%) diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/FaceAttachedHorizontalDirectionalBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/FaceAttachedHorizontalDirectionalBlockBehavior.java index cc877ef06..597470895 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/FaceAttachedHorizontalDirectionalBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/FaceAttachedHorizontalDirectionalBlockBehavior.java @@ -11,7 +11,7 @@ import net.momirealms.craftengine.core.block.CustomBlock; import net.momirealms.craftengine.core.block.ImmutableBlockState; import net.momirealms.craftengine.core.block.behavior.BlockBehaviorFactory; import net.momirealms.craftengine.core.block.properties.Property; -import net.momirealms.craftengine.core.block.state.properties.AttachFace; +import net.momirealms.craftengine.core.block.state.properties.AnchorType; import net.momirealms.craftengine.core.item.context.BlockPlaceContext; import net.momirealms.craftengine.core.util.Direction; import net.momirealms.craftengine.core.util.HorizontalDirection; @@ -27,7 +27,7 @@ import java.util.concurrent.Callable; public class FaceAttachedHorizontalDirectionalBlockBehavior extends BukkitBlockBehavior { public static final Factory FACTORY = new Factory(); - private final Property attachFaceProperty; + private final Property anchorTypeProperty; private final Property facingProperty; private final List tagsCanSurviveOn; private final Set blockStatesCanSurviveOn; @@ -39,14 +39,14 @@ public class FaceAttachedHorizontalDirectionalBlockBehavior extends BukkitBlockB List tagsCanSurviveOn, Set blockStatesCanSurviveOn, Set customBlocksCansSurviveOn, - Property attachFace, + Property anchorType, Property facing) { super(customBlock); this.tagsCanSurviveOn = tagsCanSurviveOn; this.blockStatesCanSurviveOn = blockStatesCanSurviveOn; this.customBlocksCansSurviveOn = customBlocksCansSurviveOn; this.blacklistMode = blacklist; - this.attachFaceProperty = attachFace; + this.anchorTypeProperty = anchorType; this.facingProperty = facing; } @@ -64,16 +64,16 @@ public class FaceAttachedHorizontalDirectionalBlockBehavior extends BukkitBlockB @SuppressWarnings("unchecked") @Override public ImmutableBlockState updateStateForPlacement(BlockPlaceContext context, ImmutableBlockState state) { - Property face = (Property) state.owner().value().getProperty("face"); + Property face = (Property) state.owner().value().getProperty("face"); Property facing = (Property) state.owner().value().getProperty("facing"); if (face == null || facing == null) return null; for (Direction direction : context.getNearestLookingDirections()) { if (direction.axis() == Direction.Axis.Y) { state = state - .with(face, direction == Direction.UP ? AttachFace.CEILING : AttachFace.FLOOR) + .with(face, direction == Direction.UP ? AnchorType.CEILING : AnchorType.FLOOR) .with(facing, context.getHorizontalDirection().toHorizontalDirection()); } else { - state = state.with(face, AttachFace.WALL).with(facing, direction.opposite().toHorizontalDirection()); + state = state.with(face, AnchorType.WALL).with(facing, direction.opposite().toHorizontalDirection()); } if (FastNMS.INSTANCE.method$BlockStateBase$canSurvive(state.customBlockState().literalObject(), context.getLevel().serverWorld(), LocationUtils.toBlockPos(context.getClickedPos()))) { return state; @@ -128,7 +128,7 @@ public class FaceAttachedHorizontalDirectionalBlockBehavior extends BukkitBlockB if (state == null) return null; FaceAttachedHorizontalDirectionalBlockBehavior behavior = state.behavior().getAs(FaceAttachedHorizontalDirectionalBlockBehavior.class).orElse(null); if (behavior == null) return null; - return switch (state.get(behavior.attachFaceProperty)) { + return switch (state.get(behavior.anchorTypeProperty)) { case CEILING -> Direction.DOWN; case FLOOR -> Direction.UP; default -> state.get(behavior.facingProperty).toDirection(); @@ -140,11 +140,11 @@ public class FaceAttachedHorizontalDirectionalBlockBehavior extends BukkitBlockB @SuppressWarnings("unchecked") @Override public BlockBehavior create(CustomBlock block, Map arguments) { - Property attachFace = (Property) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("face"), "warning.config.block.behavior.face_attached_horizontal_directional.missing_face"); + Property anchorType = (Property) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("face"), "warning.config.block.behavior.face_attached_horizontal_directional.missing_face"); Property facing = (Property) ResourceConfigUtils.requireNonNullOrThrow(block.getProperty("facing"), "warning.config.block.behavior.face_attached_horizontal_directional.missing_facing"); Tuple, Set, Set> tuple = DirectionalAttachedBlockBehavior.readTagsAndState(arguments); boolean blacklistMode = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("blacklist", true), "blacklist"); - return new FaceAttachedHorizontalDirectionalBlockBehavior(block, blacklistMode, tuple.left(), tuple.mid(), tuple.right(), attachFace, facing); + return new FaceAttachedHorizontalDirectionalBlockBehavior(block, blacklistMode, tuple.left(), tuple.mid(), tuple.right(), anchorType, facing); } } } diff --git a/common-files/src/main/resources/translations/en.yml b/common-files/src/main/resources/translations/en.yml index 71250f8c3..e2ea5b94a 100644 --- a/common-files/src/main/resources/translations/en.yml +++ b/common-files/src/main/resources/translations/en.yml @@ -325,6 +325,9 @@ warning.config.block.behavior.fence.missing_north: "Issue found in file warning.config.block.behavior.fence.missing_east: "Issue found in file - The block '' is missing the required 'east' property for 'fence_block' behavior." warning.config.block.behavior.fence.missing_south: "Issue found in file - The block '' is missing the required 'south' property for 'fence_block' behavior." warning.config.block.behavior.fence.missing_west: "Issue found in file - The block '' is missing the required 'west' property for 'fence_block' behavior." +warning.config.block.behavior.face_attached_horizontal_directional.missing_face: "Issue found in file - The block '' is missing the required 'face' property for 'face_attached_horizontal_directional_block' behavior." +warning.config.block.behavior.face_attached_horizontal_directional.missing_facing: "Issue found in file - The block '' is missing the required 'facing' property for 'face_attached_horizontal_directional_block' behavior." +warning.config.block.behavior.button.missing_powered: "Issue found in file - The block '' is missing the required 'powered' property for 'button_block' behavior." warning.config.model.generation.missing_parent: "Issue found in file - The config '' is missing the required 'parent' argument in 'generation' section." warning.config.model.generation.conflict: "Issue found in file - Failed to generate model for '' as two or more configurations attempt to generate different json models with the same path: ''." warning.config.model.generation.invalid_display_position: "Issue found in file - The config '' is using an invalid display position '' in 'generation.display' section. Allowed display positions: []" diff --git a/common-files/src/main/resources/translations/zh_cn.yml b/common-files/src/main/resources/translations/zh_cn.yml index 1c2c4ca57..add5680d3 100644 --- a/common-files/src/main/resources/translations/zh_cn.yml +++ b/common-files/src/main/resources/translations/zh_cn.yml @@ -319,6 +319,9 @@ warning.config.block.behavior.fence.missing_north: "在文件 warning.config.block.behavior.fence.missing_east: "在文件 发现问题 - 方块 '' 的 'fence_block' 行为缺少必需的 'east' 属性" warning.config.block.behavior.fence.missing_south: "在文件 发现问题 - 方块 '' 的 'fence_block' 行为缺少必需的 'south' 属性" warning.config.block.behavior.fence.missing_west: "在文件 发现问题 - 方块 '' 的 'fence_block' 行为缺少必需的 'west' 属性" +warning.config.block.behavior.face_attached_horizontal_directional.missing_face: "在文件 发现问题 - 方块 '' 的 'face_attached_horizontal_directional_block' 行为缺少必需的 'face' 属性" +warning.config.block.behavior.face_attached_horizontal_directional.missing_facing: "在文件 发现问题 - 方块 '' 的 'face_attached_horizontal_directional_block' 行为缺少必需的 'facing' 属性" +warning.config.block.behavior.button.missing_powered: "在文件 发现问题 - 方块 '' 的 'button_block' 行为缺少必需的 'powered' 属性" warning.config.model.generation.missing_parent: "在文件 发现问题 - 配置项 '' 的 'generation' 段落缺少必需的 'parent' 参数" warning.config.model.generation.conflict: "在文件 发现问题 - 无法为 '' 生成模型 存在多个配置尝试使用相同路径 '' 生成不同的 JSON 模型" warning.config.model.generation.invalid_display_position: "在文件 发现问题 - 配置项 '' 在 'generation.display' 区域使用了无效的 display 位置类型 ''. 可用展示类型: []" diff --git a/core/src/main/java/net/momirealms/craftengine/core/block/properties/Properties.java b/core/src/main/java/net/momirealms/craftengine/core/block/properties/Properties.java index e559a080a..42753ec45 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/block/properties/Properties.java +++ b/core/src/main/java/net/momirealms/craftengine/core/block/properties/Properties.java @@ -22,7 +22,7 @@ public final class Properties { public static final Key STAIRS_SHAPE = Key.of("craftengine:stairs_shape"); public static final Key SLAB_TYPE = Key.of("craftengine:slab_type"); public static final Key SOFA_SHAPE = Key.of("craftengine:sofa_shape"); - public static final Key ATTACH_FACE = Key.of("craftengine:attach_face"); + public static final Key ANCHOR_TYPE = Key.of("craftengine:anchor_type"); static { register(BOOLEAN, BooleanProperty.FACTORY); @@ -39,7 +39,7 @@ public final class Properties { register(STAIRS_SHAPE, new EnumProperty.Factory<>(StairsShape.class)); register(SLAB_TYPE, new EnumProperty.Factory<>(SlabType.class)); register(SOFA_SHAPE, new EnumProperty.Factory<>(SofaShape.class)); - register(ATTACH_FACE, new EnumProperty.Factory<>(AttachFace.class)); + register(ANCHOR_TYPE, new EnumProperty.Factory<>(AnchorType.class)); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/block/state/properties/AttachFace.java b/core/src/main/java/net/momirealms/craftengine/core/block/state/properties/AnchorType.java similarity index 80% rename from core/src/main/java/net/momirealms/craftengine/core/block/state/properties/AttachFace.java rename to core/src/main/java/net/momirealms/craftengine/core/block/state/properties/AnchorType.java index de9d6267b..65bec0f74 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/block/state/properties/AttachFace.java +++ b/core/src/main/java/net/momirealms/craftengine/core/block/state/properties/AnchorType.java @@ -1,6 +1,6 @@ package net.momirealms.craftengine.core.block.state.properties; -public enum AttachFace { +public enum AnchorType { FLOOR, WALL, CEILING