@famibee/skynovel 2.0.1 → 2.0.3

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 (123) hide show
  1. package/dist/Button.js +36 -34
  2. package/dist/Button.js.map +1 -1
  3. package/dist/CallStack.js +11 -6
  4. package/dist/CallStack.js.map +1 -1
  5. package/dist/CmnInterface.js +13 -11
  6. package/dist/CmnInterface.js.map +1 -1
  7. package/dist/CmnLib.js +58 -56
  8. package/dist/CmnLib.js.map +1 -1
  9. package/dist/Config.js +9 -7
  10. package/dist/Config.js.map +1 -1
  11. package/dist/ConfigBase.js +52 -49
  12. package/dist/ConfigBase.js.map +1 -1
  13. package/dist/DebugMng.js +9 -6
  14. package/dist/DebugMng.js.map +1 -1
  15. package/dist/EventListenerCtn.js +6 -4
  16. package/dist/EventListenerCtn.js.map +1 -1
  17. package/dist/EventMng.js +522 -417
  18. package/dist/EventMng.js.map +1 -1
  19. package/dist/Grammar.js +22 -20
  20. package/dist/Grammar.js.map +1 -1
  21. package/dist/GrpLayer.js +58 -57
  22. package/dist/GrpLayer.js.map +1 -1
  23. package/dist/Layer.js +66 -64
  24. package/dist/Layer.js.map +1 -1
  25. package/dist/LayerMng.js +461 -441
  26. package/dist/LayerMng.js.map +1 -1
  27. package/dist/Main.js +69 -67
  28. package/dist/Main.js.map +1 -1
  29. package/dist/PropParser.js +23 -19
  30. package/dist/PropParser.js.map +1 -1
  31. package/dist/Reading.js +422 -418
  32. package/dist/Reading.js.map +1 -1
  33. package/dist/RubySpliter.js +6 -4
  34. package/dist/RubySpliter.js.map +1 -1
  35. package/dist/ScriptIterator.js +374 -370
  36. package/dist/ScriptIterator.js.map +1 -1
  37. package/dist/SndBuf.js +643 -622
  38. package/dist/SndBuf.js.map +1 -1
  39. package/dist/SoundMng.js +59 -60
  40. package/dist/SoundMng.js.map +1 -1
  41. package/dist/SpritesMng.js +135 -129
  42. package/dist/SpritesMng.js.map +1 -1
  43. package/dist/SysBase.js +985 -950
  44. package/dist/SysBase.js.map +1 -1
  45. package/dist/TxtLayer.js +558 -551
  46. package/dist/TxtLayer.js.map +1 -1
  47. package/dist/Variable.js +47 -45
  48. package/dist/Variable.js.map +1 -1
  49. package/dist/chunk.js +11 -9
  50. package/dist/gamepad.js +396 -660
  51. package/dist/gamepad.js.map +1 -1
  52. package/dist/pixi.js +2631 -2593
  53. package/dist/pixi.js.map +1 -1
  54. package/dist/platform.js +6 -4
  55. package/dist/platform.js.map +1 -1
  56. package/dist/rolldown-runtime.js +20 -0
  57. package/dist/sn/RubySpliter.d.ts.map +1 -1
  58. package/dist/web.js +418 -418
  59. package/dist/web.js.map +1 -1
  60. package/dist_app/Button.js +36 -34
  61. package/dist_app/Button.js.map +1 -1
  62. package/dist_app/CallStack.js +11 -6
  63. package/dist_app/CallStack.js.map +1 -1
  64. package/dist_app/CmnInterface.js +13 -11
  65. package/dist_app/CmnInterface.js.map +1 -1
  66. package/dist_app/CmnLib.js +58 -56
  67. package/dist_app/CmnLib.js.map +1 -1
  68. package/dist_app/Config.js +9 -7
  69. package/dist_app/Config.js.map +1 -1
  70. package/dist_app/ConfigBase.js +52 -49
  71. package/dist_app/ConfigBase.js.map +1 -1
  72. package/dist_app/DebugMng.js +9 -6
  73. package/dist_app/DebugMng.js.map +1 -1
  74. package/dist_app/EventListenerCtn.js +6 -4
  75. package/dist_app/EventListenerCtn.js.map +1 -1
  76. package/dist_app/EventMng.js +522 -417
  77. package/dist_app/EventMng.js.map +1 -1
  78. package/dist_app/Grammar.js +22 -20
  79. package/dist_app/Grammar.js.map +1 -1
  80. package/dist_app/GrpLayer.js +58 -57
  81. package/dist_app/GrpLayer.js.map +1 -1
  82. package/dist_app/Layer.js +66 -64
  83. package/dist_app/Layer.js.map +1 -1
  84. package/dist_app/LayerMng.js +461 -441
  85. package/dist_app/LayerMng.js.map +1 -1
  86. package/dist_app/Main.js +69 -67
  87. package/dist_app/Main.js.map +1 -1
  88. package/dist_app/PropParser.js +23 -19
  89. package/dist_app/PropParser.js.map +1 -1
  90. package/dist_app/Reading.js +422 -418
  91. package/dist_app/Reading.js.map +1 -1
  92. package/dist_app/RubySpliter.js +6 -4
  93. package/dist_app/RubySpliter.js.map +1 -1
  94. package/dist_app/ScriptIterator.js +374 -370
  95. package/dist_app/ScriptIterator.js.map +1 -1
  96. package/dist_app/SndBuf.js +643 -622
  97. package/dist_app/SndBuf.js.map +1 -1
  98. package/dist_app/SoundMng.js +59 -60
  99. package/dist_app/SoundMng.js.map +1 -1
  100. package/dist_app/SpritesMng.js +135 -129
  101. package/dist_app/SpritesMng.js.map +1 -1
  102. package/dist_app/SysBase.js +985 -950
  103. package/dist_app/SysBase.js.map +1 -1
  104. package/dist_app/TxtLayer.js +558 -551
  105. package/dist_app/TxtLayer.js.map +1 -1
  106. package/dist_app/Variable.js +47 -45
  107. package/dist_app/Variable.js.map +1 -1
  108. package/dist_app/app.js +62 -63
  109. package/dist_app/app.js.map +1 -1
  110. package/dist_app/appMain.js +11 -11
  111. package/dist_app/appMain.js.map +1 -1
  112. package/dist_app/chunk.js +11 -9
  113. package/dist_app/gamepad.js +396 -660
  114. package/dist_app/gamepad.js.map +1 -1
  115. package/dist_app/pixi.js +2028 -1990
  116. package/dist_app/pixi.js.map +1 -1
  117. package/dist_app/platform.js +6 -4
  118. package/dist_app/platform.js.map +1 -1
  119. package/dist_app/preload.js +1 -1
  120. package/dist_app/preload.js.map +1 -1
  121. package/dist_app/rolldown-runtime.js +20 -0
  122. package/dist_app/sn/RubySpliter.d.ts.map +1 -1
  123. package/package.json +20 -21
package/dist/Layer.js CHANGED
@@ -1,6 +1,7 @@
1
- import { g as uint, l as argChk_Num, p as int, s as argChk_Boolean, t as CmnLib } from "./CmnLib.js";
2
- import { b as BLEND_MODES, f as Texture, o as Sprite, t as filters } from "./pixi.js";
3
- var { BlurFilter, ColorMatrixFilter, NoiseFilter } = filters, Layer = class c {
1
+ import { g as e, l as t, p as n, s as r, t as i } from "./CmnLib.js";
2
+ import { b as a, f as o, o as s, t as c } from "./pixi.js";
3
+ //#region src/sn/Layer.ts
4
+ var { BlurFilter: l, ColorMatrixFilter: u, NoiseFilter: d } = c, f = class c {
4
5
  layname = "";
5
6
  name_ = "";
6
7
  set name(e) {
@@ -9,7 +10,7 @@ var { BlurFilter, ColorMatrixFilter, NoiseFilter } = filters, Layer = class c {
9
10
  get name() {
10
11
  return this.name_;
11
12
  }
12
- ctn = new Sprite(Texture.EMPTY);
13
+ ctn = new s(o.EMPTY);
13
14
  get alpha() {
14
15
  return this.ctn.alpha;
15
16
  }
@@ -57,129 +58,129 @@ var { BlurFilter, ColorMatrixFilter, NoiseFilter } = filters, Layer = class c {
57
58
  destroy() {}
58
59
  lay(e) {
59
60
  let n = this.ctn;
60
- return "alpha" in e && (n.alpha = argChk_Num(e, "alpha", 1)), c.setBlendmode(n, e), ("pivot_x" in e || "pivot_y" in e) && n.pivot.set(argChk_Num(e, "pivot_x", n.pivot.x), argChk_Num(e, "pivot_y", n.pivot.y)), "rotation" in e && (n.angle = argChk_Num(e, "rotation", 0)), ("scale_x" in e || "scale_y" in e) && n.scale.set(argChk_Num(e, "scale_x", n.scale.x), argChk_Num(e, "scale_y", n.scale.y)), "visible" in e && (n.visible = argChk_Boolean(e, "visible", !0)), "filter" in e && (n.filters = [c.bldFilters(e)], this.aFltHArg = [e]), !1;
61
+ return "alpha" in e && (n.alpha = t(e, "alpha", 1)), c.setBlendmode(n, e), ("pivot_x" in e || "pivot_y" in e) && n.pivot.set(t(e, "pivot_x", n.pivot.x), t(e, "pivot_y", n.pivot.y)), "rotation" in e && (n.angle = t(e, "rotation", 0)), ("scale_x" in e || "scale_y" in e) && n.scale.set(t(e, "scale_x", n.scale.x), t(e, "scale_y", n.scale.y)), "visible" in e && (n.visible = r(e, "visible", !0)), "filter" in e && (n.filters = [c.bldFilters(e)], this.aFltHArg = [e]), !1;
61
62
  }
62
63
  aFltHArg = [];
63
64
  static bldFilters(e) {
64
65
  let { filter: t = "" } = e, n = c.hBldFilter[t];
65
66
  if (!n) throw "filter が異常です";
66
67
  let i = n(e);
67
- i.enabled = argChk_Boolean(e, "enable_filter", !0);
68
+ i.enabled = r(e, "enable_filter", !0);
68
69
  let { blendmode: a } = e;
69
70
  return a && (i.blendMode = c.getBlendmodeNum(a)), i;
70
71
  }
71
72
  static hBldFilter = {
72
73
  blur: (n) => {
73
- let i = new BlurFilter(argChk_Num(n, "strength", 8), argChk_Num(n, "quality", 4), "resolution" in n ? argChk_Num(n, "resolution", 0) : void 0, argChk_Num(n, "kernel_size", 5));
74
- return i.blurX = uint(argChk_Num(n, "blur_x", 2)), i.blurY = uint(argChk_Num(n, "blur_y", 2)), i.repeatEdgePixels = argChk_Boolean(n, "repeat_edge_pixels", !1), i;
74
+ let i = new l(t(n, "strength", 8), t(n, "quality", 4), "resolution" in n ? t(n, "resolution", 0) : void 0, t(n, "kernel_size", 5));
75
+ return i.blurX = e(t(n, "blur_x", 2)), i.blurY = e(t(n, "blur_y", 2)), i.repeatEdgePixels = r(n, "repeat_edge_pixels", !1), i;
75
76
  },
76
- noise: (e) => new NoiseFilter(argChk_Num(e, "noise", .5), "seed" in e ? argChk_Num(e, "seed", 0) : void 0),
77
+ noise: (e) => new d(t(e, "noise", .5), "seed" in e ? t(e, "seed", 0) : void 0),
77
78
  color_matrix: (n) => {
78
- let r = new ColorMatrixFilter();
79
- r.alpha = uint(argChk_Num(n, "alpha", 1));
79
+ let r = new u();
80
+ r.alpha = e(t(n, "alpha", 1));
80
81
  let { matrix: i = "" } = n;
81
82
  if (i) {
82
83
  let t = i.split(","), n = t.length;
83
84
  if (n !== 20) throw `matrix の個数(${String(n)})が 20 ではありません`;
84
- for (let i = 0; i < n; ++i) r.matrix[i] = uint(t[i]);
85
- } else r.matrix[0] = uint(argChk_Num(n, "rtor", 1)), r.matrix[1] = uint(argChk_Num(n, "gtor", 0)), r.matrix[2] = uint(argChk_Num(n, "btor", 0)), r.matrix[3] = uint(argChk_Num(n, "ator", 0)), r.matrix[4] = uint(argChk_Num(n, "pr", 0)), r.matrix[5] = uint(argChk_Num(n, "rtog", 0)), r.matrix[6] = uint(argChk_Num(n, "gtog", 1)), r.matrix[7] = uint(argChk_Num(n, "btog", 0)), r.matrix[8] = uint(argChk_Num(n, "atog", 0)), r.matrix[9] = uint(argChk_Num(n, "pg", 0)), r.matrix[10] = uint(argChk_Num(n, "rtob", 0)), r.matrix[11] = uint(argChk_Num(n, "gtob", 0)), r.matrix[12] = uint(argChk_Num(n, "btob", 1)), r.matrix[13] = uint(argChk_Num(n, "atob", 0)), r.matrix[14] = uint(argChk_Num(n, "pb", 0)), r.matrix[15] = uint(argChk_Num(n, "rtoa", 0)), r.matrix[16] = uint(argChk_Num(n, "gtoa", 0)), r.matrix[17] = uint(argChk_Num(n, "btoa", 0)), r.matrix[18] = uint(argChk_Num(n, "atoa", 1)), r.matrix[19] = uint(argChk_Num(n, "pa", 0));
85
+ for (let i = 0; i < n; ++i) r.matrix[i] = e(t[i]);
86
+ } else r.matrix[0] = e(t(n, "rtor", 1)), r.matrix[1] = e(t(n, "gtor", 0)), r.matrix[2] = e(t(n, "btor", 0)), r.matrix[3] = e(t(n, "ator", 0)), r.matrix[4] = e(t(n, "pr", 0)), r.matrix[5] = e(t(n, "rtog", 0)), r.matrix[6] = e(t(n, "gtog", 1)), r.matrix[7] = e(t(n, "btog", 0)), r.matrix[8] = e(t(n, "atog", 0)), r.matrix[9] = e(t(n, "pg", 0)), r.matrix[10] = e(t(n, "rtob", 0)), r.matrix[11] = e(t(n, "gtob", 0)), r.matrix[12] = e(t(n, "btob", 1)), r.matrix[13] = e(t(n, "atob", 0)), r.matrix[14] = e(t(n, "pb", 0)), r.matrix[15] = e(t(n, "rtoa", 0)), r.matrix[16] = e(t(n, "gtoa", 0)), r.matrix[17] = e(t(n, "btoa", 0)), r.matrix[18] = e(t(n, "atoa", 1)), r.matrix[19] = e(t(n, "pa", 0));
86
87
  return r;
87
88
  },
88
89
  black_and_white: (e) => {
89
- let t = new ColorMatrixFilter();
90
- return t.blackAndWhite(argChk_Boolean(e, "multiply", !1)), t;
90
+ let t = new u();
91
+ return t.blackAndWhite(r(e, "multiply", !1)), t;
91
92
  },
92
93
  brightness: (e) => {
93
- let n = new ColorMatrixFilter();
94
- return n.brightness(argChk_Num(e, "b", .5), argChk_Boolean(e, "multiply", !1)), n;
94
+ let n = new u();
95
+ return n.brightness(t(e, "b", .5), r(e, "multiply", !1)), n;
95
96
  },
96
97
  browni: (e) => {
97
- let t = new ColorMatrixFilter();
98
- return t.browni(argChk_Boolean(e, "multiply", !0)), t;
98
+ let t = new u();
99
+ return t.browni(r(e, "multiply", !0)), t;
99
100
  },
100
101
  color_tone: (e) => {
101
- let n = new ColorMatrixFilter();
102
- return n.colorTone(argChk_Num(e, "desaturation", .5), argChk_Num(e, "toned", .5), argChk_Num(e, "light_color", 16770432), argChk_Num(e, "dark_color", 16770432), argChk_Boolean(e, "multiply", !1)), n;
102
+ let n = new u();
103
+ return n.colorTone(t(e, "desaturation", .5), t(e, "toned", .5), t(e, "light_color", 16770432), t(e, "dark_color", 16770432), r(e, "multiply", !1)), n;
103
104
  },
104
105
  contrast: (e) => {
105
- let n = new ColorMatrixFilter();
106
- return n.contrast(argChk_Num(e, "amount", .5), argChk_Boolean(e, "multiply", !1)), n;
106
+ let n = new u();
107
+ return n.contrast(t(e, "amount", .5), r(e, "multiply", !1)), n;
107
108
  },
108
109
  grayscale: (e) => {
109
- let n = new ColorMatrixFilter();
110
- return n.grayscale(argChk_Num(e, "scale", .5), argChk_Boolean(e, "multiply", !1)), n;
110
+ let n = new u();
111
+ return n.grayscale(t(e, "scale", .5), r(e, "multiply", !1)), n;
111
112
  },
112
113
  hue: (e) => {
113
- let n = new ColorMatrixFilter();
114
- return n.hue(argChk_Num(e, "f_rotation", 90), argChk_Boolean(e, "multiply", !1)), n;
114
+ let n = new u();
115
+ return n.hue(t(e, "f_rotation", 90), r(e, "multiply", !1)), n;
115
116
  },
116
117
  kodachrome: (e) => {
117
- let t = new ColorMatrixFilter();
118
- return t.kodachrome(argChk_Boolean(e, "multiply", !0)), t;
118
+ let t = new u();
119
+ return t.kodachrome(r(e, "multiply", !0)), t;
119
120
  },
120
121
  lsd: (e) => {
121
- let t = new ColorMatrixFilter();
122
- return t.lsd(argChk_Boolean(e, "multiply", !1)), t;
122
+ let t = new u();
123
+ return t.lsd(r(e, "multiply", !1)), t;
123
124
  },
124
125
  negative: (e) => {
125
- let t = new ColorMatrixFilter();
126
- return t.negative(argChk_Boolean(e, "multiply", !1)), t;
126
+ let t = new u();
127
+ return t.negative(r(e, "multiply", !1)), t;
127
128
  },
128
129
  night: (e) => {
129
- let n = new ColorMatrixFilter();
130
- return n.night(argChk_Num(e, "intensity", .5), argChk_Boolean(e, "multiply", !1)), n;
130
+ let n = new u();
131
+ return n.night(t(e, "intensity", .5), r(e, "multiply", !1)), n;
131
132
  },
132
133
  polaroid: (e) => {
133
- let t = new ColorMatrixFilter();
134
- return t.polaroid(argChk_Boolean(e, "multiply", !1)), t;
134
+ let t = new u();
135
+ return t.polaroid(r(e, "multiply", !1)), t;
135
136
  },
136
137
  predator: (e) => {
137
- let n = new ColorMatrixFilter();
138
- return n.predator(argChk_Num(e, "amount", .5), argChk_Boolean(e, "multiply", !1)), n;
138
+ let n = new u();
139
+ return n.predator(t(e, "amount", .5), r(e, "multiply", !1)), n;
139
140
  },
140
141
  saturate: (e) => {
141
- let n = new ColorMatrixFilter();
142
- return n.saturate(argChk_Num(e, "amount", .5), argChk_Boolean(e, "multiply", !1)), n;
142
+ let n = new u();
143
+ return n.saturate(t(e, "amount", .5), r(e, "multiply", !1)), n;
143
144
  },
144
145
  sepia: (e) => {
145
- let t = new ColorMatrixFilter();
146
- return t.sepia(argChk_Boolean(e, "multiply", !1)), t;
146
+ let t = new u();
147
+ return t.sepia(r(e, "multiply", !1)), t;
147
148
  },
148
149
  technicolor: (e) => {
149
- let t = new ColorMatrixFilter();
150
- return t.technicolor(argChk_Boolean(e, "multiply", !0)), t;
150
+ let t = new u();
151
+ return t.technicolor(r(e, "multiply", !0)), t;
151
152
  },
152
153
  tint: (e) => {
153
- let n = new ColorMatrixFilter();
154
- return n.tint(argChk_Num(e, "f_color", 8947848), argChk_Boolean(e, "multiply", !1)), n;
154
+ let n = new u();
155
+ return n.tint(t(e, "f_color", 8947848), r(e, "multiply", !1)), n;
155
156
  },
156
157
  to_bgr: (e) => {
157
- let t = new ColorMatrixFilter();
158
- return t.toBGR(argChk_Boolean(e, "multiply", !1)), t;
158
+ let t = new u();
159
+ return t.toBGR(r(e, "multiply", !1)), t;
159
160
  },
160
161
  vintage: (e) => {
161
- let t = new ColorMatrixFilter();
162
- return t.vintage(argChk_Boolean(e, "multiply", !0)), t;
162
+ let t = new u();
163
+ return t.vintage(r(e, "multiply", !0)), t;
163
164
  }
164
165
  };
165
166
  static setBlendmode(e, t) {
166
167
  let { blendmode: n } = t;
167
168
  if (!n) return;
168
169
  let r = c.getBlendmodeNum(n);
169
- e instanceof Sprite && (e.blendMode = r);
170
- for (let t of e.children) t instanceof Sprite && (t.blendMode = r);
170
+ e instanceof s && (e.blendMode = r);
171
+ for (let t of e.children) t instanceof s && (t.blendMode = r);
171
172
  }
172
173
  static getBlendmodeNum(e) {
173
- if (!e) return BLEND_MODES.NORMAL;
174
+ if (!e) return a.NORMAL;
174
175
  let t = c.#e[e];
175
176
  if (t !== void 0) return t;
176
177
  throw `${e} はサポートされない blendmode です`;
177
178
  }
178
179
  static #e = {
179
- normal: BLEND_MODES.NORMAL,
180
- add: BLEND_MODES.ADD,
181
- multiply: BLEND_MODES.MULTIPLY,
182
- screen: BLEND_MODES.SCREEN
180
+ normal: a.NORMAL,
181
+ add: a.ADD,
182
+ multiply: a.MULTIPLY,
183
+ screen: a.SCREEN
183
184
  };
184
185
  static getNum2Blendmode(e) {
185
186
  return c.#t[e] ?? "normal";
@@ -196,7 +197,7 @@ var { BlurFilter, ColorMatrixFilter, NoiseFilter } = filters, Layer = class c {
196
197
  renderStart(e) {}
197
198
  renderEnd() {}
198
199
  clearLay(e) {
199
- this.ctn.alpha = 1, this.ctn.blendMode = BLEND_MODES.NORMAL, this.ctn.pivot.set(0, 0), this.ctn.angle = 0, this.ctn.scale.set(1, 1), argChk_Boolean(e, "clear_filter", !1) && (this.ctn.filters = null, this.aFltHArg = []);
200
+ this.ctn.alpha = 1, this.ctn.blendMode = a.NORMAL, this.ctn.pivot.set(0, 0), this.ctn.angle = 0, this.ctn.scale.set(1, 1), r(e, "clear_filter", !1) && (this.ctn.filters = null, this.aFltHArg = []);
200
201
  }
201
202
  copy(e, t) {
202
203
  let n = this.name_;
@@ -241,20 +242,21 @@ var { BlurFilter, ColorMatrixFilter, NoiseFilter } = filters, Layer = class c {
241
242
  return;
242
243
  }
243
244
  let l = e.getBounds(), u = a.scale.x < 0 ? -a.scale.x : a.scale.x, d = u === 1 ? l.width : l.width * u, f = a.scale.y < 0 ? -a.scale.y : a.scale.y, p = f === 1 ? l.height : l.height * f, m = a.x;
244
- "left" in r ? (m = argChk_Num(r, "left", 0), m > -1 && m < 1 && (m *= CmnLib.stageW)) : "center" in r ? (m = argChk_Num(r, "center", 0), m > -1 && m < 1 && (m *= CmnLib.stageW), m -= (s ? d / 3 : d) / 2) : "right" in r ? (m = argChk_Num(r, "right", 0), m > -1 && m < 1 && (m *= CmnLib.stageW), m -= s ? d / 3 : d) : "s_right" in r && (m = argChk_Num(r, "s_right", 0), m > -1 && m < 1 && (m *= CmnLib.stageW), m = CmnLib.stageW - m - (s ? d / 3 : d)), a.x = int(a.scale.x < 0 ? m + (s ? d / 3 : d) : m);
245
+ "left" in r ? (m = t(r, "left", 0), m > -1 && m < 1 && (m *= i.stageW)) : "center" in r ? (m = t(r, "center", 0), m > -1 && m < 1 && (m *= i.stageW), m -= (s ? d / 3 : d) / 2) : "right" in r ? (m = t(r, "right", 0), m > -1 && m < 1 && (m *= i.stageW), m -= s ? d / 3 : d) : "s_right" in r && (m = t(r, "s_right", 0), m > -1 && m < 1 && (m *= i.stageW), m = i.stageW - m - (s ? d / 3 : d)), a.x = n(a.scale.x < 0 ? m + (s ? d / 3 : d) : m);
245
246
  let h = a.y;
246
- "top" in r ? (h = argChk_Num(r, "top", 0), h > -1 && h < 1 && (h *= CmnLib.stageH)) : "middle" in r ? (h = argChk_Num(r, "middle", 0), h > -1 && h < 1 && (h *= CmnLib.stageH), h -= p / 2) : "bottom" in r ? (h = argChk_Num(r, "bottom", 0), h > -1 && h < 1 && (h *= CmnLib.stageH), h -= p) : "s_bottom" in r && (h = argChk_Num(r, "s_bottom", 0), h > -1 && h < 1 && (h *= CmnLib.stageH), h = CmnLib.stageH - h - p), a.y = int(a.scale.y < 0 ? h + p : h), o && !("left" in r) && !("center" in r) && !("right" in r) && !("s_right" in r) && !("top" in r) && !("middle" in r) && !("bottom" in r) && !("s_bottom" in r) && c.setXYByPos(e, "c", a);
247
+ "top" in r ? (h = t(r, "top", 0), h > -1 && h < 1 && (h *= i.stageH)) : "middle" in r ? (h = t(r, "middle", 0), h > -1 && h < 1 && (h *= i.stageH), h -= p / 2) : "bottom" in r ? (h = t(r, "bottom", 0), h > -1 && h < 1 && (h *= i.stageH), h -= p) : "s_bottom" in r && (h = t(r, "s_bottom", 0), h > -1 && h < 1 && (h *= i.stageH), h = i.stageH - h - p), a.y = n(a.scale.y < 0 ? h + p : h), o && !("left" in r) && !("center" in r) && !("right" in r) && !("s_right" in r) && !("top" in r) && !("middle" in r) && !("bottom" in r) && !("s_bottom" in r) && c.setXYByPos(e, "c", a);
247
248
  }
248
249
  static setXYByPos(e, t, r) {
249
250
  if (t === "stay") return;
250
251
  let a = e.getBounds(), o = r.scale.x < 0 ? -r.scale.x : r.scale.x, s = o === 1 ? a.width : a.width * o, c = r.scale.y < 0 ? -r.scale.y : r.scale.y, l = c === 1 ? a.height : a.height * c, u = 0;
251
- u = !t || t === "c" ? CmnLib.stageW * .5 : t === "r" ? CmnLib.stageW - s * .5 : t === "l" ? s * .5 : int(t), r.x = int(u - s * .5), r.y = CmnLib.stageH - l, r.scale.x < 0 && (r.x += s), r.scale.y < 0 && (r.y += l);
252
+ u = !t || t === "c" ? i.stageW * .5 : t === "r" ? i.stageW - s * .5 : t === "l" ? s * .5 : n(t), r.x = n(u - s * .5), r.y = i.stageH - l, r.scale.x < 0 && (r.x += s), r.scale.y < 0 && (r.y += l);
252
253
  }
253
254
  static setXYCenter(e) {
254
255
  let t = e.getBounds();
255
- e.x = (CmnLib.stageW - t.width) * .5, e.y = (CmnLib.stageH - t.height) * .5;
256
+ e.x = (i.stageW - t.width) * .5, e.y = (i.stageH - t.height) * .5;
256
257
  }
257
258
  };
258
- export { Layer as t };
259
+ //#endregion
260
+ export { f as t };
259
261
 
260
262
  //# sourceMappingURL=Layer.js.map
package/dist/Layer.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Layer.js","names":["#hBlendmode","#hNum2Blendmode"],"sources":["../src/sn/Layer.ts"],"sourcesContent":["/* ***** BEGIN LICENSE BLOCK *****\n\tCopyright (c) 2018-2025 Famibee (famibee.blog38.fc2.com)\n\n\tThis software is released under the MIT License.\n\thttp://opensource.org/licenses/mit-license.php\n** ***** END LICENSE BLOCK ***** */\n\nimport {CmnLib, int, argChk_Boolean, argChk_Num, uint} from './CmnLib';\nimport type {TArg} from './Grammar';\nimport type {IMakeDesignCast} from './LayerMng';\n\nimport type {DisplayObject, Container, AbstractRenderer, Filter} from 'pixi.js';\nimport {BLEND_MODES, Sprite, Texture, filters} from 'pixi.js';\nconst {BlurFilter, ColorMatrixFilter, NoiseFilter} = filters;\n\n\nexport type T_RecordPlayBack_lay = {\n\tname\t\t: string;\n\tidx\t\t\t: number;\n\talpha\t\t: number;\n\tblendMode\t: BLEND_MODES;\n\trotation\t: number;\n\tscale_x\t\t: number;\n\tscale_y\t\t: number;\n\tpivot_x\t\t: number;\n\tpivot_y\t\t: number;\n\tx\t\t\t: number;\n\ty\t\t\t: number;\n\tvisible\t\t: boolean;\n\taFltHArg?\t: TArg[];\n}\n\n\nexport class Layer {\n\t\t\t\tlayname\t= '';\n\tprotected\tname_\t= '';\n\tset name(nm) {this.name_ = nm}\n\tget name() {return this.name_}\n\treadonly\tctn\t= new Sprite(Texture.EMPTY);\n\n\t// tsy用\n\tget\talpha() {return this.ctn.alpha}\n\tset alpha(v) {this.ctn.alpha = v}\n\tget\theight() {return this.ctn.height}\n\tget\trotation() {return this.ctn.angle}\n\tset rotation(v) {this.ctn.angle = v}\n\tget\tscale_x() {return this.ctn.scale.x}\n\tset scale_x(v) {this.ctn.scale.x = v}\n\tget\tscale_y() {return this.ctn.scale.y}\n\tset scale_y(v) {this.ctn.scale.y = v}\n\tget\twidth() {return this.ctn.width}\n\tget\tx() {return this.ctn.x}\n\tset x(v) {this.procSetX(v); this.ctn.x = v}\n\t\tprotected\tprocSetX(_x: number) { /* empty */ }\t// set を override できないので\n\tget\ty() {return this.ctn.y}\n\tset y(v) {this.procSetY(v); this.ctn.y = v}\n\t\tprotected\tprocSetY(_y: number) { /* empty */ }\t// set を override できないので\n\n\tdestroy() { /* empty */ }\n\n\tlay(hArg: TArg): boolean {\n\t\tconst c = this.ctn;\n\t\tif ('alpha' in hArg) c.alpha = argChk_Num(hArg, 'alpha', 1);\n\n\t\tLayer.setBlendmode(c, hArg);\n\n\t\tif ('pivot_x' in hArg || 'pivot_y' in hArg) c.pivot.set(\n\t\t\targChk_Num(hArg, 'pivot_x', c.pivot.x),\n\t\t\targChk_Num(hArg, 'pivot_y', c.pivot.y)\n\t\t);\n\n\t\tif ('rotation' in hArg) c.angle = argChk_Num(hArg, 'rotation', 0);\n\t\t\t// flash : rotation is in degrees.\n\t\t\t// pixijs: rotation is in radians, angle is in degrees.\n\n\t\tif ('scale_x' in hArg || 'scale_y' in hArg) c.scale.set(\n\t\t\targChk_Num(hArg, 'scale_x', c.scale.x),\n\t\t\targChk_Num(hArg, 'scale_y', c.scale.y)\n\t\t);\n\n\t\tif ('visible' in hArg) c.visible = argChk_Boolean(hArg, 'visible', true);\n\n\t\tif ('filter' in hArg) {\n\t\t\tc.filters = [Layer.bldFilters(hArg)];\n\t\t\tthis.aFltHArg = [hArg];\n\t\t}\n\n\t\treturn false;\n\t}\n\taFltHArg: TArg[]\t= [];\n\n\t/*\n\t* 現状未サポート\n\t\t* FXAAFilter\t\tgeeks3d.com のコードに基づいた基本的な FXAA (高速近似アンチエイリアシング) の実装ですが、WebGL でサポートされていないため、texture2DLod 要素が削除されたという変更が加えられています。\n\t\t* \thttps://pixijs.download/v6.5.10/docs/PIXI.filters.FXAAFilter.html\n\t\t* DisplacementFilter\t指定されたテクスチャ (ディスプレイスメント マップと呼ばれる) のピクセル値を使用して、オブジェクトのディスプレイスメントを実行します。\n\t\t* \thttps://pixijs.download/v6.5.10/docs/PIXI.filters.DisplacementFilter.html\n\t\t* \t\t人形城のヒビキとかのやつ?\n\t*/\n\t// フィルター生成\n\tstatic\tbldFilters(hArg: TArg): Filter {\n\t\tconst {filter=''} = hArg;\n\t\tconst fnc = Layer.hBldFilter[filter];\n\t\tif (! fnc) throw 'filter が異常です';\n\n\t\tconst f = fnc(hArg);\n\t\tf.enabled = argChk_Boolean(hArg, 'enable_filter', true);\n\t\tconst {blendmode} = hArg;\t// フィルターのブレンドモード\n\t\tif (blendmode) f.blendMode = Layer.getBlendmodeNum(blendmode);\n\t\treturn f;\n\t}\n\t// https://github.com/pixijs/filters\n\tstatic\treadonly\thBldFilter: {[nm: string]: (hArg: TArg)=> Filter} = {\n\t\t// https://pixijs.download/v6.5.10/docs/PIXI.filters.BlurFilter.html\n\t\tblur: hArg=> {\t// ガウスぼかし\n\t\t\tconst f = new BlurFilter(\n\t\t\t\targChk_Num(hArg, 'strength', 8),\t// 強さ\n\t\t\t\targChk_Num(hArg, 'quality', 4),\t\t// 品質\n\t\t\t\t'resolution' in hArg ?argChk_Num(hArg, 'resolution', 0) :undefined,\t\t\t\t\t\t\t// 解像度\n\t\t\t\targChk_Num(hArg, 'kernel_size', 5),\t// カーネルサイズ。値は 5、7、9、11、13、15。\n\t\t\t);\n\t\t\tf.blurX = uint(argChk_Num(hArg, 'blur_x', 2));\t// X強度\n\t\t\tf.blurY = uint(argChk_Num(hArg, 'blur_y', 2));\t// Y強度\n\t//略\tf.quality = uint(argChk_Num(hArg, 'quality', 1));\n\t\t\t\t// ブラーのパス数。パス数が多いほど、ブラーの品質が高くなります。\n\t\t\tf.repeatEdgePixels = argChk_Boolean(hArg, 'repeat_edge_pixels', false);\t// true に設定すると、ターゲットのエッジがクランプされます。\n\t\t\treturn f;\n\t\t},\n\n\t\t// https://pixijs.download/v6.5.10/docs/PIXI.filters.NoiseFilter.html\n\t\tnoise: hArg=> new NoiseFilter(\t// ノイズエフェクト\n\t\t\targChk_Num(hArg, 'noise', 0.5),\n\t\t\t\t// 適用するノイズの量。この値は (0, 1] の範囲内\n\t\t\t'seed' in hArg ?argChk_Num(hArg, 'seed', 0) :undefined,\n\t\t\t\t// ランダム ノイズの生成に適用するシード値。 Math.random() を使用するのが適切な値です。\n\t\t),\n\n\t\t// https://pixijs.download/v6.5.10/docs/PIXI.filters.ColorMatrixFilter.html\n\t\tcolor_matrix: hArg=> {\t// カラーマトリックス\n\t\t\t\t// displayObject 上のすべてのピクセルの RGBA カラーとアルファ値に 5x4 マトリックス変換を適用して、新しい RGBA カラーとアルファ値のセットを含む結果を生成できます。 かなり強力ですよ!\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.alpha = uint(argChk_Num(hArg, 'alpha', 1));\n\t\t\tconst {matrix=''} = hArg;\n\t\t\tif (matrix) {\n\t\t\t\tconst m = matrix.split(',');\n\t\t\t\tconst len = m.length;\n\t\t\t\tif (len !== 20) throw `matrix の個数(${String(len)})が 20 ではありません`;\n\t\t\t\tfor (let i=0; i<len; ++i) f.matrix[i] = uint(m[i]);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tf.matrix[0] = uint(argChk_Num(hArg, 'rtor', 1));\n\t\t\t\tf.matrix[1] = uint(argChk_Num(hArg, 'gtor', 0));\n\t\t\t\tf.matrix[2] = uint(argChk_Num(hArg, 'btor', 0));\n\t\t\t\tf.matrix[3] = uint(argChk_Num(hArg, 'ator', 0));\n\t\t\t\tf.matrix[4] = uint(argChk_Num(hArg, 'pr', 0));\n\t\t\t\tf.matrix[5] = uint(argChk_Num(hArg, 'rtog', 0));\n\t\t\t\tf.matrix[6] = uint(argChk_Num(hArg, 'gtog', 1));\n\t\t\t\tf.matrix[7] = uint(argChk_Num(hArg, 'btog', 0));\n\t\t\t\tf.matrix[8] = uint(argChk_Num(hArg, 'atog', 0));\n\t\t\t\tf.matrix[9] = uint(argChk_Num(hArg, 'pg', 0));\n\t\t\t\tf.matrix[10] = uint(argChk_Num(hArg, 'rtob', 0));\n\t\t\t\tf.matrix[11] = uint(argChk_Num(hArg, 'gtob', 0));\n\t\t\t\tf.matrix[12] = uint(argChk_Num(hArg, 'btob', 1));\n\t\t\t\tf.matrix[13] = uint(argChk_Num(hArg, 'atob', 0));\n\t\t\t\tf.matrix[14] = uint(argChk_Num(hArg, 'pb', 0));\n\t\t\t\tf.matrix[15] = uint(argChk_Num(hArg, 'rtoa', 0));\n\t\t\t\tf.matrix[16] = uint(argChk_Num(hArg, 'gtoa', 0));\n\t\t\t\tf.matrix[17] = uint(argChk_Num(hArg, 'btoa', 0));\n\t\t\t\tf.matrix[18] = uint(argChk_Num(hArg, 'atoa', 1));\n\t\t\t\tf.matrix[19] = uint(argChk_Num(hArg, 'pa', 0));\n\t\t\t}\n\t\t\treturn f;\n\t\t},\n\t\tblack_and_white: hArg=> {\t// 白黒\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.blackAndWhite(\n\t\t\t\targChk_Boolean(hArg, 'multiply', false),\n\t\t\t\t\t// true の場合、現在の行列と行列を乗算\n\t\t\t);\n\t\t\treturn f;\n\t\t},\n\t\tbrightness: hArg=> {\t// 明るさを調整\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.brightness(\n\t\t\t\targChk_Num(hArg, 'b', 0.5),\n\t\t\t\t\t// 明るさの値 (0 ~ 1、0 は黒)\n\t\t\t\targChk_Boolean(hArg, 'multiply', false),\n\t\t\t\t\t// true の場合、現在の行列と行列を乗算\n\t\t\t);\n\t\t\treturn f;\n\t\t},\n\t\tbrowni: hArg=> {\t// おいしいブラウニー\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.browni(\n\t\t\t\targChk_Boolean(hArg, 'multiply', true),\n\t\t\t\t\t// true の場合、現在の行列と行列を乗算\n\t\t\t);\n\t\t\treturn f;\n\t\t},\n\t\tcolor_tone: hArg=> {\t// カラートーン。グラデーション マップのようなもので、正確に何をするのかはわかりませんが、遊んでみると面白いです。\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.colorTone(\n\t\t\t\targChk_Num(hArg, 'desaturation', 0.5),\n\t\t\t\targChk_Num(hArg, 'toned', 0.5),\n\t\t\t\targChk_Num(hArg, 'light_color', 0xFFE580),\n\t\t\t\targChk_Num(hArg, 'dark_color', 0xFFE580),\n\t\t\t\targChk_Boolean(hArg, 'multiply', false),\n\t\t\t\t\t// true の場合、現在の行列と行列を乗算\n\t\t\t);\n\t\t\treturn f;\n\t\t},\n\t\tcontrast: hArg=> {\t// コントラスト マトリクスを設定し、暗い部分と明るい部分の分離を増やします。 コントラストを上げる : シャドウをより暗くし、ハイライトをより明るくします。 コントラストを下げる : シャドウを上げ、ハイライトを下げます。\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.contrast(\n\t\t\t\targChk_Num(hArg, 'amount', 0.5),\n\t\t\t\t\t// コントラストの値 (0-1)\n\t\t\t\targChk_Boolean(hArg, 'multiply', false),\n\t\t\t\t\t// true の場合、現在の行列と行列を乗算\n\t\t\t);\n\t\t\treturn f;\n\t\t},\n\t\tgrayscale: hArg=> {\t// グレースケール\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.grayscale(\n\t\t\t\targChk_Num(hArg, 'scale', 0.5),\n\t\t\t\t\t// グレーの値 (0 ~ 1、0 は黒)\n\t\t\t\targChk_Boolean(hArg, 'multiply', false),\n\t\t\t\t\t// true の場合、現在の行列と行列を乗算\n\t\t\t);\n\t\t\treturn f;\n\t\t},\n\t\thue: hArg=> {\t// 色相\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.hue(\n\t\t\t\targChk_Num(hArg, 'f_rotation', 90),\t// 0だと変化なしで分かりづらいので\n\t\t\t\t\t// 度単位\n\t\t\t\targChk_Boolean(hArg, 'multiply', false),\n\t\t\t\t\t// true の場合、現在の行列と行列を乗算\n\t\t\t);\n\t\t\treturn f;\n\t\t},\n\t\tkodachrome: hArg=> {\t// コダクローム。1935 年に Eastman Kodak によって導入されたカラー リバーサル フィルム。(Dominic Szablewski に感謝)\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.kodachrome(\n\t\t\t\targChk_Boolean(hArg, 'multiply', true),\n\t\t\t\t\t// true の場合、現在の行列と行列を乗算\n\t\t\t);\n\t\t\treturn f;\n\t\t},\n\t\tlsd: hArg=> {\t// LSD効果、現在の行列を乗算します\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.lsd(\n\t\t\t\targChk_Boolean(hArg, 'multiply', false),\n\t\t\t\t\t// true の場合、現在の行列と行列を乗算\n\t\t\t);\n\t\t\treturn f;\n\t\t},\n\t\tnegative: hArg=> {\t// ネガティブ画像 (古典的なRGBマトリックスの逆)\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.negative(\n\t\t\t\targChk_Boolean(hArg, 'multiply', false),\n\t\t\t\t\t// true の場合、現在の行列と行列を乗算\n\t\t\t);\n\t\t\treturn f;\n\t\t},\n\t\tnight: hArg=> {\t// ナイトエフェクト\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.night(\n\t\t\t\targChk_Num(hArg, 'intensity', 0.5),\n\t\t\t\t\t// 夜の効果の強さ\n\t\t\t\targChk_Boolean(hArg, 'multiply', false),\n\t\t\t\t\t// true の場合、現在の行列と行列を乗算\n\t\t\t);\n\t\t\treturn f;\n\t\t},\n\t\tpolaroid: hArg=> {\t// ポラロイド\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.polaroid(\n\t\t\t\targChk_Boolean(hArg, 'multiply', false),\n\t\t\t\t\t// true の場合、現在の行列と行列を乗算\n\t\t\t);\n\t\t\treturn f;\n\t\t},\n\t\tpredator: hArg=> {\t// 捕食者効果、新しい独立したマトリックスを設定して現在のマトリックスを消去します\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.predator(\n\t\t\t\targChk_Num(hArg, 'amount', 0.5),\n\t\t\t\t\t// 捕食者は自分の将来の犠牲者をどれほど感じているか\n\t\t\t\targChk_Boolean(hArg, 'multiply', false),\n\t\t\t\t\t// true の場合、現在の行列と行列を乗算\n\t\t\t);\n\t\t\treturn f;\n\t\t},\n\t\tsaturate: hArg=> {\t// 彩度。色の間の分離を増やします。 彩度を増やす: コントラスト、明るさ、シャープネスを増やします。\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.saturate(\n\t\t\t\targChk_Num(hArg, 'amount', 0.5),\n\t\t\t\t\t// 飽和量(0~1)\n\t\t\t\targChk_Boolean(hArg, 'multiply', false),\n\t\t\t\t\t// true の場合、現在の行列と行列を乗算\n\t\t\t);\n\t\t\treturn f;\n\t\t},\n\t\tsepia: hArg=> {\t\t// セピア\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.sepia(\n\t\t\t\targChk_Boolean(hArg, 'multiply', false),\n\t\t\t\t\t// true の場合、現在の行列と行列を乗算\n\t\t\t);\n\t\t\treturn f;\n\t\t},\n\t\ttechnicolor: hArg=> {\t// テクニカラー。1916 年に発明されたカラー動画プロセス (Dominic Szablewski に感謝)\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.technicolor(\n\t\t\t\targChk_Boolean(hArg, 'multiply', true),\n\t\t\t\t\t// true の場合、現在の行列と行列を乗算\n\t\t\t);\n\t\t\treturn f;\n\t\t},\n\t\ttint: hArg=> {\t// 色合い。カラー マトリクスの対角線上に各チャネルを設定します。 これを使用すると、スプライト、テキスト、グラフィックス、メッシュなどの一部の表示オブジェクトの色合いフィールドと同様の色合い効果をコンテナ上で実現できます。\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.tint(\n\t\t\t\targChk_Num(hArg, 'f_color', 0x888888),\n\t\t\t\t\t// 色合いの色。 これは 16 進数値です。\n\t\t\t\targChk_Boolean(hArg, 'multiply', false),\n\t\t\t\t\t// true の場合、現在の行列と行列を乗算\n\t\t\t);\n\t\t\treturn f;\n\t\t},\n\t\tto_bgr: hArg=> {\t// 赤→青、青→赤\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.toBGR(\n\t\t\t\targChk_Boolean(hArg, 'multiply', false),\n\t\t\t\t\t// true の場合、現在の行列と行列を乗算\n\t\t\t);\n\t\t\treturn f;\n\t\t},\n\t\tvintage: hArg=> {\t// ビンテージ\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.vintage(\n\t\t\t\targChk_Boolean(hArg, 'multiply', true),\n\t\t\t\t\t// true の場合、現在の行列と行列を乗算\n\t\t\t);\n\t\t\treturn f;\n\t\t},\n\t};\n\n\tstatic\tsetBlendmode(cnt: Container, hArg: TArg) {\n\t\tconst {blendmode} = hArg;\n\t\tif (! blendmode) return;\t// 省略時になにもしない\n\n\t\tconst bmn = Layer.getBlendmodeNum(blendmode);\n\t\tif (cnt instanceof Sprite) cnt.blendMode = bmn;\n\t\tfor (const c of cnt.children) {\n\t\t\tif (c instanceof Sprite) c.blendMode = bmn;\n\t\t}\n\t}\n\n\tstatic getBlendmodeNum(bm_name: string): number {\n\t\tif (! bm_name) return BLEND_MODES.NORMAL;\t// 省略時にデフォルトを返す\n\n\t\tconst bmn = Layer.#hBlendmode[bm_name];\n\t\tif (bmn !== undefined) return bmn;\n\t\tthrow `${bm_name} はサポートされない blendmode です`;\n\t}\n\tstatic\treadonly\t#hBlendmode: {[bm_name: string]: number} = {\n\t\t'normal'\t\t: BLEND_MODES.NORMAL,\n\t\t'add'\t\t\t: BLEND_MODES.ADD,\n\t\t'multiply'\t\t: BLEND_MODES.MULTIPLY,\n\t\t'screen'\t\t: BLEND_MODES.SCREEN,\n/*\n\t\t'overlay'\t\t: BLEND_MODES.OVERLAY,\n\t\t'darken'\t\t: BLEND_MODES.DARKEN,\n\t\t'lighten'\t\t: BLEND_MODES.LIGHTEN,\n\t\t'color_dodge'\t: BLEND_MODES.COLOR_DODGE,\n\t\t'color_burn'\t: BLEND_MODES.COLOR_BURN,\n\t\t'hard_light'\t: BLEND_MODES.HARD_LIGHT,\n\t\t'soft_light'\t: BLEND_MODES.SOFT_LIGHT,\n\t\t'difference'\t: BLEND_MODES.DIFFERENCE,\n\t\t'exclusion'\t\t: BLEND_MODES.EXCLUSION,\n\t\t'hue'\t\t\t: BLEND_MODES.HUE,\n\t\t'saturation'\t: BLEND_MODES.SATURATION,\n\t\t'color'\t\t\t: BLEND_MODES.COLOR,\n\t\t'luminosity'\t: BLEND_MODES.LUMINOSITY,\n\n\t\t'normal_npm'\t: BLEND_MODES.NORMAL_NPM,\n\t\t'add_npm'\t\t: BLEND_MODES.ADD_NPM,\n\t\t'screen_npm'\t: BLEND_MODES.SCREEN_NPM,\n\t\t'none'\t\t\t: BLEND_MODES.NONE,\n\t\t'src_in'\t\t: BLEND_MODES.SRC_IN,\n\t\t'src_out'\t\t: BLEND_MODES.SRC_OUT,\n\t\t'src_atop'\t\t: BLEND_MODES.SRC_ATOP,\n\t\t'dst_over'\t\t: BLEND_MODES.DST_OVER,\n\t\t'dst_in'\t\t: BLEND_MODES.DST_IN,\n\t\t'dst_out'\t\t: BLEND_MODES.DST_OUT,\n\t\t'dst_atop'\t\t: BLEND_MODES.DST_ATOP,\n\t\t'subtract'\t\t: BLEND_MODES.SUBTRACT,\n\t\t'src_over'\t\t: BLEND_MODES.SRC_OVER,\n\t\t'erase'\t\t\t: BLEND_MODES.ERASE,\n\t\t'xor'\t\t\t: BLEND_MODES.XOR,\n*/\n\t};\n\tstatic getNum2Blendmode(bmn: number): string {\n\t\treturn Layer.#hNum2Blendmode[bmn] ?? 'normal';\n\t}\n\tstatic\treadonly\t#hNum2Blendmode: {[bmn: number]: string} = {\n\t\t0\t/* NORMAL */\t\t: 'normal',\n\t\t1\t/* ADD */\t\t\t: 'add',\n\t\t2\t/* MULTIPLY */\t\t: 'multiply',\n\t\t3\t/* SCREEN */\t\t: 'screen',\n\t}\n\n\t// アニメ・動画があるか\n\t// eslint-disable-next-line @typescript-eslint/class-literal-property-style\n\tget containMovement(): boolean {return false}\n\n\trenderStart(_isSkipping: boolean) { /* empty */ }\n\trenderEnd() { /* empty */ }\n\n\tclearLay(hArg: TArg): void {\n\t\tthis.ctn.alpha = 1;\n\t\tthis.ctn.blendMode = BLEND_MODES.NORMAL;\n\t\t// visibleは触らない\n\t\tthis.ctn.pivot.set(0, 0);\n\t\tthis.ctn.angle = 0;\n\t\tthis.ctn.scale.set(1, 1);\n\t\tif (argChk_Boolean(hArg, 'clear_filter', false)) {\n\t\t\tthis.ctn.filters = null;\n\t\t\tthis.aFltHArg = [];\n\t\t}\n\t\t//transform.colorTransform = nulColTrfm;\n\t}\n\tcopy(fromLayer: Layer, aPrm: Promise<void>[]): void {\n\t\tconst org_name = this.name_;\n\t\tthis.playback(fromLayer.record(), aPrm);\n\t\tthis.name = org_name;\n\t}\n\trecord() {return {\n\t\tname\t: this.name_,\n\t\tidx\t\t: this.ctn.parent.getChildIndex(this.ctn),\n\t\talpha\t: this.ctn.alpha,\n\t\tblendMode\t: this.ctn.blendMode,\n\t\trotation\t: this.ctn.angle,\n\t\tscale_x\t: this.ctn.scale.x,\n\t\tscale_y\t: this.ctn.scale.y,\n\t\tpivot_x\t: this.ctn.pivot.x,\n\t\tpivot_y\t: this.ctn.pivot.y,\n\t\tx\t\t: this.ctn.x,\n\t\ty\t\t: this.ctn.y,\n\t\tvisible\t: this.ctn.visible,\n\t\taFltHArg: this.aFltHArg,\n\t}}\n\tplayback(hLay: T_RecordPlayBack_lay, _aPrm: Promise<void>[]): void {\n\t\tthis.name = hLay.name;\n\t\t//idx\t// コール順に意味があるので LayerMng でやる\n\n\t\tthis.clearLay({clear_filter: true});\n\t\tthis.ctn.alpha = hLay.alpha;\n\t\tthis.ctn.blendMode = hLay.blendMode;\n\t\tthis.ctn.angle = hLay.rotation;\n\t\tthis.ctn.scale.set(hLay.scale_x, hLay.scale_y);\n\t\tthis.ctn.pivot.set(hLay.pivot_x, hLay.pivot_y);\n\t\tthis.ctn.position.set(hLay.x, hLay.y);\n\t\tthis.ctn.visible = hLay.visible;\n\n\t\tthis.aFltHArg = hLay.aFltHArg ?? [];\n\t\tthis.ctn.filters = this.aFltHArg.length === 0\n\t\t\t? null\n\t\t\t: this.aFltHArg.map(f=> Layer.bldFilters(f));\n\t}\n\n\tsnapshot(rnd: AbstractRenderer, re: ()=> void) {\n\t\trnd.render(this.ctn, {clear: false});\n\t\tre();\n\t}\n\tsnapshot_end() { /* empty */ }\n\n\tmakeDesignCast(_gdc: IMakeDesignCast) { /* empty */ }\n\tmakeDesignCastChildren(_gdc: IMakeDesignCast) { /* empty */ }\n\n\tshowDesignCast() { /* empty */ }\n\tshowDesignCastChildren() { /* empty */ }\n\n\tcvsResize() { /* empty */ }\n\tcvsResizeChildren() { /* empty */ }\n\n\tdump(): string {\n\t\treturn ` \"idx\":${String(this.ctn.parent.getChildIndex(this.ctn))\n\t\t}, \"visible\":\"${String(this.ctn.visible)\n\t\t}\", \"left\":${String(this.ctn.x)}, \"top\":${String(this.ctn.y)\n\t\t}, \"alpha\":${String(this.ctn.alpha)\n\t\t}, \"rotation\":${String(this.ctn.angle)\n//\t\t}, \"blendMode\":${this.ctn.blendMode\n\t\t}, \"name\":\"${this.name_}\", \"scale_x\":${String(this.ctn.scale.x)\n\t\t}, \"scale_y\":${String(this.ctn.scale.y)\n\t\t}, \"filters\": [${this.aFltHArg.map(f=> `\"${f.filter ?? ''}\"`).join(',')}]`;\n\t}\n\n\tstatic\tsetXY(base: DisplayObject, hArg: TArg, ret: Container, isGrp = false, isButton = false): void {\n\t\tif (hArg.pos) {Layer.setXYByPos(base, hArg.pos, ret); return}\n\n\t\tconst rct_base = base.getBounds();\n\t\tconst r_absclX\t= ret.scale.x < 0? -ret.scale.x : ret.scale.x;\n\t\tconst b_width\t= r_absclX === 1\n\t\t\t\t\t\t? rct_base.width : rct_base.width *r_absclX;\n\t\tconst r_absclY\t= ret.scale.y < 0? -ret.scale.y : ret.scale.y;\n\t\tconst b_height\t= r_absclY === 1\n\t\t\t\t\t\t? rct_base.height: rct_base.height*r_absclY;\n\n\t\t// an時代・瀬戸愛羅さんより https://famibee.blog.fc2.com/blog-entry-253.html\n\t\t// 横位置計算\n\t\tlet x = ret.x;\t// AIRNovelでは 0\n\t\tif ('left' in hArg) {\n\t\t\tx = argChk_Num(hArg, 'left', 0);\n\t\t\tif (x > -1 && x < 1) x *= CmnLib.stageW;\n\t\t}\n\t\telse if ('center' in hArg) {\n\t\t\tx = argChk_Num(hArg, 'center', 0);\n\t\t\tif (x > -1 && x < 1) x *= CmnLib.stageW;\n\t\t\tx -= (isButton ?b_width/3 :b_width)/2;\n\t\t}\n\t\telse if ('right' in hArg) {\n\t\t\tx = argChk_Num(hArg, 'right', 0);\n\t\t\tif (x > -1 && x < 1) x *= CmnLib.stageW;\n\t\t\tx -= isButton ?b_width/3 :b_width;\n\t\t}\n\t\telse if ('s_right' in hArg) {\n\t\t\tx = argChk_Num(hArg, 's_right', 0);\n\t\t\tif (x > -1 && x < 1) x *= CmnLib.stageW;\n\t\t\tx = CmnLib.stageW - x\n\t\t\t\t- (isButton ?b_width/3 :b_width);\n\t\t}\n\t\tret.x = int( ret.scale.x < 0\n\t\t\t? x +(isButton ?b_width/3 :b_width)\n\t\t\t: x );\n\n\t\t// 縦位置計算\n\t\tlet y = ret.y;\t// AIRNovelでは 0\n\t\tif ('top' in hArg) {\n\t\t\ty = argChk_Num(hArg, 'top', 0);\n\t\t\tif (y > -1 && y < 1) y *= CmnLib.stageH;\n\t\t}\n\t\telse if ('middle' in hArg) {\n\t\t\ty = argChk_Num(hArg, 'middle', 0);\n\t\t\tif (y > -1 && y < 1) y *= CmnLib.stageH;\n\t\t\ty -= b_height/2;\n\t\t}\n\t\telse if ('bottom' in hArg) {\n\t\t\ty = argChk_Num(hArg, 'bottom', 0);\n\t\t\tif (y > -1 && y < 1) y *= CmnLib.stageH;\n\t\t\ty -= b_height;\n\t\t}\n\t\telse if ('s_bottom' in hArg) {\n\t\t\ty = argChk_Num(hArg, 's_bottom', 0);\n\t\t\tif (y > -1 && y < 1) y *= CmnLib.stageH;\n\t\t\ty = CmnLib.stageH - y - b_height;\n\t\t}\n\t\tret.y = int( ret.scale.y < 0 ?y +b_height :y );\n\n\t\tif (isGrp) {\t// これを上の方に持っていってはいけない。\n\t\t\t\t\t\t// iPhone6など中途半端な画面サイズの際に\n\t\t\t\t\t\t// 縦位置が異常になる(素材が画面外下に)\n\t\t\tif (! ('left' in hArg)\n\t\t\t&& ! ('center' in hArg)\n\t\t\t&& ! ('right' in hArg)\n\t\t\t&& ! ('s_right' in hArg)\n\t\t\t&& ! ('top' in hArg)\n\t\t\t&& ! ('middle' in hArg)\n\t\t\t&& ! ('bottom' in hArg)\n\t\t\t&& ! ('s_bottom' in hArg)) {\n\t\t\t\tLayer.setXYByPos(base, 'c', ret);\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic\tsetXYByPos(base: DisplayObject, pos: string, ret: DisplayObject): void {\n\t\tif (pos === 'stay') return;\n\n\t\tconst rct_base = base.getBounds();\n\t\tconst r_absclX = ret.scale.x < 0? -ret.scale.x : ret.scale.x;\n\t\tconst b_width = r_absclX === 1? rct_base.width : rct_base.width *r_absclX;\n\t\tconst r_absclY = ret.scale.y < 0? -ret.scale.y : ret.scale.y;\n\t\tconst b_height = r_absclY === 1? rct_base.height: rct_base.height*r_absclY;\n\n\t\tlet c = 0;\t// 忘れたけど、プルプルするからintなんだっけ\n\t\tif (! pos || pos === 'c') {c = CmnLib.stageW *0.5}\n\t\telse if (pos === 'r') {c = CmnLib.stageW - b_width *0.5}\n\t\telse if (pos === 'l') {c = b_width *0.5}\n\t\telse {c = int(pos)}\n\n\t\tret.x = int(c -b_width *0.5);\n\t\tret.y = CmnLib.stageH -b_height;\n\n\t\tif (ret.scale.x < 0) ret.x += b_width;\n\t\tif (ret.scale.y < 0) ret.y += b_height;\n\t}\n\n\tstatic\tsetXYCenter(dsp: DisplayObject): void {\n\t\tconst rct = dsp.getBounds();\n\t\tdsp.x = (CmnLib.stageW - rct.width) *0.5;\n\t\tdsp.y = (CmnLib.stageH - rct.height) *0.5;\n\t}\n\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Layer.js","names":["#hBlendmode","#hNum2Blendmode"],"sources":["../src/sn/Layer.ts"],"sourcesContent":["/* ***** BEGIN LICENSE BLOCK *****\n\tCopyright (c) 2018-2025 Famibee (famibee.blog38.fc2.com)\n\n\tThis software is released under the MIT License.\n\thttp://opensource.org/licenses/mit-license.php\n** ***** END LICENSE BLOCK ***** */\n\nimport {CmnLib, int, argChk_Boolean, argChk_Num, uint} from './CmnLib';\nimport type {TArg} from './Grammar';\nimport type {IMakeDesignCast} from './LayerMng';\n\nimport type {DisplayObject, Container, AbstractRenderer, Filter} from 'pixi.js';\nimport {BLEND_MODES, Sprite, Texture, filters} from 'pixi.js';\nconst {BlurFilter, ColorMatrixFilter, NoiseFilter} = filters;\n\n\nexport type T_RecordPlayBack_lay = {\n\tname\t\t: string;\n\tidx\t\t\t: number;\n\talpha\t\t: number;\n\tblendMode\t: BLEND_MODES;\n\trotation\t: number;\n\tscale_x\t\t: number;\n\tscale_y\t\t: number;\n\tpivot_x\t\t: number;\n\tpivot_y\t\t: number;\n\tx\t\t\t: number;\n\ty\t\t\t: number;\n\tvisible\t\t: boolean;\n\taFltHArg?\t: TArg[];\n}\n\n\nexport class Layer {\n\t\t\t\tlayname\t= '';\n\tprotected\tname_\t= '';\n\tset name(nm) {this.name_ = nm}\n\tget name() {return this.name_}\n\treadonly\tctn\t= new Sprite(Texture.EMPTY);\n\n\t// tsy用\n\tget\talpha() {return this.ctn.alpha}\n\tset alpha(v) {this.ctn.alpha = v}\n\tget\theight() {return this.ctn.height}\n\tget\trotation() {return this.ctn.angle}\n\tset rotation(v) {this.ctn.angle = v}\n\tget\tscale_x() {return this.ctn.scale.x}\n\tset scale_x(v) {this.ctn.scale.x = v}\n\tget\tscale_y() {return this.ctn.scale.y}\n\tset scale_y(v) {this.ctn.scale.y = v}\n\tget\twidth() {return this.ctn.width}\n\tget\tx() {return this.ctn.x}\n\tset x(v) {this.procSetX(v); this.ctn.x = v}\n\t\tprotected\tprocSetX(_x: number) { /* empty */ }\t// set を override できないので\n\tget\ty() {return this.ctn.y}\n\tset y(v) {this.procSetY(v); this.ctn.y = v}\n\t\tprotected\tprocSetY(_y: number) { /* empty */ }\t// set を override できないので\n\n\tdestroy() { /* empty */ }\n\n\tlay(hArg: TArg): boolean {\n\t\tconst c = this.ctn;\n\t\tif ('alpha' in hArg) c.alpha = argChk_Num(hArg, 'alpha', 1);\n\n\t\tLayer.setBlendmode(c, hArg);\n\n\t\tif ('pivot_x' in hArg || 'pivot_y' in hArg) c.pivot.set(\n\t\t\targChk_Num(hArg, 'pivot_x', c.pivot.x),\n\t\t\targChk_Num(hArg, 'pivot_y', c.pivot.y)\n\t\t);\n\n\t\tif ('rotation' in hArg) c.angle = argChk_Num(hArg, 'rotation', 0);\n\t\t\t// flash : rotation is in degrees.\n\t\t\t// pixijs: rotation is in radians, angle is in degrees.\n\n\t\tif ('scale_x' in hArg || 'scale_y' in hArg) c.scale.set(\n\t\t\targChk_Num(hArg, 'scale_x', c.scale.x),\n\t\t\targChk_Num(hArg, 'scale_y', c.scale.y)\n\t\t);\n\n\t\tif ('visible' in hArg) c.visible = argChk_Boolean(hArg, 'visible', true);\n\n\t\tif ('filter' in hArg) {\n\t\t\tc.filters = [Layer.bldFilters(hArg)];\n\t\t\tthis.aFltHArg = [hArg];\n\t\t}\n\n\t\treturn false;\n\t}\n\taFltHArg: TArg[]\t= [];\n\n\t/*\n\t* 現状未サポート\n\t\t* FXAAFilter\t\tgeeks3d.com のコードに基づいた基本的な FXAA (高速近似アンチエイリアシング) の実装ですが、WebGL でサポートされていないため、texture2DLod 要素が削除されたという変更が加えられています。\n\t\t* \thttps://pixijs.download/v6.5.10/docs/PIXI.filters.FXAAFilter.html\n\t\t* DisplacementFilter\t指定されたテクスチャ (ディスプレイスメント マップと呼ばれる) のピクセル値を使用して、オブジェクトのディスプレイスメントを実行します。\n\t\t* \thttps://pixijs.download/v6.5.10/docs/PIXI.filters.DisplacementFilter.html\n\t\t* \t\t人形城のヒビキとかのやつ?\n\t*/\n\t// フィルター生成\n\tstatic\tbldFilters(hArg: TArg): Filter {\n\t\tconst {filter=''} = hArg;\n\t\tconst fnc = Layer.hBldFilter[filter];\n\t\tif (! fnc) throw 'filter が異常です';\n\n\t\tconst f = fnc(hArg);\n\t\tf.enabled = argChk_Boolean(hArg, 'enable_filter', true);\n\t\tconst {blendmode} = hArg;\t// フィルターのブレンドモード\n\t\tif (blendmode) f.blendMode = Layer.getBlendmodeNum(blendmode);\n\t\treturn f;\n\t}\n\t// https://github.com/pixijs/filters\n\tstatic\treadonly\thBldFilter: {[nm: string]: (hArg: TArg)=> Filter} = {\n\t\t// https://pixijs.download/v6.5.10/docs/PIXI.filters.BlurFilter.html\n\t\tblur: hArg=> {\t// ガウスぼかし\n\t\t\tconst f = new BlurFilter(\n\t\t\t\targChk_Num(hArg, 'strength', 8),\t// 強さ\n\t\t\t\targChk_Num(hArg, 'quality', 4),\t\t// 品質\n\t\t\t\t'resolution' in hArg ?argChk_Num(hArg, 'resolution', 0) :undefined,\t\t\t\t\t\t\t// 解像度\n\t\t\t\targChk_Num(hArg, 'kernel_size', 5),\t// カーネルサイズ。値は 5、7、9、11、13、15。\n\t\t\t);\n\t\t\tf.blurX = uint(argChk_Num(hArg, 'blur_x', 2));\t// X強度\n\t\t\tf.blurY = uint(argChk_Num(hArg, 'blur_y', 2));\t// Y強度\n\t//略\tf.quality = uint(argChk_Num(hArg, 'quality', 1));\n\t\t\t\t// ブラーのパス数。パス数が多いほど、ブラーの品質が高くなります。\n\t\t\tf.repeatEdgePixels = argChk_Boolean(hArg, 'repeat_edge_pixels', false);\t// true に設定すると、ターゲットのエッジがクランプされます。\n\t\t\treturn f;\n\t\t},\n\n\t\t// https://pixijs.download/v6.5.10/docs/PIXI.filters.NoiseFilter.html\n\t\tnoise: hArg=> new NoiseFilter(\t// ノイズエフェクト\n\t\t\targChk_Num(hArg, 'noise', 0.5),\n\t\t\t\t// 適用するノイズの量。この値は (0, 1] の範囲内\n\t\t\t'seed' in hArg ?argChk_Num(hArg, 'seed', 0) :undefined,\n\t\t\t\t// ランダム ノイズの生成に適用するシード値。 Math.random() を使用するのが適切な値です。\n\t\t),\n\n\t\t// https://pixijs.download/v6.5.10/docs/PIXI.filters.ColorMatrixFilter.html\n\t\tcolor_matrix: hArg=> {\t// カラーマトリックス\n\t\t\t\t// displayObject 上のすべてのピクセルの RGBA カラーとアルファ値に 5x4 マトリックス変換を適用して、新しい RGBA カラーとアルファ値のセットを含む結果を生成できます。 かなり強力ですよ!\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.alpha = uint(argChk_Num(hArg, 'alpha', 1));\n\t\t\tconst {matrix=''} = hArg;\n\t\t\tif (matrix) {\n\t\t\t\tconst m = matrix.split(',');\n\t\t\t\tconst len = m.length;\n\t\t\t\tif (len !== 20) throw `matrix の個数(${String(len)})が 20 ではありません`;\n\t\t\t\tfor (let i=0; i<len; ++i) f.matrix[i] = uint(m[i]);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tf.matrix[0] = uint(argChk_Num(hArg, 'rtor', 1));\n\t\t\t\tf.matrix[1] = uint(argChk_Num(hArg, 'gtor', 0));\n\t\t\t\tf.matrix[2] = uint(argChk_Num(hArg, 'btor', 0));\n\t\t\t\tf.matrix[3] = uint(argChk_Num(hArg, 'ator', 0));\n\t\t\t\tf.matrix[4] = uint(argChk_Num(hArg, 'pr', 0));\n\t\t\t\tf.matrix[5] = uint(argChk_Num(hArg, 'rtog', 0));\n\t\t\t\tf.matrix[6] = uint(argChk_Num(hArg, 'gtog', 1));\n\t\t\t\tf.matrix[7] = uint(argChk_Num(hArg, 'btog', 0));\n\t\t\t\tf.matrix[8] = uint(argChk_Num(hArg, 'atog', 0));\n\t\t\t\tf.matrix[9] = uint(argChk_Num(hArg, 'pg', 0));\n\t\t\t\tf.matrix[10] = uint(argChk_Num(hArg, 'rtob', 0));\n\t\t\t\tf.matrix[11] = uint(argChk_Num(hArg, 'gtob', 0));\n\t\t\t\tf.matrix[12] = uint(argChk_Num(hArg, 'btob', 1));\n\t\t\t\tf.matrix[13] = uint(argChk_Num(hArg, 'atob', 0));\n\t\t\t\tf.matrix[14] = uint(argChk_Num(hArg, 'pb', 0));\n\t\t\t\tf.matrix[15] = uint(argChk_Num(hArg, 'rtoa', 0));\n\t\t\t\tf.matrix[16] = uint(argChk_Num(hArg, 'gtoa', 0));\n\t\t\t\tf.matrix[17] = uint(argChk_Num(hArg, 'btoa', 0));\n\t\t\t\tf.matrix[18] = uint(argChk_Num(hArg, 'atoa', 1));\n\t\t\t\tf.matrix[19] = uint(argChk_Num(hArg, 'pa', 0));\n\t\t\t}\n\t\t\treturn f;\n\t\t},\n\t\tblack_and_white: hArg=> {\t// 白黒\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.blackAndWhite(\n\t\t\t\targChk_Boolean(hArg, 'multiply', false),\n\t\t\t\t\t// true の場合、現在の行列と行列を乗算\n\t\t\t);\n\t\t\treturn f;\n\t\t},\n\t\tbrightness: hArg=> {\t// 明るさを調整\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.brightness(\n\t\t\t\targChk_Num(hArg, 'b', 0.5),\n\t\t\t\t\t// 明るさの値 (0 ~ 1、0 は黒)\n\t\t\t\targChk_Boolean(hArg, 'multiply', false),\n\t\t\t\t\t// true の場合、現在の行列と行列を乗算\n\t\t\t);\n\t\t\treturn f;\n\t\t},\n\t\tbrowni: hArg=> {\t// おいしいブラウニー\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.browni(\n\t\t\t\targChk_Boolean(hArg, 'multiply', true),\n\t\t\t\t\t// true の場合、現在の行列と行列を乗算\n\t\t\t);\n\t\t\treturn f;\n\t\t},\n\t\tcolor_tone: hArg=> {\t// カラートーン。グラデーション マップのようなもので、正確に何をするのかはわかりませんが、遊んでみると面白いです。\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.colorTone(\n\t\t\t\targChk_Num(hArg, 'desaturation', 0.5),\n\t\t\t\targChk_Num(hArg, 'toned', 0.5),\n\t\t\t\targChk_Num(hArg, 'light_color', 0xFFE580),\n\t\t\t\targChk_Num(hArg, 'dark_color', 0xFFE580),\n\t\t\t\targChk_Boolean(hArg, 'multiply', false),\n\t\t\t\t\t// true の場合、現在の行列と行列を乗算\n\t\t\t);\n\t\t\treturn f;\n\t\t},\n\t\tcontrast: hArg=> {\t// コントラスト マトリクスを設定し、暗い部分と明るい部分の分離を増やします。 コントラストを上げる : シャドウをより暗くし、ハイライトをより明るくします。 コントラストを下げる : シャドウを上げ、ハイライトを下げます。\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.contrast(\n\t\t\t\targChk_Num(hArg, 'amount', 0.5),\n\t\t\t\t\t// コントラストの値 (0-1)\n\t\t\t\targChk_Boolean(hArg, 'multiply', false),\n\t\t\t\t\t// true の場合、現在の行列と行列を乗算\n\t\t\t);\n\t\t\treturn f;\n\t\t},\n\t\tgrayscale: hArg=> {\t// グレースケール\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.grayscale(\n\t\t\t\targChk_Num(hArg, 'scale', 0.5),\n\t\t\t\t\t// グレーの値 (0 ~ 1、0 は黒)\n\t\t\t\targChk_Boolean(hArg, 'multiply', false),\n\t\t\t\t\t// true の場合、現在の行列と行列を乗算\n\t\t\t);\n\t\t\treturn f;\n\t\t},\n\t\thue: hArg=> {\t// 色相\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.hue(\n\t\t\t\targChk_Num(hArg, 'f_rotation', 90),\t// 0だと変化なしで分かりづらいので\n\t\t\t\t\t// 度単位\n\t\t\t\targChk_Boolean(hArg, 'multiply', false),\n\t\t\t\t\t// true の場合、現在の行列と行列を乗算\n\t\t\t);\n\t\t\treturn f;\n\t\t},\n\t\tkodachrome: hArg=> {\t// コダクローム。1935 年に Eastman Kodak によって導入されたカラー リバーサル フィルム。(Dominic Szablewski に感謝)\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.kodachrome(\n\t\t\t\targChk_Boolean(hArg, 'multiply', true),\n\t\t\t\t\t// true の場合、現在の行列と行列を乗算\n\t\t\t);\n\t\t\treturn f;\n\t\t},\n\t\tlsd: hArg=> {\t// LSD効果、現在の行列を乗算します\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.lsd(\n\t\t\t\targChk_Boolean(hArg, 'multiply', false),\n\t\t\t\t\t// true の場合、現在の行列と行列を乗算\n\t\t\t);\n\t\t\treturn f;\n\t\t},\n\t\tnegative: hArg=> {\t// ネガティブ画像 (古典的なRGBマトリックスの逆)\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.negative(\n\t\t\t\targChk_Boolean(hArg, 'multiply', false),\n\t\t\t\t\t// true の場合、現在の行列と行列を乗算\n\t\t\t);\n\t\t\treturn f;\n\t\t},\n\t\tnight: hArg=> {\t// ナイトエフェクト\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.night(\n\t\t\t\targChk_Num(hArg, 'intensity', 0.5),\n\t\t\t\t\t// 夜の効果の強さ\n\t\t\t\targChk_Boolean(hArg, 'multiply', false),\n\t\t\t\t\t// true の場合、現在の行列と行列を乗算\n\t\t\t);\n\t\t\treturn f;\n\t\t},\n\t\tpolaroid: hArg=> {\t// ポラロイド\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.polaroid(\n\t\t\t\targChk_Boolean(hArg, 'multiply', false),\n\t\t\t\t\t// true の場合、現在の行列と行列を乗算\n\t\t\t);\n\t\t\treturn f;\n\t\t},\n\t\tpredator: hArg=> {\t// 捕食者効果、新しい独立したマトリックスを設定して現在のマトリックスを消去します\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.predator(\n\t\t\t\targChk_Num(hArg, 'amount', 0.5),\n\t\t\t\t\t// 捕食者は自分の将来の犠牲者をどれほど感じているか\n\t\t\t\targChk_Boolean(hArg, 'multiply', false),\n\t\t\t\t\t// true の場合、現在の行列と行列を乗算\n\t\t\t);\n\t\t\treturn f;\n\t\t},\n\t\tsaturate: hArg=> {\t// 彩度。色の間の分離を増やします。 彩度を増やす: コントラスト、明るさ、シャープネスを増やします。\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.saturate(\n\t\t\t\targChk_Num(hArg, 'amount', 0.5),\n\t\t\t\t\t// 飽和量(0~1)\n\t\t\t\targChk_Boolean(hArg, 'multiply', false),\n\t\t\t\t\t// true の場合、現在の行列と行列を乗算\n\t\t\t);\n\t\t\treturn f;\n\t\t},\n\t\tsepia: hArg=> {\t\t// セピア\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.sepia(\n\t\t\t\targChk_Boolean(hArg, 'multiply', false),\n\t\t\t\t\t// true の場合、現在の行列と行列を乗算\n\t\t\t);\n\t\t\treturn f;\n\t\t},\n\t\ttechnicolor: hArg=> {\t// テクニカラー。1916 年に発明されたカラー動画プロセス (Dominic Szablewski に感謝)\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.technicolor(\n\t\t\t\targChk_Boolean(hArg, 'multiply', true),\n\t\t\t\t\t// true の場合、現在の行列と行列を乗算\n\t\t\t);\n\t\t\treturn f;\n\t\t},\n\t\ttint: hArg=> {\t// 色合い。カラー マトリクスの対角線上に各チャネルを設定します。 これを使用すると、スプライト、テキスト、グラフィックス、メッシュなどの一部の表示オブジェクトの色合いフィールドと同様の色合い効果をコンテナ上で実現できます。\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.tint(\n\t\t\t\targChk_Num(hArg, 'f_color', 0x888888),\n\t\t\t\t\t// 色合いの色。 これは 16 進数値です。\n\t\t\t\targChk_Boolean(hArg, 'multiply', false),\n\t\t\t\t\t// true の場合、現在の行列と行列を乗算\n\t\t\t);\n\t\t\treturn f;\n\t\t},\n\t\tto_bgr: hArg=> {\t// 赤→青、青→赤\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.toBGR(\n\t\t\t\targChk_Boolean(hArg, 'multiply', false),\n\t\t\t\t\t// true の場合、現在の行列と行列を乗算\n\t\t\t);\n\t\t\treturn f;\n\t\t},\n\t\tvintage: hArg=> {\t// ビンテージ\n\t\t\tconst f = new ColorMatrixFilter;\n\t\t\tf.vintage(\n\t\t\t\targChk_Boolean(hArg, 'multiply', true),\n\t\t\t\t\t// true の場合、現在の行列と行列を乗算\n\t\t\t);\n\t\t\treturn f;\n\t\t},\n\t};\n\n\tstatic\tsetBlendmode(cnt: Container, hArg: TArg) {\n\t\tconst {blendmode} = hArg;\n\t\tif (! blendmode) return;\t// 省略時になにもしない\n\n\t\tconst bmn = Layer.getBlendmodeNum(blendmode);\n\t\tif (cnt instanceof Sprite) cnt.blendMode = bmn;\n\t\tfor (const c of cnt.children) {\n\t\t\tif (c instanceof Sprite) c.blendMode = bmn;\n\t\t}\n\t}\n\n\tstatic getBlendmodeNum(bm_name: string): number {\n\t\tif (! bm_name) return BLEND_MODES.NORMAL;\t// 省略時にデフォルトを返す\n\n\t\tconst bmn = Layer.#hBlendmode[bm_name];\n\t\tif (bmn !== undefined) return bmn;\n\t\tthrow `${bm_name} はサポートされない blendmode です`;\n\t}\n\tstatic\treadonly\t#hBlendmode: {[bm_name: string]: number} = {\n\t\t'normal'\t\t: BLEND_MODES.NORMAL,\n\t\t'add'\t\t\t: BLEND_MODES.ADD,\n\t\t'multiply'\t\t: BLEND_MODES.MULTIPLY,\n\t\t'screen'\t\t: BLEND_MODES.SCREEN,\n/*\n\t\t'overlay'\t\t: BLEND_MODES.OVERLAY,\n\t\t'darken'\t\t: BLEND_MODES.DARKEN,\n\t\t'lighten'\t\t: BLEND_MODES.LIGHTEN,\n\t\t'color_dodge'\t: BLEND_MODES.COLOR_DODGE,\n\t\t'color_burn'\t: BLEND_MODES.COLOR_BURN,\n\t\t'hard_light'\t: BLEND_MODES.HARD_LIGHT,\n\t\t'soft_light'\t: BLEND_MODES.SOFT_LIGHT,\n\t\t'difference'\t: BLEND_MODES.DIFFERENCE,\n\t\t'exclusion'\t\t: BLEND_MODES.EXCLUSION,\n\t\t'hue'\t\t\t: BLEND_MODES.HUE,\n\t\t'saturation'\t: BLEND_MODES.SATURATION,\n\t\t'color'\t\t\t: BLEND_MODES.COLOR,\n\t\t'luminosity'\t: BLEND_MODES.LUMINOSITY,\n\n\t\t'normal_npm'\t: BLEND_MODES.NORMAL_NPM,\n\t\t'add_npm'\t\t: BLEND_MODES.ADD_NPM,\n\t\t'screen_npm'\t: BLEND_MODES.SCREEN_NPM,\n\t\t'none'\t\t\t: BLEND_MODES.NONE,\n\t\t'src_in'\t\t: BLEND_MODES.SRC_IN,\n\t\t'src_out'\t\t: BLEND_MODES.SRC_OUT,\n\t\t'src_atop'\t\t: BLEND_MODES.SRC_ATOP,\n\t\t'dst_over'\t\t: BLEND_MODES.DST_OVER,\n\t\t'dst_in'\t\t: BLEND_MODES.DST_IN,\n\t\t'dst_out'\t\t: BLEND_MODES.DST_OUT,\n\t\t'dst_atop'\t\t: BLEND_MODES.DST_ATOP,\n\t\t'subtract'\t\t: BLEND_MODES.SUBTRACT,\n\t\t'src_over'\t\t: BLEND_MODES.SRC_OVER,\n\t\t'erase'\t\t\t: BLEND_MODES.ERASE,\n\t\t'xor'\t\t\t: BLEND_MODES.XOR,\n*/\n\t};\n\tstatic getNum2Blendmode(bmn: number): string {\n\t\treturn Layer.#hNum2Blendmode[bmn] ?? 'normal';\n\t}\n\tstatic\treadonly\t#hNum2Blendmode: {[bmn: number]: string} = {\n\t\t0\t/* NORMAL */\t\t: 'normal',\n\t\t1\t/* ADD */\t\t\t: 'add',\n\t\t2\t/* MULTIPLY */\t\t: 'multiply',\n\t\t3\t/* SCREEN */\t\t: 'screen',\n\t}\n\n\t// アニメ・動画があるか\n\t// eslint-disable-next-line @typescript-eslint/class-literal-property-style\n\tget containMovement(): boolean {return false}\n\n\trenderStart(_isSkipping: boolean) { /* empty */ }\n\trenderEnd() { /* empty */ }\n\n\tclearLay(hArg: TArg): void {\n\t\tthis.ctn.alpha = 1;\n\t\tthis.ctn.blendMode = BLEND_MODES.NORMAL;\n\t\t// visibleは触らない\n\t\tthis.ctn.pivot.set(0, 0);\n\t\tthis.ctn.angle = 0;\n\t\tthis.ctn.scale.set(1, 1);\n\t\tif (argChk_Boolean(hArg, 'clear_filter', false)) {\n\t\t\tthis.ctn.filters = null;\n\t\t\tthis.aFltHArg = [];\n\t\t}\n\t\t//transform.colorTransform = nulColTrfm;\n\t}\n\tcopy(fromLayer: Layer, aPrm: Promise<void>[]): void {\n\t\tconst org_name = this.name_;\n\t\tthis.playback(fromLayer.record(), aPrm);\n\t\tthis.name = org_name;\n\t}\n\trecord() {return {\n\t\tname\t: this.name_,\n\t\tidx\t\t: this.ctn.parent.getChildIndex(this.ctn),\n\t\talpha\t: this.ctn.alpha,\n\t\tblendMode\t: this.ctn.blendMode,\n\t\trotation\t: this.ctn.angle,\n\t\tscale_x\t: this.ctn.scale.x,\n\t\tscale_y\t: this.ctn.scale.y,\n\t\tpivot_x\t: this.ctn.pivot.x,\n\t\tpivot_y\t: this.ctn.pivot.y,\n\t\tx\t\t: this.ctn.x,\n\t\ty\t\t: this.ctn.y,\n\t\tvisible\t: this.ctn.visible,\n\t\taFltHArg: this.aFltHArg,\n\t}}\n\tplayback(hLay: T_RecordPlayBack_lay, _aPrm: Promise<void>[]): void {\n\t\tthis.name = hLay.name;\n\t\t//idx\t// コール順に意味があるので LayerMng でやる\n\n\t\tthis.clearLay({clear_filter: true});\n\t\tthis.ctn.alpha = hLay.alpha;\n\t\tthis.ctn.blendMode = hLay.blendMode;\n\t\tthis.ctn.angle = hLay.rotation;\n\t\tthis.ctn.scale.set(hLay.scale_x, hLay.scale_y);\n\t\tthis.ctn.pivot.set(hLay.pivot_x, hLay.pivot_y);\n\t\tthis.ctn.position.set(hLay.x, hLay.y);\n\t\tthis.ctn.visible = hLay.visible;\n\n\t\tthis.aFltHArg = hLay.aFltHArg ?? [];\n\t\tthis.ctn.filters = this.aFltHArg.length === 0\n\t\t\t? null\n\t\t\t: this.aFltHArg.map(f=> Layer.bldFilters(f));\n\t}\n\n\tsnapshot(rnd: AbstractRenderer, re: ()=> void) {\n\t\trnd.render(this.ctn, {clear: false});\n\t\tre();\n\t}\n\tsnapshot_end() { /* empty */ }\n\n\tmakeDesignCast(_gdc: IMakeDesignCast) { /* empty */ }\n\tmakeDesignCastChildren(_gdc: IMakeDesignCast) { /* empty */ }\n\n\tshowDesignCast() { /* empty */ }\n\tshowDesignCastChildren() { /* empty */ }\n\n\tcvsResize() { /* empty */ }\n\tcvsResizeChildren() { /* empty */ }\n\n\tdump(): string {\n\t\treturn ` \"idx\":${String(this.ctn.parent.getChildIndex(this.ctn))\n\t\t}, \"visible\":\"${String(this.ctn.visible)\n\t\t}\", \"left\":${String(this.ctn.x)}, \"top\":${String(this.ctn.y)\n\t\t}, \"alpha\":${String(this.ctn.alpha)\n\t\t}, \"rotation\":${String(this.ctn.angle)\n//\t\t}, \"blendMode\":${this.ctn.blendMode\n\t\t}, \"name\":\"${this.name_}\", \"scale_x\":${String(this.ctn.scale.x)\n\t\t}, \"scale_y\":${String(this.ctn.scale.y)\n\t\t}, \"filters\": [${this.aFltHArg.map(f=> `\"${f.filter ?? ''}\"`).join(',')}]`;\n\t}\n\n\tstatic\tsetXY(base: DisplayObject, hArg: TArg, ret: Container, isGrp = false, isButton = false): void {\n\t\tif (hArg.pos) {Layer.setXYByPos(base, hArg.pos, ret); return}\n\n\t\tconst rct_base = base.getBounds();\n\t\tconst r_absclX\t= ret.scale.x < 0? -ret.scale.x : ret.scale.x;\n\t\tconst b_width\t= r_absclX === 1\n\t\t\t\t\t\t? rct_base.width : rct_base.width *r_absclX;\n\t\tconst r_absclY\t= ret.scale.y < 0? -ret.scale.y : ret.scale.y;\n\t\tconst b_height\t= r_absclY === 1\n\t\t\t\t\t\t? rct_base.height: rct_base.height*r_absclY;\n\n\t\t// an時代・瀬戸愛羅さんより https://famibee.blog.fc2.com/blog-entry-253.html\n\t\t// 横位置計算\n\t\tlet x = ret.x;\t// AIRNovelでは 0\n\t\tif ('left' in hArg) {\n\t\t\tx = argChk_Num(hArg, 'left', 0);\n\t\t\tif (x > -1 && x < 1) x *= CmnLib.stageW;\n\t\t}\n\t\telse if ('center' in hArg) {\n\t\t\tx = argChk_Num(hArg, 'center', 0);\n\t\t\tif (x > -1 && x < 1) x *= CmnLib.stageW;\n\t\t\tx -= (isButton ?b_width/3 :b_width)/2;\n\t\t}\n\t\telse if ('right' in hArg) {\n\t\t\tx = argChk_Num(hArg, 'right', 0);\n\t\t\tif (x > -1 && x < 1) x *= CmnLib.stageW;\n\t\t\tx -= isButton ?b_width/3 :b_width;\n\t\t}\n\t\telse if ('s_right' in hArg) {\n\t\t\tx = argChk_Num(hArg, 's_right', 0);\n\t\t\tif (x > -1 && x < 1) x *= CmnLib.stageW;\n\t\t\tx = CmnLib.stageW - x\n\t\t\t\t- (isButton ?b_width/3 :b_width);\n\t\t}\n\t\tret.x = int( ret.scale.x < 0\n\t\t\t? x +(isButton ?b_width/3 :b_width)\n\t\t\t: x );\n\n\t\t// 縦位置計算\n\t\tlet y = ret.y;\t// AIRNovelでは 0\n\t\tif ('top' in hArg) {\n\t\t\ty = argChk_Num(hArg, 'top', 0);\n\t\t\tif (y > -1 && y < 1) y *= CmnLib.stageH;\n\t\t}\n\t\telse if ('middle' in hArg) {\n\t\t\ty = argChk_Num(hArg, 'middle', 0);\n\t\t\tif (y > -1 && y < 1) y *= CmnLib.stageH;\n\t\t\ty -= b_height/2;\n\t\t}\n\t\telse if ('bottom' in hArg) {\n\t\t\ty = argChk_Num(hArg, 'bottom', 0);\n\t\t\tif (y > -1 && y < 1) y *= CmnLib.stageH;\n\t\t\ty -= b_height;\n\t\t}\n\t\telse if ('s_bottom' in hArg) {\n\t\t\ty = argChk_Num(hArg, 's_bottom', 0);\n\t\t\tif (y > -1 && y < 1) y *= CmnLib.stageH;\n\t\t\ty = CmnLib.stageH - y - b_height;\n\t\t}\n\t\tret.y = int( ret.scale.y < 0 ?y +b_height :y );\n\n\t\tif (isGrp) {\t// これを上の方に持っていってはいけない。\n\t\t\t\t\t\t// iPhone6など中途半端な画面サイズの際に\n\t\t\t\t\t\t// 縦位置が異常になる(素材が画面外下に)\n\t\t\tif (! ('left' in hArg)\n\t\t\t&& ! ('center' in hArg)\n\t\t\t&& ! ('right' in hArg)\n\t\t\t&& ! ('s_right' in hArg)\n\t\t\t&& ! ('top' in hArg)\n\t\t\t&& ! ('middle' in hArg)\n\t\t\t&& ! ('bottom' in hArg)\n\t\t\t&& ! ('s_bottom' in hArg)) {\n\t\t\t\tLayer.setXYByPos(base, 'c', ret);\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic\tsetXYByPos(base: DisplayObject, pos: string, ret: DisplayObject): void {\n\t\tif (pos === 'stay') return;\n\n\t\tconst rct_base = base.getBounds();\n\t\tconst r_absclX = ret.scale.x < 0? -ret.scale.x : ret.scale.x;\n\t\tconst b_width = r_absclX === 1? rct_base.width : rct_base.width *r_absclX;\n\t\tconst r_absclY = ret.scale.y < 0? -ret.scale.y : ret.scale.y;\n\t\tconst b_height = r_absclY === 1? rct_base.height: rct_base.height*r_absclY;\n\n\t\tlet c = 0;\t// 忘れたけど、プルプルするからintなんだっけ\n\t\tif (! pos || pos === 'c') {c = CmnLib.stageW *0.5}\n\t\telse if (pos === 'r') {c = CmnLib.stageW - b_width *0.5}\n\t\telse if (pos === 'l') {c = b_width *0.5}\n\t\telse {c = int(pos)}\n\n\t\tret.x = int(c -b_width *0.5);\n\t\tret.y = CmnLib.stageH -b_height;\n\n\t\tif (ret.scale.x < 0) ret.x += b_width;\n\t\tif (ret.scale.y < 0) ret.y += b_height;\n\t}\n\n\tstatic\tsetXYCenter(dsp: DisplayObject): void {\n\t\tconst rct = dsp.getBounds();\n\t\tdsp.x = (CmnLib.stageW - rct.width) *0.5;\n\t\tdsp.y = (CmnLib.stageH - rct.height) *0.5;\n\t}\n\n}\n"],"mappings":"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"}