sapdon 2.0.2 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/doc/BlockAPI.md +145 -0
- package/doc/api.md +1 -1
- package/doc/hello_sapdon/a9aad643f5609da73404d1f7f35fd5d0.png +0 -0
- package/doc/hello_sapdon/sapdon/344/275/277/347/224/250/346/225/231/347/250/213.md +159 -0
- package/examples/guidebook/build.config +33 -0
- package/examples/guidebook/dev/guidebook_BP/items/sapdon_test_guidebook.json +19 -0
- package/examples/{masterball/dev/masterball_BP/masterball_BP_1_20_20 → guidebook/dev/guidebook_BP}/manifest.json +63 -59
- package/examples/guidebook/dev/guidebook_BP/scripts/custom_components/cropComponent.js +50 -0
- package/examples/guidebook/dev/guidebook_BP/scripts/custom_components/items/gui_book.js +37 -0
- package/examples/guidebook/dev/guidebook_BP/scripts/custom_components/registry.js +20 -0
- package/examples/guidebook/dev/guidebook_BP/scripts/index.js +3 -0
- package/examples/guidebook/dev/guidebook_RP/blocks.json +3 -0
- package/examples/guidebook/dev/guidebook_RP/manifest.json +44 -0
- package/examples/guidebook/dev/guidebook_RP/models/blocks/crop.geo.json +48 -0
- package/examples/{masterball/dev/masterball_RP/masterball_RP_1_20_20.zip → guidebook/dev/guidebook_RP/pack_icon.png} +0 -0
- package/examples/guidebook/dev/guidebook_RP/textures/blocks/test_log_oak.png +0 -0
- package/examples/guidebook/dev/guidebook_RP/textures/blocks/test_log_top.png +0 -0
- package/examples/guidebook/dev/guidebook_RP/textures/flipbook_textures.json +1 -0
- package/examples/guidebook/dev/guidebook_RP/textures/item_texture.json +9 -0
- package/examples/guidebook/dev/guidebook_RP/textures/items/masterball.png +0 -0
- package/examples/guidebook/dev/guidebook_RP/textures/terrain_texture.json +14 -0
- package/examples/guidebook/dev/guidebook_RP/ui/_ui_defs.json +6 -0
- package/examples/guidebook/dev/guidebook_RP/ui/guidebook.json +581 -0
- package/examples/guidebook/dev/guidebook_RP/ui/server_form.json +91 -0
- package/examples/guidebook/main.mjs +66 -0
- package/examples/guidebook/mod.info +7 -0
- package/examples/{masterball/dev/masterball_BP/masterball_BP_1_20_20.zip → guidebook/pack_icon.png} +0 -0
- package/examples/guidebook/res/models/blocks/crop.geo.json +48 -0
- package/examples/guidebook/res/textures/blocks/test_log_oak.png +0 -0
- package/examples/guidebook/res/textures/blocks/test_log_top.png +0 -0
- package/examples/guidebook/res/textures/items/masterball.png +0 -0
- package/examples/guidebook/scripts/custom_components/cropComponent.js +50 -0
- package/examples/guidebook/scripts/custom_components/items/gui_book.js +37 -0
- package/examples/guidebook/scripts/custom_components/registry.js +20 -0
- package/examples/guidebook/scripts/index.js +3 -0
- package/examples/hello_sapdon/build.config +29 -0
- package/examples/hello_sapdon/main.mjs +3 -0
- package/examples/hello_sapdon/mod.info +7 -0
- package/examples/hello_sapdon/pack_icon.png +0 -0
- package/examples/hello_sapdon/res/models/blocks/crop.geo.json +48 -0
- package/examples/hello_sapdon/res/textures/blocks/test_log_oak.png +0 -0
- package/examples/hello_sapdon/res/textures/blocks/test_log_top.png +0 -0
- package/examples/hello_sapdon/res/textures/items/masterball.png +0 -0
- package/examples/hello_sapdon/scripts/custom_components/cropComponent.js +50 -0
- package/examples/hello_sapdon/scripts/custom_components/items/gui_book.js +37 -0
- package/examples/hello_sapdon/scripts/custom_components/registry.js +25 -0
- package/examples/hello_sapdon/scripts/index.js +0 -0
- package/examples/masterball/build.config +1 -0
- package/examples/masterball/dev/masterball_1_20_30.mcaddon +0 -0
- package/examples/masterball/dev/masterball_BP/entities/sapdon_projectile_masterball.json +56 -55
- package/examples/masterball/dev/masterball_BP/manifest.json +59 -59
- package/examples/masterball/dev/masterball_BP/pack_icon.png +0 -0
- package/examples/masterball/dev/masterball_BP/recipes/masterball.json +25 -0
- package/examples/masterball/dev/masterball_BP_1_20_30.mcpack +0 -0
- package/examples/masterball/dev/masterball_RP/attachables/sapdon_caught_masterball.json +19 -0
- package/examples/masterball/dev/masterball_RP/manifest.json +43 -43
- package/examples/masterball/dev/masterball_RP/pack_icon.png +0 -0
- package/examples/masterball/dev/masterball_RP/textures/flipbook_textures.json +1 -0
- package/examples/masterball/dev/masterball_RP/ui/_ui_defs.json +3 -0
- package/examples/masterball/dev/masterball_RP_1_20_30.mcpack +0 -0
- package/examples/masterball/main.mjs +18 -1
- package/examples/masterball/pack_icon.png +0 -0
- package/examples/mob_chest/build.config +29 -0
- package/examples/mob_chest/dev/mob_chest_BP/blocks/mob_chest_chest.json +56 -0
- package/examples/mob_chest/dev/mob_chest_BP/entities/mob_chest_chest_entity.json +79 -0
- package/examples/mob_chest/dev/mob_chest_BP/manifest.json +64 -0
- package/examples/mob_chest/dev/mob_chest_BP/pack_icon.png +0 -0
- package/examples/mob_chest/dev/mob_chest_BP/scripts/custom_components/block/block_with_entity.js +46 -0
- package/examples/mob_chest/dev/mob_chest_BP/scripts/custom_components/block/cropComponent.js +50 -0
- package/examples/mob_chest/dev/mob_chest_BP/scripts/custom_components/items/gui_book.js +37 -0
- package/examples/mob_chest/dev/mob_chest_BP/scripts/custom_components/registry.js +25 -0
- package/examples/mob_chest/dev/mob_chest_BP/scripts/index.js +4 -0
- package/examples/mob_chest/dev/mob_chest_RP/animation_controllers/mob_chest.animation_controllers.json +30 -0
- package/examples/mob_chest/dev/mob_chest_RP/animations/animation_item.animation.json +34 -0
- package/examples/mob_chest/dev/mob_chest_RP/animations/large_item.animation.json +27 -0
- package/examples/mob_chest/dev/mob_chest_RP/animations/mob_chest.animation.json +64 -0
- package/examples/mob_chest/dev/mob_chest_RP/blocks.json +13 -0
- package/examples/mob_chest/dev/mob_chest_RP/entity/mob_chest_chest_entity.json +32 -0
- package/examples/mob_chest/dev/mob_chest_RP/manifest.json +44 -0
- package/examples/mob_chest/dev/mob_chest_RP/models/blocks/crop.geo.json +48 -0
- package/examples/mob_chest/dev/mob_chest_RP/models/blocks/cube.geo.json +35 -0
- package/examples/mob_chest/dev/mob_chest_RP/models/blocks/empty.geo.json +35 -0
- package/examples/mob_chest/dev/mob_chest_RP/models/entity/mob_chest.geo.json +98 -0
- package/examples/mob_chest/dev/mob_chest_RP/pack_icon.png +0 -0
- package/examples/mob_chest/dev/mob_chest_RP/textures/blocks/entity/double_normal.png +0 -0
- package/examples/mob_chest/dev/mob_chest_RP/textures/blocks/entity/none.png +0 -0
- package/examples/mob_chest/dev/mob_chest_RP/textures/blocks/entity/normal.png +0 -0
- package/examples/mob_chest/dev/mob_chest_RP/textures/blocks/test_log_oak.png +0 -0
- package/examples/mob_chest/dev/mob_chest_RP/textures/blocks/test_log_top.png +0 -0
- package/examples/mob_chest/dev/mob_chest_RP/textures/flipbook_textures.json +1 -0
- package/examples/mob_chest/dev/mob_chest_RP/textures/item_texture.json +9 -0
- package/examples/mob_chest/dev/mob_chest_RP/textures/items/masterball.png +0 -0
- package/examples/mob_chest/dev/mob_chest_RP/textures/terrain_texture.json +23 -0
- package/examples/mob_chest/dev/mob_chest_RP/ui/_ui_defs.json +3 -0
- package/examples/mob_chest/main.mjs +31 -0
- package/examples/mob_chest/mod.info +7 -0
- package/examples/mob_chest/pack_icon.png +0 -0
- package/examples/mob_chest/res/animation_controllers/mob_chest.animation_controllers.json +30 -0
- package/examples/mob_chest/res/animations/animation_item.animation.json +34 -0
- package/examples/mob_chest/res/animations/large_item.animation.json +27 -0
- package/examples/mob_chest/res/animations/mob_chest.animation.json +64 -0
- package/examples/mob_chest/res/models/blocks/crop.geo.json +48 -0
- package/examples/mob_chest/res/models/blocks/cube.geo.json +35 -0
- package/examples/mob_chest/res/models/blocks/empty.geo.json +35 -0
- package/examples/mob_chest/res/models/entity/mob_chest.geo.json +98 -0
- package/examples/mob_chest/res/textures/blocks/entity/double_normal.png +0 -0
- package/examples/mob_chest/res/textures/blocks/entity/none.png +0 -0
- package/examples/mob_chest/res/textures/blocks/entity/normal.png +0 -0
- package/examples/mob_chest/res/textures/blocks/test_log_oak.png +0 -0
- package/examples/mob_chest/res/textures/blocks/test_log_top.png +0 -0
- package/examples/mob_chest/res/textures/items/masterball.png +0 -0
- package/examples/mob_chest/resource/cube.bbmodel +1 -0
- package/examples/mob_chest/resource/flipbook_item.bbmodel +1 -0
- package/examples/mob_chest/resource/flipbook_item.geo.bbmodel +1 -0
- package/examples/mob_chest/resource/flipbook_item.geo.json +3124 -0
- package/examples/mob_chest/resource/mob_chest.bbmodel +1 -0
- package/examples/mob_chest/scripts/custom_components/block/block_with_entity.js +46 -0
- package/examples/mob_chest/scripts/custom_components/block/cropComponent.js +50 -0
- package/examples/mob_chest/scripts/custom_components/items/gui_book.js +37 -0
- package/examples/mob_chest/scripts/custom_components/registry.js +25 -0
- package/examples/mob_chest/scripts/index.js +4 -0
- package/examples/test/build.config +29 -0
- package/examples/test/dev/test_BP/blocks/sapdon_ore_cinnabar.json +15 -15
- package/examples/test/dev/test_BP/blocks/sapdon_test_block.json +15 -15
- package/examples/test/dev/test_BP/blocks/sapdon_test_crop.json +191 -191
- package/examples/test/dev/test_BP/blocks/sapdon_wire.json +102 -102
- package/examples/test/dev/test_BP/entities/sapdon_test_projectile.json +56 -55
- package/examples/test/dev/test_BP/feature_rules/ore_cinnabar_orefeatre_rule.json +52 -52
- package/examples/test/dev/test_BP/feature_rules/overworld_underground_titanite_ore_feature.json +52 -52
- package/examples/test/dev/test_BP/features/ore_cinnabar_ore_feature.json +16 -16
- package/examples/test/dev/test_BP/features/titanite_ore_feature.json +22 -22
- package/examples/test/dev/test_BP/items/sapdon_chest.json +22 -22
- package/examples/test/dev/test_BP/items/sapdon_test_book.json +19 -0
- package/examples/test/dev/test_BP/items/sapdon_test_food.json +25 -25
- package/examples/test/dev/test_BP/items/sapdon_test_item.json +30 -30
- package/examples/test/dev/test_BP/manifest.json +63 -59
- package/examples/test/dev/test_BP/recipes/sapdon_test_furnace.json +12 -12
- package/examples/test/dev/test_BP/scripts/custom_components/cropComponent.js +1 -10
- package/examples/test/dev/test_BP/scripts/custom_components/items/gui_book.js +37 -0
- package/examples/test/dev/test_BP/scripts/custom_components/registry.js +20 -0
- package/examples/test/dev/test_BP/scripts/index.js +4 -3
- package/examples/test/dev/test_RP/attachables/sapdon_chest.json +24 -24
- package/examples/test/dev/test_RP/blocks.json +42 -42
- package/examples/test/dev/test_RP/entity/sapdon_test_projectile.json +27 -27
- package/examples/test/dev/test_RP/manifest.json +43 -43
- package/examples/test/dev/test_RP/models/blocks/arcane_workbench.geo.json +105 -105
- package/examples/test/dev/test_RP/models/blocks/jar_normal.geo.json +46 -46
- package/examples/test/dev/test_RP/models/blocks/jar_normal_0.geo.json +58 -58
- package/examples/test/dev/test_RP/models/blocks/jar_normal_1.geo.json +58 -58
- package/examples/test/dev/test_RP/models/blocks/jar_normal_2.geo.json +58 -58
- package/examples/test/dev/test_RP/models/blocks/jar_normal_3.geo.json +58 -58
- package/examples/test/dev/test_RP/models/blocks/wire.geo.json +153 -153
- package/examples/test/dev/test_RP/textures/item_texture.json +788 -788
- package/examples/test/dev/test_RP/textures/items/seals/seal_breaker.png.mcmeta +5 -5
- package/examples/test/dev/test_RP/textures/items/seals/seal_butcher.png.mcmeta +5 -5
- package/examples/test/dev/test_RP/textures/items/seals/seal_empty.png.mcmeta +5 -5
- package/examples/test/dev/test_RP/textures/items/seals/seal_empty_advanced.png.mcmeta +5 -5
- package/examples/test/dev/test_RP/textures/items/seals/seal_fill.png.mcmeta +5 -5
- package/examples/test/dev/test_RP/textures/items/seals/seal_fill_advanced.png.mcmeta +5 -5
- package/examples/test/dev/test_RP/textures/items/seals/seal_guard.png.mcmeta +5 -5
- package/examples/test/dev/test_RP/textures/items/seals/seal_guard_advanced.png.mcmeta +5 -5
- package/examples/test/dev/test_RP/textures/items/seals/seal_harvest.png.mcmeta +5 -5
- package/examples/test/dev/test_RP/textures/items/seals/seal_lumber.png.mcmeta +5 -5
- package/examples/test/dev/test_RP/textures/items/seals/seal_pickup.png.mcmeta +5 -5
- package/examples/test/dev/test_RP/textures/items/seals/seal_pickup_advanced.png.mcmeta +5 -5
- package/examples/test/dev/test_RP/textures/items/seals/seal_provider.png.mcmeta +5 -5
- package/examples/test/dev/test_RP/textures/items/seals/seal_use.png.mcmeta +5 -5
- package/examples/test/dev/test_RP/textures/items/wand/cap_thaumium.png.mcmeta +11 -11
- package/examples/test/dev/test_RP/textures/items/wand/cap_void.png.mcmeta +11 -11
- package/examples/test/dev/test_RP/textures/items/wand/focus_pech.png.mcmeta +2 -2
- package/examples/test/dev/test_RP/textures/items/wand/focus_portablehole.png.mcmeta +2 -2
- package/examples/test/dev/test_RP/textures/items/wand/focus_primal.png.mcmeta +2 -2
- package/examples/test/dev/test_RP/textures/items/wand/focus_shard.png.mcmeta +2 -2
- package/examples/test/dev/test_RP/textures/items/wand/focus_warding.png.mcmeta +2 -2
- package/examples/test/dev/test_RP/textures/items/wand/rod_primal_mat.png.mcmeta +44 -44
- package/examples/test/dev/test_RP/textures/terrain_texture.json +136 -136
- package/examples/test/dev/test_RP/ui/_ui_defs.json +6 -0
- package/examples/test/dev/test_RP/ui/guidebook.json +446 -0
- package/examples/test/dev/test_RP/ui/server_form.json +91 -0
- package/examples/test/main.mjs +46 -1
- package/examples/test/res/models/blocks/arcane_workbench.geo.json +105 -105
- package/examples/test/res/models/blocks/jar_normal.geo.json +46 -46
- package/examples/test/res/models/blocks/jar_normal_0.geo.json +58 -58
- package/examples/test/res/models/blocks/jar_normal_1.geo.json +58 -58
- package/examples/test/res/models/blocks/jar_normal_2.geo.json +58 -58
- package/examples/test/res/models/blocks/jar_normal_3.geo.json +58 -58
- package/examples/test/res/models/blocks/wire.geo.json +153 -153
- package/examples/test/res/textures/items/seals/seal_breaker.png.mcmeta +5 -5
- package/examples/test/res/textures/items/seals/seal_butcher.png.mcmeta +5 -5
- package/examples/test/res/textures/items/seals/seal_empty.png.mcmeta +5 -5
- package/examples/test/res/textures/items/seals/seal_empty_advanced.png.mcmeta +5 -5
- package/examples/test/res/textures/items/seals/seal_fill.png.mcmeta +5 -5
- package/examples/test/res/textures/items/seals/seal_fill_advanced.png.mcmeta +5 -5
- package/examples/test/res/textures/items/seals/seal_guard.png.mcmeta +5 -5
- package/examples/test/res/textures/items/seals/seal_guard_advanced.png.mcmeta +5 -5
- package/examples/test/res/textures/items/seals/seal_harvest.png.mcmeta +5 -5
- package/examples/test/res/textures/items/seals/seal_lumber.png.mcmeta +5 -5
- package/examples/test/res/textures/items/seals/seal_pickup.png.mcmeta +5 -5
- package/examples/test/res/textures/items/seals/seal_pickup_advanced.png.mcmeta +5 -5
- package/examples/test/res/textures/items/seals/seal_provider.png.mcmeta +5 -5
- package/examples/test/res/textures/items/seals/seal_use.png.mcmeta +5 -5
- package/examples/test/res/textures/items/wand/cap_thaumium.png.mcmeta +11 -11
- package/examples/test/res/textures/items/wand/cap_void.png.mcmeta +11 -11
- package/examples/test/res/textures/items/wand/focus_pech.png.mcmeta +2 -2
- package/examples/test/res/textures/items/wand/focus_portablehole.png.mcmeta +2 -2
- package/examples/test/res/textures/items/wand/focus_primal.png.mcmeta +2 -2
- package/examples/test/res/textures/items/wand/focus_shard.png.mcmeta +2 -2
- package/examples/test/res/textures/items/wand/focus_warding.png.mcmeta +2 -2
- package/examples/test/res/textures/items/wand/rod_primal_mat.png.mcmeta +44 -44
- package/examples/test/scripts/custom_components/cropComponent.js +1 -10
- package/examples/test/scripts/custom_components/items/gui_book.js +37 -0
- package/examples/test/scripts/custom_components/registry.js +20 -0
- package/examples/test/scripts/index.js +4 -3
- package/log.md +8 -0
- package/package.json +4 -1
- package/src/cli/build.js +210 -210
- package/src/cli/load.js +116 -112
- package/src/cli/tools/textureSet.js +114 -114
- package/src/cli/utils.js +82 -82
- package/src/core/addon/controllers/animation_controller.js +80 -0
- package/src/core/addon/entity/entity.js +52 -51
- package/src/core/block/GeometryBlock.js +8 -0
- package/src/core/block/OreBlock.js +1 -0
- package/src/core/block/TileBlock.js +117 -0
- package/src/core/block/block.js +106 -106
- package/src/core/block/blockComponent.js +557 -557
- package/src/core/block/cropBlock.js +1 -1
- package/src/core/entity/BasicEntity.js +195 -166
- package/src/core/entity/bundles/BasicBundle.js +51 -0
- package/src/core/factory/BlockFactory.js +166 -158
- package/src/core/factory/EntityFactory.js +82 -82
- package/src/core/factory/ItemFactory.js +120 -95
- package/src/core/factory/RecipeFactory.js +46 -46
- package/src/core/index.js +2 -1
- package/src/core/item/Item.js +96 -96
- package/src/core/item/ItemComponents.js +251 -235
- package/src/core/item/armor.js +117 -89
- package/src/core/item/attachable.js +33 -33
- package/src/core/item/food.js +61 -61
- package/src/core/registry.js +16 -16
- package/src/core/ui/Properties/{Grid.js → GridProp.js} +2 -2
- package/src/core/ui/Properties/Sound.js +72 -0
- package/src/core/ui/elements/Button.js +111 -0
- package/src/core/ui/elements/CollectionPanel.js +61 -0
- package/src/core/ui/elements/Grid.js +24 -0
- package/src/core/ui/elements/Image.js +4 -0
- package/src/core/ui/elements/Label.js +10 -2
- package/src/core/ui/elements/Panel.js +7 -0
- package/src/core/ui/elements/ScrollingPanel.js +68 -0
- package/src/core/ui/elements/StackPanel.js +40 -0
- package/src/core/ui/elements/UIElement.js +43 -2
- package/src/core/ui/registry/UISystemRegistry.js +35 -0
- package/src/core/ui/systems/UISystem.js +9 -5
- package/src/core/ui/systems/guidebook.js +299 -0
- package/src/core/ui/systems/server_form.js +94 -83
- package/src/templates/test_sapdon/build.config +28 -28
- package/src/templates/test_sapdon/res/animations/animation_item.animation.json +34 -0
- package/src/templates/test_sapdon/res/animations/large_item.animation.json +27 -0
- package/src/templates/test_sapdon/res/models/entity/animation/animation_item.geo.json +26 -0
- package/src/templates/test_sapdon/res/models/entity/animation/large_item.geo.json +28 -0
- package/src/templates/test_sapdon/res/textures/blocks/none.png +0 -0
- package/src/templates/test_sapdon/scripts/custom_components/cropComponent.js +50 -0
- package/src/templates/test_sapdon/scripts/custom_components/items/gui_book.js +37 -0
- package/src/templates/test_sapdon/scripts/custom_components/registry.js +25 -0
- package/examples/masterball/dev/masterball[1.20.20+].mcaddon.zip +0 -0
- package/examples/masterball/dev/masterball_BP/masterball_BP_1_20_20/entities/sapdon_projectile_masterball.json +0 -56
- package/examples/masterball/dev/masterball_BP/masterball_BP_1_20_20/items/sapdon_caught_masterball.json +0 -32
- package/examples/masterball/dev/masterball_BP/masterball_BP_1_20_20/items/sapdon_uncaught_masterball.json +0 -31
- package/examples/masterball/dev/masterball_BP/masterball_BP_1_20_20/scripts/index.js +0 -159
- package/examples/test/dev/test_BP/biomes/test_biome.json +0 -48
- package/examples/test/dev/test_BP/blocks/sapdon_block.json +0 -111
- package/examples/test/dev/test_BP/entities/sapdon_body.json +0 -118
- package/examples/test/dev/test_BP/entities/sapdon_test_entity_ctrl1.json +0 -55
- package/examples/test/dev/test_BP/entities/sapdon_test_entity_ctrl2.json +0 -61
- package/examples/test/dev/test_BP/entities/sapdon_test_entity_header.json +0 -408
- package/examples/test/dev/test_RP/entity/sapdon_body.json +0 -44
- package/examples/test/dev/test_RP/entity/sapdon_test_entity_ctrl1.json +0 -38
- package/examples/test/dev/test_RP/entity/sapdon_test_entity_ctrl2.json +0 -38
- package/examples/test/dev/test_RP/entity/sapdon_test_entity_header.json +0 -44
- package/src/cli/build.config +0 -4
- package/src/core/ui/registry/ServerUISystem.js +0 -19
- /package/examples/{masterball/dev/masterball_BP/masterball_BP_1_20_20 → guidebook/dev/guidebook_BP}/pack_icon.png +0 -0
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
import { ItemStack, world } from "@minecraft/server";
|
|
2
|
-
|
|
3
|
-
// 存储抛掷物ID和实体ID的映射
|
|
4
|
-
const entityReleseMap = new Map(); // 抛掷物ID -> 实体ID
|
|
5
|
-
const projectileIdStack = []; // 存储抛掷物ID的栈
|
|
6
|
-
|
|
7
|
-
// 监听物品使用事件
|
|
8
|
-
world.afterEvents.itemUse.subscribe((afterItemUseEvent) => {
|
|
9
|
-
// 检查是否是大师球
|
|
10
|
-
if (afterItemUseEvent.itemStack.typeId !== "sapdon:caught_masterball") return;
|
|
11
|
-
|
|
12
|
-
// 获取实体ID(从物品的Lore中提取)
|
|
13
|
-
const entityId = afterItemUseEvent.itemStack.getLore()[2].substring(3);
|
|
14
|
-
//world.sendMessage("已添加实体ID:" + entityId);
|
|
15
|
-
|
|
16
|
-
// 获取最近生成的抛掷物ID
|
|
17
|
-
const projectileId = projectileIdStack[projectileIdStack.length - 1];
|
|
18
|
-
if (!projectileId) {
|
|
19
|
-
//world.sendMessage("未找到抛掷物ID");
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
// 将抛掷物ID和实体ID关联起来
|
|
24
|
-
entityReleseMap.set(projectileId, entityId);
|
|
25
|
-
//world.sendMessage(`已关联抛掷物ID: ${projectileId} -> 实体ID: ${entityId}`);
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
// 监听实体生成事件
|
|
29
|
-
world.afterEvents.entitySpawn.subscribe((afterEntitySpawnEvent) => {
|
|
30
|
-
const entity = afterEntitySpawnEvent.entity;
|
|
31
|
-
|
|
32
|
-
// 检查是否是大师球抛掷物
|
|
33
|
-
if (entity.typeId !== "sapdon:projectile_masterball") return;
|
|
34
|
-
|
|
35
|
-
// 记录抛掷物ID
|
|
36
|
-
projectileIdStack.push(entity.id);
|
|
37
|
-
//world.sendMessage("已添加抛掷物ID:" + entity.id);
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
// 监听抛掷物击中实体事件
|
|
41
|
-
world.afterEvents.projectileHitEntity.subscribe((event) => {
|
|
42
|
-
const source = event.source;
|
|
43
|
-
const projectile = event.projectile;
|
|
44
|
-
const hitedEntity = event.getEntityHit().entity;
|
|
45
|
-
|
|
46
|
-
// 检查抛掷物和来源是否有效
|
|
47
|
-
if (!source || !projectile) return;
|
|
48
|
-
if (source.typeId !== "minecraft:player" || projectile.typeId !== "sapdon:projectile_masterball") return;
|
|
49
|
-
|
|
50
|
-
const dimension = source.dimension;
|
|
51
|
-
const dropLocation = hitedEntity.location;
|
|
52
|
-
|
|
53
|
-
// 检查抛掷物ID是否有对应的实体ID
|
|
54
|
-
const entityId = entityReleseMap.get(projectile.id);
|
|
55
|
-
|
|
56
|
-
if (!entityId) {
|
|
57
|
-
// 捕捉逻辑
|
|
58
|
-
//world.sendMessage("捕捉");
|
|
59
|
-
const entityRemoveLocation = {
|
|
60
|
-
x: dropLocation.x,
|
|
61
|
-
y: dropLocation.y + 100,
|
|
62
|
-
z: dropLocation.z
|
|
63
|
-
};
|
|
64
|
-
hitedEntity.teleport(entityRemoveLocation, {});
|
|
65
|
-
|
|
66
|
-
// 保存实体信息
|
|
67
|
-
const entityData = {
|
|
68
|
-
Id: hitedEntity.id,
|
|
69
|
-
typeID: hitedEntity.typeId,
|
|
70
|
-
name: hitedEntity.nameTag,
|
|
71
|
-
heath: hitedEntity.getComponent("health").currentValue
|
|
72
|
-
};
|
|
73
|
-
const structureName = replaceNumbersWithLetters(`${-hitedEntity.id}`);
|
|
74
|
-
|
|
75
|
-
// 保存实体结构
|
|
76
|
-
try {
|
|
77
|
-
dimension.runCommand(`structure save masterball_space_${structureName} ${entityRemoveLocation.x} ${entityRemoveLocation.y} ${entityRemoveLocation.z} ${entityRemoveLocation.x + 1} ${entityRemoveLocation.y + 1} ${entityRemoveLocation.z + 1} true memory false`);
|
|
78
|
-
} catch (error) {
|
|
79
|
-
//world.sendMessage(`保存结构失败: ${error}`);
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
hitedEntity.remove();
|
|
83
|
-
|
|
84
|
-
// 生成捕捉后的大师球
|
|
85
|
-
const masterball = new ItemStack("sapdon:caught_masterball", 1);
|
|
86
|
-
masterball.nameTag = "大师球(" + entityData.typeID + ")";
|
|
87
|
-
masterball.setLore([
|
|
88
|
-
`name:${entityData.name}`,
|
|
89
|
-
`typeID:${entityData.typeID}`,
|
|
90
|
-
`Id:${entityData.Id}`,
|
|
91
|
-
`Heath:${entityData.heath}`,
|
|
92
|
-
`stackable:${masterball.isStackable}`
|
|
93
|
-
]);
|
|
94
|
-
dimension.spawnItem(masterball, dropLocation);
|
|
95
|
-
} else {
|
|
96
|
-
// 释放逻辑
|
|
97
|
-
//world.sendMessage("释放");
|
|
98
|
-
const structureName = replaceNumbersWithLetters(`${-entityId}`);
|
|
99
|
-
|
|
100
|
-
// 加载实体结构
|
|
101
|
-
try {
|
|
102
|
-
dimension.runCommand(`structure load masterball_space_${structureName} ${dropLocation.x} ${dropLocation.y} ${dropLocation.z} 0_degrees none true false false`);
|
|
103
|
-
dimension.runCommand(`structure delete masterball_space_${structureName}`);
|
|
104
|
-
} catch (error) {
|
|
105
|
-
//world.sendMessage(`加载或删除结构失败: ${error}`);
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
// 生成空的大师球
|
|
110
|
-
const masterball = new ItemStack("sapdon:uncaught_masterball", 1);
|
|
111
|
-
dimension.spawnItem(masterball, dropLocation);
|
|
112
|
-
|
|
113
|
-
// 删除映射关系
|
|
114
|
-
entityReleseMap.delete(projectile.id);
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
|
|
118
|
-
// 监听抛掷物击中方块事件
|
|
119
|
-
world.afterEvents.projectileHitBlock.subscribe((afterprojectileHitBlockEvent) => {
|
|
120
|
-
const source = afterprojectileHitBlockEvent.source;
|
|
121
|
-
const dimension = afterprojectileHitBlockEvent.dimension;
|
|
122
|
-
const projectile = afterprojectileHitBlockEvent.projectile;
|
|
123
|
-
const dropLocation = afterprojectileHitBlockEvent.location;
|
|
124
|
-
|
|
125
|
-
// 检查抛掷物和来源是否有效
|
|
126
|
-
if (!source || !projectile) return;
|
|
127
|
-
if (source.typeId !== "minecraft:player" || projectile.typeId !== "sapdon:projectile_masterball") return;
|
|
128
|
-
|
|
129
|
-
// 检查抛掷物ID是否有对应的实体ID
|
|
130
|
-
const entityId = entityReleseMap.get(projectile.id);
|
|
131
|
-
if (entityId){
|
|
132
|
-
// 释放逻辑
|
|
133
|
-
const structureName = replaceNumbersWithLetters(`${-entityId}`);
|
|
134
|
-
|
|
135
|
-
// 加载实体结构
|
|
136
|
-
try {
|
|
137
|
-
dimension.runCommand(`structure load masterball_space_${structureName} ${dropLocation.x} ${dropLocation.y} ${dropLocation.z} 0_degrees none true false false`);
|
|
138
|
-
dimension.runCommand(`structure delete masterball_space_${structureName}`);
|
|
139
|
-
} catch (error) {
|
|
140
|
-
//world.sendMessage(`加载或删除结构失败: ${error}`);
|
|
141
|
-
return;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
// 生成空的大师球
|
|
145
|
-
const masterball = new ItemStack("sapdon:uncaught_masterball", 1);
|
|
146
|
-
dimension.spawnItem(masterball, dropLocation);
|
|
147
|
-
|
|
148
|
-
// 删除映射关系
|
|
149
|
-
entityReleseMap.delete(projectile.id);
|
|
150
|
-
});
|
|
151
|
-
|
|
152
|
-
// 工具函数:将数字替换为字母
|
|
153
|
-
function replaceNumbersWithLetters(str) {
|
|
154
|
-
const numberToLetter = {
|
|
155
|
-
'0': 'a', '1': 'b', '2': 'c', '3': 'd', '4': 'e',
|
|
156
|
-
'5': 'f', '6': 'g', '7': 'h', '8': 'i', '9': 'j'
|
|
157
|
-
};
|
|
158
|
-
return str.replace(/[0-9]/g, match => numberToLetter[match]);
|
|
159
|
-
}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"format_version": "1.13.0",
|
|
3
|
-
"minecraft:biome": {
|
|
4
|
-
"description": {
|
|
5
|
-
"identifier": "test_biome"
|
|
6
|
-
},
|
|
7
|
-
"components": {
|
|
8
|
-
"minecraft:climate": {
|
|
9
|
-
"downfall": 0.7,
|
|
10
|
-
"snow_accumulation": [
|
|
11
|
-
0.6,
|
|
12
|
-
0.9
|
|
13
|
-
],
|
|
14
|
-
"temperature": 15
|
|
15
|
-
},
|
|
16
|
-
"minecraft:overworld_height": {
|
|
17
|
-
"noise_params": [
|
|
18
|
-
0.6,
|
|
19
|
-
0.9
|
|
20
|
-
]
|
|
21
|
-
},
|
|
22
|
-
"minecraft:surface_parameters": {
|
|
23
|
-
"sea_floor_depth": 7,
|
|
24
|
-
"sea_floor_material": "minecraft:blue_ice",
|
|
25
|
-
"foundation_material": "minecraft:cobblestone",
|
|
26
|
-
"mid_material": "minecraft:minecraft:concrete",
|
|
27
|
-
"top_material": "minecraft:glass",
|
|
28
|
-
"sea_material": "minecraft:water"
|
|
29
|
-
},
|
|
30
|
-
"minecraft:overworld_generation_rules": {
|
|
31
|
-
"generate_for_climates": [
|
|
32
|
-
[
|
|
33
|
-
"medium",
|
|
34
|
-
100
|
|
35
|
-
],
|
|
36
|
-
[
|
|
37
|
-
"warm",
|
|
38
|
-
100
|
|
39
|
-
],
|
|
40
|
-
[
|
|
41
|
-
"cold",
|
|
42
|
-
100
|
|
43
|
-
]
|
|
44
|
-
]
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"format_version": "1.21.50",
|
|
3
|
-
"minecraft:block": {
|
|
4
|
-
"description": {
|
|
5
|
-
"identifier": "sapdon:block",
|
|
6
|
-
"traits": {},
|
|
7
|
-
"states": {
|
|
8
|
-
"sapdon:block_variant_tag": {
|
|
9
|
-
"values": {
|
|
10
|
-
"min": 0,
|
|
11
|
-
"max": 3
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
},
|
|
15
|
-
"menu_category": {
|
|
16
|
-
"category": "construction",
|
|
17
|
-
"group": "construction",
|
|
18
|
-
"is_hidden_in_commands": false
|
|
19
|
-
}
|
|
20
|
-
},
|
|
21
|
-
"components": {
|
|
22
|
-
"minecraft:geometry": {
|
|
23
|
-
"identifier": "geometry.crop"
|
|
24
|
-
}
|
|
25
|
-
},
|
|
26
|
-
"permutations": [
|
|
27
|
-
{
|
|
28
|
-
"condition": "q.block_state('sapdon:block_variant_tag') == 0",
|
|
29
|
-
"components": {
|
|
30
|
-
"minecraft:material_instances": {
|
|
31
|
-
"*": {
|
|
32
|
-
"texture": "garlic_stage_0",
|
|
33
|
-
"ambient_occlusion": true,
|
|
34
|
-
"face_dimming": true,
|
|
35
|
-
"render_method": "alpha_test"
|
|
36
|
-
},
|
|
37
|
-
"up": {
|
|
38
|
-
"texture": "garlic_stage_0",
|
|
39
|
-
"ambient_occlusion": true,
|
|
40
|
-
"face_dimming": true,
|
|
41
|
-
"render_method": "alpha_test"
|
|
42
|
-
},
|
|
43
|
-
"down": {
|
|
44
|
-
"texture": "garlic_stage_0",
|
|
45
|
-
"ambient_occlusion": true,
|
|
46
|
-
"face_dimming": true,
|
|
47
|
-
"render_method": "alpha_test"
|
|
48
|
-
},
|
|
49
|
-
"north": {
|
|
50
|
-
"texture": "garlic_stage_0",
|
|
51
|
-
"ambient_occlusion": true,
|
|
52
|
-
"face_dimming": true,
|
|
53
|
-
"render_method": "alpha_test"
|
|
54
|
-
},
|
|
55
|
-
"south": {
|
|
56
|
-
"texture": "garlic_stage_0",
|
|
57
|
-
"ambient_occlusion": true,
|
|
58
|
-
"face_dimming": true,
|
|
59
|
-
"render_method": "alpha_test"
|
|
60
|
-
},
|
|
61
|
-
"east": {
|
|
62
|
-
"texture": "garlic_stage_0",
|
|
63
|
-
"ambient_occlusion": true,
|
|
64
|
-
"face_dimming": true,
|
|
65
|
-
"render_method": "alpha_test"
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
},
|
|
70
|
-
{
|
|
71
|
-
"condition": "q.block_state('sapdon:block_variant_tag') == 1",
|
|
72
|
-
"components": {
|
|
73
|
-
"minecraft:material_instances": {
|
|
74
|
-
"*": {
|
|
75
|
-
"texture": "garlic_stage_1",
|
|
76
|
-
"ambient_occlusion": true,
|
|
77
|
-
"face_dimming": true,
|
|
78
|
-
"render_method": "alpha_test"
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
"condition": "q.block_state('sapdon:block_variant_tag') == 2",
|
|
85
|
-
"components": {
|
|
86
|
-
"minecraft:material_instances": {
|
|
87
|
-
"*": {
|
|
88
|
-
"texture": "garlic_stage_2",
|
|
89
|
-
"ambient_occlusion": true,
|
|
90
|
-
"face_dimming": true,
|
|
91
|
-
"render_method": "alpha_test"
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
"condition": "q.block_state('sapdon:block_variant_tag') == 3",
|
|
98
|
-
"components": {
|
|
99
|
-
"minecraft:material_instances": {
|
|
100
|
-
"*": {
|
|
101
|
-
"texture": "garlic_stage_3",
|
|
102
|
-
"ambient_occlusion": true,
|
|
103
|
-
"face_dimming": true,
|
|
104
|
-
"render_method": "alpha_test"
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
]
|
|
110
|
-
}
|
|
111
|
-
}
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"format_version": "1.16.0",
|
|
3
|
-
"minecraft:entity": {
|
|
4
|
-
"description": {
|
|
5
|
-
"identifier": "sapdon:body",
|
|
6
|
-
"is_spawnable": true,
|
|
7
|
-
"is_summonable": true,
|
|
8
|
-
"runtime_identifier": "minecraft:pig"
|
|
9
|
-
},
|
|
10
|
-
"components": {
|
|
11
|
-
"minecraft:health": {
|
|
12
|
-
"max": 20,
|
|
13
|
-
"value": 20
|
|
14
|
-
},
|
|
15
|
-
"minecraft:collision_box": {
|
|
16
|
-
"width": 1,
|
|
17
|
-
"height": 1
|
|
18
|
-
},
|
|
19
|
-
"minecraft:physics": {
|
|
20
|
-
"has_collision": true,
|
|
21
|
-
"has_gravity": true,
|
|
22
|
-
"push_towards_closest_space": true
|
|
23
|
-
},
|
|
24
|
-
"minecraft:movement": {
|
|
25
|
-
"value": 0.2
|
|
26
|
-
},
|
|
27
|
-
"minecraft:movement.basic": {
|
|
28
|
-
"max_turn": 30
|
|
29
|
-
},
|
|
30
|
-
"minecraft:pushable": {
|
|
31
|
-
"is_pushable": true,
|
|
32
|
-
"is_pushable_by_piston": true
|
|
33
|
-
},
|
|
34
|
-
"minecraft:navigation.walk": {
|
|
35
|
-
"avoid_damage_blocks": true,
|
|
36
|
-
"avoid_portals": false,
|
|
37
|
-
"avoid_sun": false,
|
|
38
|
-
"avoid_water": true,
|
|
39
|
-
"blocks_to_avoid": [],
|
|
40
|
-
"can_breach": false,
|
|
41
|
-
"can_break_doors": false,
|
|
42
|
-
"can_jump": true,
|
|
43
|
-
"can_open_doors": false,
|
|
44
|
-
"can_open_iron_doors": false,
|
|
45
|
-
"can_pass_doors": true,
|
|
46
|
-
"can_path_from_air": false,
|
|
47
|
-
"can_path_over_lava": false,
|
|
48
|
-
"can_path_over_water": true,
|
|
49
|
-
"can_sink": true,
|
|
50
|
-
"can_swim": false,
|
|
51
|
-
"can_walk": true,
|
|
52
|
-
"can_walk_in_lava": false,
|
|
53
|
-
"is_amphibious": false
|
|
54
|
-
},
|
|
55
|
-
"minecraft:type_family": {
|
|
56
|
-
"family": [
|
|
57
|
-
"test_entity_body"
|
|
58
|
-
]
|
|
59
|
-
},
|
|
60
|
-
"minecraft:behavior.follow_caravan": {
|
|
61
|
-
"priority": 3,
|
|
62
|
-
"speed_multiplier": 2.1,
|
|
63
|
-
"entity_count": 10,
|
|
64
|
-
"entity_types": {
|
|
65
|
-
"filters": {
|
|
66
|
-
"test": "is_family",
|
|
67
|
-
"subject": "other",
|
|
68
|
-
"value": "test_entity_body"
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
},
|
|
72
|
-
"minecraft:leashable": {
|
|
73
|
-
"soft_distance": 4,
|
|
74
|
-
"hard_distance": 6,
|
|
75
|
-
"max_distance": 10,
|
|
76
|
-
"can_be_stolen": false
|
|
77
|
-
},
|
|
78
|
-
"minecraft:rideable": {
|
|
79
|
-
"controlling_seat": 0,
|
|
80
|
-
"crouching_skip_interact": true,
|
|
81
|
-
"family_types": [
|
|
82
|
-
"test_entity_ctrl1",
|
|
83
|
-
"test_entity_ctrl2"
|
|
84
|
-
],
|
|
85
|
-
"interact_text": "Ride me",
|
|
86
|
-
"pull_in_entities": true,
|
|
87
|
-
"rider_can_interact": false,
|
|
88
|
-
"seat_count": 2,
|
|
89
|
-
"seats": [
|
|
90
|
-
{
|
|
91
|
-
"lock_rider_rotation": 181,
|
|
92
|
-
"max_rider_count": 1,
|
|
93
|
-
"min_rider_count": 0,
|
|
94
|
-
"position": [
|
|
95
|
-
0,
|
|
96
|
-
0,
|
|
97
|
-
0
|
|
98
|
-
],
|
|
99
|
-
"rotate_rider_by": 0
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
"lock_rider_rotation": 181,
|
|
103
|
-
"max_rider_count": 1,
|
|
104
|
-
"min_rider_count": 0,
|
|
105
|
-
"position": [
|
|
106
|
-
0,
|
|
107
|
-
0,
|
|
108
|
-
4
|
|
109
|
-
],
|
|
110
|
-
"rotate_rider_by": 0
|
|
111
|
-
}
|
|
112
|
-
]
|
|
113
|
-
}
|
|
114
|
-
},
|
|
115
|
-
"component_groups": {},
|
|
116
|
-
"events": {}
|
|
117
|
-
}
|
|
118
|
-
}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"format_version": "1.16.0",
|
|
3
|
-
"minecraft:entity": {
|
|
4
|
-
"description": {
|
|
5
|
-
"identifier": "sapdon:test_entity_ctrl1",
|
|
6
|
-
"is_spawnable": true,
|
|
7
|
-
"is_summonable": true,
|
|
8
|
-
"runtime_identifier": "minecraft:slime"
|
|
9
|
-
},
|
|
10
|
-
"components": {
|
|
11
|
-
"minecraft:health": {
|
|
12
|
-
"max": 20,
|
|
13
|
-
"value": 20
|
|
14
|
-
},
|
|
15
|
-
"minecraft:collision_box": {
|
|
16
|
-
"width": 1,
|
|
17
|
-
"height": 1
|
|
18
|
-
},
|
|
19
|
-
"minecraft:physics": {
|
|
20
|
-
"has_collision": true,
|
|
21
|
-
"has_gravity": true,
|
|
22
|
-
"push_towards_closest_space": true
|
|
23
|
-
},
|
|
24
|
-
"minecraft:movement": {
|
|
25
|
-
"value": 0.2
|
|
26
|
-
},
|
|
27
|
-
"minecraft:movement.basic": {
|
|
28
|
-
"max_turn": 30
|
|
29
|
-
},
|
|
30
|
-
"minecraft:pushable": {
|
|
31
|
-
"is_pushable": true,
|
|
32
|
-
"is_pushable_by_piston": true
|
|
33
|
-
},
|
|
34
|
-
"minecraft:type_family": {
|
|
35
|
-
"family": [
|
|
36
|
-
"test_entity_ctrl1"
|
|
37
|
-
]
|
|
38
|
-
},
|
|
39
|
-
"minecraft:spawn_entity": {
|
|
40
|
-
"entities": [
|
|
41
|
-
{
|
|
42
|
-
"min_wait_time": 0,
|
|
43
|
-
"max_wait_time": 0,
|
|
44
|
-
"spawn_entity": "sapdon:test_entity_ctrl2",
|
|
45
|
-
"single_use": true,
|
|
46
|
-
"num_to_spawn": 1,
|
|
47
|
-
"should_leash": true
|
|
48
|
-
}
|
|
49
|
-
]
|
|
50
|
-
}
|
|
51
|
-
},
|
|
52
|
-
"component_groups": {},
|
|
53
|
-
"events": {}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"format_version": "1.16.0",
|
|
3
|
-
"minecraft:entity": {
|
|
4
|
-
"description": {
|
|
5
|
-
"identifier": "sapdon:test_entity_ctrl2",
|
|
6
|
-
"is_spawnable": true,
|
|
7
|
-
"is_summonable": true,
|
|
8
|
-
"runtime_identifier": "minecraft:slime"
|
|
9
|
-
},
|
|
10
|
-
"components": {
|
|
11
|
-
"minecraft:health": {
|
|
12
|
-
"max": 20,
|
|
13
|
-
"value": 20
|
|
14
|
-
},
|
|
15
|
-
"minecraft:collision_box": {
|
|
16
|
-
"width": 1,
|
|
17
|
-
"height": 1
|
|
18
|
-
},
|
|
19
|
-
"minecraft:physics": {
|
|
20
|
-
"has_collision": true,
|
|
21
|
-
"has_gravity": true,
|
|
22
|
-
"push_towards_closest_space": true
|
|
23
|
-
},
|
|
24
|
-
"minecraft:movement": {
|
|
25
|
-
"value": 0.2
|
|
26
|
-
},
|
|
27
|
-
"minecraft:movement.basic": {
|
|
28
|
-
"max_turn": 30
|
|
29
|
-
},
|
|
30
|
-
"minecraft:pushable": {
|
|
31
|
-
"is_pushable": true,
|
|
32
|
-
"is_pushable_by_piston": true
|
|
33
|
-
},
|
|
34
|
-
"minecraft:type_family": {
|
|
35
|
-
"family": [
|
|
36
|
-
"test_entity_ctrl2"
|
|
37
|
-
]
|
|
38
|
-
},
|
|
39
|
-
"minecraft:behavior.follow_caravan": {
|
|
40
|
-
"priority": 3,
|
|
41
|
-
"speed_multiplier": 2.1,
|
|
42
|
-
"entity_count": 10,
|
|
43
|
-
"entity_types": {
|
|
44
|
-
"filters": {
|
|
45
|
-
"test": "is_family",
|
|
46
|
-
"subject": "other",
|
|
47
|
-
"value": "test_entity_body"
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
},
|
|
51
|
-
"minecraft:leashable": {
|
|
52
|
-
"soft_distance": 4,
|
|
53
|
-
"hard_distance": 6,
|
|
54
|
-
"max_distance": 10,
|
|
55
|
-
"can_be_stolen": false
|
|
56
|
-
}
|
|
57
|
-
},
|
|
58
|
-
"component_groups": {},
|
|
59
|
-
"events": {}
|
|
60
|
-
}
|
|
61
|
-
}
|