diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/BukkitBlockBehaviors.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/BukkitBlockBehaviors.java index a110edeef..b6497732a 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/BukkitBlockBehaviors.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/BukkitBlockBehaviors.java @@ -32,7 +32,7 @@ public class BukkitBlockBehaviors extends BlockBehaviors { public static final Key TOGGLEABLE_LAMP_BLOCK = Key.from("craftengine:toggleable_lamp_block"); public static final Key SOFA_BLOCK = Key.from("craftengine:sofa_block"); public static final Key BOUNCING_BLOCK = Key.from("craftengine:bouncing_block"); - public static final Key SURFACE_ATTACHED_BLOCK = Key.from("craftengine:surface_attached_block"); + public static final Key DIRECTIONAL_ATTACHED_BLOCK = Key.from("craftengine:directional_attached_block"); public static void init() { register(EMPTY, (block, args) -> EmptyBlockBehavior.INSTANCE); @@ -63,6 +63,6 @@ public class BukkitBlockBehaviors extends BlockBehaviors { register(TOGGLEABLE_LAMP_BLOCK, ToggleableLampBlockBehavior.FACTORY); register(SOFA_BLOCK, SofaBlockBehavior.FACTORY); register(BOUNCING_BLOCK, BouncingBlockBehavior.FACTORY); - register(SURFACE_ATTACHED_BLOCK, SurfaceAttachedBlockBehavior.FACTORY); + register(DIRECTIONAL_ATTACHED_BLOCK, DirectionalAttachedBlockBehavior.FACTORY); } } diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SurfaceAttachedBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/DirectionalAttachedBlockBehavior.java similarity index 85% rename from bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SurfaceAttachedBlockBehavior.java rename to bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/DirectionalAttachedBlockBehavior.java index c7c529617..228bab889 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SurfaceAttachedBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/DirectionalAttachedBlockBehavior.java @@ -22,43 +22,42 @@ import net.momirealms.craftengine.core.world.World; import java.util.Map; import java.util.concurrent.Callable; -public class SurfaceAttachedBlockBehavior extends BukkitBlockBehavior { +public class DirectionalAttachedBlockBehavior extends BukkitBlockBehavior { public static final Factory FACTORY = new Factory(); private final Property facingProperty; - private final boolean isDirection; + private final boolean isSixDirection; - public SurfaceAttachedBlockBehavior(CustomBlock customBlock, Property facingProperty, boolean isDirection) { + public DirectionalAttachedBlockBehavior(CustomBlock customBlock, Property facingProperty, boolean isSixDirection) { super(customBlock); this.facingProperty = facingProperty; - this.isDirection = isDirection; + this.isSixDirection = isSixDirection; } @Override public Object updateShape(Object thisBlock, Object[] args, Callable superMethod) throws Exception { ImmutableBlockState state = BlockStateUtils.getOptionalCustomBlockState(args[0]).orElse(null); if (state == null) return args[0]; - SurfaceAttachedBlockBehavior behavior = state.behavior().getAs(SurfaceAttachedBlockBehavior.class).orElse(null); + DirectionalAttachedBlockBehavior behavior = state.behavior().getAs(DirectionalAttachedBlockBehavior.class).orElse(null); if (behavior == null) return state; boolean flag; - if (isDirection) { + if (isSixDirection) { Direction direction = DirectionUtils.fromNMSDirection(args[updateShape$direction]).opposite(); flag = direction == state.get(behavior.facingProperty); } else { HorizontalDirection direction = DirectionUtils.fromNMSDirection(args[updateShape$direction]).opposite().toHorizontalDirection(); flag = direction == state.get(behavior.facingProperty); } - return flag && !FastNMS.INSTANCE.method$BlockStateBase$canSurvive(args[0], args[updateShape$level], args[updateShape$blockPos]) - ? MBlocks.AIR$defaultState : args[0]; + return flag && !FastNMS.INSTANCE.method$BlockStateBase$canSurvive(args[0], args[updateShape$level], args[updateShape$blockPos]) ? MBlocks.AIR$defaultState : args[0]; } @Override public boolean canSurvive(Object thisBlock, Object[] args, Callable superMethod) throws Exception { ImmutableBlockState state = BlockStateUtils.getOptionalCustomBlockState(args[0]).orElse(null); if (state == null) return false; - SurfaceAttachedBlockBehavior behavior = state.behavior().getAs(SurfaceAttachedBlockBehavior.class).orElse(null); + DirectionalAttachedBlockBehavior behavior = state.behavior().getAs(DirectionalAttachedBlockBehavior.class).orElse(null); if (behavior == null) return false; Direction direction; - if (isDirection) { + if (isSixDirection) { direction = ((Direction) state.get(behavior.facingProperty)).opposite(); } else { direction = ((HorizontalDirection) state.get(behavior.facingProperty)).opposite().toDirection(); @@ -72,12 +71,12 @@ public class SurfaceAttachedBlockBehavior extends BukkitBlockBehavior { @SuppressWarnings("unchecked") @Override public ImmutableBlockState updateStateForPlacement(BlockPlaceContext context, ImmutableBlockState state) { - SurfaceAttachedBlockBehavior behavior = state.behavior().getAs(SurfaceAttachedBlockBehavior.class).orElse(null); + DirectionalAttachedBlockBehavior behavior = state.behavior().getAs(DirectionalAttachedBlockBehavior.class).orElse(null); if (behavior == null) return null; World level = context.getLevel(); BlockPos clickedPos = context.getClickedPos(); for (Direction direction : context.getNearestLookingDirections()) { - if (isDirection) { + if (isSixDirection) { state = state.with((Property) behavior.facingProperty, direction.opposite()); if (FastNMS.INSTANCE.method$BlockStateBase$canSurvive(state.customBlockState().literalObject(), level.serverWorld(), LocationUtils.toBlockPos(clickedPos))) { return state; @@ -102,7 +101,7 @@ public class SurfaceAttachedBlockBehavior extends BukkitBlockBehavior { if (!(isHorizontalDirection || isDirection)) { throw new LocalizedResourceConfigException("warning.config.block.behavior.surface_attached.missing_facing"); } - return new SurfaceAttachedBlockBehavior(block, facing, isDirection); + return new DirectionalAttachedBlockBehavior(block, facing, isDirection); } } } diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SimpleStorageBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SimpleStorageBlockBehavior.java index 49e61329d..9ec94e21b 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SimpleStorageBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/SimpleStorageBlockBehavior.java @@ -204,13 +204,8 @@ public class SimpleStorageBlockBehavior extends BukkitBlockBehavior implements E openSound = Optional.ofNullable(sounds.get("open")).map(obj -> SoundData.create(obj, SoundData.SoundValue.FIXED_0_5, SoundData.SoundValue.ranged(0.9f, 1f))).orElse(null); closeSound = Optional.ofNullable(sounds.get("close")).map(obj -> SoundData.create(obj, SoundData.SoundValue.FIXED_0_5, SoundData.SoundValue.ranged(0.9f, 1f))).orElse(null); } - Map hopperBehavior = (Map) arguments.get("hopper-behavior"); - boolean canPlaceItem = true; - boolean canTakeItem = true; - if (hopperBehavior != null) { - canPlaceItem = ResourceConfigUtils.getAsBoolean(hopperBehavior.getOrDefault("allow-input", true), "allow-input"); - canTakeItem = ResourceConfigUtils.getAsBoolean(hopperBehavior.getOrDefault("allow-output", true), "allow-output"); - } + boolean canPlaceItem = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("allow-input", true), "allow-input"); + boolean canTakeItem = ResourceConfigUtils.getAsBoolean(arguments.getOrDefault("allow-output", true), "allow-output"); Property property = (Property) block.getProperty("open"); return new SimpleStorageBlockBehavior(block, title, rows, openSound, closeSound, hasAnalogOutputSignal, canPlaceItem, canTakeItem, property); } diff --git a/common-files/src/main/resources/resources/default/configuration/blocks/chessboard_block.yml b/common-files/src/main/resources/resources/default/configuration/blocks/chessboard_block.yml index 90f89d869..2ba57608c 100644 --- a/common-files/src/main/resources/resources/default/configuration/blocks/chessboard_block.yml +++ b/common-files/src/main/resources/resources/default/configuration/blocks/chessboard_block.yml @@ -19,8 +19,8 @@ items: resistance: 1.4 is-suffocating: true is-redstone-conductor: true - push-reaction: PUSH_ONLY - instrument: BASEDRUM + push-reaction: push_only + instrument: basedrum map-color: 36 sounds: break: minecraft:block.stone.break diff --git a/common-files/src/main/resources/resources/default/configuration/blocks/chinese_lantern.yml b/common-files/src/main/resources/resources/default/configuration/blocks/chinese_lantern.yml index dbfe8ea9c..9a22722b8 100644 --- a/common-files/src/main/resources/resources/default/configuration/blocks/chinese_lantern.yml +++ b/common-files/src/main/resources/resources/default/configuration/blocks/chinese_lantern.yml @@ -21,8 +21,8 @@ items: - default:sound/wood - default:settings/solid_1x1x1 overrides: - push-reaction: NORMAL - instrument: HARP + push-reaction: normal + instrument: harp luminance: 15 map-color: 36 state: diff --git a/common-files/src/main/resources/resources/default/configuration/blocks/copper_coil.yml b/common-files/src/main/resources/resources/default/configuration/blocks/copper_coil.yml index 6bc0d8394..c0fe30805 100644 --- a/common-files/src/main/resources/resources/default/configuration/blocks/copper_coil.yml +++ b/common-files/src/main/resources/resources/default/configuration/blocks/copper_coil.yml @@ -24,7 +24,7 @@ items: replaceable: false is-redstone-conductor: true is-suffocating: true - instrument: BASEDRUM + instrument: basedrum map-color: 15 behavior: type: lamp_block diff --git a/common-files/src/main/resources/resources/default/configuration/blocks/ender_pearl_flower.yml b/common-files/src/main/resources/resources/default/configuration/blocks/ender_pearl_flower.yml index 5e346254b..6ccd4a673 100644 --- a/common-files/src/main/resources/resources/default/configuration/blocks/ender_pearl_flower.yml +++ b/common-files/src/main/resources/resources/default/configuration/blocks/ender_pearl_flower.yml @@ -19,7 +19,7 @@ blocks: - default:sound/grass overrides: item: default:ender_pearl_flower_seeds - push-reaction: DESTROY + push-reaction: destroy map-color: 24 is-randomly-ticking: true behaviors: diff --git a/common-files/src/main/resources/resources/default/configuration/blocks/fairy_flower.yml b/common-files/src/main/resources/resources/default/configuration/blocks/fairy_flower.yml index 188ae9b80..4777b653c 100644 --- a/common-files/src/main/resources/resources/default/configuration/blocks/fairy_flower.yml +++ b/common-files/src/main/resources/resources/default/configuration/blocks/fairy_flower.yml @@ -17,7 +17,7 @@ items: - default:sound/grass overrides: item: default:fairy_flower - push-reaction: DESTROY + push-reaction: destroy map-color: 19 behavior: type: bush_block diff --git a/common-files/src/main/resources/resources/default/configuration/blocks/flame_cane.yml b/common-files/src/main/resources/resources/default/configuration/blocks/flame_cane.yml index b5544c681..6a43fc1cf 100644 --- a/common-files/src/main/resources/resources/default/configuration/blocks/flame_cane.yml +++ b/common-files/src/main/resources/resources/default/configuration/blocks/flame_cane.yml @@ -16,7 +16,7 @@ items: - default:hardness/none - default:sound/grass overrides: - push-reaction: DESTROY + push-reaction: destroy map-color: 15 is-randomly-ticking: true behaviors: diff --git a/common-files/src/main/resources/resources/default/configuration/blocks/gunpowder_block.yml b/common-files/src/main/resources/resources/default/configuration/blocks/gunpowder_block.yml index 3cb8fb486..1bab9bb39 100644 --- a/common-files/src/main/resources/resources/default/configuration/blocks/gunpowder_block.yml +++ b/common-files/src/main/resources/resources/default/configuration/blocks/gunpowder_block.yml @@ -25,7 +25,7 @@ items: overrides: hardness: 0.5 resistance: 0.5 - instrument: SNARE + instrument: snare map-color: 45 state: id: 16 @@ -59,7 +59,7 @@ items: overrides: hardness: 1.8 resistance: 1.8 - instrument: BASEDRUM + instrument: basedrum map-color: 45 state: id: 17 diff --git a/common-files/src/main/resources/resources/default/configuration/blocks/netherite_anvil.yml b/common-files/src/main/resources/resources/default/configuration/blocks/netherite_anvil.yml index 7b000d9ae..add02ff3b 100644 --- a/common-files/src/main/resources/resources/default/configuration/blocks/netherite_anvil.yml +++ b/common-files/src/main/resources/resources/default/configuration/blocks/netherite_anvil.yml @@ -44,7 +44,7 @@ items: map-color: 29 hardness: 10.0 resistance: 1200 - push-reaction: BLOCK + push-reaction: block states: properties: facing_clockwise: diff --git a/common-files/src/main/resources/resources/default/configuration/blocks/palm_tree.yml b/common-files/src/main/resources/resources/default/configuration/blocks/palm_tree.yml index 901dbbb00..fe8e46bd6 100644 --- a/common-files/src/main/resources/resources/default/configuration/blocks/palm_tree.yml +++ b/common-files/src/main/resources/resources/default/configuration/blocks/palm_tree.yml @@ -363,7 +363,7 @@ items: template: - default:sound/wood overrides: - push-reaction: DESTROY + push-reaction: destroy map-color: 2 instrument: bass hardness: 3.0 @@ -588,7 +588,7 @@ items: - default:hardness/planks overrides: burnable: true - push-reaction: DESTROY + push-reaction: destroy map-color: 2 instrument: bass tags: diff --git a/common-files/src/main/resources/resources/default/configuration/blocks/pebble.yml b/common-files/src/main/resources/resources/default/configuration/blocks/pebble.yml index c275b52b8..9d5b8a502 100644 --- a/common-files/src/main/resources/resources/default/configuration/blocks/pebble.yml +++ b/common-files/src/main/resources/resources/default/configuration/blocks/pebble.yml @@ -17,7 +17,7 @@ items: - default:hardness/none overrides: map-color: 11 - push-reaction: DESTROY + push-reaction: destroy behaviors: - type: sturdy_base_block direction: down diff --git a/common-files/src/main/resources/resources/default/configuration/blocks/reed.yml b/common-files/src/main/resources/resources/default/configuration/blocks/reed.yml index 3ecbd29a2..f444576b6 100644 --- a/common-files/src/main/resources/resources/default/configuration/blocks/reed.yml +++ b/common-files/src/main/resources/resources/default/configuration/blocks/reed.yml @@ -16,7 +16,7 @@ items: - default:hardness/none - default:sound/grass overrides: - push-reaction: DESTROY + push-reaction: destroy map-color: 60 behavior: type: on_liquid_block diff --git a/common-files/src/main/resources/resources/default/configuration/blocks/safe_block.yml b/common-files/src/main/resources/resources/default/configuration/blocks/safe_block.yml index e312d27cc..99d1a28e3 100644 --- a/common-files/src/main/resources/resources/default/configuration/blocks/safe_block.yml +++ b/common-files/src/main/resources/resources/default/configuration/blocks/safe_block.yml @@ -19,8 +19,8 @@ items: resistance: 1200 is-suffocating: true is-redstone-conductor: true - push-reaction: BLOCK - instrument: BASEDRUM + push-reaction: block + instrument: basedrum map-color: 6 sounds: break: minecraft:block.stone.break @@ -35,9 +35,8 @@ items: sounds: open: minecraft:block.iron_trapdoor.open close: minecraft:block.iron_trapdoor.close - hopper-behavior: - allow-input: true - allow-output: false + allow-input: true + allow-output: false states: properties: facing: diff --git a/common-files/src/main/resources/resources/default/configuration/blocks/sofa.yml b/common-files/src/main/resources/resources/default/configuration/blocks/sofa.yml index 5a94e2c20..1f4a86917 100644 --- a/common-files/src/main/resources/resources/default/configuration/blocks/sofa.yml +++ b/common-files/src/main/resources/resources/default/configuration/blocks/sofa.yml @@ -21,8 +21,8 @@ items: burnable: true is-suffocating: false is-redstone-conductor: false - push-reaction: BLOCK - instrument: BASS + push-reaction: block + instrument: bass sounds: break: minecraft:block.wood.break fall: minecraft:block.wood.fall @@ -68,8 +68,8 @@ items: burnable: true is-suffocating: false is-redstone-conductor: false - push-reaction: BLOCK - instrument: BASS + push-reaction: block + instrument: bass sounds: break: minecraft:block.wood.break fall: minecraft:block.wood.fall diff --git a/common-files/src/main/resources/resources/default/configuration/templates.yml b/common-files/src/main/resources/resources/default/configuration/templates.yml index 8e6a62609..e2c881a6c 100644 --- a/common-files/src/main/resources/resources/default/configuration/templates.yml +++ b/common-files/src/main/resources/resources/default/configuration/templates.yml @@ -747,7 +747,7 @@ templates#settings#blocks: - default:hardness/none - default:sound/grass overrides: - push-reaction: DESTROY + push-reaction: destroy is-randomly-ticking: true map-color: 7 tags: @@ -763,11 +763,11 @@ templates#settings#blocks: overrides: hardness: 0.2 resistance: 0.2 - push-reaction: DESTROY + push-reaction: destroy replaceable: false is-redstone-conductor: false is-suffocating: false - instrument: HARP + instrument: harp tags: - minecraft:mineable/hoe - minecraft:sword_efficient @@ -780,11 +780,11 @@ templates#settings#blocks: - default:burn_data/wood - default:hardness/wood overrides: - push-reaction: NORMAL + push-reaction: normal replaceable: false is-redstone-conductor: true is-suffocating: true - instrument: BASS + instrument: bass can-occlude: true tags: - minecraft:mineable/axe @@ -798,11 +798,11 @@ templates#settings#blocks: - default:burn_data/planks - default:hardness/planks overrides: - push-reaction: NORMAL + push-reaction: normal replaceable: false is-redstone-conductor: true is-suffocating: true - instrument: BASS + instrument: bass can-occlude: true tags: - minecraft:mineable/axe @@ -814,10 +814,10 @@ templates#settings#blocks: overrides: hardness: 3.0 resistance: 3.0 - push-reaction: NORMAL + push-reaction: normal is-redstone-conductor: true is-suffocating: true - instrument: BASEDRUM + instrument: basedrum can-occlude: true map-color: 11 tags: @@ -830,10 +830,10 @@ templates#settings#blocks: overrides: hardness: 4.5 resistance: 3.0 - push-reaction: NORMAL + push-reaction: normal is-redstone-conductor: true is-suffocating: true - instrument: BASEDRUM + instrument: basedrum can-occlude: true map-color: 59 tags: