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.
- package/README.md +11 -3
- package/doc/api.md +2 -2
- package/doc/oc/index.md +0 -0
- package/doc/sapdon-ts.md +7 -5
- package/package.json +18 -19
- package/{dist/cli/dev-server/server.d.ts → prod/cli/index.d.ts} +9 -3
- package/prod/cli/index.js +1 -0
- package/prod/cli/start.js +1428 -0
- package/{dist → prod}/core/index.d.ts +2325 -1643
- package/prod/core/index.js +59017 -0
- package/{dist → prod}/oc/index.d.ts +3 -3
- package/prod/oc/index.js +1 -0
- package/prod/utils/index.d.ts +41 -0
- package/prod/utils/index.js +1 -0
- package/dist/cli/build.d.ts +0 -7
- package/dist/cli/build.js +0 -234
- package/dist/cli/dev-server/client.d.ts +0 -2
- package/dist/cli/dev-server/client.js +0 -21
- package/dist/cli/dev-server/config.d.ts +0 -3
- package/dist/cli/dev-server/config.js +0 -3
- package/dist/cli/dev-server/handles.d.ts +0 -4
- package/dist/cli/dev-server/handles.js +0 -5
- package/dist/cli/dev-server/hmr.d.ts +0 -1
- package/dist/cli/dev-server/hmr.js +0 -13
- package/dist/cli/dev-server/index.d.ts +0 -4
- package/dist/cli/dev-server/index.js +0 -17
- package/dist/cli/dev-server/server.js +0 -59
- package/dist/cli/dev-server/syncFiles.d.ts +0 -3
- package/dist/cli/dev-server/syncFiles.js +0 -37
- package/dist/cli/index.d.ts +0 -23
- package/dist/cli/index.js +0 -1
- package/dist/cli/init.d.ts +0 -9
- package/dist/cli/init.js +0 -80
- package/dist/cli/load.d.ts +0 -3
- package/dist/cli/load.js +0 -94
- package/dist/cli/start.d.ts +0 -2
- package/dist/cli/start.js +0 -2
- package/dist/cli/tools/textureSet.d.ts +0 -13
- package/dist/cli/tools/textureSet.js +0 -103
- package/dist/cli/utils.d.ts +0 -13
- package/dist/cli/utils.js +0 -89
- package/dist/core/addon/biome.d.ts +0 -22
- package/dist/core/addon/biome.js +0 -27
- package/dist/core/addon/block/block.d.ts +0 -41
- package/dist/core/addon/block/block.js +0 -46
- package/dist/core/addon/controllers/animationController.d.ts +0 -43
- package/dist/core/addon/controllers/animationController.js +0 -73
- package/dist/core/addon/entity/clientEntity.d.ts +0 -107
- package/dist/core/addon/entity/clientEntity.js +0 -149
- package/dist/core/addon/entity/entity.d.ts +0 -42
- package/dist/core/addon/entity/entity.js +0 -50
- package/dist/core/addon/feature/oreFeature.d.ts +0 -19
- package/dist/core/addon/feature/oreFeature.js +0 -24
- package/dist/core/addon/featureRule.d.ts +0 -20
- package/dist/core/addon/featureRule.js +0 -25
- package/dist/core/addon/item/attachable.d.ts +0 -94
- package/dist/core/addon/item/attachable.js +0 -134
- package/dist/core/addon/item/item.d.ts +0 -19
- package/dist/core/addon/item/item.js +0 -26
- package/dist/core/addon/manifest.d.ts +0 -49
- package/dist/core/addon/manifest.js +0 -65
- package/dist/core/addon/menuCategory.d.ts +0 -6
- package/dist/core/addon/menuCategory.js +0 -7
- package/dist/core/addon/recipe/baseRecipe.d.ts +0 -12
- package/dist/core/addon/recipe/baseRecipe.js +0 -23
- package/dist/core/addon/recipe/data.d.ts +0 -66
- package/dist/core/addon/recipe/data.js +0 -74
- package/dist/core/addon/recipe/furnace.d.ts +0 -17
- package/dist/core/addon/recipe/furnace.js +0 -43
- package/dist/core/addon/recipe/shaped.d.ts +0 -26
- package/dist/core/addon/recipe/shaped.js +0 -53
- package/dist/core/addon/recipe/shapeless.d.ts +0 -18
- package/dist/core/addon/recipe/shapeless.js +0 -36
- package/dist/core/biome/biome.d.ts +0 -14
- package/dist/core/biome/biome.js +0 -23
- package/dist/core/biome/biomeComponent.d.ts +0 -46
- package/dist/core/biome/biomeComponent.js +0 -77
- package/dist/core/block/basicBlock.d.ts +0 -48
- package/dist/core/block/basicBlock.js +0 -105
- package/dist/core/block/block.d.ts +0 -32
- package/dist/core/block/block.js +0 -92
- package/dist/core/block/blockComponent.d.ts +0 -187
- package/dist/core/block/blockComponent.js +0 -500
- package/dist/core/block/cropBlock.d.ts +0 -4
- package/dist/core/block/cropBlock.js +0 -27
- package/dist/core/block/geometryBlock.d.ts +0 -12
- package/dist/core/block/geometryBlock.js +0 -16
- package/dist/core/block/oreBlock.d.ts +0 -9
- package/dist/core/block/oreBlock.js +0 -25
- package/dist/core/block/rotatableBlock.d.ts +0 -27
- package/dist/core/block/rotatableBlock.js +0 -107
- package/dist/core/block/tileBlock.d.ts +0 -17
- package/dist/core/block/tileBlock.js +0 -125
- package/dist/core/entity/basicEntity.d.ts +0 -111
- package/dist/core/entity/basicEntity.js +0 -170
- package/dist/core/entity/behavior/followMob.d.ts +0 -12
- package/dist/core/entity/behavior/followMob.js +0 -35
- package/dist/core/entity/behavior/followParent.d.ts +0 -7
- package/dist/core/entity/behavior/followParent.js +0 -15
- package/dist/core/entity/behavior/randomStroll.d.ts +0 -31
- package/dist/core/entity/behavior/randomStroll.js +0 -63
- package/dist/core/entity/behavior/tempt.d.ts +0 -73
- package/dist/core/entity/behavior/tempt.js +0 -134
- package/dist/core/entity/bundles/basicBundle.d.ts +0 -13
- package/dist/core/entity/bundles/basicBundle.js +0 -45
- package/dist/core/entity/clientEntity.d.ts +0 -20
- package/dist/core/entity/clientEntity.js +0 -37
- package/dist/core/entity/componets/entityComponet.d.ts +0 -202
- package/dist/core/entity/componets/entityComponet.js +0 -347
- package/dist/core/entity/data/nativeEntityData.d.ts +0 -9
- package/dist/core/entity/data/nativeEntityData.js +0 -38
- package/dist/core/entity/entity.d.ts +0 -15
- package/dist/core/entity/entity.js +0 -18
- package/dist/core/entity/nativeEntity.d.ts +0 -8
- package/dist/core/entity/nativeEntity.js +0 -28
- package/dist/core/entity/navigation/walk.d.ts +0 -23
- package/dist/core/entity/navigation/walk.js +0 -56
- package/dist/core/entity/projectile.d.ts +0 -3
- package/dist/core/entity/projectile.js +0 -7
- package/dist/core/factory/biomeFactory.d.ts +0 -4
- package/dist/core/factory/biomeFactory.js +0 -13
- package/dist/core/factory/blockFactory.d.ts +0 -34
- package/dist/core/factory/blockFactory.js +0 -143
- package/dist/core/factory/entityFactory.d.ts +0 -17
- package/dist/core/factory/entityFactory.js +0 -75
- package/dist/core/factory/featureFactory.d.ts +0 -6
- package/dist/core/factory/featureFactory.js +0 -23
- package/dist/core/factory/itemExtra.d.ts +0 -8
- package/dist/core/factory/itemExtra.js +0 -9
- package/dist/core/factory/itemFactory.d.ts +0 -27
- package/dist/core/factory/itemFactory.js +0 -112
- package/dist/core/factory/recipeFactory.d.ts +0 -18
- package/dist/core/factory/recipeFactory.js +0 -39
- package/dist/core/factory/uiFactory.d.ts +0 -12
- package/dist/core/factory/uiFactory.js +0 -32
- package/dist/core/feature/oreFeature.d.ts +0 -10
- package/dist/core/feature/oreFeature.js +0 -11
- package/dist/core/feature-rule/condition/biomeFilter.d.ts +0 -26
- package/dist/core/feature-rule/condition/biomeFilter.js +0 -36
- package/dist/core/feature-rule/condition/featureConditions.d.ts +0 -27
- package/dist/core/feature-rule/condition/featureConditions.js +0 -37
- package/dist/core/feature-rule/distribution/coordinateDistribution.d.ts +0 -17
- package/dist/core/feature-rule/distribution/coordinateDistribution.js +0 -23
- package/dist/core/feature-rule/distribution/featureDistribution.d.ts +0 -31
- package/dist/core/feature-rule/distribution/featureDistribution.js +0 -41
- package/dist/core/feature-rule/featureRule.d.ts +0 -17
- package/dist/core/feature-rule/featureRule.js +0 -26
- package/dist/core/index.js +0 -1
- package/dist/core/item/armor.d.ts +0 -21
- package/dist/core/item/armor.js +0 -90
- package/dist/core/item/attachable.d.ts +0 -6
- package/dist/core/item/attachable.js +0 -26
- package/dist/core/item/food.d.ts +0 -24
- package/dist/core/item/food.js +0 -38
- package/dist/core/item/item.d.ts +0 -36
- package/dist/core/item/item.js +0 -69
- package/dist/core/item/itemComponents.d.ts +0 -113
- package/dist/core/item/itemComponents.js +0 -225
- package/dist/core/registry.d.ts +0 -12
- package/dist/core/registry.js +0 -16
- package/dist/core/texture.d.ts +0 -18
- package/dist/core/texture.js +0 -38
- package/dist/core/ui/buttonMapping.d.ts +0 -97
- package/dist/core/ui/buttonMapping.js +0 -132
- package/dist/core/ui/dataBindingObject.d.ts +0 -97
- package/dist/core/ui/dataBindingObject.js +0 -134
- package/dist/core/ui/elements/button.d.ts +0 -21
- package/dist/core/ui/elements/button.js +0 -101
- package/dist/core/ui/elements/collectionPanel.d.ts +0 -12
- package/dist/core/ui/elements/collectionPanel.js +0 -53
- package/dist/core/ui/elements/grid.d.ts +0 -8
- package/dist/core/ui/elements/grid.js +0 -33
- package/dist/core/ui/elements/image.d.ts +0 -13
- package/dist/core/ui/elements/image.js +0 -55
- package/dist/core/ui/elements/label.d.ts +0 -14
- package/dist/core/ui/elements/label.js +0 -61
- package/dist/core/ui/elements/panel.d.ts +0 -11
- package/dist/core/ui/elements/panel.js +0 -49
- package/dist/core/ui/elements/scrollingPanel.d.ts +0 -14
- package/dist/core/ui/elements/scrollingPanel.js +0 -59
- package/dist/core/ui/elements/stackPanel.d.ts +0 -14
- package/dist/core/ui/elements/stackPanel.js +0 -37
- package/dist/core/ui/elements/uiElement.d.ts +0 -53
- package/dist/core/ui/elements/uiElement.js +0 -129
- package/dist/core/ui/properties/control.d.ts +0 -214
- package/dist/core/ui/properties/control.js +0 -286
- package/dist/core/ui/properties/dataBinding.d.ts +0 -6
- package/dist/core/ui/properties/dataBinding.js +0 -16
- package/dist/core/ui/properties/factory.d.ts +0 -37
- package/dist/core/ui/properties/factory.js +0 -62
- package/dist/core/ui/properties/gridProp.d.ts +0 -65
- package/dist/core/ui/properties/gridProp.js +0 -90
- package/dist/core/ui/properties/input.d.ts +0 -97
- package/dist/core/ui/properties/input.js +0 -134
- package/dist/core/ui/properties/layout.d.ts +0 -105
- package/dist/core/ui/properties/layout.js +0 -145
- package/dist/core/ui/properties/scrollView.d.ts +0 -105
- package/dist/core/ui/properties/scrollView.js +0 -145
- package/dist/core/ui/properties/sound.d.ts +0 -47
- package/dist/core/ui/properties/sound.js +0 -66
- package/dist/core/ui/properties/sprite.d.ts +0 -161
- package/dist/core/ui/properties/sprite.js +0 -222
- package/dist/core/ui/properties/text.d.ts +0 -135
- package/dist/core/ui/properties/text.js +0 -187
- package/dist/core/ui/registry/uiSystemRegistry.d.ts +0 -8
- package/dist/core/ui/registry/uiSystemRegistry.js +0 -26
- package/dist/core/ui/systems/chest.d.ts +0 -5
- package/dist/core/ui/systems/chest.js +0 -21
- package/dist/core/ui/systems/containerUISystem.d.ts +0 -67
- package/dist/core/ui/systems/containerUISystem.js +0 -214
- package/dist/core/ui/systems/guidebook.d.ts +0 -9
- package/dist/core/ui/systems/guidebook.js +0 -206
- package/dist/core/ui/systems/serverForm.d.ts +0 -13
- package/dist/core/ui/systems/serverForm.js +0 -116
- package/dist/core/ui/systems/system.d.ts +0 -16
- package/dist/core/ui/systems/system.js +0 -37
- package/dist/oc/index.js +0 -1
- package/doc/cli.md +0 -24
- /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
|
-
|
|
File without changes
|