sapdon 3.0.0 → 3.0.2

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 (206) hide show
  1. package/README.md +9 -7
  2. package/doc/cli.md +24 -0
  3. package/doc/sapdon-ts.md +17 -5
  4. package/package.json +2 -2
  5. package/dist/cli/build.d.ts +0 -7
  6. package/dist/cli/build.js +0 -232
  7. package/dist/cli/dev-server/client.d.ts +0 -2
  8. package/dist/cli/dev-server/client.js +0 -20
  9. package/dist/cli/dev-server/config.d.ts +0 -3
  10. package/dist/cli/dev-server/config.js +0 -3
  11. package/dist/cli/dev-server/hmr.d.ts +0 -1
  12. package/dist/cli/dev-server/hmr.js +0 -13
  13. package/dist/cli/dev-server/index.d.ts +0 -3
  14. package/dist/cli/dev-server/index.js +0 -11
  15. package/dist/cli/dev-server/server.d.ts +0 -6
  16. package/dist/cli/dev-server/server.js +0 -50
  17. package/dist/cli/dev-server/syncFiles.d.ts +0 -3
  18. package/dist/cli/dev-server/syncFiles.js +0 -36
  19. package/dist/cli/index.d.ts +0 -1
  20. package/dist/cli/index.js +0 -1
  21. package/dist/cli/init.d.ts +0 -9
  22. package/dist/cli/init.js +0 -80
  23. package/dist/cli/load.d.ts +0 -3
  24. package/dist/cli/load.js +0 -94
  25. package/dist/cli/start.d.ts +0 -2
  26. package/dist/cli/start.js +0 -156
  27. package/dist/cli/tools/textureSet.d.ts +0 -13
  28. package/dist/cli/tools/textureSet.js +0 -103
  29. package/dist/cli/utils.d.ts +0 -13
  30. package/dist/cli/utils.js +0 -89
  31. package/dist/core/addon/biome.d.ts +0 -22
  32. package/dist/core/addon/biome.js +0 -27
  33. package/dist/core/addon/block/block.d.ts +0 -41
  34. package/dist/core/addon/block/block.js +0 -46
  35. package/dist/core/addon/controllers/animationController.d.ts +0 -43
  36. package/dist/core/addon/controllers/animationController.js +0 -73
  37. package/dist/core/addon/entity/clientEntity.d.ts +0 -107
  38. package/dist/core/addon/entity/clientEntity.js +0 -149
  39. package/dist/core/addon/entity/entity.d.ts +0 -42
  40. package/dist/core/addon/entity/entity.js +0 -50
  41. package/dist/core/addon/feature/oreFeature.d.ts +0 -19
  42. package/dist/core/addon/feature/oreFeature.js +0 -24
  43. package/dist/core/addon/featureRule.d.ts +0 -20
  44. package/dist/core/addon/featureRule.js +0 -25
  45. package/dist/core/addon/item/attachable.d.ts +0 -94
  46. package/dist/core/addon/item/attachable.js +0 -134
  47. package/dist/core/addon/item/item.d.ts +0 -19
  48. package/dist/core/addon/item/item.js +0 -26
  49. package/dist/core/addon/manifest.d.ts +0 -49
  50. package/dist/core/addon/manifest.js +0 -65
  51. package/dist/core/addon/menuCategory.d.ts +0 -6
  52. package/dist/core/addon/menuCategory.js +0 -7
  53. package/dist/core/addon/recipe/baseRecipe.d.ts +0 -12
  54. package/dist/core/addon/recipe/baseRecipe.js +0 -23
  55. package/dist/core/addon/recipe/data.d.ts +0 -66
  56. package/dist/core/addon/recipe/data.js +0 -74
  57. package/dist/core/addon/recipe/furnace.d.ts +0 -17
  58. package/dist/core/addon/recipe/furnace.js +0 -43
  59. package/dist/core/addon/recipe/shaped.d.ts +0 -26
  60. package/dist/core/addon/recipe/shaped.js +0 -53
  61. package/dist/core/addon/recipe/shapeless.d.ts +0 -18
  62. package/dist/core/addon/recipe/shapeless.js +0 -36
  63. package/dist/core/biome/biome.d.ts +0 -14
  64. package/dist/core/biome/biome.js +0 -23
  65. package/dist/core/biome/biomeComponent.d.ts +0 -46
  66. package/dist/core/biome/biomeComponent.js +0 -77
  67. package/dist/core/block/basicBlock.d.ts +0 -48
  68. package/dist/core/block/basicBlock.js +0 -105
  69. package/dist/core/block/block.d.ts +0 -32
  70. package/dist/core/block/block.js +0 -92
  71. package/dist/core/block/blockComponent.d.ts +0 -187
  72. package/dist/core/block/blockComponent.js +0 -500
  73. package/dist/core/block/cropBlock.d.ts +0 -4
  74. package/dist/core/block/cropBlock.js +0 -27
  75. package/dist/core/block/geometryBlock.d.ts +0 -12
  76. package/dist/core/block/geometryBlock.js +0 -16
  77. package/dist/core/block/oreBlock.d.ts +0 -9
  78. package/dist/core/block/oreBlock.js +0 -25
  79. package/dist/core/block/rotatableBlock.d.ts +0 -27
  80. package/dist/core/block/rotatableBlock.js +0 -107
  81. package/dist/core/block/tileBlock.d.ts +0 -17
  82. package/dist/core/block/tileBlock.js +0 -125
  83. package/dist/core/entity/basicEntity.d.ts +0 -111
  84. package/dist/core/entity/basicEntity.js +0 -170
  85. package/dist/core/entity/behavior/followMob.d.ts +0 -12
  86. package/dist/core/entity/behavior/followMob.js +0 -35
  87. package/dist/core/entity/behavior/followParent.d.ts +0 -7
  88. package/dist/core/entity/behavior/followParent.js +0 -15
  89. package/dist/core/entity/behavior/randomStroll.d.ts +0 -31
  90. package/dist/core/entity/behavior/randomStroll.js +0 -63
  91. package/dist/core/entity/behavior/tempt.d.ts +0 -73
  92. package/dist/core/entity/behavior/tempt.js +0 -134
  93. package/dist/core/entity/bundles/basicBundle.d.ts +0 -13
  94. package/dist/core/entity/bundles/basicBundle.js +0 -45
  95. package/dist/core/entity/clientEntity.d.ts +0 -20
  96. package/dist/core/entity/clientEntity.js +0 -37
  97. package/dist/core/entity/componets/entityComponet.d.ts +0 -202
  98. package/dist/core/entity/componets/entityComponet.js +0 -347
  99. package/dist/core/entity/data/nativeEntityData.d.ts +0 -9
  100. package/dist/core/entity/data/nativeEntityData.js +0 -38
  101. package/dist/core/entity/entity.d.ts +0 -15
  102. package/dist/core/entity/entity.js +0 -18
  103. package/dist/core/entity/nativeEntity.d.ts +0 -8
  104. package/dist/core/entity/nativeEntity.js +0 -28
  105. package/dist/core/entity/navigation/walk.d.ts +0 -23
  106. package/dist/core/entity/navigation/walk.js +0 -56
  107. package/dist/core/entity/projectile.d.ts +0 -3
  108. package/dist/core/entity/projectile.js +0 -7
  109. package/dist/core/factory/biomeFactory.d.ts +0 -4
  110. package/dist/core/factory/biomeFactory.js +0 -13
  111. package/dist/core/factory/blockFactory.d.ts +0 -34
  112. package/dist/core/factory/blockFactory.js +0 -143
  113. package/dist/core/factory/entityFactory.d.ts +0 -17
  114. package/dist/core/factory/entityFactory.js +0 -75
  115. package/dist/core/factory/featureFactory.d.ts +0 -6
  116. package/dist/core/factory/featureFactory.js +0 -23
  117. package/dist/core/factory/itemExtra.d.ts +0 -8
  118. package/dist/core/factory/itemExtra.js +0 -9
  119. package/dist/core/factory/itemFactory.d.ts +0 -27
  120. package/dist/core/factory/itemFactory.js +0 -112
  121. package/dist/core/factory/recipeFactory.d.ts +0 -18
  122. package/dist/core/factory/recipeFactory.js +0 -39
  123. package/dist/core/factory/uiFactory.d.ts +0 -11
  124. package/dist/core/factory/uiFactory.js +0 -32
  125. package/dist/core/feature/oreFeature.d.ts +0 -10
  126. package/dist/core/feature/oreFeature.js +0 -11
  127. package/dist/core/feature-rule/condition/biomeFilter.d.ts +0 -26
  128. package/dist/core/feature-rule/condition/biomeFilter.js +0 -36
  129. package/dist/core/feature-rule/condition/featureConditions.d.ts +0 -27
  130. package/dist/core/feature-rule/condition/featureConditions.js +0 -37
  131. package/dist/core/feature-rule/distribution/coordinateDistribution.d.ts +0 -17
  132. package/dist/core/feature-rule/distribution/coordinateDistribution.js +0 -23
  133. package/dist/core/feature-rule/distribution/featureDistribution.d.ts +0 -31
  134. package/dist/core/feature-rule/distribution/featureDistribution.js +0 -41
  135. package/dist/core/feature-rule/featureRule.d.ts +0 -17
  136. package/dist/core/feature-rule/featureRule.js +0 -26
  137. package/dist/core/index.d.ts +0 -24
  138. package/dist/core/index.js +0 -21
  139. package/dist/core/item/armor.d.ts +0 -21
  140. package/dist/core/item/armor.js +0 -90
  141. package/dist/core/item/attachable.d.ts +0 -6
  142. package/dist/core/item/attachable.js +0 -26
  143. package/dist/core/item/food.d.ts +0 -24
  144. package/dist/core/item/food.js +0 -38
  145. package/dist/core/item/item.d.ts +0 -36
  146. package/dist/core/item/item.js +0 -69
  147. package/dist/core/item/itemComponents.d.ts +0 -113
  148. package/dist/core/item/itemComponents.js +0 -225
  149. package/dist/core/registry.d.ts +0 -12
  150. package/dist/core/registry.js +0 -16
  151. package/dist/core/texture.d.ts +0 -18
  152. package/dist/core/texture.js +0 -38
  153. package/dist/core/ui/buttonMapping.d.ts +0 -97
  154. package/dist/core/ui/buttonMapping.js +0 -132
  155. package/dist/core/ui/dataBindingObject.d.ts +0 -97
  156. package/dist/core/ui/dataBindingObject.js +0 -134
  157. package/dist/core/ui/elements/button.d.ts +0 -21
  158. package/dist/core/ui/elements/button.js +0 -101
  159. package/dist/core/ui/elements/collectionPanel.d.ts +0 -12
  160. package/dist/core/ui/elements/collectionPanel.js +0 -53
  161. package/dist/core/ui/elements/grid.d.ts +0 -8
  162. package/dist/core/ui/elements/grid.js +0 -33
  163. package/dist/core/ui/elements/image.d.ts +0 -13
  164. package/dist/core/ui/elements/image.js +0 -55
  165. package/dist/core/ui/elements/label.d.ts +0 -14
  166. package/dist/core/ui/elements/label.js +0 -61
  167. package/dist/core/ui/elements/panel.d.ts +0 -11
  168. package/dist/core/ui/elements/panel.js +0 -49
  169. package/dist/core/ui/elements/scrollingPanel.d.ts +0 -14
  170. package/dist/core/ui/elements/scrollingPanel.js +0 -59
  171. package/dist/core/ui/elements/stackPanel.d.ts +0 -14
  172. package/dist/core/ui/elements/stackPanel.js +0 -37
  173. package/dist/core/ui/elements/uiElement.d.ts +0 -53
  174. package/dist/core/ui/elements/uiElement.js +0 -129
  175. package/dist/core/ui/properties/control.d.ts +0 -214
  176. package/dist/core/ui/properties/control.js +0 -286
  177. package/dist/core/ui/properties/dataBinding.d.ts +0 -6
  178. package/dist/core/ui/properties/dataBinding.js +0 -16
  179. package/dist/core/ui/properties/factory.d.ts +0 -37
  180. package/dist/core/ui/properties/factory.js +0 -62
  181. package/dist/core/ui/properties/gridProp.d.ts +0 -65
  182. package/dist/core/ui/properties/gridProp.js +0 -90
  183. package/dist/core/ui/properties/input.d.ts +0 -97
  184. package/dist/core/ui/properties/input.js +0 -134
  185. package/dist/core/ui/properties/layout.d.ts +0 -105
  186. package/dist/core/ui/properties/layout.js +0 -145
  187. package/dist/core/ui/properties/scrollView.d.ts +0 -105
  188. package/dist/core/ui/properties/scrollView.js +0 -145
  189. package/dist/core/ui/properties/sound.d.ts +0 -47
  190. package/dist/core/ui/properties/sound.js +0 -66
  191. package/dist/core/ui/properties/sprite.d.ts +0 -161
  192. package/dist/core/ui/properties/sprite.js +0 -222
  193. package/dist/core/ui/properties/text.d.ts +0 -135
  194. package/dist/core/ui/properties/text.js +0 -187
  195. package/dist/core/ui/registry/uiSystemRegistry.d.ts +0 -8
  196. package/dist/core/ui/registry/uiSystemRegistry.js +0 -26
  197. package/dist/core/ui/systems/chest.d.ts +0 -4
  198. package/dist/core/ui/systems/chest.js +0 -21
  199. package/dist/core/ui/systems/containerUISystem.d.ts +0 -64
  200. package/dist/core/ui/systems/containerUISystem.js +0 -206
  201. package/dist/core/ui/systems/guidebook.d.ts +0 -8
  202. package/dist/core/ui/systems/guidebook.js +0 -206
  203. package/dist/core/ui/systems/serverForm.d.ts +0 -12
  204. package/dist/core/ui/systems/serverForm.js +0 -116
  205. package/dist/core/ui/systems/system.d.ts +0 -16
  206. package/dist/core/ui/systems/system.js +0 -37
@@ -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 "./UISystem.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,12 +0,0 @@
1
- export const ServerFormSystem: any;
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 { 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 "./UISystem.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
- }