@galacean/cli 2.0.0-alpha.11 → 2.0.0-alpha.12

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 (103) hide show
  1. package/dist/cli.bundle.cjs +3084 -2863
  2. package/dist/viewport-client/_static/Accordion-4897319b.js +6 -0
  3. package/dist/viewport-client/_static/AmbientLightAsset-f70b95f1.js +5 -0
  4. package/dist/viewport-client/_static/AnimationClipAsset-01f3deb6.js +1 -0
  5. package/dist/viewport-client/_static/AnimatorControllerAsset-b7424e9c.js +1 -0
  6. package/dist/viewport-client/_static/AnimatorStore-fd98c00e.js +1 -0
  7. package/dist/viewport-client/_static/AssetPreviewer-24e31d97.js +6 -0
  8. package/dist/viewport-client/_static/AssetViewer-bc198e16.js +1 -0
  9. package/dist/viewport-client/_static/AudioAsset-eae03324.js +1 -0
  10. package/dist/viewport-client/_static/AudioComponent-44070c2c.js +1 -0
  11. package/dist/viewport-client/_static/Callout-cb4a55ff.js +1 -0
  12. package/dist/viewport-client/_static/CameraComponent-907ac745.js +1 -0
  13. package/dist/viewport-client/_static/CanvasRenderer-9dd98cb3.js +1 -0
  14. package/dist/viewport-client/_static/Component-f923abb1.js +1 -0
  15. package/dist/viewport-client/_static/DirectLight-58f5fe9e.js +1 -0
  16. package/dist/viewport-client/_static/FontAsset-abfb9a8a.js +5 -0
  17. package/dist/viewport-client/_static/FormItemArray-66be8701.js +1 -0
  18. package/dist/viewport-client/_static/GlTFAsset-9c68f862.js +20 -0
  19. package/dist/viewport-client/_static/IconPlayerPlayFilled-b058c98f.js +6 -0
  20. package/dist/viewport-client/_static/IconPointFilled-a304fd34.js +6 -0
  21. package/dist/viewport-client/_static/InstanceEditorAsset-a70e73fe.js +1 -0
  22. package/dist/viewport-client/_static/LightBaseComponent-fbc3ae49.js +1 -0
  23. package/dist/viewport-client/_static/LottieAnimationComponent-1c3e02a5.js +1 -0
  24. package/dist/viewport-client/_static/LottieAsset-377c1419.js +1 -0
  25. package/dist/viewport-client/_static/MarkdownAsset-7ea387a9.js +1 -0
  26. package/dist/viewport-client/_static/MaterialAsset-74a15124.js +1 -0
  27. package/dist/viewport-client/_static/MaterialInspector-aec1248b.js +1 -0
  28. package/dist/viewport-client/_static/Menu-cd3be298.js +17 -0
  29. package/dist/viewport-client/_static/MeshAsset-73e2cc8e.js +1 -0
  30. package/dist/viewport-client/_static/MeshRendererBaseComponent-3a0e09ed.js +1 -0
  31. package/dist/viewport-client/_static/MeshRendererComponent-5385d30f.js +1 -0
  32. package/dist/viewport-client/_static/MeshThumbnail-49273f71.js +1 -0
  33. package/dist/viewport-client/_static/ParticleRendererComponent-5a7b57d9.js +21 -0
  34. package/dist/viewport-client/_static/PhysicsMaterialAsset-a5ac9f82.js +1 -0
  35. package/dist/viewport-client/_static/PhysicsStore-0729e76d.js +1 -0
  36. package/dist/viewport-client/_static/PointLight-0e1d1546.js +1 -0
  37. package/dist/viewport-client/_static/PostProcessComponent-8276d33c.js +1 -0
  38. package/dist/viewport-client/_static/PrefabAsset-1a7edfbd.js +1 -0
  39. package/dist/viewport-client/_static/PrimitiveMesh-3ce6fa2f.js +1 -0
  40. package/dist/viewport-client/_static/ProxyConfigs-4de3304c.js +1 -0
  41. package/dist/viewport-client/_static/ReferencedMaterial-a87818f3.js +1 -0
  42. package/dist/viewport-client/_static/RenderTargetAsset-33c0d9e7.js +1 -0
  43. package/dist/viewport-client/_static/SceneAsset-8917c210.js +1 -0
  44. package/dist/viewport-client/_static/ShaderAsset-cb3ff628.js +185 -0
  45. package/dist/viewport-client/_static/ShaderChunkAsset-83f923f4.js +5 -0
  46. package/dist/viewport-client/_static/ShaderUIScriptAsset-d13fa4e2.js +516 -0
  47. package/dist/viewport-client/_static/SkinnedMeshRendererComponent-2a8323bf.js +1 -0
  48. package/dist/viewport-client/_static/SpineAnimationComponent-e733d50f.js +1 -0
  49. package/dist/viewport-client/_static/SpineSkeletonDataAsset-b64a3ee3.js +1 -0
  50. package/dist/viewport-client/_static/SpotLight-ca6c0c3b.js +1 -0
  51. package/dist/viewport-client/_static/SpriteAsset-9a31ec24.js +1 -0
  52. package/dist/viewport-client/_static/SpriteAtlasAsset-a862db46.js +1 -0
  53. package/dist/viewport-client/_static/SpriteBaseComponent-f6f1731f.js +1 -0
  54. package/dist/viewport-client/_static/SpriteMaskComponent-778be04f.js +1 -0
  55. package/dist/viewport-client/_static/SpriteRendererComponent-2b4d153b.js +1 -0
  56. package/dist/viewport-client/_static/TaskQueue-05c94a4d.js +1 -0
  57. package/dist/viewport-client/_static/TextBaseComponent-69233798.js +11 -0
  58. package/dist/viewport-client/_static/TextRendererComponent-130b4e99.js +1 -0
  59. package/dist/viewport-client/_static/TextureAsset-28fedf2a.js +36 -0
  60. package/dist/viewport-client/_static/ThumbnailMixin-35997457.js +1 -0
  61. package/dist/viewport-client/_static/ThumbnailRegistry-495c18c9.js +1 -0
  62. package/dist/viewport-client/_static/Tooltip-33f770ba.js +1 -0
  63. package/dist/viewport-client/_static/TrailRendererComponent-148550b5.js +1 -0
  64. package/dist/viewport-client/_static/TransformBaseComponent-02318c5a.js +1 -0
  65. package/dist/viewport-client/_static/TransformComponent-96106065.js +1 -0
  66. package/dist/viewport-client/_static/ViewerManager-202b570a.js +1 -0
  67. package/dist/viewport-client/_static/XRReferenceImageAsset-6a6adb3b.js +1 -0
  68. package/dist/viewport-client/_static/assetEditorActions-c4e5962f.js +1 -0
  69. package/dist/viewport-client/_static/audio-244358e2.js +1 -0
  70. package/dist/viewport-client/_static/bundlers-9b0d37fc.js +1 -0
  71. package/dist/viewport-client/_static/createOnModelChange-b57a0da8.js +1 -0
  72. package/dist/viewport-client/_static/encode-ac4bb64e.js +1 -0
  73. package/dist/viewport-client/_static/enum-58295f88.js +1 -0
  74. package/dist/viewport-client/_static/glTFIO-45ff9a17.js +1 -0
  75. package/dist/viewport-client/_static/index-0a8702e2.js +11217 -0
  76. package/dist/viewport-client/_static/index-237c84cd.js +20 -0
  77. package/dist/viewport-client/_static/index-37c74ae9.js +26 -0
  78. package/dist/viewport-client/_static/index-4cca0201.js +1 -0
  79. package/dist/viewport-client/_static/index-59732f86.js +1 -0
  80. package/dist/viewport-client/_static/index-6c8198f6.js +2 -0
  81. package/dist/viewport-client/_static/index-6f827618.js +1 -0
  82. package/dist/viewport-client/_static/index-803ca489.js +1 -0
  83. package/dist/viewport-client/_static/index-85a6cf6a.js +1 -0
  84. package/dist/viewport-client/_static/index-98982ce2.js +1 -0
  85. package/dist/viewport-client/_static/index-b3d51f87.js +1 -0
  86. package/dist/viewport-client/_static/index-be6bc38a.js +177 -0
  87. package/dist/viewport-client/_static/index-c403cbcd.js +1 -0
  88. package/dist/viewport-client/_static/index-e46ec5b1.js +16 -0
  89. package/dist/viewport-client/_static/index-e73966ae.js +1 -0
  90. package/dist/viewport-client/_static/index-e95b4498.js +1 -0
  91. package/dist/viewport-client/_static/index-f5a67a46.js +1 -0
  92. package/dist/viewport-client/_static/ktx-parse.modern-6c9f771f.js +1 -0
  93. package/dist/viewport-client/_static/ktx2-encoder-1e63c1eb.js +1 -0
  94. package/dist/viewport-client/_static/ktx2-worker-a04f41ea.js +1 -0
  95. package/dist/viewport-client/_static/meshopt_simplifier.module-cd99529d.js +1 -0
  96. package/dist/viewport-client/_static/module-107b7430.js +56 -0
  97. package/dist/viewport-client/_static/module-5c85b07e.js +1 -0
  98. package/dist/viewport-client/_static/module-6406b050.js +1 -0
  99. package/dist/viewport-client/_static/postmen-45d4c238.js +1 -0
  100. package/dist/viewport-client/_static/scriptPropertyActions-d3a583d2.js +1 -0
  101. package/dist/viewport-client/_static/utilities-e09052e3.js +11 -0
  102. package/dist/viewport-client/index.html +20 -0
  103. package/package.json +2 -1
@@ -0,0 +1,516 @@
1
+ var P=Object.defineProperty;var F=(t,a,e)=>a in t?P(t,a,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[a]=e;var d=(t,a,e)=>(F(t,typeof a!="symbol"?a+"":a,e),e);import{aT as U,C as h,aD as u,bh as m,j as O,o as N,bl as f,bm as C,u as B,b0 as R,p as x,e as y,bp as w,n as H,e6 as Q,e7 as k,e8 as X,bk as j}from"./index-0a8702e2.js";import{a as V,A as $}from"./InstanceEditorAsset-a70e73fe.js";import"./AssetPreviewer-24e31d97.js";import{n as G}from"./index-be6bc38a.js";function z(t){return t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()}var c=(t=>(t.Default="default",t.ShaderUI="shader_ui",t.StateMachine="state_machine",t))(c||{});const W=`import { Script } from '@galacean/engine';
2
+ /**
3
+ * 脚本参考: https://galacean.antgroup.com/engine/docs/script/class
4
+ */
5
+ export default class extends Script {
6
+ /**
7
+ * 主更新,逐帧调用。
8
+ * @param deltaTime - 帧间隔时间
9
+ */
10
+ onUpdate(deltaTime: number) {}
11
+ }`,K=`import { StateMachineScript, Animator, AnimatorState } from '@galacean/engine';
12
+ /**
13
+ * Performance can be improved by rewriting it for real use.
14
+ */
15
+ export default class extends StateMachineScript {
16
+ /**
17
+ * onStateEnter is called when a transition starts and the state machine starts to evaluate this state.
18
+ * @param animator - The animator
19
+ * @param animatorState - The state be evaluated
20
+ * @param layerIndex - The index of the layer where the state is located
21
+ */
22
+ // onStateEnter(animator: Animator, animatorState: AnimatorState, layerIndex: number): void {}
23
+
24
+ /**
25
+ * onStateUpdate is called on each Update frame between onStateEnter and onStateExit callbacks.
26
+ * @param animator - The animator
27
+ * @param animatorState - The state be evaluated
28
+ * @param layerIndex - The index of the layer where the state is located
29
+ */
30
+ // onStateUpdate(animator: Animator, animatorState: AnimatorState, layerIndex: number): void {}
31
+
32
+ /**
33
+ * onStateExit is called when a transition ends and the state machine finishes evaluating this state.
34
+ * @param animator - The animator
35
+ * @param animatorState - The state be evaluated
36
+ * @param layerIndex - The index of the layer where the state is located
37
+ */
38
+ // onStateExit(animator: Animator, animatorState: AnimatorState, layerIndex: number): void {}
39
+ }
40
+ `,q=`import { Material } from "@galacean/engine";
41
+
42
+ export default class extends ShaderUIScript {
43
+ constructor() {
44
+ super();
45
+
46
+ // this.onPropertyChanged("otherProperty", (material: Material, value) => {
47
+ // // custom change callback
48
+ // })
49
+
50
+ // this.onMacroChanged('otherMacro', (material: Material, enabled, value) => {
51
+ // // custom change callback
52
+ // })
53
+ }
54
+
55
+ override onMaterialShaderSwitched(material: Material) {}
56
+ }
57
+ `,Y=`import { Material, RenderQueueType, BlendFactor, RenderFace, CullMode, BlendMode } from "@galacean/engine";
58
+
59
+ export default class extends ShaderUIScript {
60
+ constructor() {
61
+ super();
62
+
63
+ this.onPropertyChanged("material_BaseTexture", (material: Material, value) => {
64
+ const shaderData = material.shaderData;
65
+ if (value) {
66
+ shaderData.enableMacro("MATERIAL_HAS_BASETEXTURE");
67
+ } else {
68
+ shaderData.disableMacro("MATERIAL_HAS_BASETEXTURE");
69
+ }
70
+ })
71
+
72
+ this.onPropertyChanged("isTransparent", (material: Material, isTransparent) => {
73
+ const shaderData = material.shaderData;
74
+ if (isTransparent) {
75
+ shaderData.setInt("depthWriteEnabled", 0);
76
+ shaderData.setInt("blendEnabled", 1);
77
+ shaderData.setInt("renderQueueType", RenderQueueType.Transparent);
78
+ shaderData.enableMacro("MATERIAL_IS_TRANSPARENT");
79
+ } else {
80
+ shaderData.setInt("depthWriteEnabled", 1);
81
+ shaderData.setInt("blendEnabled", 0);
82
+ shaderData.setInt("renderQueueType", shaderData.getFloat("material_AlphaCutoff") ? RenderQueueType.AlphaTest : RenderQueueType.Opaque);
83
+ shaderData.disableMacro("MATERIAL_IS_TRANSPARENT");
84
+ }
85
+ })
86
+
87
+ this.onPropertyChanged("material_AlphaCutoff", (material: Material, value: number) => {
88
+ const shaderData = material.shaderData;
89
+ if (value) {
90
+ shaderData.enableMacro("MATERIAL_IS_ALPHA_CUTOFF")
91
+ } else {
92
+ shaderData.disableMacro("MATERIAL_IS_ALPHA_CUTOFF")
93
+ }
94
+ const renderQueue = shaderData.getInt("renderQueueType");
95
+ if (renderQueue !== RenderQueueType.Transparent) {
96
+ shaderData.setInt("renderQueueType", value > 0 ? RenderQueueType.AlphaTest : RenderQueueType.Opaque);
97
+ }
98
+ })
99
+
100
+ this.onPropertyChanged("renderFace", (material: Material, value: RenderFace) => {
101
+ const shaderData = material.shaderData;
102
+ switch (value) {
103
+ case RenderFace.Front:
104
+ shaderData.setInt("rasterStateCullMode", CullMode.Back);
105
+ break;
106
+ case RenderFace.Back:
107
+ shaderData.setInt("rasterStateCullMode", CullMode.Front);
108
+ break;
109
+ case RenderFace.Double:
110
+ shaderData.setInt("rasterStateCullMode", CullMode.Off);
111
+ break;
112
+ }
113
+ })
114
+
115
+ this.onPropertyChanged("blendMode", (material: Material, value: BlendMode) => {
116
+ const shaderData = material.shaderData;
117
+ switch (value) {
118
+ case BlendMode.Normal:
119
+ shaderData.setInt("sourceColorBlendFactor", BlendFactor.SourceAlpha);
120
+ shaderData.setInt("destinationColorBlendFactor", BlendFactor.OneMinusSourceAlpha);
121
+ shaderData.setInt("sourceAlphaBlendFactor", BlendFactor.One);
122
+ shaderData.setInt("destinationAlphaBlendFactor", BlendFactor.OneMinusSourceAlpha);
123
+ break;
124
+ case BlendMode.Additive:
125
+ shaderData.setInt("sourceColorBlendFactor", BlendFactor.SourceAlpha);
126
+ shaderData.setInt("destinationColorBlendFactor", BlendFactor.One);
127
+ shaderData.setInt("sourceAlphaBlendFactor", BlendFactor.One);
128
+ shaderData.setInt("destinationAlphaBlendFactor", BlendFactor.OneMinusSourceAlpha);
129
+ break;
130
+ }
131
+ })
132
+ }
133
+ }
134
+ `,J=`import { Material, RenderQueueType, Vector3, Vector2, Vector4, Color, BlendFactor, RenderFace, CullMode, BlendMode, RefractionMode } from "@galacean/engine";
135
+
136
+ export default class extends ShaderUIScript {
137
+ constructor() {
138
+ super();
139
+
140
+ this.onPropertyChanged("material_BaseTexture", (material: Material, value) => {
141
+ const shaderData = material.shaderData;
142
+ if (value) {
143
+ shaderData.enableMacro("MATERIAL_HAS_BASETEXTURE");
144
+ } else {
145
+ shaderData.disableMacro("MATERIAL_HAS_BASETEXTURE");
146
+ }
147
+ })
148
+
149
+ this.onPropertyChanged("material_RoughnessMetallicTexture", (material: Material, value) => {
150
+ const shaderData = material.shaderData;
151
+ if (value) {
152
+ shaderData.enableMacro("MATERIAL_HAS_ROUGHNESS_METALLIC_TEXTURE");
153
+ } else {
154
+ shaderData.disableMacro("MATERIAL_HAS_ROUGHNESS_METALLIC_TEXTURE");
155
+ }
156
+ })
157
+
158
+ this.onPropertyChanged("anisotropy", (material: Material, value) => {
159
+ const shaderData = material.shaderData;
160
+ const anisotropyInfo = shaderData.getVector3("material_AnisotropyInfo");
161
+
162
+ if (value) {
163
+ shaderData.enableMacro("MATERIAL_ENABLE_ANISOTROPY");
164
+ } else {
165
+ shaderData.disableMacro("MATERIAL_ENABLE_ANISOTROPY");
166
+ }
167
+
168
+ anisotropyInfo.z = value;
169
+ })
170
+
171
+ this.onPropertyChanged("anisotropyRotation", (material: Material, value) => {
172
+ const shaderData = material.shaderData;
173
+ const anisotropyInfo = shaderData.getVector3("material_AnisotropyInfo");
174
+ const rad = (Math.PI / 180) * value;
175
+
176
+ anisotropyInfo.x = Math.cos(rad);
177
+ anisotropyInfo.y = Math.sin(rad);
178
+ })
179
+
180
+ this.onPropertyChanged("material_AnisotropyTexture", (material: Material, value) => {
181
+ const shaderData = material.shaderData;
182
+ if (value) {
183
+ shaderData.enableMacro("MATERIAL_HAS_ANISOTROPY_TEXTURE");
184
+ } else {
185
+ shaderData.disableMacro("MATERIAL_HAS_ANISOTROPY_TEXTURE");
186
+ }
187
+ })
188
+
189
+ this.onPropertyChanged("material_NormalTexture", (material: Material, value) => {
190
+ const shaderData = material.shaderData;
191
+ if (value) {
192
+ shaderData.enableMacro("MATERIAL_HAS_NORMALTEXTURE");
193
+ } else {
194
+ shaderData.disableMacro("MATERIAL_HAS_NORMALTEXTURE");
195
+ }
196
+ })
197
+
198
+ this.onPropertyChanged("material_EmissiveTexture", (material: Material, value) => {
199
+ const shaderData = material.shaderData;
200
+ if (value) {
201
+ shaderData.enableMacro("MATERIAL_HAS_EMISSIVETEXTURE");
202
+ } else {
203
+ shaderData.disableMacro("MATERIAL_HAS_EMISSIVETEXTURE");
204
+ }
205
+ })
206
+
207
+ this.onPropertyChanged("material_OcclusionTexture", (material: Material, value) => {
208
+ const shaderData = material.shaderData;
209
+ if (value) {
210
+ shaderData.enableMacro("MATERIAL_HAS_OCCLUSION_TEXTURE");
211
+ } else {
212
+ shaderData.disableMacro("MATERIAL_HAS_OCCLUSION_TEXTURE");
213
+ }
214
+ })
215
+
216
+ this.onPropertyChanged("material_ClearCoat", (material: Material, value) => {
217
+ const shaderData = material.shaderData;
218
+ if (value) {
219
+ shaderData.enableMacro("MATERIAL_ENABLE_CLEAR_COAT");
220
+ } else {
221
+ shaderData.disableMacro("MATERIAL_ENABLE_CLEAR_COAT");
222
+ }
223
+ })
224
+
225
+ this.onPropertyChanged("material_ClearCoatTexture", (material: Material, value) => {
226
+ const shaderData = material.shaderData;
227
+ if (value) {
228
+ shaderData.enableMacro("MATERIAL_HAS_CLEAR_COAT_TEXTURE");
229
+ } else {
230
+ shaderData.disableMacro("MATERIAL_HAS_CLEAR_COAT_TEXTURE");
231
+ }
232
+ })
233
+
234
+ this.onPropertyChanged("material_ClearCoatRoughnessTexture", (material: Material, value) => {
235
+ const shaderData = material.shaderData;
236
+ if (value) {
237
+ shaderData.enableMacro("MATERIAL_HAS_CLEAR_COAT_ROUGHNESS_TEXTURE");
238
+ } else {
239
+ shaderData.disableMacro("MATERIAL_HAS_CLEAR_COAT_ROUGHNESS_TEXTURE");
240
+ }
241
+ })
242
+
243
+ this.onPropertyChanged("material_ClearCoatNormalTexture", (material: Material, value) => {
244
+ const shaderData = material.shaderData;
245
+ if (value) {
246
+ shaderData.enableMacro("MATERIAL_HAS_CLEAR_COAT_NORMAL_TEXTURE");
247
+ } else {
248
+ shaderData.disableMacro("MATERIAL_HAS_CLEAR_COAT_NORMAL_TEXTURE");
249
+ }
250
+ })
251
+
252
+ this.onPropertyChanged("iridescence", (material: Material, value) => {
253
+ const shaderData = material.shaderData;
254
+ const iridescenceInfo = shaderData.getVector4("material_IridescenceInfo");
255
+ if (value) {
256
+ shaderData.enableMacro("MATERIAL_ENABLE_IRIDESCENCE");
257
+ } else {
258
+ shaderData.disableMacro("MATERIAL_ENABLE_IRIDESCENCE");
259
+ }
260
+ iridescenceInfo.x = value;
261
+ })
262
+
263
+ this.onPropertyChanged("iridescenceIOR", (material: Material, value) => {
264
+ const shaderData = material.shaderData;
265
+ const iridescenceInfo = shaderData.getVector4("material_IridescenceInfo");
266
+ iridescenceInfo.y = value;
267
+ })
268
+
269
+ this.onPropertyChanged("iridescenceRange", (material: Material, value: Vector2) => {
270
+ const shaderData = material.shaderData;
271
+ const iridescenceInfo = shaderData.getVector4("material_IridescenceInfo");
272
+ iridescenceInfo.z = value.x;
273
+ iridescenceInfo.w = value.y;
274
+ })
275
+
276
+ this.onPropertyChanged("material_IridescenceTexture", (material: Material, value) => {
277
+ const shaderData = material.shaderData;
278
+ if (value) {
279
+ shaderData.enableMacro("MATERIAL_HAS_IRIDESCENCE_TEXTURE");
280
+ } else {
281
+ shaderData.disableMacro("MATERIAL_HAS_IRIDESCENCE_TEXTURE");
282
+ }
283
+ })
284
+
285
+ this.onPropertyChanged("material_IridescenceThicknessTexture", (material: Material, value) => {
286
+ const shaderData = material.shaderData;
287
+ if (value) {
288
+ shaderData.enableMacro("MATERIAL_HAS_IRIDESCENCE_THICKNESS_TEXTURE");
289
+ } else {
290
+ shaderData.disableMacro("MATERIAL_HAS_IRIDESCENCE_THICKNESS_TEXTURE");
291
+ }
292
+ })
293
+
294
+
295
+ this.onPropertyChanged("sheenColor", (material: Material, value: Color) => {
296
+ const shaderData = material.shaderData;
297
+ const sheenColor = shaderData.getColor("material_SheenColor");
298
+ const sheenIntensity = shaderData.getFloat("sheenIntensity");
299
+
300
+ const r = value.r * sheenIntensity;
301
+ const g = value.g * sheenIntensity;
302
+ const b = value.b * sheenIntensity;
303
+ sheenColor.set(r, g, b, 1);
304
+
305
+ const enableSheen = r + g + b > 0;
306
+ if (enableSheen) {
307
+ shaderData.enableMacro("MATERIAL_ENABLE_SHEEN");
308
+ } else {
309
+ shaderData.disableMacro("MATERIAL_ENABLE_SHEEN");
310
+ }
311
+ })
312
+
313
+ this.onPropertyChanged("sheenIntensity", (material: Material, value: number) => {
314
+ const shaderData = material.shaderData;
315
+ const uiSheenColor = shaderData.getColor("sheenColor");
316
+ const sheenColor = shaderData.getColor("material_SheenColor");
317
+
318
+ sheenColor.set(value * uiSheenColor.r, value * uiSheenColor.g, value * uiSheenColor.b, 1)
319
+ })
320
+
321
+
322
+ this.onPropertyChanged("material_SheenTexture", (material: Material, value) => {
323
+ const shaderData = material.shaderData;
324
+ if (value) {
325
+ shaderData.enableMacro("MATERIAL_HAS_SHEEN_TEXTURE");
326
+ } else {
327
+ shaderData.disableMacro("MATERIAL_HAS_SHEEN_TEXTURE");
328
+ }
329
+ })
330
+
331
+ this.onPropertyChanged("material_SheenRoughnessTexture", (material: Material, value) => {
332
+ const shaderData = material.shaderData;
333
+ if (value) {
334
+ shaderData.enableMacro("MATERIAL_HAS_SHEEN_ROUGHNESS_TEXTURE");
335
+ } else {
336
+ shaderData.disableMacro("MATERIAL_HAS_SHEEN_ROUGHNESS_TEXTURE");
337
+ }
338
+ })
339
+
340
+ this.onPropertyChanged("material_Transmission", (material: Material, value) => {
341
+ const shaderData = material.shaderData;
342
+
343
+ if (value) {
344
+ shaderData.enableMacro("MATERIAL_ENABLE_TRANSMISSION");
345
+ shaderData.setInt("renderQueueType", RenderQueueType.Transparent);
346
+ } else {
347
+ shaderData.disableMacro("MATERIAL_ENABLE_TRANSMISSION");
348
+ const isTransparent = Boolean(shaderData.getFloat("isTransparent"));
349
+ if (isTransparent) {
350
+ shaderData.setInt("renderQueueType", RenderQueueType.Transparent);
351
+ } else if (shaderData.getFloat("material_AlphaCutoff")) {
352
+ shaderData.setInt("renderQueueType", RenderQueueType.AlphaTest);
353
+ } else {
354
+ shaderData.setInt("renderQueueType", RenderQueueType.Opaque);
355
+ }
356
+
357
+ }
358
+ })
359
+
360
+ this.onPropertyChanged("material_TransmissionTexture", (material: Material, value) => {
361
+ const shaderData = material.shaderData;
362
+ if (value) {
363
+ shaderData.enableMacro("MATERIAL_HAS_TRANSMISSION_TEXTURE");
364
+ } else {
365
+ shaderData.disableMacro("MATERIAL_HAS_TRANSMISSION_TEXTURE");
366
+ }
367
+ })
368
+
369
+ this.onPropertyChanged("material_Thickness", (material: Material, value) => {
370
+ const shaderData = material.shaderData;
371
+ if (value) {
372
+ shaderData.enableMacro("MATERIAL_HAS_THICKNESS");
373
+ } else {
374
+ shaderData.disableMacro("MATERIAL_HAS_THICKNESS");
375
+ }
376
+ })
377
+
378
+ this.onPropertyChanged("material_ThicknessTexture", (material: Material, value) => {
379
+ const shaderData = material.shaderData;
380
+ if (value) {
381
+ shaderData.enableMacro("MATERIAL_HAS_THICKNESS_TEXTURE");
382
+ } else {
383
+ shaderData.disableMacro("MATERIAL_HAS_THICKNESS_TEXTURE");
384
+ }
385
+ })
386
+
387
+ this.onPropertyChanged("isTransparent", (material: Material, isTransparent: boolean) => {
388
+ const shaderData = material.shaderData;
389
+ shaderData.setInt("depthWriteEnabled",isTransparent?0:1);
390
+ shaderData.setInt("blendEnabled", isTransparent?1:0);
391
+
392
+ if (shaderData.getFloat("material_Transmission") > 0) {
393
+ shaderData.setInt("renderQueueType", RenderQueueType.Transparent);
394
+ } else if(isTransparent) {
395
+ shaderData.setInt("renderQueueType", RenderQueueType.Transparent);
396
+ shaderData.enableMacro("MATERIAL_IS_TRANSPARENT");
397
+ } else {
398
+ shaderData.setInt("renderQueueType", shaderData.getFloat("material_AlphaCutoff") ? RenderQueueType.AlphaTest : RenderQueueType.Opaque);
399
+ shaderData.disableMacro("MATERIAL_IS_TRANSPARENT");
400
+ }
401
+
402
+ })
403
+
404
+ this.onPropertyChanged("material_AlphaCutoff", (material: Material, value: number) => {
405
+ const shaderData = material.shaderData;
406
+
407
+ if (value) {
408
+ shaderData.enableMacro("MATERIAL_IS_ALPHA_CUTOFF")
409
+ } else {
410
+ shaderData.disableMacro("MATERIAL_IS_ALPHA_CUTOFF")
411
+ }
412
+ const renderQueue = shaderData.getInt("renderQueueType");
413
+
414
+ if (shaderData.getFloat("material_Transmission") > 0) {
415
+ shaderData.setInt("renderQueueType", RenderQueueType.Transparent);
416
+ } else if (renderQueue !== RenderQueueType.Transparent) {
417
+ shaderData.setInt("renderQueueType", value > 0 ? RenderQueueType.AlphaTest : RenderQueueType.Opaque);
418
+ }
419
+ })
420
+
421
+ this.onPropertyChanged("renderFace", (material: Material, value: RenderFace) => {
422
+ const shaderData = material.shaderData;
423
+ switch (value) {
424
+ case RenderFace.Front:
425
+ shaderData.setInt("rasterStateCullMode", CullMode.Back);
426
+ break;
427
+ case RenderFace.Back:
428
+ shaderData.setInt("rasterStateCullMode", CullMode.Front);
429
+ break;
430
+ case RenderFace.Double:
431
+ shaderData.setInt("rasterStateCullMode", CullMode.Off);
432
+ break;
433
+ }
434
+ })
435
+
436
+ this.onPropertyChanged("blendMode", (material: Material, value: BlendMode) => {
437
+ const shaderData = material.shaderData;
438
+ switch (value) {
439
+ case BlendMode.Normal:
440
+ shaderData.setInt("sourceColorBlendFactor", BlendFactor.SourceAlpha);
441
+ shaderData.setInt("destinationColorBlendFactor", BlendFactor.OneMinusSourceAlpha);
442
+ shaderData.setInt("sourceAlphaBlendFactor", BlendFactor.One);
443
+ shaderData.setInt("destinationAlphaBlendFactor", BlendFactor.OneMinusSourceAlpha);
444
+ break;
445
+ case BlendMode.Additive:
446
+ shaderData.setInt("sourceColorBlendFactor", BlendFactor.SourceAlpha);
447
+ shaderData.setInt("destinationColorBlendFactor", BlendFactor.One);
448
+ shaderData.setInt("sourceAlphaBlendFactor", BlendFactor.One);
449
+ shaderData.setInt("destinationAlphaBlendFactor", BlendFactor.OneMinusSourceAlpha);
450
+ break;
451
+ }
452
+ })
453
+
454
+
455
+ this.onPropertyChanged("refractionMode", (material: Material, value: RefractionMode) => {
456
+ material.shaderData.enableMacro("REFRACTION_MODE", value.toString());
457
+ })
458
+
459
+ }
460
+
461
+ override onMaterialShaderSwitched(material: Material) {
462
+ const shaderData = material.shaderData;
463
+
464
+ shaderData.disableMacro("MATERIAL_OMIT_NORMAL");
465
+ shaderData.enableMacro("MATERIAL_NEED_WORLD_POS");
466
+ shaderData.enableMacro("MATERIAL_NEED_TILING_OFFSET");
467
+
468
+ // default value
469
+ const anisotropyInfo = shaderData.getVector3("material_AnisotropyInfo");
470
+ const iridescenceInfo = shaderData.getVector4("material_IridescenceInfo");
471
+ const sheenColor = shaderData.getColor("material_SheenColor");
472
+ const attenuationColor = shaderData.getColor("material_AttenuationColor");
473
+
474
+
475
+ if (!anisotropyInfo) {
476
+ shaderData.setVector3("material_AnisotropyInfo", new Vector3(1, 0, 0));
477
+ } else {
478
+ shaderData.setFloat("anisotropy", anisotropyInfo.z);
479
+ const PI2 = Math.PI * 2;
480
+ const rotationRad = (Math.atan2(anisotropyInfo.y, anisotropyInfo.x) + PI2) % PI2;
481
+ shaderData.setFloat("anisotropyRotation", rotationRad * (180 / Math.PI))
482
+ }
483
+
484
+ if (!iridescenceInfo) {
485
+ shaderData.setVector4("material_IridescenceInfo", new Vector4(0, 1.3, 100, 400));
486
+ } else {
487
+ shaderData.setFloat("iridescence", iridescenceInfo.x);
488
+ shaderData.setFloat("iridescenceIOR", iridescenceInfo.y);
489
+ shaderData.setVector2("iridescenceRange", new Vector2(iridescenceInfo.z, iridescenceInfo.w));
490
+ }
491
+
492
+ if(attenuationColor && attenuationColor.a == undefined){
493
+ attenuationColor.a = 1;
494
+ }
495
+
496
+ if (!sheenColor) {
497
+ shaderData.setColor("material_SheenColor", new Color(0, 0, 0, 1));
498
+ } else {
499
+ const intensity = shaderData.getFloat("sheenIntensity") ?? 1;
500
+
501
+ if(!shaderData.getColor("sheenColor")) {
502
+ shaderData.setColor("sheenColor", new Color());
503
+ }
504
+
505
+ shaderData.getColor("sheenColor").copyFrom(sheenColor)
506
+
507
+ if(intensity > 0) {
508
+ shaderData.getColor("sheenColor").scale(1 / intensity).a = 1.0;
509
+ }
510
+
511
+ }
512
+ }
513
+ }
514
+
515
+ `;var M=(t=>(t.Default="default",t[t.StateMachine=c.StateMachine]="StateMachine",t.UnlitUIScript="unlitUIScript",t.PbrUIScript="pbrUIScript",t.DefaultUIScript="defaultUIScript",t))(M||{});const b={default:W,[M.StateMachine]:K,defaultUIScript:q,unlitUIScript:Y,pbrUIScript:J},Z=t=>{const{type:a="esm",varName:e,namedExports:r=null,defaultExport:s=!0}=typeof t=="string"?{varName:t}:t;return{type:a,varName:e,namedExports:r,defaultExport:s}},ee=t=>`module.exports = ${t};`,ae=(t,a,e)=>{const r=e?[`export default ${t};`]:[];if(a&&a.length){const s=[...new Set(a)].join(", ");r.push(`const { ${s} } = ${t};`),r.push(`export { ${s} };`)}return r.join(`
516
+ `)},te=t=>{const{type:a,varName:e,namedExports:r,defaultExport:s}=t;switch(a){case"esm":return ae(e,r,s);case"cjs":return ee(e)}},A="global-externals",re=t=>{const{modulePathFilter:a,getModuleInfo:e}=t;return{name:A,setup(r){r.onResolve({filter:a},s=>({path:s.path,namespace:A})),r.onLoad({filter:/.*/,namespace:A},s=>{const n=s.path,o=Z(e(n));return{contents:te(o)}})}}},se=t=>{const a={modulePathFilter:new RegExp(`^(?:${Object.keys(t).join("|")})$`),getModuleInfo:e=>t[e]};return re(a)};class ne{constructor(){d(this,"_propertyCallBacks",new Map);d(this,"_macroCallBacks",new Map)}onMaterialShaderSwitched(a){}onPropertyChanged(a,e){this._propertyCallBacks.set(a,e)}onMacroChanged(a,e){this._macroCallBacks.set(a,e)}}const oe=U(t=>{const a=t.asset,e=a.properties.map(n=>({label:n,type:h.PureDisplay,disable:!0,value:"",property:n})),r=a.macros.map(n=>({label:n,type:h.PureDisplay,disable:!0,value:"",property:n})),s=a.referencedShaderList.map(n=>({label:n.includePath,type:h.PureDisplay,disable:!0,value:"",property:n.includePath}));return u.jsxs(u.Fragment,{children:[u.jsx(m,{onModelChange:null,inspectorConfig:{property:"Watched Properties",type:h.Group,children:e},model:a},"ScriptProperties"),u.jsx(m,{onModelChange:null,inspectorConfig:{property:"Watched Macros",type:h.Group,children:r},model:a},"ScriptMacros"),u.jsx(m,{onModelChange:null,inspectorConfig:{property:"Referenced Shaders",type:h.Group,children:s},model:a},"ReferencedShaders")]})});var g=Object.defineProperty,ie=Object.getOwnPropertyDescriptor,le=(t,a,e)=>a in t?g(t,a,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[a]=e,p=(t,a,e,r)=>{for(var s=r>1?void 0:r?ie(a,e):a,n=t.length-1,o;n>=0;n--)(o=t[n])&&(s=(r?o(a,e,s):o(s))||s);return r&&s&&g(a,e,s),s},de=(t,a,e)=>(le(t,typeof a!="symbol"?a+"":a,e),e);let l=class extends O{constructor(a,e,r){super(a);d(this,"_code");d(this,"isScript",!0);d(this,"subType",c.Default);if(N(this),this.onDoubleClick=this.onDoubleClick.bind(this),r&&r.subType){if(r.subType===c.ShaderUI)return Reflect.construct(l.getScriptConstruct(c.ShaderUI),[a,e]);if(r.subType===c.StateMachine)return Reflect.construct(l.getScriptConstruct(c.StateMachine),[a,e])}return this}static registerScriptConstruct(a,e){return this.registeredScriptMap.set(a,e)}static getScriptConstruct(a){return this.registeredScriptMap.get(a)}get code(){return this._code}set code(a){this._code=a}updateCode(a){this._code=a,this._originMainFile=new File([a],this.name)}async initByMain(a){const e=await a.text();this._code=e,this.subType=this.meta.subType??c.Default}async initByCreation(a,e,r={template:M.Default}){const s=b[r.template];return this._code=s.replace("$$name",z(this.name)),this._code}onDoubleClick(){f(this.root.projectStore.id,this.id),C()}getMainData(){return this._code}};de(l,"registeredScriptMap",new Map);p([B],l.prototype,"_code",2);p([R()],l.prototype,"subType",2);p([x({type:h.Textarea,label:y("script.source.code")}),w],l.prototype,"code",1);l=p([V({type:"script",label:y("asset.script.title"),defaultName:"Script.ts",extname:"ts",dragLayer:H.Script,importMenuConfig:{type:$.Add},bundle({content:t}){return{content:new Blob([t],{type:"text/plain; charset=utf-8"})}}})],l);const ce=async t=>Q(()=>import(t),[]);async function he(t,a=ce){const e=URL.createObjectURL(new Blob([t],{type:"application/javascript"}));try{return await a(e)}finally{URL.revokeObjectURL(e)}}var ue=Object.defineProperty,pe=Object.getOwnPropertyDescriptor,me=(t,a,e,r)=>{for(var s=r>1?void 0:r?pe(a,e):a,n=t.length-1,o;n>=0;n--)(o=t[n])&&(s=(r?o(a,e,s):o(s))||s);return r&&s&&ue(a,e,s),s};window.Galacean=k;window.ShaderUIScript=ne;var i;const v=(i=class extends l{constructor(){super(...arguments);d(this,"subType",c.ShaderUI);d(this,"_script");d(this,"_referencedShaderList",[])}get referencedShaderList(){return this._referencedShaderList}getMetaConfig(){let e=l.getRegisteredAssetMeta(l);return e={...e,defaultName:"ShaderUIScript.ts",customInspector:oe},e}get properties(){return Array.from(this._script._propertyCallBacks.keys())}get macros(){return Array.from(this._script._macroCallBacks.keys())}addReferencedShader(e){this._referencedShaderList.findIndex(r=>r.id===e.id)===-1&&this._referencedShaderList.push(e)}removeReferencedShader(e){const r=this._referencedShaderList.findIndex(s=>s.id===e.id);r!==-1&&this._referencedShaderList.splice(r,1)}async initByMain(e,r){const s=await e.text();await this.updateCode(s);const n=this.getRouteString();i.assetsMap.set(n,this)}initByCreation(e,r,s){return this._code=b[s.template],Promise.resolve(this.getMainData())}async updateCode(e){this._code=e,this._originMainFile=new File([e],this.name);const r=await this._compile(e),s=await he(r.contents);this._script=new s.default}async _compile(e){await this.root.esbuildInstancePromise;const{dependencies:r,setting:s}=this.root.projectStore;return(await X.build({stdin:{contents:e,loader:"ts"},bundle:!0,format:"esm",plugins:[se({"@galacean/engine":{varName:"Galacean",type:"cjs"}}),Ae(s.dependencies??r??{})]})).outputFiles[0]}async rename(e){let r=this.getRouteString();i.assetsMap.delete(r),await super.rename(e),r=this.getRouteString(),i.assetsMap.set(r,this),this._refreshShader()}afterDelete(){var r;(r=super.afterDelete)==null||r.call(this);const e=this.getRouteString();i.assetsMap.delete(e),this._refreshShader()}async moveTo(e){let r=this.getRouteString();i.assetsMap.delete(r),await this.moveViaFacade(e),r=this.getRouteString(),i.assetsMap.set(r,this),this._refreshShader()}getPropertyCallback(e){return this._script._propertyCallBacks.get(e)}getMacroCallback(e){return this._script._macroCallBacks.get(e)}onShaderChange(e){return this._script.onMaterialShaderSwitched(e)}onDoubleClick(){if(this.locked){G.error("Cannot edit internal Shader");return}f(this.root.projectStore.id,this.id),C()}_refreshShader(){for(const e of this._referencedShaderList)e.reCompile()}},d(i,"assetsMap",new Map),i);me([R()],v.prototype,"subType",2);let De=v;const E=new Map;function Ae(t){return{name:"cdnImport",setup(a){a.onResolve({filter:/^\S/},e=>({namespace:"cdn",path:e.path})),a.onLoad({namespace:"cdn",filter:/^./},async e=>{const r=E.get(e.path);if(r)return{contents:r,loader:"js"};const s=e.path,n=t[s]??"latest",o=`https://registry.npmmirror.com/${s}/${n}/files`,_=await fetch(`${o}/package.json`);if(!_.ok)return{errors:[{text:`package not found: ${s}`}]};const T=await _.json(),S=T.browser||T.main;if(S){const L=j("/",S),I=await fetch(`${o}${L}`);if(I.ok){const D=await I.text();return E.set(s,D),{contents:D,loader:"js"}}else return{errors:[{text:`failed to import ${e.path}`}]}}})}}}export{c as E,ne as S,l as a,De as b,M as c,b as t};
@@ -0,0 +1 @@
1
+ var y=Object.defineProperty;var j=(t,e,r)=>e in t?y(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var c=(t,e,r)=>(j(t,typeof e!="symbol"?e+"":e,r),r);import{aT as m,b9 as v,aU as b,aD as s,aE as S,aG as d,aH as f,aK as g,aJ as u,aY as k,aV as B,f as F,p as h,C as O,s as R}from"./index-0a8702e2.js";import{u as E}from"./InstanceEditorAsset-a70e73fe.js";import"./AssetPreviewer-24e31d97.js";import{c as I}from"./Component-f923abb1.js";import{c as M}from"./createOnModelChange-b57a0da8.js";import{M as _}from"./MaterialInspector-aec1248b.js";import{M as z}from"./MeshRendererBaseComponent-3a0e09ed.js";import"./ThumbnailRegistry-495c18c9.js";import"./IconPlayerPlayFilled-b058c98f.js";import"./IconPointFilled-a304fd34.js";const x=m(v),P=m(({model:t,inspectorConfig:e,onModelChange:r})=>{const{disabled:n,property:o}=e,{t:i}=b();return s.jsxs(s.Fragment,{children:[s.jsx(S,{label:i(e.label),info:i(e.info),fieldCss:{minHeight:"$5"},children:s.jsx(d,{size:"sm",selectable:!0,code:!0,children:null})}),s.jsx(x,{label:" ",disabled:n,value:t[o].min,onChange:a=>{r==null||r(o,{...t[o],min:a})},formEndSlot:s.jsx(d,{size:"sm",selectable:!0,code:!0,children:i("skinned-mesh-renderer.local-bounds.min.label")})}),s.jsx(x,{label:" ",disabled:n,value:t[o].max,onChange:a=>{r==null||r(o,{...t[o],max:a})},formEndSlot:s.jsx(d,{size:"sm",selectable:!0,code:!0,children:i("skinned-mesh-renderer.local-bounds.max.label")})})]})}),T=f("div",{marginLeft:"5px"}),C=f(g,{border:"1px solid $gray6",borderRadius:"$2",padding:"$0_5",color:"$gray11",cursor:"pointer"}),$=m(function(t){const e=t.data,{t:r}=b();return s.jsxs(C,{align:"v",children:[s.jsx("img",{src:e.thumbnailUrl,alt:"Material Thumbnail",width:"20px",height:"20px"}),s.jsxs(T,{children:[r("skinned-mesh-renderer.material.label"),"(",e.name,")"]})]})}),H=m(function(t){const[e,r]=u.useState(null),n=t.data,{assetStore:o,inspectorFacade:i}=E();return u.useEffect(()=>{o.getAssetByRef(n.material).then(a=>{r(a)})},[n.material]),s.jsxs(s.Fragment,{children:[s.jsx(k.List,{model:n,configs:n.formSchema.items,onModelChange:M("component",n.id,i,n)}),e&&s.jsx(B,{nesting:!0,title:s.jsx($,{data:e}),open:n.materialOpen,onOpenChange:a=>{n.setMaterialOpen(a)},children:s.jsx(_,{asset:e})})]})});var V=Object.defineProperty,w=Object.getOwnPropertyDescriptor,p=(t,e,r,n)=>{for(var o=n>1?void 0:n?w(e,r):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(o=(n?a(e,r,o):a(o))||o);return n&&o&&V(e,r,o),o};let l=class extends z{constructor(e,r){super(e,r);c(this,"rootBone",null);c(this,"localBounds",{min:{x:0,y:0,z:0},max:{x:0,y:0,z:0}})}};p([F({getEngineValue:t=>{var e;return(e=t.skin)==null?void 0:e.rootBone}}),h({label:"skinned-mesh-renderer.skin.root-bone.label",info:"skinned-mesh-renderer.skin.root-bone.info",type:O.EntityPicker,disabled:!0})],l.prototype,"rootBone",2);p([h({label:"skinned-mesh-renderer.local-bounds.title",info:"skinned-mesh-renderer.local-bounds.info",customComponent:P,type:"BoundingBox"}),R()],l.prototype,"localBounds",2);l=p([I({type:"SkinnedMeshRenderer",customInspector:H,componentsMenu:{label:"component.renderer.skinned-mesh.title"}})],l);export{l as SkinnedMeshRendererComponent};
@@ -0,0 +1 @@
1
+ var F=Object.defineProperty;var S=(e,i,n)=>i in e?F(e,i,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[i]=n;var a=(e,i,n)=>(S(e,typeof i!="symbol"?i+"":i,n),n);import{S as v,a as B}from"./module-107b7430.js";import{aT as h,b8 as b,e as y,E as N,u as g,p as l,C as f,s as m}from"./index-0a8702e2.js";import{u as k}from"./InstanceEditorAsset-a70e73fe.js";import"./ThumbnailMixin-35997457.js";import"./AssetPreviewer-24e31d97.js";import"./CanvasRenderer-9dd98cb3.js";import{c as O}from"./Component-f923abb1.js";import"./postmen-45d4c238.js";import"./ThumbnailRegistry-495c18c9.js";import"./IconPlayerPlayFilled-b058c98f.js";const P=h(function(e){const{model:i}=e,{inspectorFacade:n}=k();return b({label:y("spine.animation.label"),value:i.animationName,options:i.animationForm,onChange(t){n.componentChange(i.id,"animationName",t)}})}),T=h(function(e){const{model:i}=e,{inspectorFacade:n}=k();return b({label:y("spine.skin.label"),value:i.skinName,options:i.skinForm,onChange(t){n.componentChange(i.id,"skinName",t)}})});var _=Object.defineProperty,j=Object.getOwnPropertyDescriptor,p=(e,i,n,t)=>{for(var o=t>1?void 0:t?j(i,n):i,c=e.length-1,u;c>=0;c--)(u=e[c])&&(o=(t?u(i,n,o):u(o))||o);return t&&o&&_(i,n,o),o};let s=class extends N{constructor(i,n){super(i,n);a(this,"animationForm",[]);a(this,"skinForm",[]);a(this,"hasInit",!1);a(this,"resource",null);a(this,"loop",!1);a(this,"animationName","none");a(this,"skinName","default");a(this,"priority",0);a(this,"premultipliedAlpha",!1);a(this,"tintBlack",!1)}deserialize(i){const{props:n}=i;if(this._enabled=(n==null?void 0:n.enabled)??!0,n){this.priority=n.priority,this.resource=n.resource,this.premultipliedAlpha=n.premultipliedAlpha,this.tintBlack=n.tintBlack??!1;const{animationName:t,skinName:o,loop:c}=n.defaultConfig;this.animationName=t||"none",this.skinName=o,this.loop=c}super.deserialize(i)}toJSON(){const i=this.animationName==="none"?null:this.animationName;return{id:this.id,class:this.type,props:{enabled:this.enabled,priority:this.priority,resource:this.resource,premultipliedAlpha:this.premultipliedAlpha,tintBlack:this.tintBlack,defaultConfig:{animationName:i,skinName:this.skinName,loop:this.loop}}}}};p([g],s.prototype,"animationForm",2);p([g],s.prototype,"skinForm",2);p([l({label:"spine.resource.label",info:"spine.resource.info",type:f.AssetPicker,assetType:"SpineSkeletonData",onChange:async(e,i,n)=>{const t=e.engineObject;if(n){t.enabled=!0;const{skeletonData:o}=n;if(!o)return;const u=o.animations.map(r=>r.name).map(r=>({label:r,value:r}));u.unshift({label:"none",value:"none"}),e.animationForm=u,e.skinForm=o.skins.map(r=>({label:r.name,value:r.name})),e.hasInit?(e.animationName="none",e.skinName="default"):e.hasInit=!0;const{loop:d,skinName:C}=e,A=e.animationName==="none"?null:e.animationName;t.defaultConfig.animationName=A,t.defaultConfig.skinName=C,t.defaultConfig.loop=d,t.resource=new v(t.engine,o)}else t.enabled=!1,e.animationName="none",e.animationForm.length=0,e.skinForm.length=0,e.premultipliedAlpha=!1,e.tintBlack=!1}}),m()],s.prototype,"resource",2);p([l({label:"spine.loop.label",info:"spine.loop.info",type:f.Toggle,onChange(e,i,n){const{state:t}=e.engineObject;if(t){const o=t.getCurrent(0);o&&(o.loop=n)}}}),m()],s.prototype,"loop",2);p([l({info:"spine.animation.info",customComponent:P,onChange(e,i,n){const{state:t}=e.engineObject;t&&(n==="none"?t.setEmptyAnimation(0,0):t.setAnimation(0,n,e.loop))}}),m()],s.prototype,"animationName",2);p([l({info:"spine.skin.info",customComponent:T,onChange(e,i,n){const{engineObject:{skeleton:t}}=e;t&&n&&(t.setSkinByName(n),t.setSlotsToSetupPose())}}),m()],s.prototype,"skinName",2);p([l({label:"spine.priority.label",info:"spine.priority.info",type:f.Number,bindPath:"priority"}),m()],s.prototype,"priority",2);p([l({label:"spine.premultiplied-alpha.label",info:"spine.premultiplied-alpha.info",type:f.Toggle,bindPath:"premultipliedAlpha"}),m()],s.prototype,"premultipliedAlpha",2);p([l({label:"spine.tint-black.label",info:"spine.tint-black.info",type:f.Toggle,bindPath:"tintBlack"}),m()],s.prototype,"tintBlack",2);s=p([O({type:"SpineAnimationRenderer",componentsMenu:{group:"2D",label:"component.spine-animation.title"}})],s);N.registerCustomEngineComponent("SpineAnimationRenderer",B);export{s as SpineAnimationComponent};
@@ -0,0 +1 @@
1
+ var E=Object.defineProperty;var I=(t,s,e)=>s in t?E(t,s,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[s]=e;var c=(t,s,e)=>(I(t,typeof s!="symbol"?s+"":s,e),e);import{e as w,aH as j,o as B,S as $,aT as U,aJ as P,aD as A,u as g,J as k,b5 as z,b6 as q,j as V,_ as J,cb as M,p as K,C as L,b0 as W,m as X,n as Y,c9 as H}from"./index-0a8702e2.js";import{b as G,c as Q,T as Z,d as ee,R as te,M as ne,B as se,P as ie,e as ae,C as oe,f as re,a as C,S as T,L as le}from"./module-107b7430.js";import{a as pe,A as ce}from"./InstanceEditorAsset-a70e73fe.js";import"./ThumbnailMixin-35997457.js";import{A as ue}from"./AssetPreviewer-24e31d97.js";import"./CanvasRenderer-9dd98cb3.js";import"./postmen-45d4c238.js";import{A as me}from"./AssetViewer-bc198e16.js";import{n as he}from"./index-be6bc38a.js";const x=new Map;function de(t){return t??""}function fe(t){return`${t.name}|${t.size}|${t.lastModified}|${t.type}`}function ge(t,s){const{uploadAssetFile:e,assetType:n,parentFolderId:i,assetMeta:a}=s,o=i??t.currentFolderId??"",r=e.main,u=fe(r),l=de(a);return`${o}|${n}|${u}|${l}`}function v(t,s){const e=ge(t,s),n=x.get(e);if(n)return n;const i=t.createAssetByUpload(s).finally(()=>{x.get(e)===i&&x.delete(e)});return x.set(e,i),i}var N=(t=>(t.region="region",t.boundingbox="boundingbox",t.mesh="mesh",t.linkedmesh="linkedmesh",t.path="path",t.point="point",t.clipping="clipping",t.sequence="sequence",t))(N||{});const ye=["region","linkedmesh","mesh"];async function Ae(t,s){const e={uploadFiles:[],usedFiles:[],errors:[]},{atlasRawFiles:n,atlasFound:i}=await we(t,e),a=await Promise.all(n.map(l=>v(s.root.assetFacade,{uploadAssetFile:l,assetType:"SpineAtlas"})));e.usedFiles.push(...n.flatMap(l=>[l.main,...Object.values(l.subFiles)]));const o=await ke(t,e);o.length>0&&!i&&e.errors.push(w("spine.error.no-atlas-file"));const r=o.map(l=>(e.usedFiles.push(l.spineFile),Se(l,a,e)));let u=await Promise.all(r);return u=u.filter(l=>l!==null),e.uploadFiles.push(...u),e}async function we(t,s){const e=[];let n=!1;for(const i in t){const a=t[i];if(a.name.endsWith(".atlas")){n=!0;const r=await be(t,a);if(r.length>0){const u={};r.forEach(l=>u[l.name]=l),e.push({main:a,subFiles:u})}else s.errors.push(w("spine.error.missing-images"))}}return{atlasRawFiles:e,atlasFound:n}}async function ke(t,s){const e=[];for(const n in t){const i=t[n],a=i.name,o=a.split(".")[0];if(a.endsWith(".json"))try{const r=await i.text(),u=JSON.parse(r);u.skeleton&&u.skeleton.spine&&e.push({spineFile:i,spineName:o,isBinary:!1})}catch(r){s.errors.push(b(a,r))}else a.endsWith(".skel")&&e.push({spineFile:i,spineName:o,isBinary:!0})}return e}async function Se(t,s,e){const{spineFile:n}=t,i={type:"SpineSkeletonData",atlas:{refId:null}},a={main:n,meta:null};let o;try{o=await xe(t,s,e)}catch(r){return e.errors.push(r instanceof Error?r.message:b(n.name,r)),null}return s.length===0?null:o?(i.atlas.refId=o.id,a.meta=JSON.stringify(i),a):(e.errors.push(w("spine.error.missing-attachments")),null)}async function xe(t,s,e){const n=await De(t);return await Fe(s,n)}async function De(t){const{spineFile:s,isBinary:e}=t,n=new Set;if(e){const r=await s.arrayBuffer();return _e(r,n),Array.from(n)}const i=await s.text();let a;try{a=JSON.parse(i)}catch(r){throw new Error(b(s.name,r))}return!a||!a.skins?[]:(a.skins.forEach(r=>{if(r.attachments)for(const u in r.attachments){const l=r.attachments[u];for(const y in l){const p=l[y];if(p.type){let h;const f=p.type;try{h=N[f]}catch(F){throw console.warn(w("spine.error.incompatible-version",f)),F}if(!ye.includes(h))continue}if(p.path)n.add(p.path);else if(p.name)n.add(p.name);else if(p.sequence){const h=new G(null).readSequence(p.sequence);if(h)for(let f=0;f<h.regions.length;++f)n.add(h.getPath(y,f));else n.add(y)}else n.add(y)}}}),Array.from(n))}function _e(t,s){new Q(new D(s)).readSkeletonData(new Uint8Array(t))}class D{constructor(s){c(this,"requiredPaths");this.requiredPaths=s}static assignDummyRegion(s){s.region=new Z(new ee("dummy"),"")}newRegionAttachment(s,e,n,i){const a=new te(e,"");return i?this.loadSequence(n,i):(this.requiredPaths.add(n),D.assignDummyRegion(a)),a}newMeshAttachment(s,e,n,i){const a=new ne(e,"");return i?this.loadSequence(n,i):(this.requiredPaths.add(n),D.assignDummyRegion(a)),a}newBoundingBoxAttachment(s,e){return new se(e)}newPathAttachment(s,e){return new ie(e)}newPointAttachment(s,e){return new ae(e)}newClippingAttachment(s,e){return new oe(e)}loadSequence(s,e){const n=e.regions;for(let i=0,a=n.length;i<a;i++){const o=e.getPath(s,i);this.requiredPaths.add(o)}}}async function Fe(t,s){for(let e=0;e<t.length;e+=1){const n=t[e];if(Re(n.textureAtlas,s))return n}return null}async function Re(t,s){for(let e=0;e<s.length;e+=1){const n=s[e];if(!Te(t,n))return!1}return!0}function b(t,s){const e=s instanceof Error?s.message:String(s);return`Failed to parse spine JSON "${t}": ${e}`}function Te(t,s){const e=t.findRegion(s);if(e)return e;const n=s.length;for(const i of t.regions){const a=i.name;if(a.startsWith(s)&&a.substring(n).split("").every(r=>r>="0"&&r<="9"))return i}return null}async function be(t,s){const e=await s.text(),n=new re(e),i=[];return n.pages.forEach(a=>{const o=a.name,r=t[o];if(r)i.push(r);else return null}),i}async function Le(t,s,e){const n=t.main,i=await Pe(t,e);return{main:n,meta:JSON.stringify({textures:i,type:"SpineAtlas"})}}async function Pe(t,s){const e=[];for(const p in t.subFiles){const h=t.subFiles[p];h.name.endsWith(".atlas")||e.push({main:h,type:"Texture"})}const n=[];let i=[],a;const o=s.getAssetFromCurrentFolder();(o==null?void 0:o.length)>0&&(a=o.filter(p=>p.meta.type==="Texture")),a?e.forEach(p=>{const h=a.find(f=>f.name===p.main.name);h?n.push(h.getCurrentRef()):i.push(p)}):i=e;const r=[];i.forEach(p=>{r.push(v(s.root.assetFacade,{uploadAssetFile:p,assetType:"Texture"}))});const l=(await Promise.all(r)).map(p=>p.getCurrentRef());return n.concat(l)}var Ce=Object.defineProperty,ve=Object.getOwnPropertyDescriptor,d=(t,s,e,n)=>{for(var i=n>1?void 0:n?ve(s,e):s,a=t.length-1,o;a>=0;a--)(o=t[a])&&(i=(n?o(s,e,i):o(i))||i);return n&&i&&Ce(s,e,i),i};const Ne=j("div",{position:"absolute",top:8,left:8,display:"grid",gap:"$1",marginTop:"$1 $2",variants:{hasClips:{true:{gridTemplateColumns:"150px 18px 1fr"},false:{gridTemplateColumns:"$4_5 1fr"}}}});class m extends me{constructor(){super();c(this,"_spineAnimationRenderer");c(this,"_animationTrack");c(this,"_updateComponent");c(this,"playing",!1);c(this,"frameTime",0);c(this,"duration",0);c(this,"animationNames",[]);c(this,"skinNames",[]);c(this,"animationIndex",0);c(this,"skinIndex",0);c(this,"_size",{w:0,h:0});c(this,"overridePreviewer",U(({asset:e,viewer:n})=>{const i=e.getViewerRootEntity();return P.useEffect(()=>{this.skinIndex=0},[e]),P.useEffect(()=>{this._spineAnimationRenderer?this.updateViewAsset(e,i):this.setViewAsset(e,i)},[e.skeletonData]),A.jsxs(A.Fragment,{children:[A.jsx(ue,{asset:e,viewer:n}),A.jsx(Oe,{selectedKey:this.skinIndex,clips:this.skinNames,onSelectClip:a=>{this.skinIndex=a,this.changeSkin(this.skinNames[a])}})]})}));B(this)}setViewAsset(e,n){if(!e.skeletonData){this.stopViewAsset();return}this.animationIndex=0,this.duration=0;const i=n.engine,a=e.skeletonData,o=n.createChild("spine-entity"),r=o.addComponent(C);this.animationNames=a.animations.map(R=>R.name),this.animationNames.unshift("none"),this.skinNames=a.skins.map(R=>R.name),this._entity=o,this._spineAnimationRenderer=r,r.resource=new T(i,a);const{width:u,height:l,x:y,y:p}=a;this._size={w:u,h:l};const h=y+u/2,f=p+l/2;o.transform.setPosition(-h/100,-f/100,0);const F=this;this._updateComponent=this._entity.addComponent(class extends ${onUpdate(){F._onUpdate()}})}updateViewAsset(e,n){if(!e.skeletonData){this.stopViewAsset();return}const i=n.engine,a=e.skeletonData;this.animationNames=a.animations.map(o=>o.name),this.animationNames.unshift("none"),this.skinNames=a.skins.map(o=>o.name),this._spineAnimationRenderer.resource=new T(i,a)}getSize(){return{width:this._size.w/100,height:this._size.h/100}}stopViewAsset(){var e;super.stopViewAsset(),this.playing=!1,this.frameTime=0,this.duration=0,this.animationNames=[],this.skinNames=[],this.animationIndex=0,this.skinIndex=0,this._spineAnimationRenderer&&(this._spineAnimationRenderer.enabled=!1),this._spineAnimationRenderer=null,(e=this._updateComponent)==null||e.destroy()}changeSkin(e){const{skeleton:n,state:i}=this._spineAnimationRenderer;n.setSkinByName(e),n.setSlotsToSetupPose(),i.apply(n)}selectAnimation(e){this.animationIndex=e;const n=this.animationNames[e];this.play(n)}play(e){let n;const{state:i}=this._spineAnimationRenderer;e==="none"?n=i.setEmptyAnimation(0,0):n=i.setAnimation(0,e,!0),this._animationTrack=n,this._spineAnimationRenderer.state.timeScale=1,this.playing=!0,this.duration=n.animationEnd}pauseAnimation(){this.pause()}playAnimation(){this._spineAnimationRenderer.state.timeScale=1}pause(){this._spineAnimationRenderer.state.timeScale=0,this.playing=!1}_onUpdate(){if(!this.playing)return;const e=this._animationTrack.trackTime%this.duration;this.frameTime=isNaN(e)?0:e}}d([g],m.prototype,"playing",2);d([g],m.prototype,"frameTime",2);d([g],m.prototype,"duration",2);d([g],m.prototype,"animationNames",2);d([g],m.prototype,"skinNames",2);d([g],m.prototype,"animationIndex",2);d([g],m.prototype,"skinIndex",2);d([k],m.prototype,"changeSkin",1);d([k],m.prototype,"selectAnimation",1);d([k],m.prototype,"play",1);d([k],m.prototype,"pauseAnimation",1);d([k],m.prototype,"playAnimation",1);d([k],m.prototype,"pause",1);d([k],m.prototype,"_onUpdate",1);function Oe({onSelectClip:t,clips:s,selectedKey:e}){return A.jsx(Ne,{hasClips:!!s.length,children:s.length>0&&A.jsx(z,{value:e,onValueChange:t,valueType:"number",size:"xs",sideOffset:8,children:s.map((n,i)=>n?A.jsx(q,{value:i,children:n},i):null)})})}var Ee=Object.defineProperty,Ie=Object.getOwnPropertyDescriptor,_=(t,s,e,n)=>{for(var i=n>1?void 0:n?Ie(s,e):s,a=t.length-1,o;a>=0;a--)(o=t[a])&&(i=(n?o(s,e,i):o(i))||i);return n&&i&&Ee(s,e,i),i};let S=class extends V{constructor(s){super(s);c(this,"_delOnSkeletonDel");c(this,"_delOnAtlasDel");c(this,"_hasInit",!1);c(this,"atlas",null);c(this,"skeletonRawData","");c(this,"skeletonData")}async initByMain(s){const e=await s.text();try{JSON.parse(e),this.skeletonRawData=e}catch{this.skeletonRawData=await s.arrayBuffer()}const n=this.meta,{atlas:i}=n;this.atlas=i;const a=await this.root.assetStore.getAssetByRef(i),o=O(this.skeletonRawData,a,!0);o&&this.createDragTempEntity(o)}createDragTempEntity(s){this.skeletonData=s;const e=new J(this.engine),n=e.addComponent(C);n.resource=new T(this.engine,this.skeletonData),this.setDragTempEntity(e)}instantiate(){if(!this.skeletonData)return;const s=this.root.sceneStore.createEntity(),e=this.getDragTempEntity(),{position:n,rotation:i}=e.transform,a={components:[{class:"SpineAnimationRenderer",id:M(),props:{resource:this.getCurrentRef(),priority:0,defaultConfig:{loop:!1,animationName:"none",skinName:"default"}}}],id:s.id,isActive:!0,isClone:!1,name:this.name?this.name:"spine",position:{x:n.x,y:n.y,z:n.z},rotation:{x:i.x,y:i.y,z:i.z},scale:{x:1,y:1,z:1}};return s.initByFile(a),s}};_([K({assetType:"SpineAtlas",label:w("asset.spine-atlas.title"),type:L.AssetPicker,onChange:async(t,s,e)=>{if(t._delOnAtlasDel&&(t._delOnAtlasDel(),t._delOnAtlasDel=null),e){let n=!0;t._hasInit?n=!1:t._hasInit=!0,t.skeletonData=O(t.skeletonRawData,e,n),t.skeletonData&&t.createDragTempEntity(t.skeletonData);const i=()=>{t._delOnSkeletonDel&&t._delOnSkeletonDel(),t._delOnSkeletonDel=null,t.skeletonData=null};e.on("delete",i),t._delOnSkeletonDel=()=>{e.off("delete",i)}}else t.skeletonData=null}}),W()],S.prototype,"atlas",2);_([X()],S.prototype,"skeletonRawData",2);_([g.ref],S.prototype,"skeletonData",2);S=_([pe({type:"SpineSkeletonData",label:w("asset.spine-skeleton-data.title"),loaderType:"Spine",viewer:m,dragLayer:Y.SpineSkeletonData,dragType:"2d",filterUploadFiles:Ae,importMenuConfig:{type:ce.Upload,accept:".json,.atlas,.skel,.png,.jpg,.jpeg,.webp",multiple:!0},bundle(t){return t.dependencies=H(t.meta,["atlas"]),{content:t.content}}})],S);function O(t,s,e){if(!s)return null;try{return le.createSkeletonData(t,s.textureAtlas,.01)}catch{return!e&&he.error(w("spine.error.generate-skeleton-data")),null}}const We=Object.freeze(Object.defineProperty({__proto__:null,get SpineSkeletonDataAsset(){return S}},Symbol.toStringTag,{value:"Module"}));export{S,We as a,Le as s};
@@ -0,0 +1 @@
1
+ var f=Object.defineProperty;var c=(e,t,o)=>t in e?f(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o;var n=(e,t,o)=>(c(e,typeof t!="symbol"?t+"":t,o),o);import{s as m,aO as h,p as g,C as b,f as u}from"./index-0a8702e2.js";import"./InstanceEditorAsset-a70e73fe.js";import"./ThumbnailMixin-35997457.js";import"./AssetPreviewer-24e31d97.js";import"./CanvasRenderer-9dd98cb3.js";import{c as d}from"./Component-f923abb1.js";import"./postmen-45d4c238.js";import{L as P}from"./LightBaseComponent-fbc3ae49.js";import"./ThumbnailRegistry-495c18c9.js";import"./IconPlayerPlayFilled-b058c98f.js";var y=Object.defineProperty,v=Object.getOwnPropertyDescriptor,i=(e,t,o,a)=>{for(var p=a>1?void 0:a?v(t,o):t,l=e.length-1,s;l>=0;l--)(s=e[l])&&(p=(a?s(t,o,p):s(p))||p);return a&&p&&y(t,o,p),p};let r=class extends P{constructor(t,o){super(t,o);n(this,"angle",20);n(this,"distance",60);n(this,"penumbra",60)}};i([m(h()),g({type:b.Slider,min:1,max:179,bindPath:"angle",label:"light.spot.angle.label",info:"light.spot.angle.info"}),u({getPath:"angle",getEditorValue:e=>e*180/Math.PI})],r.prototype,"angle",2);i([m(),g({type:b.Number,bindPath:"distance",label:"light.spot.distance.label",info:"light.spot.distance.info"})],r.prototype,"distance",2);i([m(h()),g({type:b.Slider,min:1,max:179,bindPath:"penumbra",label:"light.spot.penumbra.label",info:"light.spot.penumbra.info"}),u({getPath:"penumbra",getEditorValue:e=>e*180/Math.PI})],r.prototype,"penumbra",2);r=i([d({type:"SpotLight",componentsMenu:{group:"light",label:"component.light.spot.title"}})],r);export{r as SpotLightComponent};