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
@@ -0,0 +1,446 @@
1
+ {
2
+ "namespace": "sapdon_guidebook",
3
+ "form_button_template@common.button": {
4
+ "type": "button",
5
+ "bindings": [
6
+ {
7
+ "binding_type": "collection_details",
8
+ "binding_collection_name": "form_buttons"
9
+ },
10
+ {
11
+ "binding_type": "collection",
12
+ "binding_collection_name": "form_buttons",
13
+ "binding_name": "#form_button_text"
14
+ },
15
+ {
16
+ "binding_type": "view",
17
+ "source_property_name": "($binding_button_text = #form_button_text)",
18
+ "target_property_name": "#visible"
19
+ }
20
+ ],
21
+ "controls": [
22
+ {
23
+ "default": {
24
+ "type": "image",
25
+ "texture": "$default_texture"
26
+ }
27
+ },
28
+ {
29
+ "hover": {
30
+ "type": "image",
31
+ "texture": "$hover_texture"
32
+ }
33
+ },
34
+ {
35
+ "pressed": {
36
+ "type": "image",
37
+ "texture": "$pressed_texture"
38
+ }
39
+ }
40
+ ],
41
+ "$default_texture|default": "",
42
+ "$hover_texture|default": "",
43
+ "$pressed_texture|default": "",
44
+ "$binding_button_text|default": ""
45
+ },
46
+ "form_button_factory": {
47
+ "type": "collection_panel",
48
+ "collection_name": "form_buttons",
49
+ "bindings": [
50
+ {
51
+ "binding_name": "#form_button_length",
52
+ "binding_name_override": "#collection_length"
53
+ }
54
+ ],
55
+ "factory": {
56
+ "name": "buttons",
57
+ "control_name": "$button_control"
58
+ },
59
+ "controls": [
60
+ {
61
+ "debug_board": {
62
+ "type": "image",
63
+ "texture": "textures/ui/focus_border_white",
64
+ "nineslice_size": 1,
65
+ "size": [
66
+ "100%",
67
+ "100%"
68
+ ]
69
+ }
70
+ }
71
+ ]
72
+ },
73
+ "page_template": {
74
+ "type": "stack_panel",
75
+ "orientation": "horizontal",
76
+ "size": [
77
+ "90%",
78
+ "90%"
79
+ ],
80
+ "bindings": [
81
+ {
82
+ "binding_type": "view",
83
+ "source_property_name": "($binding_text = #form_text)",
84
+ "target_property_name": "#visible"
85
+ }
86
+ ],
87
+ "controls": [
88
+ {
89
+ "stack0": {
90
+ "type": "panel",
91
+ "size": [
92
+ "50%",
93
+ "100%"
94
+ ],
95
+ "controls": [
96
+ {
97
+ "page_left@$page_left_content": {}
98
+ }
99
+ ]
100
+ }
101
+ },
102
+ {
103
+ "stack1": {
104
+ "type": "panel",
105
+ "size": [
106
+ "50%",
107
+ "100%"
108
+ ],
109
+ "controls": [
110
+ {
111
+ "page_right@$page_right_content": {}
112
+ }
113
+ ]
114
+ }
115
+ }
116
+ ],
117
+ "$page_left_content | default": "",
118
+ "$page_right_content | default": ""
119
+ },
120
+ "guidebook_root_panel": {
121
+ "type": "panel",
122
+ "size": [
123
+ 320,
124
+ 207
125
+ ],
126
+ "controls": [
127
+ {
128
+ "book_background@book.book_background": {}
129
+ },
130
+ {
131
+ "book_page_stack_panel": {
132
+ "type": "stack_panel",
133
+ "orientation": "horizontal",
134
+ "size": [
135
+ 320,
136
+ 207
137
+ ],
138
+ "controls": [
139
+ {
140
+ "stack0": {
141
+ "type": "panel",
142
+ "size": "$page_size",
143
+ "controls": [
144
+ {
145
+ "book_left_panel": {
146
+ "type": "panel",
147
+ "controls": [
148
+ {
149
+ "page_crease_image@book.page_crease_left_image": {
150
+ "size": [
151
+ "100% - 40px",
152
+ "100% - 14px"
153
+ ],
154
+ "offset": [
155
+ 0,
156
+ -2
157
+ ]
158
+ }
159
+ },
160
+ {
161
+ "page_edge_image@book.page_edge_left_image": {
162
+ "size": [
163
+ "100% - 7px",
164
+ "100% - 16px"
165
+ ],
166
+ "offset": [
167
+ 7,
168
+ -1
169
+ ]
170
+ }
171
+ }
172
+ ]
173
+ }
174
+ }
175
+ ]
176
+ }
177
+ },
178
+ {
179
+ "stack1": {
180
+ "type": "panel",
181
+ "size": "$page_size",
182
+ "controls": [
183
+ {
184
+ "book_right_panel": {
185
+ "type": "panel",
186
+ "controls": [
187
+ {
188
+ "page_crease_image@book.page_crease_right_image": {
189
+ "size": [
190
+ "100% - 40px",
191
+ "100% - 14px"
192
+ ],
193
+ "offset": [
194
+ 0,
195
+ -2
196
+ ]
197
+ }
198
+ },
199
+ {
200
+ "page_edge_image@book.page_edge_right_image": {
201
+ "size": [
202
+ "100% - 7px",
203
+ "100% - 16px"
204
+ ],
205
+ "offset": [
206
+ -7,
207
+ -1
208
+ ]
209
+ }
210
+ }
211
+ ]
212
+ }
213
+ }
214
+ ]
215
+ }
216
+ }
217
+ ],
218
+ "$page_size": [
219
+ 160,
220
+ 207
221
+ ]
222
+ }
223
+ },
224
+ {
225
+ "page_content_root": {
226
+ "type": "panel",
227
+ "size": [
228
+ "90%",
229
+ "90%"
230
+ ],
231
+ "layer": 5,
232
+ "controls": [
233
+ {
234
+ "label_text_panel": {
235
+ "type": "panel",
236
+ "size": [
237
+ 32,
238
+ 8
239
+ ],
240
+ "anchor_from": "bottom_middle",
241
+ "anchor_to": "bottom_middle",
242
+ "controls": [
243
+ {
244
+ "page_content": {
245
+ "type": "label",
246
+ "text": "#form_text",
247
+ "color": [
248
+ 0,
249
+ 0,
250
+ 0
251
+ ]
252
+ }
253
+ }
254
+ ]
255
+ }
256
+ },
257
+ {
258
+ "page_index_0@page_template": {
259
+ "$binding_text": "page_index0",
260
+ "$page_left_content": "none",
261
+ "$page_right_content": "directory"
262
+ }
263
+ },
264
+ {
265
+ "page_index_1@page_template": {
266
+ "$binding_text": "page_index1",
267
+ "$page_left_content": "page_left_content1",
268
+ "$page_right_content": "right_content1"
269
+ }
270
+ },
271
+ {
272
+ "page_index_2@page_template": {
273
+ "$binding_text": "page_index2",
274
+ "$page_left_content": "right_content2",
275
+ "$page_right_content": "page_left_content2"
276
+ }
277
+ }
278
+ ]
279
+ }
280
+ },
281
+ {
282
+ "close_button": {
283
+ "type": "button",
284
+ "size": [
285
+ 14,
286
+ 14
287
+ ],
288
+ "anchor_from": "top_right",
289
+ "anchor_to": "top_right",
290
+ "button_mappings": [
291
+ {
292
+ "ignored": false,
293
+ "from_button_id": "button.menu_select",
294
+ "to_button_id": "button.menu_exit",
295
+ "mapping_type": "pressed",
296
+ "scope": null,
297
+ "input_mode_condition": null,
298
+ "ignore_input_scope": false,
299
+ "consume_event": false,
300
+ "handle_select": false,
301
+ "handle_deselect": false,
302
+ "button_up_right_of_first_refusal": false
303
+ }
304
+ ],
305
+ "controls": [
306
+ {
307
+ "default@book.close_button_default": {}
308
+ },
309
+ {
310
+ "hover@book.close_button_hover": {}
311
+ },
312
+ {
313
+ "pressed@book.close_button_pressed": {}
314
+ }
315
+ ]
316
+ }
317
+ },
318
+ {
319
+ "prev_button_panel": {
320
+ "type": "panel",
321
+ "size": [
322
+ 24,
323
+ 24
324
+ ],
325
+ "offset": [
326
+ 7,
327
+ -9
328
+ ],
329
+ "anchor_from": "bottom_left",
330
+ "anchor_to": "bottom_left",
331
+ "layer": 5,
332
+ "controls": [
333
+ {
334
+ "prev_button@form_button_factory": {
335
+ "$binding_button_text": "test1",
336
+ "$button_control": "sapdon_guidebook.form_button_template",
337
+ "$pressed_button_name": "button.form_button_click",
338
+ "$default_texture": "textures/ui/book_pageleft_default",
339
+ "$hover_texture": "textures/ui/book_pageleft_hover",
340
+ "$pressed_texture": "textures/ui/book_pageleft_pressed"
341
+ }
342
+ }
343
+ ]
344
+ }
345
+ },
346
+ {
347
+ "next_button_panel": {
348
+ "type": "panel",
349
+ "size": [
350
+ 24,
351
+ 24
352
+ ],
353
+ "offset": [
354
+ -7,
355
+ -9
356
+ ],
357
+ "anchor_from": "bottom_right",
358
+ "anchor_to": "bottom_right",
359
+ "layer": 5,
360
+ "controls": [
361
+ {
362
+ "next_button@form_button_factory": {
363
+ "$binding_button_text": "test2",
364
+ "$button_control": "sapdon_guidebook.form_button_template",
365
+ "$pressed_button_name": "button.form_button_click",
366
+ "$default_texture": "textures/ui/book_pageright_default",
367
+ "$hover_texture": "textures/ui/book_pageright_hover",
368
+ "$pressed_texture": "textures/ui/book_pageright_pressed"
369
+ }
370
+ }
371
+ ]
372
+ }
373
+ }
374
+ ]
375
+ },
376
+ "none": {
377
+ "type": "panel"
378
+ },
379
+ "directory": {
380
+ "type": "stack_panel",
381
+ "orientation": "vertical",
382
+ "controls": [
383
+ {
384
+ "stack0": {
385
+ "type": "panel",
386
+ "size": [
387
+ "100",
388
+ 32
389
+ ],
390
+ "controls": [
391
+ {
392
+ "type": "label",
393
+ "id": "tiltle",
394
+ "name": "tiltle",
395
+ "control": {},
396
+ "properties": {},
397
+ "variables": {},
398
+ "modifications": [],
399
+ "text": {
400
+ "text": "通用手册",
401
+ "color": [
402
+ 0,
403
+ 0,
404
+ 0
405
+ ]
406
+ },
407
+ "layout": {},
408
+ "dataBinding": {},
409
+ "factory": {}
410
+ }
411
+ ]
412
+ }
413
+ }
414
+ ]
415
+ },
416
+ "page_left_content1": {
417
+ "type": "image",
418
+ "texture": "textures/items/diamond_sword"
419
+ },
420
+ "right_content1": {
421
+ "type": "label",
422
+ "color": [
423
+ 0,
424
+ 0,
425
+ 0
426
+ ],
427
+ "text": "这是第一页右边的内容"
428
+ },
429
+ "right_content2": {
430
+ "type": "label",
431
+ "color": [
432
+ 0,
433
+ 0,
434
+ 0
435
+ ],
436
+ "text": "这是第二页左边的内容",
437
+ "size": [
438
+ 100,
439
+ 32
440
+ ]
441
+ },
442
+ "page_left_content2": {
443
+ "type": "image",
444
+ "texture": "textures/items/diamond"
445
+ }
446
+ }
@@ -0,0 +1,91 @@
1
+ {
2
+ "namespace": "server_form_server_form",
3
+ "custom_ui_template": {
4
+ "type": "panel",
5
+ "bindings": [
6
+ {
7
+ "binding_name": "#title_text"
8
+ },
9
+ {
10
+ "binding_type": "view",
11
+ "source_property_name": "(#title_text = $binding_text)",
12
+ "target_property_name": "#visible"
13
+ }
14
+ ],
15
+ "controls": [
16
+ {
17
+ "main@$main_content": {}
18
+ }
19
+ ]
20
+ },
21
+ "long_form": {
22
+ "modifications": [
23
+ {
24
+ "array_name": "bindings",
25
+ "operation": "insert_back",
26
+ "value": [
27
+ {
28
+ "binding_name": "#title_text"
29
+ },
30
+ {
31
+ "binding_type": "view",
32
+ "source_property_name": "((#title_text - 'guidebook') = #title_text)",
33
+ "target_property_name": "#visible"
34
+ }
35
+ ]
36
+ }
37
+ ]
38
+ },
39
+ "custom_root_panel": {
40
+ "type": "panel",
41
+ "bindings": [
42
+ {
43
+ "binding_name": "#title_text"
44
+ }
45
+ ],
46
+ "controls": [
47
+ {
48
+ "custom_form_root": {
49
+ "type": "panel",
50
+ "bindings": [
51
+ {
52
+ "binding_type": "view",
53
+ "source_control_name": "custom_root_panel",
54
+ "source_property_name": "(not ((#title_text - 'guidebook') = #title_text))",
55
+ "target_property_name": "#visible"
56
+ }
57
+ ],
58
+ "controls": [
59
+ {
60
+ "custom_ui_guidebook@custom_ui_template": {
61
+ "$main_content": "sapdon_guidebook.guidebook_root_panel",
62
+ "$binding_text": "guidebook"
63
+ }
64
+ }
65
+ ]
66
+ }
67
+ }
68
+ ]
69
+ },
70
+ "main_screen_content": {
71
+ "modifications": [
72
+ {
73
+ "array_name": "controls",
74
+ "operation": "insert_back",
75
+ "value": [
76
+ {
77
+ "custom_server_form_factory": {
78
+ "type": "panel",
79
+ "factory": {
80
+ "name": "server_form_factory",
81
+ "control_ids": {
82
+ "long_form": "@server_form.custom_root_panel"
83
+ }
84
+ }
85
+ }
86
+ }
87
+ ]
88
+ }
89
+ ]
90
+ }
91
+ }
@@ -15,6 +15,12 @@ import { BiomeComponent } from "../../src/core/biome/biomeComponent.js";
15
15
  import { FeatureAPI } from "../../src/core/factory/FeatureFactory.js";
16
16
  import { BiomeFilter } from "../../src/core/feature_rule/condition/BiomeFilter.js";
17
17
  import { CoordinateDistribution } from "../../src/core/feature_rule/distribution/CoordinateDistribution.js";
18
+ import { Guidebook } from "../../src/core/ui/systems/guidebook.js";
19
+ import { Image, Label, Panel } from "../../src/core/index.js";
20
+ import { StackPanel } from "../../src/core/ui/elements/StackPanel.js";
21
+ import { Text } from "../../src/core/ui/Properties/Text.js";
22
+ import { Sprite } from "../../src/core/ui/Properties/Sprite.js";
23
+ import { Layout } from "../../src/core/ui/Properties/Layout.js";
18
24
 
19
25
 
20
26
 
@@ -109,4 +115,43 @@ feature_rules.distribution.setIterations(10)
109
115
 
110
116
 
111
117
 
112
- BlockAPI.createOreBlock("sapdon:ore_cinnabar","construction",["ore_cinnabar"]);
118
+ BlockAPI.createOreBlock("sapdon:ore_cinnabar","construction",["ore_cinnabar"]);
119
+
120
+ ItemAPI.createItem("sapdon:test_book","items","masterball")
121
+ .addComponent(ItemComponent.setCustomComponents(["test:test_book"]))
122
+
123
+ //通用指导手册
124
+ const guidebook = new Guidebook("sapdon:guidebook","ui/")
125
+ //章节目录
126
+ guidebook.addPage("page_index0",new Panel("none"),
127
+ new StackPanel("directory")
128
+ //标题
129
+ .addStack(["100",32],
130
+ new Label("tiltle").setText(
131
+ new Text().setText("通用手册").setColor([0,0,0])
132
+ )
133
+ )
134
+ )
135
+ //第一页内容
136
+ guidebook.addPage("page_index1",
137
+ new Image("page_left_content1")
138
+ .setSprite(
139
+ new Sprite().setTexture("textures/items/diamond_sword")
140
+ ),
141
+ new Label("right_content1")
142
+ .setText(new Text().setColor([0,0,0]).setText("这是第一页右边的内容"))
143
+ )
144
+ //第一页内容
145
+ guidebook.addPage("page_index2",
146
+ new Label("right_content2")
147
+ .setLayout(
148
+ new Layout().setSize([100,32])
149
+ )
150
+ .setText(
151
+ new Text().setColor([0,0,0]).setText("这是第二页左边的内容")
152
+ ),
153
+ new Image("page_left_content2")
154
+ .setSprite(
155
+ new Sprite().setTexture("textures/items/diamond")
156
+ )
157
+ )