@pix3/cli 1.6.0 → 1.6.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.
- package/LICENSE +201 -201
- package/README.md +788 -754
- package/dist/index.js +208 -203
- package/dist/runtime-types.json +1 -1
- package/dist/smoke/prebuilt/{chunk-J2SJVMDO.mjs → chunk-7MZGPAUK.mjs} +1 -1
- package/dist/smoke/prebuilt/chunk-7WOFGLW3.mjs +239 -0
- package/dist/smoke/prebuilt/runtime.mjs +1 -1
- package/dist/smoke/prebuilt/smoke-worker.mjs +1 -1
- package/dist/smoke/prebuilt/tree-defaults.mjs +1 -1
- package/dist/validate/prebuilt/bundle-main.js +13 -13
- package/dist/validate/prebuilt/chunk-HKG6YI6Y.js +239 -0
- package/dist/validate/prebuilt/runtime.js +1 -1
- package/kit/files/.claude/skills/pix3-nodes/SKILL.md +210 -210
- package/kit/files/.claude/skills/pix3-nodes/reference.md +32 -24
- package/kit/files/.claude/skills/pix3-scene-format/SKILL.md +238 -235
- package/kit/files/.claude/skills/pix3-scene-format/reference.md +28 -28
- package/kit/files/.claude/skills/pix3-scripts/SKILL.md +285 -281
- package/kit/files/.claude/skills/pix3-scripts/reference.md +69 -52
- package/kit/files/.claude/skills/pix3-verify/SKILL.md +298 -256
- package/kit/files/.claude/skills/pix3-verify/reference.md +21 -21
- package/kit/files/AGENTS.md +203 -203
- package/kit/files/CLAUDE.md +1 -1
- package/kit/kit.json +2 -2
- package/package.json +54 -54
- package/templates/empty-2d/files/README.md +20 -20
- package/templates/empty-2d/files/scenes/main.pix3scene +68 -68
- package/templates/empty-2d/template.yaml +7 -7
- package/templates/empty-3d/files/README.md +20 -20
- package/templates/empty-3d/files/scenes/main.pix3scene +108 -108
- package/templates/empty-3d/template.yaml +7 -7
- package/templates/idea-blank/files/README.md +22 -22
- package/templates/idea-blank/files/scenes/main.pix3scene +37 -37
- package/templates/idea-blank/template.yaml +10 -10
- package/templates/minigame-2d/files/README.md +44 -44
- package/templates/minigame-2d/files/design/tests/reachability.json +1 -1
- package/templates/minigame-2d/files/design/tests/routines/mute-music.json +44 -44
- package/templates/minigame-2d/files/scenes/main.pix3scene +84 -84
- package/templates/minigame-2d/files/scenes/menu.pix3scene +118 -118
- package/templates/minigame-2d/files/scenes/ui/settings-window.pix3scene +138 -138
- package/templates/minigame-2d/files/scripts/GameFlow.ts +133 -133
- package/templates/minigame-2d/files/scripts/MenuFlow.ts +217 -217
- package/templates/minigame-2d/files/scripts/SettingsWindow.ts +198 -198
- package/templates/minigame-2d/template.yaml +10 -10
- package/templates/playable-2d/files/README.md +30 -30
- package/templates/playable-2d/files/design/recipe.md +83 -83
- package/templates/playable-2d/files/design/tests/reachability.json +4 -4
- package/templates/playable-2d/files/design/tests/routines/intro-to-cta.json +32 -32
- package/templates/playable-2d/files/scenes/main.pix3scene +111 -111
- package/templates/playable-2d/files/scenes/ui/end-screen.pix3scene +91 -91
- package/templates/playable-2d/files/scenes/ui/intro.pix3scene +65 -65
- package/templates/playable-2d/files/scripts/GameFlow.ts +256 -256
- package/templates/playable-2d/template.yaml +9 -9
- package/templates/playable-3d/files/README.md +32 -32
- package/templates/playable-3d/files/design/recipe.md +127 -127
- package/templates/playable-3d/files/design/tests/reachability.json +4 -4
- package/templates/playable-3d/files/design/tests/routines/intro-to-cta.json +32 -32
- package/templates/playable-3d/files/scenes/main.pix3scene +230 -230
- package/templates/playable-3d/files/scenes/ui/end-screen.pix3scene +91 -91
- package/templates/playable-3d/files/scenes/ui/intro.pix3scene +65 -65
- package/templates/playable-3d/files/scripts/GameFlow.ts +309 -309
- package/templates/playable-3d/files/scripts/GameRules.ts +290 -290
- package/templates/playable-3d/files/scripts/ScoreHud.ts +113 -113
- package/templates/playable-3d/template.yaml +9 -9
- package/templates/recipe-arena-2d/files/README.md +48 -48
- package/templates/recipe-arena-2d/files/design/recipe.md +127 -127
- package/templates/recipe-arena-2d/files/scenes/main.pix3scene +292 -292
- package/templates/recipe-arena-2d/files/scenes/menu.pix3scene +100 -100
- package/templates/recipe-arena-2d/files/scenes/prefabs/hazard.pix3scene +42 -42
- package/templates/recipe-arena-2d/files/scenes/prefabs/pickup.pix3scene +45 -45
- package/templates/recipe-arena-2d/files/scenes/ui/result.pix3scene +85 -85
- package/templates/recipe-arena-2d/files/scripts/GameRules.ts +368 -368
- package/templates/recipe-arena-2d/files/scripts/MenuFlow.ts +106 -106
- package/templates/recipe-arena-2d/files/scripts/PlayerController.ts +151 -151
- package/templates/recipe-arena-2d/files/scripts/ScoreHud.ts +94 -94
- package/templates/recipe-arena-2d/files/scripts/Spawner.ts +214 -214
- package/templates/recipe-arena-2d/files/scripts/TouchRules.ts +174 -174
- package/templates/recipe-arena-2d/template.yaml +10 -10
- package/templates/recipe-blank-2d/files/README.md +61 -61
- package/templates/recipe-blank-2d/files/design/recipe.md +148 -148
- package/templates/recipe-blank-2d/files/design/tests/reachability.json +4 -4
- package/templates/recipe-blank-2d/files/design/tests/routines/restart.json +27 -27
- package/templates/recipe-blank-2d/files/scenes/main.pix3scene +224 -224
- package/templates/recipe-blank-2d/files/scenes/ui/result.pix3scene +85 -85
- package/templates/recipe-blank-2d/files/scripts/GameRules.ts +350 -350
- package/templates/recipe-blank-2d/files/scripts/ScoreHud.ts +110 -110
- package/templates/recipe-blank-2d/template.yaml +10 -10
- package/templates/recipe-bouncer-2d/files/README.md +81 -81
- package/templates/recipe-bouncer-2d/files/design/recipe.md +146 -146
- package/templates/recipe-bouncer-2d/files/scenes/main.pix3scene +615 -615
- package/templates/recipe-bouncer-2d/files/scenes/menu.pix3scene +191 -191
- package/templates/recipe-bouncer-2d/files/scenes/ui/result.pix3scene +87 -87
- package/templates/recipe-bouncer-2d/files/scripts/BallBody.ts +298 -298
- package/templates/recipe-bouncer-2d/files/scripts/GameRules.ts +377 -377
- package/templates/recipe-bouncer-2d/files/scripts/MenuFlow.ts +109 -109
- package/templates/recipe-bouncer-2d/files/scripts/PaddleController.ts +112 -112
- package/templates/recipe-bouncer-2d/files/scripts/ScoreHud.ts +94 -94
- package/templates/recipe-bouncer-2d/files/scripts/TouchRules.ts +263 -263
- package/templates/recipe-bouncer-2d/files/scripts/ball-collision.ts +307 -307
- package/templates/recipe-bouncer-2d/template.yaml +10 -10
- package/templates/recipe-grid-3d/files/README.md +22 -22
- package/templates/recipe-grid-3d/files/design/recipe.md +110 -110
- package/templates/recipe-grid-3d/files/scenes/main.pix3scene +169 -169
- package/templates/recipe-grid-3d/files/scenes/menu.pix3scene +100 -100
- package/templates/recipe-grid-3d/files/scenes/ui/result.pix3scene +105 -105
- package/templates/recipe-grid-3d/files/scripts/GridBoard.ts +319 -319
- package/templates/recipe-grid-3d/files/scripts/GridRules.ts +278 -278
- package/templates/recipe-grid-3d/files/scripts/MenuFlow.ts +106 -106
- package/templates/recipe-grid-3d/files/scripts/ScoreHud.ts +94 -94
- package/templates/recipe-grid-3d/template.yaml +10 -10
- package/templates/recipe-tapper-2d/files/README.md +39 -39
- package/templates/recipe-tapper-2d/files/design/recipe.md +132 -132
- package/templates/recipe-tapper-2d/files/design/tests/reachability.json +4 -4
- package/templates/recipe-tapper-2d/files/design/tests/routines/terminal-retry.json +23 -23
- package/templates/recipe-tapper-2d/files/scenes/main.pix3scene +269 -269
- package/templates/recipe-tapper-2d/files/scenes/menu.pix3scene +100 -100
- package/templates/recipe-tapper-2d/files/scenes/prefabs/hazard.pix3scene +42 -42
- package/templates/recipe-tapper-2d/files/scenes/prefabs/target.pix3scene +45 -45
- package/templates/recipe-tapper-2d/files/scenes/ui/result.pix3scene +85 -85
- package/templates/recipe-tapper-2d/files/scripts/GameRules.ts +368 -368
- package/templates/recipe-tapper-2d/files/scripts/MenuFlow.ts +106 -106
- package/templates/recipe-tapper-2d/files/scripts/ScoreHud.ts +94 -94
- package/templates/recipe-tapper-2d/files/scripts/Spawner.ts +214 -214
- package/templates/recipe-tapper-2d/files/scripts/TouchRules.ts +192 -192
- package/templates/recipe-tapper-2d/template.yaml +10 -10
- package/dist/smoke/prebuilt/chunk-OJXQXIIQ.mjs +0 -239
- package/dist/validate/prebuilt/chunk-BS2OZM7U.js +0 -239
|
@@ -1,118 +1,118 @@
|
|
|
1
|
-
# Pix3 Scene File (YAML)
|
|
2
|
-
# Minigame 2D — the MENU scene. This is the project's ENTRY / export scene
|
|
3
|
-
# (Project Settings → Default Export Scene Path): a full build and "Play Game (Entry Scene)"
|
|
4
|
-
# boot here so you can debug the whole flow. PLAY transitions to the game scene
|
|
5
|
-
# (main.pix3scene) via a fade; SETTINGS opens the settings-window prefab.
|
|
6
|
-
# Wired by scripts/MenuFlow.ts.
|
|
7
|
-
version: 1.0.0
|
|
8
|
-
metadata:
|
|
9
|
-
author: Pix3 Template
|
|
10
|
-
description: Menu scene — entry point; PLAY transitions to the game
|
|
11
|
-
root:
|
|
12
|
-
- id: menu-root
|
|
13
|
-
type: Group2D
|
|
14
|
-
name: Menu Root
|
|
15
|
-
properties:
|
|
16
|
-
width: 1920
|
|
17
|
-
height: 1080
|
|
18
|
-
layout:
|
|
19
|
-
enabled: true
|
|
20
|
-
horizontalAlign: stretch
|
|
21
|
-
verticalAlign: stretch
|
|
22
|
-
components:
|
|
23
|
-
- id: menu-flow
|
|
24
|
-
type: user:MenuFlow
|
|
25
|
-
enabled: true
|
|
26
|
-
config:
|
|
27
|
-
gameScene: res://scenes/main.pix3scene
|
|
28
|
-
settingsNode: settings-window
|
|
29
|
-
playButton: play-button
|
|
30
|
-
settingsButton: settings-button
|
|
31
|
-
children:
|
|
32
|
-
- id: menu-background
|
|
33
|
-
type: ColorRect2D
|
|
34
|
-
name: Menu Background
|
|
35
|
-
properties:
|
|
36
|
-
width: 1920
|
|
37
|
-
height: 1080
|
|
38
|
-
color: "#16213e"
|
|
39
|
-
transform:
|
|
40
|
-
position: [0, 0]
|
|
41
|
-
scale: [1, 1]
|
|
42
|
-
rotation: 0
|
|
43
|
-
layout:
|
|
44
|
-
enabled: true
|
|
45
|
-
horizontalAlign: stretch
|
|
46
|
-
verticalAlign: stretch
|
|
47
|
-
children: []
|
|
48
|
-
- id: menu-title
|
|
49
|
-
type: Label2D
|
|
50
|
-
name: Menu Title
|
|
51
|
-
properties:
|
|
52
|
-
label: "{{PROJECT_NAME}}"
|
|
53
|
-
labelFontSize: 96
|
|
54
|
-
labelColor: "#ffcf33"
|
|
55
|
-
labelAlign: center
|
|
56
|
-
transform:
|
|
57
|
-
position: [0, 250]
|
|
58
|
-
scale: [1, 1]
|
|
59
|
-
rotation: 0
|
|
60
|
-
layout:
|
|
61
|
-
enabled: true
|
|
62
|
-
horizontalAlign: center
|
|
63
|
-
verticalAlign: center
|
|
64
|
-
children: []
|
|
65
|
-
- id: play-button
|
|
66
|
-
type: Button2D
|
|
67
|
-
name: Play Button
|
|
68
|
-
properties:
|
|
69
|
-
width: 420
|
|
70
|
-
height: 120
|
|
71
|
-
label: "PLAY"
|
|
72
|
-
labelFontSize: 48
|
|
73
|
-
labelColor: "#1a1a2e"
|
|
74
|
-
backgroundColor: "#ffcf33"
|
|
75
|
-
hoverColor: "#ffe066"
|
|
76
|
-
pressedColor: "#e6b800"
|
|
77
|
-
buttonAction: play
|
|
78
|
-
transform:
|
|
79
|
-
position: [0, 0]
|
|
80
|
-
scale: [1, 1]
|
|
81
|
-
rotation: 0
|
|
82
|
-
layout:
|
|
83
|
-
enabled: true
|
|
84
|
-
horizontalAlign: center
|
|
85
|
-
verticalAlign: center
|
|
86
|
-
children: []
|
|
87
|
-
- id: settings-button
|
|
88
|
-
type: Button2D
|
|
89
|
-
name: Settings Button
|
|
90
|
-
properties:
|
|
91
|
-
width: 420
|
|
92
|
-
height: 120
|
|
93
|
-
label: "SETTINGS"
|
|
94
|
-
labelFontSize: 48
|
|
95
|
-
labelColor: "#ffffff"
|
|
96
|
-
backgroundColor: "#3a3a5e"
|
|
97
|
-
hoverColor: "#4a4a6e"
|
|
98
|
-
pressedColor: "#2a2a4e"
|
|
99
|
-
buttonAction: open-settings
|
|
100
|
-
transform:
|
|
101
|
-
position: [0, -170]
|
|
102
|
-
scale: [1, 1]
|
|
103
|
-
rotation: 0
|
|
104
|
-
layout:
|
|
105
|
-
enabled: true
|
|
106
|
-
horizontalAlign: center
|
|
107
|
-
verticalAlign: center
|
|
108
|
-
children: []
|
|
109
|
-
# Settings modal — authored in scenes/ui/settings-window.pix3scene so this
|
|
110
|
-
# scene opens on the MENU, not on the modal. `visible: false` hides it in
|
|
111
|
-
# the EDITOR only; `initiallyVisible` (in the overlay file) is what play
|
|
112
|
-
# mode reads, and user:MenuFlow opens it at run time on SETTINGS. Tick the
|
|
113
|
-
# eye to preview it over the menu.
|
|
114
|
-
- id: settings-window
|
|
115
|
-
name: Settings Window
|
|
116
|
-
instance: res://scenes/ui/settings-window.pix3scene
|
|
117
|
-
properties:
|
|
118
|
-
visible: false
|
|
1
|
+
# Pix3 Scene File (YAML)
|
|
2
|
+
# Minigame 2D — the MENU scene. This is the project's ENTRY / export scene
|
|
3
|
+
# (Project Settings → Default Export Scene Path): a full build and "Play Game (Entry Scene)"
|
|
4
|
+
# boot here so you can debug the whole flow. PLAY transitions to the game scene
|
|
5
|
+
# (main.pix3scene) via a fade; SETTINGS opens the settings-window prefab.
|
|
6
|
+
# Wired by scripts/MenuFlow.ts.
|
|
7
|
+
version: 1.0.0
|
|
8
|
+
metadata:
|
|
9
|
+
author: Pix3 Template
|
|
10
|
+
description: Menu scene — entry point; PLAY transitions to the game
|
|
11
|
+
root:
|
|
12
|
+
- id: menu-root
|
|
13
|
+
type: Group2D
|
|
14
|
+
name: Menu Root
|
|
15
|
+
properties:
|
|
16
|
+
width: 1920
|
|
17
|
+
height: 1080
|
|
18
|
+
layout:
|
|
19
|
+
enabled: true
|
|
20
|
+
horizontalAlign: stretch
|
|
21
|
+
verticalAlign: stretch
|
|
22
|
+
components:
|
|
23
|
+
- id: menu-flow
|
|
24
|
+
type: user:MenuFlow
|
|
25
|
+
enabled: true
|
|
26
|
+
config:
|
|
27
|
+
gameScene: res://scenes/main.pix3scene
|
|
28
|
+
settingsNode: settings-window
|
|
29
|
+
playButton: play-button
|
|
30
|
+
settingsButton: settings-button
|
|
31
|
+
children:
|
|
32
|
+
- id: menu-background
|
|
33
|
+
type: ColorRect2D
|
|
34
|
+
name: Menu Background
|
|
35
|
+
properties:
|
|
36
|
+
width: 1920
|
|
37
|
+
height: 1080
|
|
38
|
+
color: "#16213e"
|
|
39
|
+
transform:
|
|
40
|
+
position: [0, 0]
|
|
41
|
+
scale: [1, 1]
|
|
42
|
+
rotation: 0
|
|
43
|
+
layout:
|
|
44
|
+
enabled: true
|
|
45
|
+
horizontalAlign: stretch
|
|
46
|
+
verticalAlign: stretch
|
|
47
|
+
children: []
|
|
48
|
+
- id: menu-title
|
|
49
|
+
type: Label2D
|
|
50
|
+
name: Menu Title
|
|
51
|
+
properties:
|
|
52
|
+
label: "{{PROJECT_NAME}}"
|
|
53
|
+
labelFontSize: 96
|
|
54
|
+
labelColor: "#ffcf33"
|
|
55
|
+
labelAlign: center
|
|
56
|
+
transform:
|
|
57
|
+
position: [0, 250]
|
|
58
|
+
scale: [1, 1]
|
|
59
|
+
rotation: 0
|
|
60
|
+
layout:
|
|
61
|
+
enabled: true
|
|
62
|
+
horizontalAlign: center
|
|
63
|
+
verticalAlign: center
|
|
64
|
+
children: []
|
|
65
|
+
- id: play-button
|
|
66
|
+
type: Button2D
|
|
67
|
+
name: Play Button
|
|
68
|
+
properties:
|
|
69
|
+
width: 420
|
|
70
|
+
height: 120
|
|
71
|
+
label: "PLAY"
|
|
72
|
+
labelFontSize: 48
|
|
73
|
+
labelColor: "#1a1a2e"
|
|
74
|
+
backgroundColor: "#ffcf33"
|
|
75
|
+
hoverColor: "#ffe066"
|
|
76
|
+
pressedColor: "#e6b800"
|
|
77
|
+
buttonAction: play
|
|
78
|
+
transform:
|
|
79
|
+
position: [0, 0]
|
|
80
|
+
scale: [1, 1]
|
|
81
|
+
rotation: 0
|
|
82
|
+
layout:
|
|
83
|
+
enabled: true
|
|
84
|
+
horizontalAlign: center
|
|
85
|
+
verticalAlign: center
|
|
86
|
+
children: []
|
|
87
|
+
- id: settings-button
|
|
88
|
+
type: Button2D
|
|
89
|
+
name: Settings Button
|
|
90
|
+
properties:
|
|
91
|
+
width: 420
|
|
92
|
+
height: 120
|
|
93
|
+
label: "SETTINGS"
|
|
94
|
+
labelFontSize: 48
|
|
95
|
+
labelColor: "#ffffff"
|
|
96
|
+
backgroundColor: "#3a3a5e"
|
|
97
|
+
hoverColor: "#4a4a6e"
|
|
98
|
+
pressedColor: "#2a2a4e"
|
|
99
|
+
buttonAction: open-settings
|
|
100
|
+
transform:
|
|
101
|
+
position: [0, -170]
|
|
102
|
+
scale: [1, 1]
|
|
103
|
+
rotation: 0
|
|
104
|
+
layout:
|
|
105
|
+
enabled: true
|
|
106
|
+
horizontalAlign: center
|
|
107
|
+
verticalAlign: center
|
|
108
|
+
children: []
|
|
109
|
+
# Settings modal — authored in scenes/ui/settings-window.pix3scene so this
|
|
110
|
+
# scene opens on the MENU, not on the modal. `visible: false` hides it in
|
|
111
|
+
# the EDITOR only; `initiallyVisible` (in the overlay file) is what play
|
|
112
|
+
# mode reads, and user:MenuFlow opens it at run time on SETTINGS. Tick the
|
|
113
|
+
# eye to preview it over the menu.
|
|
114
|
+
- id: settings-window
|
|
115
|
+
name: Settings Window
|
|
116
|
+
instance: res://scenes/ui/settings-window.pix3scene
|
|
117
|
+
properties:
|
|
118
|
+
visible: false
|
|
@@ -1,138 +1,138 @@
|
|
|
1
|
-
# Pix3 Scene File (YAML)
|
|
2
|
-
# Minigame 2D — the SETTINGS modal: a centered panel with Music/SFX checkboxes
|
|
3
|
-
# (wired to the audio buses by user:SettingsWindow) and a CLOSE button. It lives
|
|
4
|
-
# in its own file under scenes/ui/ so the menu scene opens clean. Host scenes
|
|
5
|
-
# carry it as a one-line `instance:` reference marked `visible: false`, which
|
|
6
|
-
# hides it in the EDITOR only; `initiallyVisible: false` on `settings-root`
|
|
7
|
-
# below is what play mode reads, and `user:MenuFlow` shows it at run time.
|
|
8
|
-
#
|
|
9
|
-
# Edit it here, full-screen, in its own tab. To preview it composited over the
|
|
10
|
-
# menu, tick the eye on `settings-window` in menu.pix3scene — just do not commit
|
|
11
|
-
# that tick, or every iteration starts behind the settings modal again.
|
|
12
|
-
#
|
|
13
|
-
# Instance it from any scene:
|
|
14
|
-
# - id: settings-window
|
|
15
|
-
# instance: res://scenes/ui/settings-window.pix3scene
|
|
16
|
-
# properties:
|
|
17
|
-
# visible: false
|
|
18
|
-
version: 1.0.0
|
|
19
|
-
metadata:
|
|
20
|
-
author: Pix3 Template
|
|
21
|
-
description: Reusable settings window (music/SFX toggles)
|
|
22
|
-
root:
|
|
23
|
-
- id: settings-root
|
|
24
|
-
type: Group2D
|
|
25
|
-
name: Settings Window
|
|
26
|
-
properties:
|
|
27
|
-
width: 640
|
|
28
|
-
height: 520
|
|
29
|
-
initiallyVisible: false
|
|
30
|
-
layout:
|
|
31
|
-
enabled: true
|
|
32
|
-
horizontalAlign: center
|
|
33
|
-
verticalAlign: center
|
|
34
|
-
components:
|
|
35
|
-
- id: settings-behavior
|
|
36
|
-
type: user:SettingsWindow
|
|
37
|
-
enabled: true
|
|
38
|
-
config:
|
|
39
|
-
musicToggle: music-toggle
|
|
40
|
-
sfxToggle: sfx-toggle
|
|
41
|
-
closeButton: close-button
|
|
42
|
-
children:
|
|
43
|
-
- id: settings-panel
|
|
44
|
-
type: ColorRect2D
|
|
45
|
-
name: Panel
|
|
46
|
-
properties:
|
|
47
|
-
width: 640
|
|
48
|
-
height: 520
|
|
49
|
-
color: "#1a1a2e"
|
|
50
|
-
opacity: 0.97
|
|
51
|
-
transform:
|
|
52
|
-
position: [0, 0]
|
|
53
|
-
scale: [1, 1]
|
|
54
|
-
rotation: 0
|
|
55
|
-
children: []
|
|
56
|
-
- id: settings-title
|
|
57
|
-
type: Label2D
|
|
58
|
-
name: Title
|
|
59
|
-
properties:
|
|
60
|
-
label: "SETTINGS"
|
|
61
|
-
labelFontSize: 48
|
|
62
|
-
labelColor: "#ffcf33"
|
|
63
|
-
labelAlign: center
|
|
64
|
-
transform:
|
|
65
|
-
position: [0, 190]
|
|
66
|
-
scale: [1, 1]
|
|
67
|
-
rotation: 0
|
|
68
|
-
children: []
|
|
69
|
-
- id: music-label
|
|
70
|
-
type: Label2D
|
|
71
|
-
name: Music Label
|
|
72
|
-
properties:
|
|
73
|
-
label: "Music"
|
|
74
|
-
labelFontSize: 36
|
|
75
|
-
labelColor: "#ffffff"
|
|
76
|
-
labelAlign: left
|
|
77
|
-
transform:
|
|
78
|
-
position: [-120, 70]
|
|
79
|
-
scale: [1, 1]
|
|
80
|
-
rotation: 0
|
|
81
|
-
children: []
|
|
82
|
-
- id: music-toggle
|
|
83
|
-
type: Checkbox2D
|
|
84
|
-
name: Music Toggle
|
|
85
|
-
properties:
|
|
86
|
-
size: 44
|
|
87
|
-
checked: true
|
|
88
|
-
checkedColor: "#ffcf33"
|
|
89
|
-
uncheckedColor: "#555577"
|
|
90
|
-
transform:
|
|
91
|
-
position: [150, 70]
|
|
92
|
-
scale: [1, 1]
|
|
93
|
-
rotation: 0
|
|
94
|
-
children: []
|
|
95
|
-
- id: sfx-label
|
|
96
|
-
type: Label2D
|
|
97
|
-
name: SFX Label
|
|
98
|
-
properties:
|
|
99
|
-
label: "Sound FX"
|
|
100
|
-
labelFontSize: 36
|
|
101
|
-
labelColor: "#ffffff"
|
|
102
|
-
labelAlign: left
|
|
103
|
-
transform:
|
|
104
|
-
position: [-120, -10]
|
|
105
|
-
scale: [1, 1]
|
|
106
|
-
rotation: 0
|
|
107
|
-
children: []
|
|
108
|
-
- id: sfx-toggle
|
|
109
|
-
type: Checkbox2D
|
|
110
|
-
name: SFX Toggle
|
|
111
|
-
properties:
|
|
112
|
-
size: 44
|
|
113
|
-
checked: true
|
|
114
|
-
checkedColor: "#ffcf33"
|
|
115
|
-
uncheckedColor: "#555577"
|
|
116
|
-
transform:
|
|
117
|
-
position: [150, -10]
|
|
118
|
-
scale: [1, 1]
|
|
119
|
-
rotation: 0
|
|
120
|
-
children: []
|
|
121
|
-
- id: close-button
|
|
122
|
-
type: Button2D
|
|
123
|
-
name: Close Button
|
|
124
|
-
properties:
|
|
125
|
-
width: 280
|
|
126
|
-
height: 88
|
|
127
|
-
label: "CLOSE"
|
|
128
|
-
labelFontSize: 36
|
|
129
|
-
labelColor: "#1a1a2e"
|
|
130
|
-
backgroundColor: "#ffcf33"
|
|
131
|
-
hoverColor: "#ffe066"
|
|
132
|
-
pressedColor: "#e6b800"
|
|
133
|
-
buttonAction: close-settings
|
|
134
|
-
transform:
|
|
135
|
-
position: [0, -180]
|
|
136
|
-
scale: [1, 1]
|
|
137
|
-
rotation: 0
|
|
138
|
-
children: []
|
|
1
|
+
# Pix3 Scene File (YAML)
|
|
2
|
+
# Minigame 2D — the SETTINGS modal: a centered panel with Music/SFX checkboxes
|
|
3
|
+
# (wired to the audio buses by user:SettingsWindow) and a CLOSE button. It lives
|
|
4
|
+
# in its own file under scenes/ui/ so the menu scene opens clean. Host scenes
|
|
5
|
+
# carry it as a one-line `instance:` reference marked `visible: false`, which
|
|
6
|
+
# hides it in the EDITOR only; `initiallyVisible: false` on `settings-root`
|
|
7
|
+
# below is what play mode reads, and `user:MenuFlow` shows it at run time.
|
|
8
|
+
#
|
|
9
|
+
# Edit it here, full-screen, in its own tab. To preview it composited over the
|
|
10
|
+
# menu, tick the eye on `settings-window` in menu.pix3scene — just do not commit
|
|
11
|
+
# that tick, or every iteration starts behind the settings modal again.
|
|
12
|
+
#
|
|
13
|
+
# Instance it from any scene:
|
|
14
|
+
# - id: settings-window
|
|
15
|
+
# instance: res://scenes/ui/settings-window.pix3scene
|
|
16
|
+
# properties:
|
|
17
|
+
# visible: false
|
|
18
|
+
version: 1.0.0
|
|
19
|
+
metadata:
|
|
20
|
+
author: Pix3 Template
|
|
21
|
+
description: Reusable settings window (music/SFX toggles)
|
|
22
|
+
root:
|
|
23
|
+
- id: settings-root
|
|
24
|
+
type: Group2D
|
|
25
|
+
name: Settings Window
|
|
26
|
+
properties:
|
|
27
|
+
width: 640
|
|
28
|
+
height: 520
|
|
29
|
+
initiallyVisible: false
|
|
30
|
+
layout:
|
|
31
|
+
enabled: true
|
|
32
|
+
horizontalAlign: center
|
|
33
|
+
verticalAlign: center
|
|
34
|
+
components:
|
|
35
|
+
- id: settings-behavior
|
|
36
|
+
type: user:SettingsWindow
|
|
37
|
+
enabled: true
|
|
38
|
+
config:
|
|
39
|
+
musicToggle: music-toggle
|
|
40
|
+
sfxToggle: sfx-toggle
|
|
41
|
+
closeButton: close-button
|
|
42
|
+
children:
|
|
43
|
+
- id: settings-panel
|
|
44
|
+
type: ColorRect2D
|
|
45
|
+
name: Panel
|
|
46
|
+
properties:
|
|
47
|
+
width: 640
|
|
48
|
+
height: 520
|
|
49
|
+
color: "#1a1a2e"
|
|
50
|
+
opacity: 0.97
|
|
51
|
+
transform:
|
|
52
|
+
position: [0, 0]
|
|
53
|
+
scale: [1, 1]
|
|
54
|
+
rotation: 0
|
|
55
|
+
children: []
|
|
56
|
+
- id: settings-title
|
|
57
|
+
type: Label2D
|
|
58
|
+
name: Title
|
|
59
|
+
properties:
|
|
60
|
+
label: "SETTINGS"
|
|
61
|
+
labelFontSize: 48
|
|
62
|
+
labelColor: "#ffcf33"
|
|
63
|
+
labelAlign: center
|
|
64
|
+
transform:
|
|
65
|
+
position: [0, 190]
|
|
66
|
+
scale: [1, 1]
|
|
67
|
+
rotation: 0
|
|
68
|
+
children: []
|
|
69
|
+
- id: music-label
|
|
70
|
+
type: Label2D
|
|
71
|
+
name: Music Label
|
|
72
|
+
properties:
|
|
73
|
+
label: "Music"
|
|
74
|
+
labelFontSize: 36
|
|
75
|
+
labelColor: "#ffffff"
|
|
76
|
+
labelAlign: left
|
|
77
|
+
transform:
|
|
78
|
+
position: [-120, 70]
|
|
79
|
+
scale: [1, 1]
|
|
80
|
+
rotation: 0
|
|
81
|
+
children: []
|
|
82
|
+
- id: music-toggle
|
|
83
|
+
type: Checkbox2D
|
|
84
|
+
name: Music Toggle
|
|
85
|
+
properties:
|
|
86
|
+
size: 44
|
|
87
|
+
checked: true
|
|
88
|
+
checkedColor: "#ffcf33"
|
|
89
|
+
uncheckedColor: "#555577"
|
|
90
|
+
transform:
|
|
91
|
+
position: [150, 70]
|
|
92
|
+
scale: [1, 1]
|
|
93
|
+
rotation: 0
|
|
94
|
+
children: []
|
|
95
|
+
- id: sfx-label
|
|
96
|
+
type: Label2D
|
|
97
|
+
name: SFX Label
|
|
98
|
+
properties:
|
|
99
|
+
label: "Sound FX"
|
|
100
|
+
labelFontSize: 36
|
|
101
|
+
labelColor: "#ffffff"
|
|
102
|
+
labelAlign: left
|
|
103
|
+
transform:
|
|
104
|
+
position: [-120, -10]
|
|
105
|
+
scale: [1, 1]
|
|
106
|
+
rotation: 0
|
|
107
|
+
children: []
|
|
108
|
+
- id: sfx-toggle
|
|
109
|
+
type: Checkbox2D
|
|
110
|
+
name: SFX Toggle
|
|
111
|
+
properties:
|
|
112
|
+
size: 44
|
|
113
|
+
checked: true
|
|
114
|
+
checkedColor: "#ffcf33"
|
|
115
|
+
uncheckedColor: "#555577"
|
|
116
|
+
transform:
|
|
117
|
+
position: [150, -10]
|
|
118
|
+
scale: [1, 1]
|
|
119
|
+
rotation: 0
|
|
120
|
+
children: []
|
|
121
|
+
- id: close-button
|
|
122
|
+
type: Button2D
|
|
123
|
+
name: Close Button
|
|
124
|
+
properties:
|
|
125
|
+
width: 280
|
|
126
|
+
height: 88
|
|
127
|
+
label: "CLOSE"
|
|
128
|
+
labelFontSize: 36
|
|
129
|
+
labelColor: "#1a1a2e"
|
|
130
|
+
backgroundColor: "#ffcf33"
|
|
131
|
+
hoverColor: "#ffe066"
|
|
132
|
+
pressedColor: "#e6b800"
|
|
133
|
+
buttonAction: close-settings
|
|
134
|
+
transform:
|
|
135
|
+
position: [0, -180]
|
|
136
|
+
scale: [1, 1]
|
|
137
|
+
rotation: 0
|
|
138
|
+
children: []
|