sapdon 3.0.3 → 3.2.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 (219) hide show
  1. package/README.md +11 -3
  2. package/doc/api.md +2 -2
  3. package/doc/oc/index.md +0 -0
  4. package/doc/sapdon-ts.md +7 -5
  5. package/package.json +18 -19
  6. package/{dist/cli/dev-server/server.d.ts → prod/cli/index.d.ts} +9 -3
  7. package/prod/cli/index.js +1 -0
  8. package/prod/cli/start.js +1428 -0
  9. package/{dist → prod}/core/index.d.ts +2325 -1643
  10. package/prod/core/index.js +59017 -0
  11. package/{dist → prod}/oc/index.d.ts +3 -3
  12. package/prod/oc/index.js +1 -0
  13. package/prod/utils/index.d.ts +41 -0
  14. package/prod/utils/index.js +1 -0
  15. package/dist/cli/build.d.ts +0 -7
  16. package/dist/cli/build.js +0 -234
  17. package/dist/cli/dev-server/client.d.ts +0 -2
  18. package/dist/cli/dev-server/client.js +0 -21
  19. package/dist/cli/dev-server/config.d.ts +0 -3
  20. package/dist/cli/dev-server/config.js +0 -3
  21. package/dist/cli/dev-server/handles.d.ts +0 -4
  22. package/dist/cli/dev-server/handles.js +0 -5
  23. package/dist/cli/dev-server/hmr.d.ts +0 -1
  24. package/dist/cli/dev-server/hmr.js +0 -13
  25. package/dist/cli/dev-server/index.d.ts +0 -4
  26. package/dist/cli/dev-server/index.js +0 -17
  27. package/dist/cli/dev-server/server.js +0 -59
  28. package/dist/cli/dev-server/syncFiles.d.ts +0 -3
  29. package/dist/cli/dev-server/syncFiles.js +0 -37
  30. package/dist/cli/index.d.ts +0 -23
  31. package/dist/cli/index.js +0 -1
  32. package/dist/cli/init.d.ts +0 -9
  33. package/dist/cli/init.js +0 -80
  34. package/dist/cli/load.d.ts +0 -3
  35. package/dist/cli/load.js +0 -94
  36. package/dist/cli/start.d.ts +0 -2
  37. package/dist/cli/start.js +0 -2
  38. package/dist/cli/tools/textureSet.d.ts +0 -13
  39. package/dist/cli/tools/textureSet.js +0 -103
  40. package/dist/cli/utils.d.ts +0 -13
  41. package/dist/cli/utils.js +0 -89
  42. package/dist/core/addon/biome.d.ts +0 -22
  43. package/dist/core/addon/biome.js +0 -27
  44. package/dist/core/addon/block/block.d.ts +0 -41
  45. package/dist/core/addon/block/block.js +0 -46
  46. package/dist/core/addon/controllers/animationController.d.ts +0 -43
  47. package/dist/core/addon/controllers/animationController.js +0 -73
  48. package/dist/core/addon/entity/clientEntity.d.ts +0 -107
  49. package/dist/core/addon/entity/clientEntity.js +0 -149
  50. package/dist/core/addon/entity/entity.d.ts +0 -42
  51. package/dist/core/addon/entity/entity.js +0 -50
  52. package/dist/core/addon/feature/oreFeature.d.ts +0 -19
  53. package/dist/core/addon/feature/oreFeature.js +0 -24
  54. package/dist/core/addon/featureRule.d.ts +0 -20
  55. package/dist/core/addon/featureRule.js +0 -25
  56. package/dist/core/addon/item/attachable.d.ts +0 -94
  57. package/dist/core/addon/item/attachable.js +0 -134
  58. package/dist/core/addon/item/item.d.ts +0 -19
  59. package/dist/core/addon/item/item.js +0 -26
  60. package/dist/core/addon/manifest.d.ts +0 -49
  61. package/dist/core/addon/manifest.js +0 -65
  62. package/dist/core/addon/menuCategory.d.ts +0 -6
  63. package/dist/core/addon/menuCategory.js +0 -7
  64. package/dist/core/addon/recipe/baseRecipe.d.ts +0 -12
  65. package/dist/core/addon/recipe/baseRecipe.js +0 -23
  66. package/dist/core/addon/recipe/data.d.ts +0 -66
  67. package/dist/core/addon/recipe/data.js +0 -74
  68. package/dist/core/addon/recipe/furnace.d.ts +0 -17
  69. package/dist/core/addon/recipe/furnace.js +0 -43
  70. package/dist/core/addon/recipe/shaped.d.ts +0 -26
  71. package/dist/core/addon/recipe/shaped.js +0 -53
  72. package/dist/core/addon/recipe/shapeless.d.ts +0 -18
  73. package/dist/core/addon/recipe/shapeless.js +0 -36
  74. package/dist/core/biome/biome.d.ts +0 -14
  75. package/dist/core/biome/biome.js +0 -23
  76. package/dist/core/biome/biomeComponent.d.ts +0 -46
  77. package/dist/core/biome/biomeComponent.js +0 -77
  78. package/dist/core/block/basicBlock.d.ts +0 -48
  79. package/dist/core/block/basicBlock.js +0 -105
  80. package/dist/core/block/block.d.ts +0 -32
  81. package/dist/core/block/block.js +0 -92
  82. package/dist/core/block/blockComponent.d.ts +0 -187
  83. package/dist/core/block/blockComponent.js +0 -500
  84. package/dist/core/block/cropBlock.d.ts +0 -4
  85. package/dist/core/block/cropBlock.js +0 -27
  86. package/dist/core/block/geometryBlock.d.ts +0 -12
  87. package/dist/core/block/geometryBlock.js +0 -16
  88. package/dist/core/block/oreBlock.d.ts +0 -9
  89. package/dist/core/block/oreBlock.js +0 -25
  90. package/dist/core/block/rotatableBlock.d.ts +0 -27
  91. package/dist/core/block/rotatableBlock.js +0 -107
  92. package/dist/core/block/tileBlock.d.ts +0 -17
  93. package/dist/core/block/tileBlock.js +0 -125
  94. package/dist/core/entity/basicEntity.d.ts +0 -111
  95. package/dist/core/entity/basicEntity.js +0 -170
  96. package/dist/core/entity/behavior/followMob.d.ts +0 -12
  97. package/dist/core/entity/behavior/followMob.js +0 -35
  98. package/dist/core/entity/behavior/followParent.d.ts +0 -7
  99. package/dist/core/entity/behavior/followParent.js +0 -15
  100. package/dist/core/entity/behavior/randomStroll.d.ts +0 -31
  101. package/dist/core/entity/behavior/randomStroll.js +0 -63
  102. package/dist/core/entity/behavior/tempt.d.ts +0 -73
  103. package/dist/core/entity/behavior/tempt.js +0 -134
  104. package/dist/core/entity/bundles/basicBundle.d.ts +0 -13
  105. package/dist/core/entity/bundles/basicBundle.js +0 -45
  106. package/dist/core/entity/clientEntity.d.ts +0 -20
  107. package/dist/core/entity/clientEntity.js +0 -37
  108. package/dist/core/entity/componets/entityComponet.d.ts +0 -202
  109. package/dist/core/entity/componets/entityComponet.js +0 -347
  110. package/dist/core/entity/data/nativeEntityData.d.ts +0 -9
  111. package/dist/core/entity/data/nativeEntityData.js +0 -38
  112. package/dist/core/entity/entity.d.ts +0 -15
  113. package/dist/core/entity/entity.js +0 -18
  114. package/dist/core/entity/nativeEntity.d.ts +0 -8
  115. package/dist/core/entity/nativeEntity.js +0 -28
  116. package/dist/core/entity/navigation/walk.d.ts +0 -23
  117. package/dist/core/entity/navigation/walk.js +0 -56
  118. package/dist/core/entity/projectile.d.ts +0 -3
  119. package/dist/core/entity/projectile.js +0 -7
  120. package/dist/core/factory/biomeFactory.d.ts +0 -4
  121. package/dist/core/factory/biomeFactory.js +0 -13
  122. package/dist/core/factory/blockFactory.d.ts +0 -34
  123. package/dist/core/factory/blockFactory.js +0 -143
  124. package/dist/core/factory/entityFactory.d.ts +0 -17
  125. package/dist/core/factory/entityFactory.js +0 -75
  126. package/dist/core/factory/featureFactory.d.ts +0 -6
  127. package/dist/core/factory/featureFactory.js +0 -23
  128. package/dist/core/factory/itemExtra.d.ts +0 -8
  129. package/dist/core/factory/itemExtra.js +0 -9
  130. package/dist/core/factory/itemFactory.d.ts +0 -27
  131. package/dist/core/factory/itemFactory.js +0 -112
  132. package/dist/core/factory/recipeFactory.d.ts +0 -18
  133. package/dist/core/factory/recipeFactory.js +0 -39
  134. package/dist/core/factory/uiFactory.d.ts +0 -12
  135. package/dist/core/factory/uiFactory.js +0 -32
  136. package/dist/core/feature/oreFeature.d.ts +0 -10
  137. package/dist/core/feature/oreFeature.js +0 -11
  138. package/dist/core/feature-rule/condition/biomeFilter.d.ts +0 -26
  139. package/dist/core/feature-rule/condition/biomeFilter.js +0 -36
  140. package/dist/core/feature-rule/condition/featureConditions.d.ts +0 -27
  141. package/dist/core/feature-rule/condition/featureConditions.js +0 -37
  142. package/dist/core/feature-rule/distribution/coordinateDistribution.d.ts +0 -17
  143. package/dist/core/feature-rule/distribution/coordinateDistribution.js +0 -23
  144. package/dist/core/feature-rule/distribution/featureDistribution.d.ts +0 -31
  145. package/dist/core/feature-rule/distribution/featureDistribution.js +0 -41
  146. package/dist/core/feature-rule/featureRule.d.ts +0 -17
  147. package/dist/core/feature-rule/featureRule.js +0 -26
  148. package/dist/core/index.js +0 -1
  149. package/dist/core/item/armor.d.ts +0 -21
  150. package/dist/core/item/armor.js +0 -90
  151. package/dist/core/item/attachable.d.ts +0 -6
  152. package/dist/core/item/attachable.js +0 -26
  153. package/dist/core/item/food.d.ts +0 -24
  154. package/dist/core/item/food.js +0 -38
  155. package/dist/core/item/item.d.ts +0 -36
  156. package/dist/core/item/item.js +0 -69
  157. package/dist/core/item/itemComponents.d.ts +0 -113
  158. package/dist/core/item/itemComponents.js +0 -225
  159. package/dist/core/registry.d.ts +0 -12
  160. package/dist/core/registry.js +0 -16
  161. package/dist/core/texture.d.ts +0 -18
  162. package/dist/core/texture.js +0 -38
  163. package/dist/core/ui/buttonMapping.d.ts +0 -97
  164. package/dist/core/ui/buttonMapping.js +0 -132
  165. package/dist/core/ui/dataBindingObject.d.ts +0 -97
  166. package/dist/core/ui/dataBindingObject.js +0 -134
  167. package/dist/core/ui/elements/button.d.ts +0 -21
  168. package/dist/core/ui/elements/button.js +0 -101
  169. package/dist/core/ui/elements/collectionPanel.d.ts +0 -12
  170. package/dist/core/ui/elements/collectionPanel.js +0 -53
  171. package/dist/core/ui/elements/grid.d.ts +0 -8
  172. package/dist/core/ui/elements/grid.js +0 -33
  173. package/dist/core/ui/elements/image.d.ts +0 -13
  174. package/dist/core/ui/elements/image.js +0 -55
  175. package/dist/core/ui/elements/label.d.ts +0 -14
  176. package/dist/core/ui/elements/label.js +0 -61
  177. package/dist/core/ui/elements/panel.d.ts +0 -11
  178. package/dist/core/ui/elements/panel.js +0 -49
  179. package/dist/core/ui/elements/scrollingPanel.d.ts +0 -14
  180. package/dist/core/ui/elements/scrollingPanel.js +0 -59
  181. package/dist/core/ui/elements/stackPanel.d.ts +0 -14
  182. package/dist/core/ui/elements/stackPanel.js +0 -37
  183. package/dist/core/ui/elements/uiElement.d.ts +0 -53
  184. package/dist/core/ui/elements/uiElement.js +0 -129
  185. package/dist/core/ui/properties/control.d.ts +0 -214
  186. package/dist/core/ui/properties/control.js +0 -286
  187. package/dist/core/ui/properties/dataBinding.d.ts +0 -6
  188. package/dist/core/ui/properties/dataBinding.js +0 -16
  189. package/dist/core/ui/properties/factory.d.ts +0 -37
  190. package/dist/core/ui/properties/factory.js +0 -62
  191. package/dist/core/ui/properties/gridProp.d.ts +0 -65
  192. package/dist/core/ui/properties/gridProp.js +0 -90
  193. package/dist/core/ui/properties/input.d.ts +0 -97
  194. package/dist/core/ui/properties/input.js +0 -134
  195. package/dist/core/ui/properties/layout.d.ts +0 -105
  196. package/dist/core/ui/properties/layout.js +0 -145
  197. package/dist/core/ui/properties/scrollView.d.ts +0 -105
  198. package/dist/core/ui/properties/scrollView.js +0 -145
  199. package/dist/core/ui/properties/sound.d.ts +0 -47
  200. package/dist/core/ui/properties/sound.js +0 -66
  201. package/dist/core/ui/properties/sprite.d.ts +0 -161
  202. package/dist/core/ui/properties/sprite.js +0 -222
  203. package/dist/core/ui/properties/text.d.ts +0 -135
  204. package/dist/core/ui/properties/text.js +0 -187
  205. package/dist/core/ui/registry/uiSystemRegistry.d.ts +0 -8
  206. package/dist/core/ui/registry/uiSystemRegistry.js +0 -26
  207. package/dist/core/ui/systems/chest.d.ts +0 -5
  208. package/dist/core/ui/systems/chest.js +0 -21
  209. package/dist/core/ui/systems/containerUISystem.d.ts +0 -67
  210. package/dist/core/ui/systems/containerUISystem.js +0 -214
  211. package/dist/core/ui/systems/guidebook.d.ts +0 -9
  212. package/dist/core/ui/systems/guidebook.js +0 -206
  213. package/dist/core/ui/systems/serverForm.d.ts +0 -13
  214. package/dist/core/ui/systems/serverForm.js +0 -116
  215. package/dist/core/ui/systems/system.d.ts +0 -16
  216. package/dist/core/ui/systems/system.js +0 -37
  217. package/dist/oc/index.js +0 -1
  218. package/doc/cli.md +0 -24
  219. /package/doc/hello_sapdon/{sapdon/344/275/277/347/224/250/346/225/231/347/250/213.md" → hello_sapdon.md} +0 -0
@@ -1,206 +0,0 @@
1
- import { ButtonMapping } from "../buttonMapping.js";
2
- import { DataBindingObject } from "../dataBindingObject.js";
3
- import { Button } from "../elements/button.js";
4
- import { Image } from "../elements/image.js";
5
- import { Label } from "../elements/label.js";
6
- import { Panel } from "../elements/panel.js";
7
- import { StackPanel } from "../elements/stackPanel.js";
8
- import { UIElement } from "../elements/uiElement.js";
9
- import { Control } from "../properties/control.js";
10
- import { Input } from "../properties/input.js";
11
- import { Layout } from "../properties/layout.js";
12
- import { Sprite } from "../properties/sprite.js";
13
- import { Text } from "../properties/text.js";
14
- import { ServerUISystem } from "./serverForm.js";
15
- import { UISystem } from "./system.js";
16
- //表单按钮模板
17
- const form_button_template = new Button("form_button_template", "common.button");
18
- form_button_template.addVariable("default_texture|default", "");
19
- form_button_template.addVariable("hover_texture|default", "");
20
- form_button_template.addVariable("pressed_texture|default", "");
21
- form_button_template.addVariable("binding_button_text|default", "");
22
- form_button_template.dataBinding.addDataBinding(new DataBindingObject().setBindingType("collection_details")
23
- .setBindingCollectionName("form_buttons"));
24
- form_button_template.dataBinding.addDataBinding(new DataBindingObject().setBindingType("collection")
25
- .setBindingCollectionName("form_buttons")
26
- .setBindingName("#form_button_text"));
27
- form_button_template.dataBinding.addDataBinding(new DataBindingObject().setBindingType("view")
28
- .setSourcePropertyName("($binding_button_text = #form_button_text)")
29
- .setTargetPropertyName("#visible"));
30
- form_button_template.addControls([
31
- new Image("default").setSprite(new Sprite().setTexture("$default_texture")),
32
- new Image("hover").setSprite(new Sprite().setTexture("$hover_texture")),
33
- new Image("pressed").setSprite(new Sprite().setTexture("$pressed_texture"))
34
- ]);
35
- //f
36
- const form_button_panel = new Panel("form_button_factory").enableDebug();
37
- form_button_panel.addProp("type", "collection_panel");
38
- form_button_panel.factory.setName("buttons").setControlName("$button_control");
39
- form_button_panel.addProp("collection_name", "form_buttons");
40
- form_button_panel.dataBinding.addDataBinding(new DataBindingObject().setBindingName("#form_button_length")
41
- .setBindingNameOverride("#collection_length"));
42
- const page_template = new StackPanel("page_template").setOrientation("horizontal")
43
- .addVariable("page_left_content | default", "")
44
- .addVariable("page_right_content | default", "")
45
- .setLayout(new Layout().setSize(["90%", "90%"]))
46
- .addStack(["50%", "100%"], new UIElement("page_left", undefined, "$page_left_content").serialize())
47
- .addStack(["50%", "100%"], new UIElement("page_right", undefined, "$page_right_content").serialize());
48
- page_template.dataBinding.addDataBinding(new DataBindingObject().setBindingType("view")
49
- .setSourcePropertyName("($binding_text = #form_text)")
50
- .setTargetPropertyName("#visible"));
51
- export class Guidebook {
52
- #bindingList = [];
53
- constructor(identifier, path) {
54
- this.system = new UISystem(identifier, path);
55
- //init
56
- this.#binding();
57
- this.#addTemplate();
58
- this.#updateSystem();
59
- }
60
- addPageBinding(page_name, left_control_name, right_control_name) {
61
- this.#bindingList.push({
62
- page_name: page_name,
63
- left_control_name: left_control_name,
64
- right_control_name: right_control_name
65
- });
66
- //更新系统
67
- this.#updateSystem();
68
- return this;
69
- }
70
- addPage(page_name, left_control, right_control) {
71
- this.addPageBinding(page_name, left_control.name, right_control.name);
72
- //添加元素
73
- this.addElement(left_control);
74
- this.addElement(right_control);
75
- //更新系统
76
- this.#updateSystem();
77
- return this;
78
- }
79
- addElement(element) {
80
- this.system.addElement(element);
81
- return this;
82
- }
83
- #binding() {
84
- ServerUISystem.bindingTitlewithContent(this.system.name, `${this.system.namespace}.guidebook_root_panel`);
85
- }
86
- #addTemplate() {
87
- this.addElement(form_button_template);
88
- this.addElement(form_button_panel);
89
- this.addElement(page_template);
90
- //
91
- this.#updateSystem();
92
- }
93
- #updateSystem() {
94
- const guidebook_root_panel = new Panel("guidebook_root_panel");
95
- //开启调试框
96
- //guidebook_root_panel.enableDebug()
97
- //设置布局属性
98
- guidebook_root_panel.setLayout(new Layout().setSize([320, 207]));
99
- //添加子元素
100
- guidebook_root_panel.addControls([
101
- //添加背景
102
- new UIElement("book_background", undefined, "book.book_background"),
103
- //添加书页
104
- new StackPanel("book_page_stack_panel").setOrientation("horizontal")
105
- .setLayout(new Layout().setSize([320, 207]))
106
- .addVariable("page_size", [160, 207])
107
- .addStack("$page_size", new Panel("book_left_panel").addControls([
108
- {
109
- "page_crease_image@book.page_crease_left_image": {
110
- "size": ["100% - 40px", "100% - 14px"],
111
- "offset": [0, -2]
112
- }
113
- },
114
- {
115
- "page_edge_image@book.page_edge_left_image": {
116
- "size": ["100% - 7px", "100% - 16px"],
117
- "offset": [7, -1]
118
- }
119
- }
120
- ]).serialize())
121
- .addStack("$page_size", new Panel("book_right_panel").addControls([
122
- {
123
- "page_crease_image@book.page_crease_right_image": {
124
- "size": ["100% - 40px", "100% - 14px"],
125
- "offset": [0, -2]
126
- }
127
- },
128
- {
129
- "page_edge_image@book.page_edge_right_image": {
130
- "size": ["100% - 7px", "100% - 16px"],
131
- "offset": [-7, -1]
132
- }
133
- }
134
- ]).serialize()),
135
- //添加书页内容
136
- new Panel("page_content_root")
137
- .setControl(new Control().setLayer(5))
138
- .setLayout(new Layout().setSize(["90%", "90%"]))
139
- .addControls([
140
- new Panel("label_text_panel").setLayout(new Layout().setSize([32, 8]).setAnchorFrom("bottom_middle")
141
- .setAnchorTo("bottom_middle")).addControl(new Label("page_content").setText(new Text().setText("#form_text").setColor([0, 0, 0]))),
142
- ...this.#bindingList.map(({ page_name, left_control_name, right_control_name }, index) => {
143
- return new UIElement(`page_index_${index}`, undefined, "page_template")
144
- .addVariable("binding_text", page_name)
145
- .addVariable("page_left_content", left_control_name)
146
- .addVariable("page_right_content", right_control_name);
147
- })
148
- /*
149
- new UIElement("page_1",undefined,"page_template")
150
- .addVariable("binding_text","page_index1")
151
- .addVariable("page_left_content","page_left_content")
152
- .addVariable("page_right_content","page_right_content"),
153
- new UIElement("page_2",undefined,"page_template")
154
- .addVariable("binding_text","page_index2")
155
- .addVariable("page_left_content","page_left_content")
156
- .addVariable("page_right_content","page_right_content"),
157
- new UIElement("page_3",undefined,"page_template")
158
- .addVariable("binding_text","page_index3")
159
- .addVariable("page_left_content","page_left_content")
160
- .addVariable("page_right_content","page_right_content")*/
161
- ]),
162
- //添加关闭按钮
163
- new Button("close_button").setLayout(new Layout().setSize([14, 14])
164
- .setAnchorFrom("top_right")
165
- .setAnchorTo("top_right"))
166
- .setInput(new Input().setButtonMappings([
167
- new ButtonMapping().setMappingType("pressed")
168
- .setFromButtonId("button.menu_select")
169
- .setToButtonId("button.menu_exit")
170
- ]))
171
- .addControls([
172
- new UIElement("default", undefined, "book.close_button_default"),
173
- new UIElement("hover", undefined, "book.close_button_hover"),
174
- new UIElement("pressed", undefined, "book.close_button_pressed"),
175
- ]),
176
- //添加下一页按钮
177
- new Panel("prev_button_panel").enableDebug()
178
- .setControl(new Control().setLayer(5))
179
- .setLayout(new Layout().setSize([24, 24])
180
- .setOffset([7, -9])
181
- .setAnchorFrom("bottom_left")
182
- .setAnchorTo("bottom_left"))
183
- .addControl(new UIElement("prev_button", undefined, "form_button_factory")
184
- .addVariable("binding_button_text", "test1")
185
- .addVariable("button_control", `${this.system.namespace}.form_button_template`)
186
- .addVariable("pressed_button_name", "button.form_button_click")
187
- .addVariable("default_texture", "textures/ui/book_pageleft_default")
188
- .addVariable("hover_texture", "textures/ui/book_pageleft_hover")
189
- .addVariable("pressed_texture", "textures/ui/book_pageleft_pressed")),
190
- new Panel("next_button_panel").enableDebug()
191
- .setControl(new Control().setLayer(5))
192
- .setLayout(new Layout().setSize([24, 24])
193
- .setOffset([-7, -9])
194
- .setAnchorFrom("bottom_right")
195
- .setAnchorTo("bottom_right"))
196
- .addControl(new UIElement("next_button", undefined, "form_button_factory")
197
- .addVariable("binding_button_text", "test2")
198
- .addVariable("button_control", "sapdon_guidebook.form_button_template")
199
- .addVariable("pressed_button_name", "button.form_button_click")
200
- .addVariable("default_texture", "textures/ui/book_pageright_default")
201
- .addVariable("hover_texture", "textures/ui/book_pageright_hover")
202
- .addVariable("pressed_texture", "textures/ui/book_pageright_pressed"))
203
- ]);
204
- this.addElement(guidebook_root_panel);
205
- }
206
- }
@@ -1,13 +0,0 @@
1
- export const ServerFormSystem: UISystem;
2
- export const form_button_panel: Panel;
3
- export class ServerUISystem {
4
- static "__#4@#binding_map": Map<any, any>;
5
- static "__#4@#binding_title_list": any[];
6
- static addBindingTitle(title_name: any): void;
7
- static getBindingTitleList(): any[];
8
- static getBindingContentList(): any[];
9
- static bindingTitlewithContent(title_name: any, content: any): void;
10
- static "__#4@#updateServerFormSystem"(): void;
11
- }
12
- import { UISystem } from "./system.js";
13
- import { Panel } from "../elements/panel.js";
@@ -1,116 +0,0 @@
1
- import { Modifications, UIElement } from "../elements/uiElement.js";
2
- import { DataBindingObject } from "../dataBindingObject.js";
3
- import { UISystem } from "./system.js";
4
- import { Panel } from "../elements/panel.js";
5
- import { Button } from "../elements/button.js";
6
- import { Image } from "../elements/image.js";
7
- import { Sprite } from "../properties/sprite.js";
8
- export const ServerFormSystem = new UISystem("server_form:server_form", "ui/");
9
- //表单按钮模板
10
- const form_button_template = new Button("sapdon_form_button_template", "common.button");
11
- form_button_template.addVariable("pressed_button_name", "button.form_button_click");
12
- form_button_template.addVariable("default_texture|default", "textures/gui/newgui/buttons/borderless/light");
13
- form_button_template.addVariable("hover_texture|default", "textures/gui/newgui/buttons/borderless/lighthover");
14
- form_button_template.addVariable("pressed_texture|default", "textures/gui/newgui/buttons/borderless/lightpressed");
15
- form_button_template.addVariable("binding_button_text|default", "");
16
- form_button_template.dataBinding.addDataBinding(new DataBindingObject().setBindingType("collection_details")
17
- .setBindingCollectionName("form_buttons"));
18
- form_button_template.dataBinding.addDataBinding(new DataBindingObject().setBindingType("collection")
19
- .setBindingCollectionName("form_buttons")
20
- .setBindingName("#form_button_text"));
21
- form_button_template.dataBinding.addDataBinding(new DataBindingObject().setBindingType("view")
22
- .setSourcePropertyName("($binding_button_text = #form_button_text)")
23
- .setTargetPropertyName("#visible"));
24
- form_button_template.addControls([
25
- new Image("default").setSprite(new Sprite().setTexture("$default_texture")),
26
- new Image("hover").setSprite(new Sprite().setTexture("$hover_texture")),
27
- new Image("pressed").setSprite(new Sprite().setTexture("$pressed_texture"))
28
- ]);
29
- //f
30
- export const form_button_panel = new Panel("sapdon_form_button_factory");
31
- form_button_panel.addProp("type", "collection_panel");
32
- form_button_panel.factory.setName("buttons").setControlName("sapdon_form_button_template");
33
- form_button_panel.addProp("collection_name", "form_buttons");
34
- form_button_panel.dataBinding.addDataBinding(new DataBindingObject().setBindingName("#form_button_length")
35
- .setBindingNameOverride("#collection_length"));
36
- ServerFormSystem.addElement(form_button_template);
37
- ServerFormSystem.addElement(form_button_panel);
38
- export class ServerUISystem {
39
- static #binding_map = new Map();
40
- static #binding_title_list = [];
41
- static addBindingTitle(title_name) {
42
- this.#binding_title_list.push(title_name);
43
- }
44
- static getBindingTitleList() {
45
- //console.log("arrr:",Array.from(this.#binding_map.keys()))
46
- return this.#binding_title_list.concat(Array.from(this.#binding_map.keys()));
47
- }
48
- static getBindingContentList() {
49
- return Array.from(this.#binding_map.values());
50
- }
51
- static bindingTitlewithContent(title_name, content) {
52
- //添加绑定
53
- this.#binding_map.set(title_name, content);
54
- this.#updateServerFormSystem();
55
- }
56
- static #updateServerFormSystem() {
57
- //文本化处理
58
- //console.log("ttttt:",this.getBindingTitleList())
59
- const user_custom_ui_text = this.getBindingTitleList().map((title_name) => {
60
- console.log("title_name", title_name);
61
- return `'${title_name}'`;
62
- }).join('-');
63
- const long_form = new UIElement("long_form")
64
- .addModification({
65
- array_name: "bindings",
66
- operation: Modifications.OPERATION.INSERT_BACK,
67
- value: [
68
- new DataBindingObject().setBindingName("#title_text"),
69
- new DataBindingObject().setBindingType("view")
70
- .setSourcePropertyName(`((#title_text - ${user_custom_ui_text}) = #title_text)`)
71
- .setTargetPropertyName("#visible")
72
- ]
73
- });
74
- const custom_server_form_factory = new Panel("custom_server_form_factory");
75
- custom_server_form_factory.factory.setName("server_form_factory") //工程名被绑定至表单,不可改动
76
- .setControlIds({ "long_form": "@server_form.custom_root_panel" });
77
- //加入自定义表单内容
78
- const main_screen_content = new UIElement("main_screen_content")
79
- .addModification({
80
- array_name: "controls",
81
- operation: Modifications.OPERATION.INSERT_BACK,
82
- value: [
83
- custom_server_form_factory.serialize()
84
- ]
85
- });
86
- //自定义ui模板
87
- const custom_ui_template = new Panel("custom_ui_template");
88
- custom_ui_template.dataBinding.addDataBinding(new DataBindingObject().setBindingName("#title_text")).addDataBinding(new DataBindingObject().setBindingType("view")
89
- .setSourcePropertyName("(#title_text = $binding_text)")
90
- .setTargetPropertyName("#visible"));
91
- custom_ui_template.control.addControl(new UIElement("main", undefined, "$main_content").serialize());
92
- //类似于 root ,决定什么时候加载自定义界面 ,不可改动
93
- const custom_form_root = new Panel("custom_form_root");
94
- //custom_form_root.addVariable("title_needs_to_contain",user_custom_ui_text)
95
- custom_form_root.dataBinding.addDataBinding(new DataBindingObject().setBindingType("view")
96
- .setSourceControlName("custom_root_panel")
97
- .setSourcePropertyName(`(not ((#title_text - ${user_custom_ui_text}) = #title_text))`)
98
- .setTargetPropertyName("#visible"));
99
- //用户自定义ui内容绑定
100
- this.#binding_map.forEach((content, key) => {
101
- //加入 root
102
- custom_form_root.control.addControl(new UIElement("custom_ui_" + key, undefined, "custom_ui_template")
103
- .addVariable("main_content", content)
104
- .addVariable("binding_text", key).serialize());
105
- });
106
- //类似于 sreen,必要,不可改动
107
- const custom_root_panel = new Panel("custom_root_panel");
108
- custom_root_panel.dataBinding.addDataBinding(new DataBindingObject().setBindingName("#title_text"));
109
- custom_root_panel.control.addControl(custom_form_root.serialize());
110
- ServerFormSystem
111
- .addElement(custom_ui_template)
112
- .addElement(long_form)
113
- .addElement(custom_root_panel)
114
- .addElement(main_screen_content);
115
- }
116
- }
@@ -1,16 +0,0 @@
1
- export class UISystem {
2
- constructor(identifier: any, path: any);
3
- identifier: any;
4
- namespace: any;
5
- name: any;
6
- path: any;
7
- elements: Map<any, any>;
8
- animations: Map<any, any>;
9
- addElement(element: any): this;
10
- getElement(element_name: any): any;
11
- addAnimation(name: any, value: any): void;
12
- getAnimation(animation_name: any): any;
13
- toJson(): {
14
- namespace: any;
15
- };
16
- }
@@ -1,37 +0,0 @@
1
- import { UISystemRegistry } from "../registry/uiSystemRegistry.js";
2
- // UI 文件核心类
3
- export class UISystem {
4
- constructor(identifier, path) {
5
- this.identifier = identifier;
6
- this.namespace = identifier.split(':')[0];
7
- this.name = identifier.split(':')[1];
8
- this.path = path;
9
- this.elements = new Map();
10
- this.animations = new Map();
11
- UISystemRegistry.registerUISystem(this);
12
- }
13
- addElement(element) {
14
- this.elements.set(element.id, element);
15
- return this;
16
- }
17
- getElement(element_name) {
18
- return this.elements.get(element_name);
19
- }
20
- addAnimation(name, value) {
21
- this.animations.set(name, value);
22
- }
23
- getAnimation(animation_name) {
24
- return this.animations.get(animation_name);
25
- }
26
- toJson() {
27
- const ui = { namespace: this.namespace };
28
- //序列化
29
- this.elements.forEach((value, key) => {
30
- //console.log("elements key:",key)
31
- //console.log("elements value:",value);
32
- ui[key] = value.serialize()[value.id];
33
- });
34
- //console.log("ui:",ui)
35
- return ui;
36
- }
37
- }
package/dist/oc/index.js DELETED
@@ -1 +0,0 @@
1
- import{world as t,system as e,InputButton as n,ButtonState as s}from"@minecraft/server";class o{target;manager;constructor(t,e){this.target=t,this.manager=e}static from(t,e){return new o(t,e)}getMinecraftComponent(...t){return t.map((t=>this.target.getComponent(t)))}getCustomComponent(...t){return this.manager.getComponents(...t)}getComponent(...t){return t.map((t=>"string"==typeof t?this.target.getComponent(t):this.manager.getComponentUnsafe(t)))}addComponent(...t){return this.manager.attachComponent(...t)}removeComponent(t){return this.manager.detachComponent(t)}updateComponent(t,e){return this.manager.update(t,e)}}class r{value;static none(){return new r(null)}static some(t){return new r(t)}constructor(t){this.value=t}unwrap(){if(!this.isEmpty())return this.value;throw new Error("Optional is empty")}isEmpty(){return void 0===this.value||null===this.value}orElse(t){return this.value??t}use(t,e){return!this.isEmpty()&&(t.call(e,this.value),!0)}}const a=Symbol("reflect-manager"),i=Symbol("reflect-entity");class c{[a];[i]=r.none();onTick(t,e){}detach(t){const e=Object.getPrototypeOf(this).constructor;return t.detachComponent(e)}getManager(){return this[a]}getEntity(){return this[i]}}class p extends c{onAttach(t){}onDetach(t){}}class u{static profilerEnable=!1;static global=new u;#t=new Map;#e=[];#n=[];getComponentUnsafe(t){return this.#t.get(t)}getComponent(t){return r.some(this.#t.get(t))}getComponents(...t){return t.map((t=>this.#t.get(t)))}async#s(t,e,n=!0){let s=!this.#t.get(t);if(!s&&n&&(await this.detachComponent(t),s=!0),l in e)for(const[t,n]of e[l])this.#s(t,n,!1);return s&&"onAttach"in e&&await e.onAttach(this),this.#t.set(t,e),r.some(e)}async attachComponent(...t){const e=[];for(const n of t)e.push(await this.#s(Object.getPrototypeOf(n).constructor,n));return e}async getOrCreate(t,...e){let n=this.#t.get(t);return n?r.some(n):this.#s(t,new t(...e))}async detachComponent(t){const e=this.#t.get(t);return e&&"onDetach"in e&&await e.onDetach(this),this.#t.delete(t)}clear(){this.#t.clear()}getComponentKeys(){return this.#t.keys()}has(t){return this.#t.has(t)}afterTick(t){this.#n.push(t)}beforeTick(t){this.#e.unshift(t)}handleTicks(t){for(const e of this.#e)this.profiler((()=>e.call(null,r.some(t))));this.#e.length=0;for(const e of this.#t.values()){e[i]||(e[i]=r.some(t)),e[a]||(e[a]=this);const{onTick:n}=e;n&&this.profiler((()=>n.call(e,this,r.some(t))),e)}for(const e of this.#n)this.profiler((()=>e.call(null,r.some(t))));this.#n.length=0}update(t,e){const n=this.#t.get(t);return!!n&&(e(n),!0)}profiler(t,e,n){if(!u.profilerEnable)return t();const s=e?Object.getPrototypeOf(e).constructor.name:"",o=n||(s?`${s}.${t.name}`:t.name),r=performance.now(),a=t();return console.log(`[Profiler] ${o} took ${performance.now()-r}ms`),a}}const l=Symbol("REQUIRED_COMPONENTS");function h(...t){return class extends p{[l]=new Map;constructor(){super();for(const e of t)if(Array.isArray(e)){const[t,...n]=e;this[l].set(t,Reflect.construct(t,n))}else this[l].set(e,Reflect.construct(e,[]))}getComponent(t){return this[l].get(t)}}}var m,f;!function(n){const s=new Map;function o(t){const e=new u;return s.set(t,e),e}function a(){for(const[e,n]of s.entries()){const s=t.getEntity(e);s&&n.handleTicks(s)}}n.addEntity=o,n.removeEntity=function(t){const e=t,n=s.get(e);n?.clear(),s.delete(e)},n.getManager=function(t){return s.get(t)??o(t)},n.tick=a,n.start=function(){e.runInterval(a)},n.toPlayer=function(e){return r.some(t.getAllPlayers().find((t=>t.id===e.id)))}}(m||(m={})),function(t){t[t.Press=0]="Press",t[t.Release=1]="Release",t[t.None=2]="None"}(f||(f={}));class g extends p{[n.Jump]=f.None;[n.Sneak]=f.None;static setup(){t.afterEvents.playerButtonInput.subscribe((t=>{const e=m.getManager(t.player.id);e.getComponent(g).use((n=>{n[t.button]=t.newButtonState===s.Pressed?f.Press:f.Release,e.afterTick((()=>{n[t.button]=f.None}))}))}))}}class d extends p{[n.Jump]=f.None;[n.Sneak]=f.None;_lastJump=s.Released;_lastSneak=s.Released;onTick(t,e){const o=m.toPlayer(e.unwrap()).unwrap(),r=o.inputInfo.getButtonState(n.Jump),a=o.inputInfo.getButtonState(n.Sneak);r===s.Pressed&&this._lastJump===s.Released?this[n.Jump]=f.Press:r===s.Released&&this._lastJump===s.Pressed?this[n.Jump]=f.Release:this[n.Jump]=f.None,a===s.Pressed&&this._lastSneak===s.Released?this[n.Sneak]=f.Press:a===s.Released&&this._lastSneak===s.Pressed?this[n.Sneak]=f.Release:this[n.Sneak]=f.None,this._lastJump=r,this._lastSneak=a}}export{o as Actor,p as BaseComponent,u as ComponentManager,c as CustomComponent,f as InputChangeState,r as Optional,d as PlayerInputCompatibilityComponent,g as PlayerInputComponent,h as RequireComponents,m as oc};
package/doc/cli.md DELETED
@@ -1,24 +0,0 @@
1
- # `@sapdon/cli` 包
2
-
3
- ## 自定义处理器
4
- ```ts
5
- import { devServer } from '@sapdon/cli'
6
- devServer.handle('ping', () => {
7
- console.log('pong')
8
- })
9
- ```
10
-
11
- ## 拦截cli处理器
12
- ```ts
13
- import { devServer, ServerHandles } from '@sapdon/cli'
14
-
15
- devServer.interceptHandler(ServerHandles.WRITE_ADDON, handler => {
16
- return (...args: any[]) => {
17
- const now = peformance.now()
18
- handler.apply(args)
19
- const dt = peformance.now() - now
20
- console.log(`执行耗时 ${dt}ms.`)
21
- }
22
- })
23
- ```
24
-