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.
Files changed (283) hide show
  1. package/LICENSE +1 -1
  2. package/doc/BlockAPI.md +145 -0
  3. package/doc/api.md +1 -1
  4. package/doc/hello_sapdon/a9aad643f5609da73404d1f7f35fd5d0.png +0 -0
  5. package/doc/hello_sapdon/sapdon/344/275/277/347/224/250/346/225/231/347/250/213.md +159 -0
  6. package/examples/guidebook/build.config +33 -0
  7. package/examples/guidebook/dev/guidebook_BP/items/sapdon_test_guidebook.json +19 -0
  8. package/examples/{masterball/dev/masterball_BP/masterball_BP_1_20_20 → guidebook/dev/guidebook_BP}/manifest.json +63 -59
  9. package/examples/guidebook/dev/guidebook_BP/scripts/custom_components/cropComponent.js +50 -0
  10. package/examples/guidebook/dev/guidebook_BP/scripts/custom_components/items/gui_book.js +37 -0
  11. package/examples/guidebook/dev/guidebook_BP/scripts/custom_components/registry.js +20 -0
  12. package/examples/guidebook/dev/guidebook_BP/scripts/index.js +3 -0
  13. package/examples/guidebook/dev/guidebook_RP/blocks.json +3 -0
  14. package/examples/guidebook/dev/guidebook_RP/manifest.json +44 -0
  15. package/examples/guidebook/dev/guidebook_RP/models/blocks/crop.geo.json +48 -0
  16. package/examples/{masterball/dev/masterball_RP/masterball_RP_1_20_20.zip → guidebook/dev/guidebook_RP/pack_icon.png} +0 -0
  17. package/examples/guidebook/dev/guidebook_RP/textures/blocks/test_log_oak.png +0 -0
  18. package/examples/guidebook/dev/guidebook_RP/textures/blocks/test_log_top.png +0 -0
  19. package/examples/guidebook/dev/guidebook_RP/textures/flipbook_textures.json +1 -0
  20. package/examples/guidebook/dev/guidebook_RP/textures/item_texture.json +9 -0
  21. package/examples/guidebook/dev/guidebook_RP/textures/items/masterball.png +0 -0
  22. package/examples/guidebook/dev/guidebook_RP/textures/terrain_texture.json +14 -0
  23. package/examples/guidebook/dev/guidebook_RP/ui/_ui_defs.json +6 -0
  24. package/examples/guidebook/dev/guidebook_RP/ui/guidebook.json +581 -0
  25. package/examples/guidebook/dev/guidebook_RP/ui/server_form.json +91 -0
  26. package/examples/guidebook/main.mjs +66 -0
  27. package/examples/guidebook/mod.info +7 -0
  28. package/examples/{masterball/dev/masterball_BP/masterball_BP_1_20_20.zip → guidebook/pack_icon.png} +0 -0
  29. package/examples/guidebook/res/models/blocks/crop.geo.json +48 -0
  30. package/examples/guidebook/res/textures/blocks/test_log_oak.png +0 -0
  31. package/examples/guidebook/res/textures/blocks/test_log_top.png +0 -0
  32. package/examples/guidebook/res/textures/items/masterball.png +0 -0
  33. package/examples/guidebook/scripts/custom_components/cropComponent.js +50 -0
  34. package/examples/guidebook/scripts/custom_components/items/gui_book.js +37 -0
  35. package/examples/guidebook/scripts/custom_components/registry.js +20 -0
  36. package/examples/guidebook/scripts/index.js +3 -0
  37. package/examples/hello_sapdon/build.config +29 -0
  38. package/examples/hello_sapdon/main.mjs +3 -0
  39. package/examples/hello_sapdon/mod.info +7 -0
  40. package/examples/hello_sapdon/pack_icon.png +0 -0
  41. package/examples/hello_sapdon/res/models/blocks/crop.geo.json +48 -0
  42. package/examples/hello_sapdon/res/textures/blocks/test_log_oak.png +0 -0
  43. package/examples/hello_sapdon/res/textures/blocks/test_log_top.png +0 -0
  44. package/examples/hello_sapdon/res/textures/items/masterball.png +0 -0
  45. package/examples/hello_sapdon/scripts/custom_components/cropComponent.js +50 -0
  46. package/examples/hello_sapdon/scripts/custom_components/items/gui_book.js +37 -0
  47. package/examples/hello_sapdon/scripts/custom_components/registry.js +25 -0
  48. package/examples/hello_sapdon/scripts/index.js +0 -0
  49. package/examples/masterball/build.config +1 -0
  50. package/examples/masterball/dev/masterball_1_20_30.mcaddon +0 -0
  51. package/examples/masterball/dev/masterball_BP/entities/sapdon_projectile_masterball.json +56 -55
  52. package/examples/masterball/dev/masterball_BP/manifest.json +59 -59
  53. package/examples/masterball/dev/masterball_BP/pack_icon.png +0 -0
  54. package/examples/masterball/dev/masterball_BP/recipes/masterball.json +25 -0
  55. package/examples/masterball/dev/masterball_BP_1_20_30.mcpack +0 -0
  56. package/examples/masterball/dev/masterball_RP/attachables/sapdon_caught_masterball.json +19 -0
  57. package/examples/masterball/dev/masterball_RP/manifest.json +43 -43
  58. package/examples/masterball/dev/masterball_RP/pack_icon.png +0 -0
  59. package/examples/masterball/dev/masterball_RP/textures/flipbook_textures.json +1 -0
  60. package/examples/masterball/dev/masterball_RP/ui/_ui_defs.json +3 -0
  61. package/examples/masterball/dev/masterball_RP_1_20_30.mcpack +0 -0
  62. package/examples/masterball/main.mjs +18 -1
  63. package/examples/masterball/pack_icon.png +0 -0
  64. package/examples/mob_chest/build.config +29 -0
  65. package/examples/mob_chest/dev/mob_chest_BP/blocks/mob_chest_chest.json +56 -0
  66. package/examples/mob_chest/dev/mob_chest_BP/entities/mob_chest_chest_entity.json +79 -0
  67. package/examples/mob_chest/dev/mob_chest_BP/manifest.json +64 -0
  68. package/examples/mob_chest/dev/mob_chest_BP/pack_icon.png +0 -0
  69. package/examples/mob_chest/dev/mob_chest_BP/scripts/custom_components/block/block_with_entity.js +46 -0
  70. package/examples/mob_chest/dev/mob_chest_BP/scripts/custom_components/block/cropComponent.js +50 -0
  71. package/examples/mob_chest/dev/mob_chest_BP/scripts/custom_components/items/gui_book.js +37 -0
  72. package/examples/mob_chest/dev/mob_chest_BP/scripts/custom_components/registry.js +25 -0
  73. package/examples/mob_chest/dev/mob_chest_BP/scripts/index.js +4 -0
  74. package/examples/mob_chest/dev/mob_chest_RP/animation_controllers/mob_chest.animation_controllers.json +30 -0
  75. package/examples/mob_chest/dev/mob_chest_RP/animations/animation_item.animation.json +34 -0
  76. package/examples/mob_chest/dev/mob_chest_RP/animations/large_item.animation.json +27 -0
  77. package/examples/mob_chest/dev/mob_chest_RP/animations/mob_chest.animation.json +64 -0
  78. package/examples/mob_chest/dev/mob_chest_RP/blocks.json +13 -0
  79. package/examples/mob_chest/dev/mob_chest_RP/entity/mob_chest_chest_entity.json +32 -0
  80. package/examples/mob_chest/dev/mob_chest_RP/manifest.json +44 -0
  81. package/examples/mob_chest/dev/mob_chest_RP/models/blocks/crop.geo.json +48 -0
  82. package/examples/mob_chest/dev/mob_chest_RP/models/blocks/cube.geo.json +35 -0
  83. package/examples/mob_chest/dev/mob_chest_RP/models/blocks/empty.geo.json +35 -0
  84. package/examples/mob_chest/dev/mob_chest_RP/models/entity/mob_chest.geo.json +98 -0
  85. package/examples/mob_chest/dev/mob_chest_RP/pack_icon.png +0 -0
  86. package/examples/mob_chest/dev/mob_chest_RP/textures/blocks/entity/double_normal.png +0 -0
  87. package/examples/mob_chest/dev/mob_chest_RP/textures/blocks/entity/none.png +0 -0
  88. package/examples/mob_chest/dev/mob_chest_RP/textures/blocks/entity/normal.png +0 -0
  89. package/examples/mob_chest/dev/mob_chest_RP/textures/blocks/test_log_oak.png +0 -0
  90. package/examples/mob_chest/dev/mob_chest_RP/textures/blocks/test_log_top.png +0 -0
  91. package/examples/mob_chest/dev/mob_chest_RP/textures/flipbook_textures.json +1 -0
  92. package/examples/mob_chest/dev/mob_chest_RP/textures/item_texture.json +9 -0
  93. package/examples/mob_chest/dev/mob_chest_RP/textures/items/masterball.png +0 -0
  94. package/examples/mob_chest/dev/mob_chest_RP/textures/terrain_texture.json +23 -0
  95. package/examples/mob_chest/dev/mob_chest_RP/ui/_ui_defs.json +3 -0
  96. package/examples/mob_chest/main.mjs +31 -0
  97. package/examples/mob_chest/mod.info +7 -0
  98. package/examples/mob_chest/pack_icon.png +0 -0
  99. package/examples/mob_chest/res/animation_controllers/mob_chest.animation_controllers.json +30 -0
  100. package/examples/mob_chest/res/animations/animation_item.animation.json +34 -0
  101. package/examples/mob_chest/res/animations/large_item.animation.json +27 -0
  102. package/examples/mob_chest/res/animations/mob_chest.animation.json +64 -0
  103. package/examples/mob_chest/res/models/blocks/crop.geo.json +48 -0
  104. package/examples/mob_chest/res/models/blocks/cube.geo.json +35 -0
  105. package/examples/mob_chest/res/models/blocks/empty.geo.json +35 -0
  106. package/examples/mob_chest/res/models/entity/mob_chest.geo.json +98 -0
  107. package/examples/mob_chest/res/textures/blocks/entity/double_normal.png +0 -0
  108. package/examples/mob_chest/res/textures/blocks/entity/none.png +0 -0
  109. package/examples/mob_chest/res/textures/blocks/entity/normal.png +0 -0
  110. package/examples/mob_chest/res/textures/blocks/test_log_oak.png +0 -0
  111. package/examples/mob_chest/res/textures/blocks/test_log_top.png +0 -0
  112. package/examples/mob_chest/res/textures/items/masterball.png +0 -0
  113. package/examples/mob_chest/resource/cube.bbmodel +1 -0
  114. package/examples/mob_chest/resource/flipbook_item.bbmodel +1 -0
  115. package/examples/mob_chest/resource/flipbook_item.geo.bbmodel +1 -0
  116. package/examples/mob_chest/resource/flipbook_item.geo.json +3124 -0
  117. package/examples/mob_chest/resource/mob_chest.bbmodel +1 -0
  118. package/examples/mob_chest/scripts/custom_components/block/block_with_entity.js +46 -0
  119. package/examples/mob_chest/scripts/custom_components/block/cropComponent.js +50 -0
  120. package/examples/mob_chest/scripts/custom_components/items/gui_book.js +37 -0
  121. package/examples/mob_chest/scripts/custom_components/registry.js +25 -0
  122. package/examples/mob_chest/scripts/index.js +4 -0
  123. package/examples/test/build.config +29 -0
  124. package/examples/test/dev/test_BP/blocks/sapdon_ore_cinnabar.json +15 -15
  125. package/examples/test/dev/test_BP/blocks/sapdon_test_block.json +15 -15
  126. package/examples/test/dev/test_BP/blocks/sapdon_test_crop.json +191 -191
  127. package/examples/test/dev/test_BP/blocks/sapdon_wire.json +102 -102
  128. package/examples/test/dev/test_BP/entities/sapdon_test_projectile.json +56 -55
  129. package/examples/test/dev/test_BP/feature_rules/ore_cinnabar_orefeatre_rule.json +52 -52
  130. package/examples/test/dev/test_BP/feature_rules/overworld_underground_titanite_ore_feature.json +52 -52
  131. package/examples/test/dev/test_BP/features/ore_cinnabar_ore_feature.json +16 -16
  132. package/examples/test/dev/test_BP/features/titanite_ore_feature.json +22 -22
  133. package/examples/test/dev/test_BP/items/sapdon_chest.json +22 -22
  134. package/examples/test/dev/test_BP/items/sapdon_test_book.json +19 -0
  135. package/examples/test/dev/test_BP/items/sapdon_test_food.json +25 -25
  136. package/examples/test/dev/test_BP/items/sapdon_test_item.json +30 -30
  137. package/examples/test/dev/test_BP/manifest.json +63 -59
  138. package/examples/test/dev/test_BP/recipes/sapdon_test_furnace.json +12 -12
  139. package/examples/test/dev/test_BP/scripts/custom_components/cropComponent.js +1 -10
  140. package/examples/test/dev/test_BP/scripts/custom_components/items/gui_book.js +37 -0
  141. package/examples/test/dev/test_BP/scripts/custom_components/registry.js +20 -0
  142. package/examples/test/dev/test_BP/scripts/index.js +4 -3
  143. package/examples/test/dev/test_RP/attachables/sapdon_chest.json +24 -24
  144. package/examples/test/dev/test_RP/blocks.json +42 -42
  145. package/examples/test/dev/test_RP/entity/sapdon_test_projectile.json +27 -27
  146. package/examples/test/dev/test_RP/manifest.json +43 -43
  147. package/examples/test/dev/test_RP/models/blocks/arcane_workbench.geo.json +105 -105
  148. package/examples/test/dev/test_RP/models/blocks/jar_normal.geo.json +46 -46
  149. package/examples/test/dev/test_RP/models/blocks/jar_normal_0.geo.json +58 -58
  150. package/examples/test/dev/test_RP/models/blocks/jar_normal_1.geo.json +58 -58
  151. package/examples/test/dev/test_RP/models/blocks/jar_normal_2.geo.json +58 -58
  152. package/examples/test/dev/test_RP/models/blocks/jar_normal_3.geo.json +58 -58
  153. package/examples/test/dev/test_RP/models/blocks/wire.geo.json +153 -153
  154. package/examples/test/dev/test_RP/textures/item_texture.json +788 -788
  155. package/examples/test/dev/test_RP/textures/items/seals/seal_breaker.png.mcmeta +5 -5
  156. package/examples/test/dev/test_RP/textures/items/seals/seal_butcher.png.mcmeta +5 -5
  157. package/examples/test/dev/test_RP/textures/items/seals/seal_empty.png.mcmeta +5 -5
  158. package/examples/test/dev/test_RP/textures/items/seals/seal_empty_advanced.png.mcmeta +5 -5
  159. package/examples/test/dev/test_RP/textures/items/seals/seal_fill.png.mcmeta +5 -5
  160. package/examples/test/dev/test_RP/textures/items/seals/seal_fill_advanced.png.mcmeta +5 -5
  161. package/examples/test/dev/test_RP/textures/items/seals/seal_guard.png.mcmeta +5 -5
  162. package/examples/test/dev/test_RP/textures/items/seals/seal_guard_advanced.png.mcmeta +5 -5
  163. package/examples/test/dev/test_RP/textures/items/seals/seal_harvest.png.mcmeta +5 -5
  164. package/examples/test/dev/test_RP/textures/items/seals/seal_lumber.png.mcmeta +5 -5
  165. package/examples/test/dev/test_RP/textures/items/seals/seal_pickup.png.mcmeta +5 -5
  166. package/examples/test/dev/test_RP/textures/items/seals/seal_pickup_advanced.png.mcmeta +5 -5
  167. package/examples/test/dev/test_RP/textures/items/seals/seal_provider.png.mcmeta +5 -5
  168. package/examples/test/dev/test_RP/textures/items/seals/seal_use.png.mcmeta +5 -5
  169. package/examples/test/dev/test_RP/textures/items/wand/cap_thaumium.png.mcmeta +11 -11
  170. package/examples/test/dev/test_RP/textures/items/wand/cap_void.png.mcmeta +11 -11
  171. package/examples/test/dev/test_RP/textures/items/wand/focus_pech.png.mcmeta +2 -2
  172. package/examples/test/dev/test_RP/textures/items/wand/focus_portablehole.png.mcmeta +2 -2
  173. package/examples/test/dev/test_RP/textures/items/wand/focus_primal.png.mcmeta +2 -2
  174. package/examples/test/dev/test_RP/textures/items/wand/focus_shard.png.mcmeta +2 -2
  175. package/examples/test/dev/test_RP/textures/items/wand/focus_warding.png.mcmeta +2 -2
  176. package/examples/test/dev/test_RP/textures/items/wand/rod_primal_mat.png.mcmeta +44 -44
  177. package/examples/test/dev/test_RP/textures/terrain_texture.json +136 -136
  178. package/examples/test/dev/test_RP/ui/_ui_defs.json +6 -0
  179. package/examples/test/dev/test_RP/ui/guidebook.json +446 -0
  180. package/examples/test/dev/test_RP/ui/server_form.json +91 -0
  181. package/examples/test/main.mjs +46 -1
  182. package/examples/test/res/models/blocks/arcane_workbench.geo.json +105 -105
  183. package/examples/test/res/models/blocks/jar_normal.geo.json +46 -46
  184. package/examples/test/res/models/blocks/jar_normal_0.geo.json +58 -58
  185. package/examples/test/res/models/blocks/jar_normal_1.geo.json +58 -58
  186. package/examples/test/res/models/blocks/jar_normal_2.geo.json +58 -58
  187. package/examples/test/res/models/blocks/jar_normal_3.geo.json +58 -58
  188. package/examples/test/res/models/blocks/wire.geo.json +153 -153
  189. package/examples/test/res/textures/items/seals/seal_breaker.png.mcmeta +5 -5
  190. package/examples/test/res/textures/items/seals/seal_butcher.png.mcmeta +5 -5
  191. package/examples/test/res/textures/items/seals/seal_empty.png.mcmeta +5 -5
  192. package/examples/test/res/textures/items/seals/seal_empty_advanced.png.mcmeta +5 -5
  193. package/examples/test/res/textures/items/seals/seal_fill.png.mcmeta +5 -5
  194. package/examples/test/res/textures/items/seals/seal_fill_advanced.png.mcmeta +5 -5
  195. package/examples/test/res/textures/items/seals/seal_guard.png.mcmeta +5 -5
  196. package/examples/test/res/textures/items/seals/seal_guard_advanced.png.mcmeta +5 -5
  197. package/examples/test/res/textures/items/seals/seal_harvest.png.mcmeta +5 -5
  198. package/examples/test/res/textures/items/seals/seal_lumber.png.mcmeta +5 -5
  199. package/examples/test/res/textures/items/seals/seal_pickup.png.mcmeta +5 -5
  200. package/examples/test/res/textures/items/seals/seal_pickup_advanced.png.mcmeta +5 -5
  201. package/examples/test/res/textures/items/seals/seal_provider.png.mcmeta +5 -5
  202. package/examples/test/res/textures/items/seals/seal_use.png.mcmeta +5 -5
  203. package/examples/test/res/textures/items/wand/cap_thaumium.png.mcmeta +11 -11
  204. package/examples/test/res/textures/items/wand/cap_void.png.mcmeta +11 -11
  205. package/examples/test/res/textures/items/wand/focus_pech.png.mcmeta +2 -2
  206. package/examples/test/res/textures/items/wand/focus_portablehole.png.mcmeta +2 -2
  207. package/examples/test/res/textures/items/wand/focus_primal.png.mcmeta +2 -2
  208. package/examples/test/res/textures/items/wand/focus_shard.png.mcmeta +2 -2
  209. package/examples/test/res/textures/items/wand/focus_warding.png.mcmeta +2 -2
  210. package/examples/test/res/textures/items/wand/rod_primal_mat.png.mcmeta +44 -44
  211. package/examples/test/scripts/custom_components/cropComponent.js +1 -10
  212. package/examples/test/scripts/custom_components/items/gui_book.js +37 -0
  213. package/examples/test/scripts/custom_components/registry.js +20 -0
  214. package/examples/test/scripts/index.js +4 -3
  215. package/log.md +8 -0
  216. package/package.json +4 -1
  217. package/src/cli/build.js +210 -210
  218. package/src/cli/load.js +116 -112
  219. package/src/cli/tools/textureSet.js +114 -114
  220. package/src/cli/utils.js +82 -82
  221. package/src/core/addon/controllers/animation_controller.js +80 -0
  222. package/src/core/addon/entity/entity.js +52 -51
  223. package/src/core/block/GeometryBlock.js +8 -0
  224. package/src/core/block/OreBlock.js +1 -0
  225. package/src/core/block/TileBlock.js +117 -0
  226. package/src/core/block/block.js +106 -106
  227. package/src/core/block/blockComponent.js +557 -557
  228. package/src/core/block/cropBlock.js +1 -1
  229. package/src/core/entity/BasicEntity.js +195 -166
  230. package/src/core/entity/bundles/BasicBundle.js +51 -0
  231. package/src/core/factory/BlockFactory.js +166 -158
  232. package/src/core/factory/EntityFactory.js +82 -82
  233. package/src/core/factory/ItemFactory.js +120 -95
  234. package/src/core/factory/RecipeFactory.js +46 -46
  235. package/src/core/index.js +2 -1
  236. package/src/core/item/Item.js +96 -96
  237. package/src/core/item/ItemComponents.js +251 -235
  238. package/src/core/item/armor.js +117 -89
  239. package/src/core/item/attachable.js +33 -33
  240. package/src/core/item/food.js +61 -61
  241. package/src/core/registry.js +16 -16
  242. package/src/core/ui/Properties/{Grid.js → GridProp.js} +2 -2
  243. package/src/core/ui/Properties/Sound.js +72 -0
  244. package/src/core/ui/elements/Button.js +111 -0
  245. package/src/core/ui/elements/CollectionPanel.js +61 -0
  246. package/src/core/ui/elements/Grid.js +24 -0
  247. package/src/core/ui/elements/Image.js +4 -0
  248. package/src/core/ui/elements/Label.js +10 -2
  249. package/src/core/ui/elements/Panel.js +7 -0
  250. package/src/core/ui/elements/ScrollingPanel.js +68 -0
  251. package/src/core/ui/elements/StackPanel.js +40 -0
  252. package/src/core/ui/elements/UIElement.js +43 -2
  253. package/src/core/ui/registry/UISystemRegistry.js +35 -0
  254. package/src/core/ui/systems/UISystem.js +9 -5
  255. package/src/core/ui/systems/guidebook.js +299 -0
  256. package/src/core/ui/systems/server_form.js +94 -83
  257. package/src/templates/test_sapdon/build.config +28 -28
  258. package/src/templates/test_sapdon/res/animations/animation_item.animation.json +34 -0
  259. package/src/templates/test_sapdon/res/animations/large_item.animation.json +27 -0
  260. package/src/templates/test_sapdon/res/models/entity/animation/animation_item.geo.json +26 -0
  261. package/src/templates/test_sapdon/res/models/entity/animation/large_item.geo.json +28 -0
  262. package/src/templates/test_sapdon/res/textures/blocks/none.png +0 -0
  263. package/src/templates/test_sapdon/scripts/custom_components/cropComponent.js +50 -0
  264. package/src/templates/test_sapdon/scripts/custom_components/items/gui_book.js +37 -0
  265. package/src/templates/test_sapdon/scripts/custom_components/registry.js +25 -0
  266. package/examples/masterball/dev/masterball[1.20.20+].mcaddon.zip +0 -0
  267. package/examples/masterball/dev/masterball_BP/masterball_BP_1_20_20/entities/sapdon_projectile_masterball.json +0 -56
  268. package/examples/masterball/dev/masterball_BP/masterball_BP_1_20_20/items/sapdon_caught_masterball.json +0 -32
  269. package/examples/masterball/dev/masterball_BP/masterball_BP_1_20_20/items/sapdon_uncaught_masterball.json +0 -31
  270. package/examples/masterball/dev/masterball_BP/masterball_BP_1_20_20/scripts/index.js +0 -159
  271. package/examples/test/dev/test_BP/biomes/test_biome.json +0 -48
  272. package/examples/test/dev/test_BP/blocks/sapdon_block.json +0 -111
  273. package/examples/test/dev/test_BP/entities/sapdon_body.json +0 -118
  274. package/examples/test/dev/test_BP/entities/sapdon_test_entity_ctrl1.json +0 -55
  275. package/examples/test/dev/test_BP/entities/sapdon_test_entity_ctrl2.json +0 -61
  276. package/examples/test/dev/test_BP/entities/sapdon_test_entity_header.json +0 -408
  277. package/examples/test/dev/test_RP/entity/sapdon_body.json +0 -44
  278. package/examples/test/dev/test_RP/entity/sapdon_test_entity_ctrl1.json +0 -38
  279. package/examples/test/dev/test_RP/entity/sapdon_test_entity_ctrl2.json +0 -38
  280. package/examples/test/dev/test_RP/entity/sapdon_test_entity_header.json +0 -44
  281. package/src/cli/build.config +0 -4
  282. package/src/core/ui/registry/ServerUISystem.js +0 -19
  283. /package/examples/{masterball/dev/masterball_BP/masterball_BP_1_20_20 → guidebook/dev/guidebook_BP}/pack_icon.png +0 -0
@@ -5,7 +5,7 @@ export class CropBlock extends Block {
5
5
  /**
6
6
  * 作物方块类
7
7
  * @param {string} identifier 方块的唯一标识符
8
- * @param {string} category 方块的分类(如 "construction"
8
+ * @param {string} category 方块的分类 "construction", "nature", "equipment", "items", and "none"
9
9
  * @param {Array} variantDatas 方块的变体数据,包含每个变体的状态标签和纹理
10
10
  * @param {Object} options 可选参数
11
11
  * @param {string} options.group 分组,默认为 "construction"
@@ -1,167 +1,196 @@
1
- import { AddonEntity, AddonEntityDefinition, AddonEntityDescription } from "../addon/entity/entity.js";
2
-
3
- export class BasicEntity {
4
- /**
5
- * 构造函数
6
- * @param {string} identifier - 实体的唯一标识符
7
- * @param {Object} options - 配置选项
8
- * @param {boolean} [options.is_spawnable=true] - 是否可生成
9
- * @param {boolean} [options.is_summonable=true] - 是否可召唤
10
- * @param {string} [options.runtime_identifier] - 复刻标识符
11
- * @param {Object} data - 继承的数据
12
- * @param {Object} [data.components={}] - 继承的组件
13
- * @param {Object} [data.component_groups={}] - 继承的组件组
14
- * @param {Object} [data.events={}] - 继承的事件
15
- */
16
- constructor(identifier, options = {}, data = {}) {
17
- // 参数验证
18
- if (typeof identifier !== 'string' || !identifier) {
19
- throw new Error('identifier must be a non-empty string.');
20
- }
21
- if (options.runtime_identifier && typeof options.runtime_identifier !== 'string') {
22
- throw new Error('runtime_identifier must be a string.');
23
- }
24
-
25
- this.identifier = identifier;
26
- this.is_spawnable = options.is_spawnable ?? true;
27
- this.is_summonable = options.is_summonable ?? true;
28
- this.runtime_identifier = options.runtime_identifier;
29
-
30
- // 初始化 components、component_groups 和 events,确保 data 中的值为对象
31
- this.components = new Map(Object.entries(data.components || {}));
32
- this.component_groups = new Map(Object.entries(data.component_groups || {}));
33
- this.events = new Map(Object.entries(data.events || {}));
34
- }
35
-
36
- /**
37
- * 添加事件到实体
38
- * @param {string} name - 事件名称
39
- * @param {Map} eventMap - 事件的键值对 Map
40
- * @returns {BasicEntity} - 返回当前实例以支持链式调用
41
- */
42
- addEvent(name, eventMap) {
43
- if (!(eventMap instanceof Map)) {
44
- throw new Error("eventMap must be an instance of Map.");
45
- }
46
- this.events.set(name, eventMap);
47
- return this;
48
- }
49
-
50
- /**
51
- * 删除事件
52
- * @param {string} name - 事件名称
53
- * @returns {BasicEntity} - 返回当前实例以支持链式调用
54
- */
55
- removeEvent(name) {
56
- this.events.delete(name);
57
- return this;
58
- }
59
-
60
- /**
61
- * 清除所有事件
62
- * @returns {BasicEntity} - 返回当前实例以支持链式调用
63
- */
64
- clearEvents() {
65
- this.events.clear();
66
- return this;
67
- }
68
-
69
- /**
70
- * 添加组件组到实体
71
- * @param {string} name - 组件组名称
72
- * @param {Map} componentMap - 组件组的键值对 Map
73
- * @returns {BasicEntity} - 返回当前实例以支持链式调用
74
- */
75
- addComponentGroup(name, componentMap) {
76
- if (!(componentMap instanceof Map)) {
77
- throw new Error("componentMap must be an instance of Map.");
78
- }
79
- this.component_groups.set(name, componentMap);
80
- return this;
81
- }
82
-
83
- /**
84
- * 删除组件组
85
- * @param {string} name - 组件组名称
86
- * @returns {BasicEntity} - 返回当前实例以支持链式调用
87
- */
88
- removeComponentGroup(name) {
89
- this.component_groups.delete(name);
90
- return this;
91
- }
92
-
93
- /**
94
- * 清除所有组件组
95
- * @returns {BasicEntity} - 返回当前实例以支持链式调用
96
- */
97
- clearComponentGroups() {
98
- this.component_groups.clear();
99
- return this;
100
- }
101
-
102
- /**
103
- * 添加组件到实体
104
- * @param {Map} componentMap - 组件的键值对 Map
105
- * @returns {BasicEntity} - 返回当前实例以支持链式调用
106
- */
107
- addComponent(componentMap) {
108
- if (!(componentMap instanceof Map)) {
109
- throw new Error("componentMap must be an instance of Map.");
110
- }
111
-
112
- for (const [key, value] of componentMap) {
113
- this.components.set(key, value);
114
- }
115
- return this; // 支持链式调用
116
- }
117
-
118
- /**
119
- * 删除组件
120
- * @param {string} key - 组件名称
121
- * @returns {BasicEntity} - 返回当前实例以支持链式调用
122
- */
123
- removeComponent(key) {
124
- this.components.delete(key);
125
- return this;
126
- }
127
-
128
- /**
129
- * 清除所有组件
130
- * @returns {BasicEntity} - 返回当前实例以支持链式调用
131
- */
132
- clearComponents() {
133
- this.components.clear();
134
- return this;
135
- }
136
-
137
- /**
138
- * 清除所有数据
139
- */
140
- clearAll() {
141
- this.components.clear();
142
- this.component_groups.clear();
143
- this.events.clear();
144
- return this;
145
- }
146
-
147
- /**
148
- * 将实体转换为 JSON 格式
149
- * @returns {Object} - 返回 JSON 格式的实体数据
150
- */
151
- toJson() {
152
- return new AddonEntity(
153
- "1.16.0",
154
- new AddonEntityDefinition(
155
- new AddonEntityDescription(
156
- this.identifier,
157
- this.is_spawnable,
158
- this.is_summonable,
159
- this.runtime_identifier
160
- ),
161
- Object.fromEntries(this.components), // 将 Map 转换为普通对象
162
- Object.fromEntries(this.component_groups), // 将 Map 转换为普通对象
163
- Object.fromEntries(this.events) // 将 Map 转换为普通对象
164
- )
165
- ).toJson();
166
- }
1
+ import { AddonEntity, AddonEntityDefinition, AddonEntityDescription } from "../addon/entity/entity.js";
2
+
3
+ export class BasicEntity {
4
+ /**
5
+ * 构造函数
6
+ * @param {string} identifier - 实体的唯一标识符
7
+ * @param {Object} options - 配置选项
8
+ * @param {boolean} [options.is_spawnable=true] - 是否可生成
9
+ * @param {boolean} [options.is_summonable=true] - 是否可召唤
10
+ * @param {string} [options.runtime_identifier] - 复刻标识符
11
+ * @param {Object} data - 继承的数据
12
+ * @param {Object} [data.components={}] - 继承的组件
13
+ * @param {Object} [data.component_groups={}] - 继承的组件组
14
+ * @param {Object} [data.events={}] - 继承的事件
15
+ */
16
+ constructor(identifier, options = {}, data = {}) {
17
+ // 参数验证
18
+ if (typeof identifier !== 'string' || !identifier) {
19
+ throw new Error('identifier must be a non-empty string.');
20
+ }
21
+ if (options.runtime_identifier && typeof options.runtime_identifier !== 'string') {
22
+ throw new Error('runtime_identifier must be a string.');
23
+ }
24
+
25
+ this.identifier = identifier;
26
+ this.is_spawnable = options.is_spawnable ?? true;
27
+ this.is_summonable = options.is_summonable ?? true;
28
+ this.runtime_identifier = options.runtime_identifier;
29
+
30
+ // 初始化 components、component_groups 和 events,确保 data 中的值为对象
31
+ this.properties = new Map(Object.entries(data.description?data.description.properties|| {} :{}));
32
+ this.components = new Map(Object.entries(data.components || {}));
33
+ this.component_groups = new Map(Object.entries(data.component_groups || {}));
34
+ this.events = new Map(Object.entries(data.events || {}));
35
+ }
36
+ /**
37
+ * 添加属性到实体
38
+ * @param {string} name 属性名称
39
+ * @param {Object} value 属性值
40
+ * @returns
41
+ */
42
+ addProperty(name, value) {
43
+ this.properties.set(name, value);
44
+ return this;
45
+ }
46
+ /**
47
+ * 移除属性
48
+ * @param {string} name 属性名称
49
+ * @returns
50
+ */
51
+ removeProperty(name) {
52
+ this.properties.delete(name);
53
+ return this;
54
+ }
55
+ /**
56
+ * 移除所有属性
57
+ * @returns
58
+ */
59
+ clearProperties() {
60
+ this.properties.clear();
61
+ return this;
62
+ }
63
+
64
+ /**
65
+ * 添加事件到实体
66
+ * @param {string} name - 事件名称
67
+ * @param {Object} event - 事件
68
+ * @returns {BasicEntity} - 返回当前实例以支持链式调用
69
+ */
70
+ addEvent(name, event) {
71
+ if (!(event instanceof Object)) {
72
+ throw new Error("eventMap must be an Object.");
73
+ }
74
+ this.events.set(name, event);
75
+ return this;
76
+ }
77
+
78
+ /**
79
+ * 删除事件
80
+ * @param {string} name - 事件名称
81
+ * @returns {BasicEntity} - 返回当前实例以支持链式调用
82
+ */
83
+ removeEvent(name) {
84
+ this.events.delete(name);
85
+ return this;
86
+ }
87
+
88
+ /**
89
+ * 清除所有事件
90
+ * @returns {BasicEntity} - 返回当前实例以支持链式调用
91
+ */
92
+ clearEvents() {
93
+ this.events.clear();
94
+ return this;
95
+ }
96
+
97
+ /**
98
+ * 添加组件组到实体
99
+ * @param {string} name - 组件组名称
100
+ * @param {Map} componentMap - 组件组的键值对 Map
101
+ * @returns {BasicEntity} - 返回当前实例以支持链式调用
102
+ */
103
+ addComponentGroup(name, componentMap) {
104
+ if (!(componentMap instanceof Map)) {
105
+ throw new Error("componentMap must be an instance of Map.");
106
+ }
107
+ this.component_groups.set(name, componentMap);
108
+ return this;
109
+ }
110
+
111
+ /**
112
+ * 删除组件组
113
+ * @param {string} name - 组件组名称
114
+ * @returns {BasicEntity} - 返回当前实例以支持链式调用
115
+ */
116
+ removeComponentGroup(name) {
117
+ this.component_groups.delete(name);
118
+ return this;
119
+ }
120
+
121
+ /**
122
+ * 清除所有组件组
123
+ * @returns {BasicEntity} - 返回当前实例以支持链式调用
124
+ */
125
+ clearComponentGroups() {
126
+ this.component_groups.clear();
127
+ return this;
128
+ }
129
+
130
+ /**
131
+ * 添加组件到实体
132
+ * @param {Map} componentMap - 组件的键值对 Map
133
+ * @returns {BasicEntity} - 返回当前实例以支持链式调用
134
+ */
135
+ addComponent(componentMap) {
136
+ if (!(componentMap instanceof Map)) {
137
+ throw new Error("componentMap must be an instance of Map.");
138
+ }
139
+
140
+ for (const [key, value] of componentMap) {
141
+ this.components.set(key, value);
142
+ }
143
+ return this; // 支持链式调用
144
+ }
145
+
146
+ /**
147
+ * 删除组件
148
+ * @param {string} key - 组件名称
149
+ * @returns {BasicEntity} - 返回当前实例以支持链式调用
150
+ */
151
+ removeComponent(key) {
152
+ this.components.delete(key);
153
+ return this;
154
+ }
155
+
156
+ /**
157
+ * 清除所有组件
158
+ * @returns {BasicEntity} - 返回当前实例以支持链式调用
159
+ */
160
+ clearComponents() {
161
+ this.components.clear();
162
+ return this;
163
+ }
164
+
165
+ /**
166
+ * 清除所有数据
167
+ */
168
+ clearAll() {
169
+ this.components.clear();
170
+ this.component_groups.clear();
171
+ this.events.clear();
172
+ return this;
173
+ }
174
+
175
+ /**
176
+ * 将实体转换为 JSON 格式
177
+ * @returns {Object} - 返回 JSON 格式的实体数据
178
+ */
179
+ toJson() {
180
+ return new AddonEntity(
181
+ "1.16.0",
182
+ new AddonEntityDefinition(
183
+ new AddonEntityDescription(
184
+ this.identifier,
185
+ this.is_spawnable,
186
+ this.is_summonable,
187
+ Object.fromEntries(this.properties),
188
+ this.runtime_identifier
189
+ ),
190
+ Object.fromEntries(this.components), // 将 Map 转换为普通对象
191
+ Object.fromEntries(this.component_groups), // 将 Map 转换为普通对象
192
+ Object.fromEntries(this.events) // 将 Map 转换为普通对象
193
+ )
194
+ ).toJson();
195
+ }
167
196
  }
@@ -0,0 +1,51 @@
1
+ import { EntityComponent } from "../componets/EntityComponet.js";
2
+
3
+ export class BasicBundle {
4
+ //私有属性 存储组件
5
+ #components = new Map();
6
+ /**
7
+ * 捆绑包 捆绑包是一个附带有一些实体组件的集合,能够方便地将这些组件添加到一个实体上。
8
+ */
9
+ constructor() {
10
+ //空构造函数
11
+
12
+ }
13
+ /**
14
+ * 添加组件到捆绑包
15
+ * @param {Map} componentMap 组件
16
+ * @returns {BasicBundle} 返回捆绑包对象
17
+ */
18
+ addComponent(componentMap) {
19
+ if (!(componentMap instanceof Map)) {
20
+ throw new Error("componentMap must be an instance of Map.");
21
+ }
22
+
23
+ for (const [key, value] of componentMap) {
24
+ this.#components.set(key, value);
25
+ }
26
+ return this; // 支持链式调用
27
+ }
28
+ addComponents(components){
29
+ components.forEach(component_map => {
30
+ this.addComponent(component_map)
31
+ });
32
+ }
33
+ removeComponent(name) {
34
+ this.#components.delete(name);
35
+ return this;
36
+ }
37
+ //序列化
38
+ serialize() {
39
+ return this.#components;
40
+ }
41
+ }
42
+
43
+
44
+ //移动捆绑包
45
+ export const BasicMovementBundle = new BasicBundle();
46
+
47
+ MovementBundle.addComponents([
48
+ //speed
49
+ EntityComponent.setMovement(0.2),
50
+ EntityComponent.setMovementBasic()
51
+ ])