@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.
- package/dist/Button.js +36 -34
- package/dist/Button.js.map +1 -1
- package/dist/CallStack.js +11 -6
- package/dist/CallStack.js.map +1 -1
- package/dist/CmnInterface.js +13 -11
- package/dist/CmnInterface.js.map +1 -1
- package/dist/CmnLib.js +58 -56
- package/dist/CmnLib.js.map +1 -1
- package/dist/Config.js +9 -7
- package/dist/Config.js.map +1 -1
- package/dist/ConfigBase.js +52 -49
- package/dist/ConfigBase.js.map +1 -1
- package/dist/DebugMng.js +9 -6
- package/dist/DebugMng.js.map +1 -1
- package/dist/EventListenerCtn.js +6 -4
- package/dist/EventListenerCtn.js.map +1 -1
- package/dist/EventMng.js +522 -417
- package/dist/EventMng.js.map +1 -1
- package/dist/Grammar.js +22 -20
- package/dist/Grammar.js.map +1 -1
- package/dist/GrpLayer.js +58 -57
- package/dist/GrpLayer.js.map +1 -1
- package/dist/Layer.js +66 -64
- package/dist/Layer.js.map +1 -1
- package/dist/LayerMng.js +461 -441
- package/dist/LayerMng.js.map +1 -1
- package/dist/Main.js +69 -67
- package/dist/Main.js.map +1 -1
- package/dist/PropParser.js +23 -19
- package/dist/PropParser.js.map +1 -1
- package/dist/Reading.js +422 -418
- package/dist/Reading.js.map +1 -1
- package/dist/RubySpliter.js +6 -4
- package/dist/RubySpliter.js.map +1 -1
- package/dist/ScriptIterator.js +374 -370
- package/dist/ScriptIterator.js.map +1 -1
- package/dist/SndBuf.js +643 -622
- package/dist/SndBuf.js.map +1 -1
- package/dist/SoundMng.js +59 -60
- package/dist/SoundMng.js.map +1 -1
- package/dist/SpritesMng.js +135 -129
- package/dist/SpritesMng.js.map +1 -1
- package/dist/SysBase.js +985 -950
- package/dist/SysBase.js.map +1 -1
- package/dist/TxtLayer.js +558 -551
- package/dist/TxtLayer.js.map +1 -1
- package/dist/Variable.js +47 -45
- package/dist/Variable.js.map +1 -1
- package/dist/chunk.js +11 -9
- package/dist/gamepad.js +396 -660
- package/dist/gamepad.js.map +1 -1
- package/dist/pixi.js +2631 -2593
- package/dist/pixi.js.map +1 -1
- package/dist/platform.js +6 -4
- package/dist/platform.js.map +1 -1
- package/dist/rolldown-runtime.js +20 -0
- package/dist/sn/RubySpliter.d.ts.map +1 -1
- package/dist/web.js +418 -418
- package/dist/web.js.map +1 -1
- package/dist_app/Button.js +36 -34
- package/dist_app/Button.js.map +1 -1
- package/dist_app/CallStack.js +11 -6
- package/dist_app/CallStack.js.map +1 -1
- package/dist_app/CmnInterface.js +13 -11
- package/dist_app/CmnInterface.js.map +1 -1
- package/dist_app/CmnLib.js +58 -56
- package/dist_app/CmnLib.js.map +1 -1
- package/dist_app/Config.js +9 -7
- package/dist_app/Config.js.map +1 -1
- package/dist_app/ConfigBase.js +52 -49
- package/dist_app/ConfigBase.js.map +1 -1
- package/dist_app/DebugMng.js +9 -6
- package/dist_app/DebugMng.js.map +1 -1
- package/dist_app/EventListenerCtn.js +6 -4
- package/dist_app/EventListenerCtn.js.map +1 -1
- package/dist_app/EventMng.js +522 -417
- package/dist_app/EventMng.js.map +1 -1
- package/dist_app/Grammar.js +22 -20
- package/dist_app/Grammar.js.map +1 -1
- package/dist_app/GrpLayer.js +58 -57
- package/dist_app/GrpLayer.js.map +1 -1
- package/dist_app/Layer.js +66 -64
- package/dist_app/Layer.js.map +1 -1
- package/dist_app/LayerMng.js +461 -441
- package/dist_app/LayerMng.js.map +1 -1
- package/dist_app/Main.js +69 -67
- package/dist_app/Main.js.map +1 -1
- package/dist_app/PropParser.js +23 -19
- package/dist_app/PropParser.js.map +1 -1
- package/dist_app/Reading.js +422 -418
- package/dist_app/Reading.js.map +1 -1
- package/dist_app/RubySpliter.js +6 -4
- package/dist_app/RubySpliter.js.map +1 -1
- package/dist_app/ScriptIterator.js +374 -370
- package/dist_app/ScriptIterator.js.map +1 -1
- package/dist_app/SndBuf.js +643 -622
- package/dist_app/SndBuf.js.map +1 -1
- package/dist_app/SoundMng.js +59 -60
- package/dist_app/SoundMng.js.map +1 -1
- package/dist_app/SpritesMng.js +135 -129
- package/dist_app/SpritesMng.js.map +1 -1
- package/dist_app/SysBase.js +985 -950
- package/dist_app/SysBase.js.map +1 -1
- package/dist_app/TxtLayer.js +558 -551
- package/dist_app/TxtLayer.js.map +1 -1
- package/dist_app/Variable.js +47 -45
- package/dist_app/Variable.js.map +1 -1
- package/dist_app/app.js +62 -63
- package/dist_app/app.js.map +1 -1
- package/dist_app/appMain.js +11 -11
- package/dist_app/appMain.js.map +1 -1
- package/dist_app/chunk.js +11 -9
- package/dist_app/gamepad.js +396 -660
- package/dist_app/gamepad.js.map +1 -1
- package/dist_app/pixi.js +2028 -1990
- package/dist_app/pixi.js.map +1 -1
- package/dist_app/platform.js +6 -4
- package/dist_app/platform.js.map +1 -1
- package/dist_app/preload.js +1 -1
- package/dist_app/preload.js.map +1 -1
- package/dist_app/rolldown-runtime.js +20 -0
- package/dist_app/sn/RubySpliter.d.ts.map +1 -1
- package/package.json +20 -21
package/dist/Layer.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { g as
|
|
2
|
-
import { b as
|
|
3
|
-
|
|
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
|
|
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 =
|
|
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 =
|
|
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
|
|
74
|
-
return i.blurX =
|
|
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
|
|
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
|
|
79
|
-
r.alpha =
|
|
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] =
|
|
85
|
-
} else r.matrix[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
|
|
90
|
-
return t.blackAndWhite(
|
|
90
|
+
let t = new u();
|
|
91
|
+
return t.blackAndWhite(r(e, "multiply", !1)), t;
|
|
91
92
|
},
|
|
92
93
|
brightness: (e) => {
|
|
93
|
-
let n = new
|
|
94
|
-
return n.brightness(
|
|
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
|
|
98
|
-
return t.browni(
|
|
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
|
|
102
|
-
return n.colorTone(
|
|
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
|
|
106
|
-
return n.contrast(
|
|
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
|
|
110
|
-
return n.grayscale(
|
|
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
|
|
114
|
-
return n.hue(
|
|
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
|
|
118
|
-
return t.kodachrome(
|
|
118
|
+
let t = new u();
|
|
119
|
+
return t.kodachrome(r(e, "multiply", !0)), t;
|
|
119
120
|
},
|
|
120
121
|
lsd: (e) => {
|
|
121
|
-
let t = new
|
|
122
|
-
return t.lsd(
|
|
122
|
+
let t = new u();
|
|
123
|
+
return t.lsd(r(e, "multiply", !1)), t;
|
|
123
124
|
},
|
|
124
125
|
negative: (e) => {
|
|
125
|
-
let t = new
|
|
126
|
-
return t.negative(
|
|
126
|
+
let t = new u();
|
|
127
|
+
return t.negative(r(e, "multiply", !1)), t;
|
|
127
128
|
},
|
|
128
129
|
night: (e) => {
|
|
129
|
-
let n = new
|
|
130
|
-
return n.night(
|
|
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
|
|
134
|
-
return t.polaroid(
|
|
134
|
+
let t = new u();
|
|
135
|
+
return t.polaroid(r(e, "multiply", !1)), t;
|
|
135
136
|
},
|
|
136
137
|
predator: (e) => {
|
|
137
|
-
let n = new
|
|
138
|
-
return n.predator(
|
|
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
|
|
142
|
-
return n.saturate(
|
|
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
|
|
146
|
-
return t.sepia(
|
|
146
|
+
let t = new u();
|
|
147
|
+
return t.sepia(r(e, "multiply", !1)), t;
|
|
147
148
|
},
|
|
148
149
|
technicolor: (e) => {
|
|
149
|
-
let t = new
|
|
150
|
-
return t.technicolor(
|
|
150
|
+
let t = new u();
|
|
151
|
+
return t.technicolor(r(e, "multiply", !0)), t;
|
|
151
152
|
},
|
|
152
153
|
tint: (e) => {
|
|
153
|
-
let n = new
|
|
154
|
-
return n.tint(
|
|
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
|
|
158
|
-
return t.toBGR(
|
|
158
|
+
let t = new u();
|
|
159
|
+
return t.toBGR(r(e, "multiply", !1)), t;
|
|
159
160
|
},
|
|
160
161
|
vintage: (e) => {
|
|
161
|
-
let t = new
|
|
162
|
-
return t.vintage(
|
|
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
|
|
170
|
-
for (let t of e.children) t instanceof
|
|
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
|
|
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:
|
|
180
|
-
add:
|
|
181
|
-
multiply:
|
|
182
|
-
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 =
|
|
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 =
|
|
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 =
|
|
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" ?
|
|
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 = (
|
|
256
|
+
e.x = (i.stageW - t.width) * .5, e.y = (i.stageH - t.height) * .5;
|
|
256
257
|
}
|
|
257
258
|
};
|
|
258
|
-
|
|
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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"}
|