@famibee/skynovel 1.65.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/Button.js +131 -163
- package/dist/Button.js.map +1 -1
- package/dist/CallStack.js +19 -22
- package/dist/CallStack.js.map +1 -1
- package/dist/CmnInterface.js +91 -0
- package/dist/CmnInterface.js.map +1 -0
- package/dist/CmnLib.js +94 -0
- package/dist/CmnLib.js.map +1 -0
- package/dist/Config.js +26 -0
- package/dist/Config.js.map +1 -0
- package/dist/ConfigBase.js +152 -0
- package/dist/ConfigBase.js.map +1 -0
- package/dist/DebugMng.js +89 -102
- package/dist/DebugMng.js.map +1 -1
- package/dist/EventListenerCtn.js +21 -0
- package/dist/EventListenerCtn.js.map +1 -0
- package/dist/EventMng.js +1435 -1577
- package/dist/EventMng.js.map +1 -1
- package/dist/Grammar.js +194 -0
- package/dist/Grammar.js.map +1 -0
- package/dist/GrpLayer.js +163 -195
- package/dist/GrpLayer.js.map +1 -1
- package/dist/Layer.js +260 -0
- package/dist/Layer.js.map +1 -0
- package/dist/LayerMng.js +810 -991
- package/dist/LayerMng.js.map +1 -1
- package/dist/Main.js +144 -393
- package/dist/Main.js.map +1 -1
- package/dist/PropParser.js +936 -834
- package/dist/PropParser.js.map +1 -1
- package/dist/Reading.js +917 -786
- package/dist/Reading.js.map +1 -1
- package/dist/RubySpliter.js +59 -92
- package/dist/RubySpliter.js.map +1 -1
- package/dist/ScriptIterator.js +805 -1034
- package/dist/ScriptIterator.js.map +1 -1
- package/dist/SndBuf.js +1097 -1332
- package/dist/SndBuf.js.map +1 -1
- package/dist/SoundMng.js +124 -135
- package/dist/SoundMng.js.map +1 -1
- package/dist/SpritesMng.js +220 -232
- package/dist/SpritesMng.js.map +1 -1
- package/dist/SysBase.js +1729 -0
- package/dist/SysBase.js.map +1 -0
- package/dist/TxtLayer.js +1212 -1397
- package/dist/TxtLayer.js.map +1 -1
- package/dist/Variable.js +398 -466
- package/dist/Variable.js.map +1 -1
- package/dist/chunk.js +18 -0
- package/dist/gamepad.js +723 -511
- package/dist/gamepad.js.map +1 -1
- package/dist/pixi.js +13422 -0
- package/dist/pixi.js.map +1 -0
- package/dist/platform.js +424 -369
- package/dist/platform.js.map +1 -1
- package/dist/sn/AnalyzeTagArg.d.ts +1 -1
- package/dist/sn/AnalyzeTagArg.d.ts.map +1 -1
- package/dist/sn/CmnInterface.d.ts +3 -1
- package/dist/sn/CmnInterface.d.ts.map +1 -1
- package/dist/sn/CmnLib.d.ts.map +1 -1
- package/dist/sn/CmnTween.d.ts +3 -3
- package/dist/sn/CmnTween.d.ts.map +1 -1
- package/dist/sn/EventMng.d.ts.map +1 -1
- package/dist/sn/Grammar.d.ts +1 -1
- package/dist/sn/Grammar.d.ts.map +1 -1
- package/dist/sn/PropParser.d.ts +2 -2
- package/dist/sn/PropParser.d.ts.map +1 -1
- package/dist/sn/Reading.d.ts +6 -0
- package/dist/sn/Reading.d.ts.map +1 -1
- package/dist/sn/ScriptIterator.d.ts.map +1 -1
- package/dist/sn/SndBuf.d.ts +27 -16
- package/dist/sn/SndBuf.d.ts.map +1 -1
- package/dist/sn/SoundMng.d.ts +4 -1
- package/dist/sn/SoundMng.d.ts.map +1 -1
- package/dist/sn/SysBase.d.ts.map +1 -1
- package/dist/sn/TxtStage.d.ts +2 -1
- package/dist/sn/TxtStage.d.ts.map +1 -1
- package/dist/test/ValTest.d.ts +1 -1
- package/dist/test/ValTest.d.ts.map +1 -1
- package/dist/web.js +653 -8
- package/dist/web.js.map +1 -1
- package/dist_app/Button.js +131 -163
- package/dist_app/Button.js.map +1 -1
- package/dist_app/CallStack.js +19 -22
- package/dist_app/CallStack.js.map +1 -1
- package/dist_app/CmnInterface.js +91 -0
- package/dist_app/CmnInterface.js.map +1 -0
- package/dist_app/CmnLib.js +94 -0
- package/dist_app/CmnLib.js.map +1 -0
- package/dist_app/Config.js +26 -0
- package/dist_app/Config.js.map +1 -0
- package/dist_app/ConfigBase.js +152 -0
- package/dist_app/ConfigBase.js.map +1 -0
- package/dist_app/DebugMng.js +92 -0
- package/dist_app/DebugMng.js.map +1 -0
- package/dist_app/EventListenerCtn.js +21 -0
- package/dist_app/EventListenerCtn.js.map +1 -0
- package/dist_app/EventMng.js +1435 -1577
- package/dist_app/EventMng.js.map +1 -1
- package/dist_app/Grammar.js +194 -0
- package/dist_app/Grammar.js.map +1 -0
- package/dist_app/GrpLayer.js +163 -195
- package/dist_app/GrpLayer.js.map +1 -1
- package/dist_app/Layer.js +260 -0
- package/dist_app/Layer.js.map +1 -0
- package/dist_app/LayerMng.js +810 -991
- package/dist_app/LayerMng.js.map +1 -1
- package/dist_app/Main.js +144 -392
- package/dist_app/Main.js.map +1 -1
- package/dist_app/PropParser.js +936 -834
- package/dist_app/PropParser.js.map +1 -1
- package/dist_app/Reading.js +917 -786
- package/dist_app/Reading.js.map +1 -1
- package/dist_app/RubySpliter.js +59 -92
- package/dist_app/RubySpliter.js.map +1 -1
- package/dist_app/ScriptIterator.js +805 -1033
- package/dist_app/ScriptIterator.js.map +1 -1
- package/dist_app/SndBuf.js +1097 -1332
- package/dist_app/SndBuf.js.map +1 -1
- package/dist_app/SoundMng.js +124 -135
- package/dist_app/SoundMng.js.map +1 -1
- package/dist_app/SpritesMng.js +220 -231
- package/dist_app/SpritesMng.js.map +1 -1
- package/dist_app/SysBase.js +1729 -0
- package/dist_app/SysBase.js.map +1 -0
- package/dist_app/TxtLayer.js +1212 -1396
- package/dist_app/TxtLayer.js.map +1 -1
- package/dist_app/Variable.js +398 -466
- package/dist_app/Variable.js.map +1 -1
- package/dist_app/app.js +211 -8
- package/dist_app/app.js.map +1 -1
- package/dist_app/appMain.js +20 -21
- package/dist_app/appMain.js.map +1 -1
- package/dist_app/chunk.js +18 -0
- package/dist_app/gamepad.js +723 -511
- package/dist_app/gamepad.js.map +1 -1
- package/dist_app/pixi.js +11181 -0
- package/dist_app/pixi.js.map +1 -0
- package/dist_app/platform.js +424 -369
- package/dist_app/platform.js.map +1 -1
- package/dist_app/preload.js +2 -2
- package/dist_app/preload.js.map +1 -1
- package/dist_app/sn/AnalyzeTagArg.d.ts +1 -1
- package/dist_app/sn/AnalyzeTagArg.d.ts.map +1 -1
- package/dist_app/sn/CmnInterface.d.ts +3 -1
- package/dist_app/sn/CmnInterface.d.ts.map +1 -1
- package/dist_app/sn/CmnLib.d.ts.map +1 -1
- package/dist_app/sn/CmnTween.d.ts +3 -3
- package/dist_app/sn/CmnTween.d.ts.map +1 -1
- package/dist_app/sn/EventMng.d.ts.map +1 -1
- package/dist_app/sn/Grammar.d.ts +1 -1
- package/dist_app/sn/Grammar.d.ts.map +1 -1
- package/dist_app/sn/PropParser.d.ts +2 -2
- package/dist_app/sn/PropParser.d.ts.map +1 -1
- package/dist_app/sn/Reading.d.ts +6 -0
- package/dist_app/sn/Reading.d.ts.map +1 -1
- package/dist_app/sn/ScriptIterator.d.ts.map +1 -1
- package/dist_app/sn/SndBuf.d.ts +27 -16
- package/dist_app/sn/SndBuf.d.ts.map +1 -1
- package/dist_app/sn/SoundMng.d.ts +4 -1
- package/dist_app/sn/SoundMng.d.ts.map +1 -1
- package/dist_app/sn/SysBase.d.ts.map +1 -1
- package/dist_app/sn/TxtStage.d.ts +2 -1
- package/dist_app/sn/TxtStage.d.ts.map +1 -1
- package/dist_app/test/ValTest.d.ts +1 -1
- package/dist_app/test/ValTest.d.ts.map +1 -1
- package/package.json +23 -13
- package/dist/CmnTween.js +0 -1005
- package/dist/CmnTween.js.map +0 -1
- package/dist/web2.js +0 -21644
- package/dist/web2.js.map +0 -1
- package/dist_app/CmnTween.js +0 -1005
- package/dist_app/CmnTween.js.map +0 -1
- package/dist_app/app2.js +0 -18547
- package/dist_app/app2.js.map +0 -1
package/dist_app/GrpLayer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GrpLayer.js","sources":["../src/sn/DesignCast.ts","../src/sn/GrpLayer.ts"],"sourcesContent":["/* ***** BEGIN LICENSE BLOCK *****\n\tCopyright (c) 2021-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 type {TArg} from './Grammar';\nimport type {T_PropParser} from './CmnInterface';\nimport type {SysBase} from './SysBase';\nimport type {ScriptIterator} from './ScriptIterator';\nimport type {HPage} from './LayerMng';\nimport type {HPRM} from './AnalyzeTagArg';\nimport type {TxtStage} from './TxtStage';\nimport type {Button} from './Button';\nimport type {GrpLayer} from './GrpLayer';\nimport type {Config} from './Config';\n\nimport type {Application, Text, Sprite} from 'pixi.js';\n\n\nexport class DesignCast {\n\tstatic\tinit(_appPixi: Application, _sys: SysBase, _scrItr: ScriptIterator, _prpPrs: T_PropParser, _cfg: Config, _hPages: HPage) { /* empty */ }\n\tstatic\tcvsResizeDesign() { /* empty */ }\n//\tstatic\treadonly\t#alzTagArg\t= new AnalyzeTagArg;\n\n\n\tconstructor(readonly bg_col: string, readonly isLay = false) {}\n\tdestroy() { /* empty */ }\n\n\tgethArg(): TArg {return this.hArg}\n\tprotected\thArg\t: TArg\t= {};\n\tsethArg(hArg: TArg): void {\n\t\tthis.hArg = hArg;\n\t}\n\n\tsetOther(_hPrm: HPRM) { /* empty */ }\n\n\tadopt(_idcCh: DesignCast) {\t// 養子縁組\n\t}\n\n\tstatic\tenterMode() { /* empty */ }\n\tstatic\tallHide() { /* empty */ }\n\tset visible(_v: boolean) { /* empty */ }\n\tstatic\tleaveMode() { /* empty */ }\n\n\n\tcvsResize() { /* empty */ }\n\tmake() { /* empty */ }\n\tstatic replaceToken(_o: unknown) { /* empty */ }\n\n}\n\n\n// 画像レイヤ\nexport class GrpLayDesignCast extends DesignCast {\n\tconstructor(_ctn: Sprite, _gl: GrpLayer) {super('#29e', true)}\n\tsetSp(_sp: Sprite) { /* empty */ }\n}\n\n// 文字レイヤ\nexport class TxtLayDesignCast extends DesignCast {\n\tconstructor(_ctn: Sprite, _ts: TxtStage) {\n\t\tsuper('#29e', true);\n\t}\n}\n// 文字レイヤ・パディング\nexport class TxtLayPadDesignCast extends DesignCast {\n\tconstructor(_ts: TxtStage) {super('#9e2')}\n}\n\n// 文字レイヤ・ボタン基本\nexport class BtnDesignCast extends DesignCast {\n\tconstructor(protected readonly btn: Button, override readonly hArg: TArg) {\n\t\tsuper('#e92');\n\t}\n}\n// 文字レイヤ・文字ボタン\nexport class TxtBtnDesignCast extends BtnDesignCast {\n\tconstructor(btn: Button, hArg: TArg, _txt: Text) {\n\t\tsuper(btn, hArg);\n\t}\n}\n\n// 文字レイヤ・画像ボタン\nexport class PicBtnDesignCast extends BtnDesignCast {\n\tsetSp(_sp: Sprite) { /* empty */ }\n}\n","/* ***** 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 {Layer, type T_RecordPlayBack_lay} from './Layer';\n\nimport {CmnLib, argChk_Boolean, argChk_Num} from './CmnLib';\nimport type {TArg} from './Grammar';\nimport type {T_Main, T_Variable} from './CmnInterface';\nimport type {Config} from './Config';\nimport type {SysBase} from './SysBase';\nimport type {SoundMng} from './SoundMng';\nimport type {IMakeDesignCast} from './LayerMng';\nimport {GrpLayDesignCast} from './DesignCast';\nimport {SpritesMng} from './SpritesMng';\nimport {Reading} from './Reading';\n\nimport {Sprite, AnimatedSprite, RenderTexture, type Application} from 'pixi.js';\n\n\nexport type T_RP_layGrp = T_RecordPlayBack_lay & {\n\tsBkFn\t: string;\n\tsBkFace\t: string;\n}\n\n\nexport class GrpLayer extends Layer {\n\tstatic\t#appPixi: Application;\n\tstatic\tinit(main: T_Main, cfg: Config, appPixi: Application, sys: SysBase, sndMng: SoundMng, val: T_Variable): void {\n\t\tGrpLayer.#appPixi = appPixi;\n\t\tSpritesMng.init(cfg, val, sys, main, sndMng);\n\t}\n\tstatic\tdestroy() {SpritesMng.destroy()}\n\n\treadonly\t#idc\t= new GrpLayDesignCast(this.ctn, this);\n\tconstructor() {\n\t\tsuper();\n\t\tif (CmnLib.isDbg) {\n\t\t\tthis.#setIdcSp = sp=> this.#idc.setSp(sp);\n\t\t\tthis.cvsResize = ()=> {super.cvsResize(); this.#idc.cvsResize()}\n\t\t}\n\t}\n\t#setIdcSp\t: (sp: Sprite)=> void\t= ()=> { /* empty */ };\n\n\t#csvFn\t\t= '';\n\t#sBkFn\t\t= '';\n\t#sBkFace\t= '';\n\toverride readonly\tlay = (hArg: TArg)=> {\n\t\tconst RPN_GRP_LAY = Reading.procID +`GrpLayer lay name:${this.name_}`;\n\t\tconst ret = this.#laySub(hArg, isStop=> {\n\t\t\tif (isStop) Reading.endProc(RPN_GRP_LAY);\n\t\t});\n\t\tif (ret) Reading.beginProc(RPN_GRP_LAY);\n\t\treturn ret;\n\t}\n\t#laySub(hArg: TArg, resolve: (isStop: boolean)=> void): boolean {\n\t\tconst {fn, face = ''} = hArg;\n\t\tthis.#idc.sethArg(hArg);\n\t\tif (! fn) {\n\t\t\tsuper.lay(hArg);\n\n\t\t\tif (this.ctn.children.length > 0) this.setPos(hArg);\n\t\t\tthis.#sBkFn = '';\n\t\t\tthis.#csvFn = this.#sBkFace = face;\n\t\t\tresolve(false);\n\t\t\treturn false;\n\t\t}\n\n\t\tconst inFn = 'fn' in hArg;\n\t\tconst inFace = 'face' in hArg;\n\n\t\tthis.clearLay({clear_filter: argChk_Boolean(hArg, 'clear_filter', true)});\n\t\tif (inFn) this.#sBkFn = fn;\t// clearLay()後に置く事\n\t\tif (inFace) this.#sBkFace = face;\n\t\tsuper.lay(hArg);\t// filter設定してる場合も\n\n\t\thArg.dx = 0;\n\t\thArg.dy = 0;\n\n\t\tthis.#sps.destroy();\n\t\tthis.#sps = new SpritesMng(\n\t\t\tthis.#csvFn = fn + (face ?','+ face :''),\n\t\t\tthis.ctn,\n\t\t\tsp=> {\n\t\t\t\tif ('width' in hArg || 'height' in hArg) {\n\t\t\t\t\tsp.width = argChk_Num(hArg, 'width', 0);\n\t\t\t\t\tsp.height = argChk_Num(hArg, 'height', 0);\n\t\t\t\t}\n\t\t\t\tthis.#width = sp.width;\n\t\t\t\tthis.#height = sp.height;\n\t\t\t\tLayer.setXY(sp, hArg, this.ctn, true);\n\t\t\t\tLayer.setBlendmode(this.ctn, hArg);\n\t\t\t//\tif (hArg.page === 'fore') this.rsvEvent(sp);\t// ======\n\t\t\t\t\t// [lay page=fore]のみswfアニメ終了イベント発生\n\t\t\t\tthis.#setIdcSp(sp);\n\t\t\t},\n\t\t\tisStop=> resolve(isStop),\n\t\t);\n\t\treturn this.#sps.ret;\n\t}\n\t#sps\t= new SpritesMng;\n\t#width\t= 0;\n\t#height\t= 0;\n\toverride\tget\twidth() {return this.#width}\n\toverride\tget\theight() {return this.#height}\n\n\n\toverride\trenderStart(isSkipping: boolean) {\n\t\tif (isSkipping) {\n\t\t\tconst a = this.ctn.alpha;\n\t\t\tthis.ctn.alpha = 1;\t// 無意味に思えるが、pixi部の挙動が変わるので一度やる\n\t\t\tthis.ctn.alpha = a;\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#spTsy = new Sprite(this.#rtTsy);\n\t\tthis.#spTsy.visible = false;\n\t\tthis.ctn.addChildAt(this.#spTsy, 0);\n\t\tthis.#spTsy.position.set(-this.ctn.x, -this.ctn.y);\n\n\t\tlet fncRenderFore = ()=> {\n\t\t\tconst a = this.ctn.alpha;\n\t\t\tthis.ctn.alpha = 1;\n\t\t\tfor (const s of this.ctn.children) s.visible = true;\n\t\t\tthis.#spTsy.visible = false;\n\t\t\tGrpLayer.#appPixi.renderer.render(this.ctn, {renderTexture: this.#rtTsy});\t// clear: true\n\t\t\tthis.ctn.alpha = a;\n\t\t\tfor (const s of this.ctn.children) s.visible = false;\n\t\t}\n\t\tif (! this.containMovement) {\n\t\t\tconst oldFnc = fncRenderFore;\t// 動きがないなら最初に一度\n\t\t\tfncRenderFore = ()=> {fncRenderFore = ()=> { /* empty */ }; oldFnc()};\n\t\t}\n\t\tthis.#fncRender = ()=> {\n\t\t\tfncRenderFore();\n\t\t\tthis.#spTsy.visible = true;\n\t\t};\n\t\tGrpLayer.#appPixi.ticker.add(this.#fncRender);\n\t}\n\t#rtTsy\t= RenderTexture.create({\n\t\twidth\t: CmnLib.stageW,\n\t\theight\t: CmnLib.stageH,\n\t});\n\t#spTsy\t= new Sprite;\n\t#fncRender = ()=> { /* empty */ };\n\toverride\trenderEnd() {\n\t\tGrpLayer.#appPixi.ticker.remove(this.#fncRender);\n\t\tthis.ctn.removeChild(this.#spTsy);\n\t\tfor (const s of this.ctn.children) s.visible = true;\n\t\tthis.#spTsy.destroy(true);\n\n\t\tthis.#rtTsy = RenderTexture.create({\n\t\t\twidth\t: CmnLib.stageW,\n\t\t\theight\t: CmnLib.stageH,\n\t\t});\n\t}\n\n\n\tsetPos(hArg: TArg): void {\n\t\tLayer.setXY(\n\t\t\tthis.ctn.children[0] ?? this.ctn,\n\t\t\thArg,\n\t\t\tthis.ctn,\n\t\t\ttrue\n\t\t);\n\t}\n\n\t// アニメ・動画を含むか\n\toverride get containMovement() {\n\t\tif (this.#csvFn === '') return false;\n\n\t\tconst c = this.ctn.children;\n\t\treturn this.#csvFn.split(',').some(\n\t\t\t(fn, i)=> c[i] instanceof AnimatedSprite || SpritesMng.getHFn2VElm(fn)\n\t\t);\n\t}\n\n\toverride clearLay(hArg: TArg): void {\n\t\tsuper.clearLay(hArg);\n\t\tthis.#sps.destroy();\n\t\tthis.#sBkFn\t\t= '';\n\t\tthis.#sBkFace\t= '';\n\t\tthis.#csvFn\t\t= '';\n\t}\n\toverride readonly record = ()=> ({...super.record(),\n\t\tsBkFn\t\t: this.#sBkFn,\n\t\tsBkFace\t\t: this.#sBkFace,\n//\t\tidc_hArg\t: this.#idc.gethArg(),\n\t});\n\toverride playback(hLay: T_RP_layGrp, aPrm: Promise<void>[]): void {\n\t\tsuper.playback(hLay, aPrm);\n\t\tif (hLay.sBkFn === '' && hLay.sBkFace === '') {\n\t\t\tthis.#sBkFn\t\t= '';\n\t\t\tthis.#sBkFace\t= '';\n//\t\t\tthis.#idc.sethArg(hLay.idc_hArg);\n\t\t\treturn;\n\t\t}\n\n\t\taPrm.push(new Promise(re=> this.#laySub(\n\t\t\t{fn: hLay.sBkFn, face: hLay.sBkFace, left: hLay.x, top: hLay.y, alpha: hLay.alpha, blendmode: Layer.getNum2Blendmode(hLay.blendMode), rotation: hLay.rotation, scale_x: hLay.scale_x, scale_y: hLay.scale_y},\n\t\t\t_isStop=> {this.ctn.position.set(hLay.x, hLay.y); re()},\n\t\t\t\t// Layer.setXY()の後に再度移動\n\t\t)));\n\t}\n\n\toverride makeDesignCast(gdc: IMakeDesignCast) {\n\t\tif (! this.ctn.visible) return;\n\t\tgdc(this.#idc);\n\t}\n\t//makeDesignCastChildren(_gdc: IMakeDesignCast) {}\n\n\toverride cvsResize() {super.cvsResize()}\n\n\toverride showDesignCast() {this.#idc.visible = true}\n\t//showDesignCastChildren() {}\n\n\toverride readonly dump = ()=> super.dump() +`, \"pic\":\"${this.#csvFn}\"`;\n\n}\n"],"names":["DesignCast","bg_col","isLay","_appPixi","_sys","_scrItr","_prpPrs","_cfg","_hPages","hArg","_hPrm","_idcCh","_v","_o","GrpLayDesignCast","_ctn","_gl","_sp","GrpLayer","Layer","#appPixi","main","cfg","appPixi","sys","sndMng","val","SpritesMng","#idc","CmnLib","#setIdcSp","sp","#csvFn","#sBkFn","#sBkFace","RPN_GRP_LAY","Reading","ret","#laySub","isStop","resolve","fn","face","inFn","inFace","argChk_Boolean","#sps","argChk_Num","#width","#height","isSkipping","a","#spTsy","Sprite","#rtTsy","fncRenderFore","s","oldFnc","#fncRender","RenderTexture","c","i","AnimatedSprite","hLay","aPrm","re","_isStop","gdc"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GrpLayer.js","names":["bg_col: string","btn: Button","hArg: TArg","#appPixi","#idc","#setIdcSp","#laySub","#sBkFn","#csvFn","#sBkFace","#sps","#width","#height","#spTsy","#rtTsy","#fncRender"],"sources":["../src/sn/DesignCast.ts","../src/sn/GrpLayer.ts"],"sourcesContent":["/* ***** BEGIN LICENSE BLOCK *****\n\tCopyright (c) 2021-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 type {TArg} from './Grammar';\nimport type {T_PropParser} from './CmnInterface';\nimport type {SysBase} from './SysBase';\nimport type {ScriptIterator} from './ScriptIterator';\nimport type {HPage} from './LayerMng';\nimport type {HPRM} from './AnalyzeTagArg';\nimport type {TxtStage} from './TxtStage';\nimport type {Button} from './Button';\nimport type {GrpLayer} from './GrpLayer';\nimport type {Config} from './Config';\n\nimport type {Application, Text, Sprite} from 'pixi.js';\n\n\nexport class DesignCast {\n\tstatic\tinit(_appPixi: Application, _sys: SysBase, _scrItr: ScriptIterator, _prpPrs: T_PropParser, _cfg: Config, _hPages: HPage) { /* empty */ }\n\tstatic\tcvsResizeDesign() { /* empty */ }\n//\tstatic\treadonly\t#alzTagArg\t= new AnalyzeTagArg;\n\n\n\tconstructor(readonly bg_col: string, readonly isLay = false) {}\n\tdestroy() { /* empty */ }\n\n\tgethArg(): TArg {return this.hArg}\n\tprotected\thArg\t: TArg\t= {};\n\tsethArg(hArg: TArg): void {\n\t\tthis.hArg = hArg;\n\t}\n\n\tsetOther(_hPrm: HPRM) { /* empty */ }\n\n\tadopt(_idcCh: DesignCast) {\t// 養子縁組\n\t}\n\n\tstatic\tenterMode() { /* empty */ }\n\tstatic\tallHide() { /* empty */ }\n\tset visible(_v: boolean) { /* empty */ }\n\tstatic\tleaveMode() { /* empty */ }\n\n\n\tcvsResize() { /* empty */ }\n\tmake() { /* empty */ }\n\tstatic replaceToken(_o: unknown) { /* empty */ }\n\n}\n\n\n// 画像レイヤ\nexport class GrpLayDesignCast extends DesignCast {\n\tconstructor(_ctn: Sprite, _gl: GrpLayer) {super('#29e', true)}\n\tsetSp(_sp: Sprite) { /* empty */ }\n}\n\n// 文字レイヤ\nexport class TxtLayDesignCast extends DesignCast {\n\tconstructor(_ctn: Sprite, _ts: TxtStage) {\n\t\tsuper('#29e', true);\n\t}\n}\n// 文字レイヤ・パディング\nexport class TxtLayPadDesignCast extends DesignCast {\n\tconstructor(_ts: TxtStage) {super('#9e2')}\n}\n\n// 文字レイヤ・ボタン基本\nexport class BtnDesignCast extends DesignCast {\n\tconstructor(protected readonly btn: Button, override readonly hArg: TArg) {\n\t\tsuper('#e92');\n\t}\n}\n// 文字レイヤ・文字ボタン\nexport class TxtBtnDesignCast extends BtnDesignCast {\n\tconstructor(btn: Button, hArg: TArg, _txt: Text) {\n\t\tsuper(btn, hArg);\n\t}\n}\n\n// 文字レイヤ・画像ボタン\nexport class PicBtnDesignCast extends BtnDesignCast {\n\tsetSp(_sp: Sprite) { /* empty */ }\n}\n","/* ***** 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 {Layer, type T_RecordPlayBack_lay} from './Layer';\n\nimport {CmnLib, argChk_Boolean, argChk_Num} from './CmnLib';\nimport type {TArg} from './Grammar';\nimport type {T_Main, T_Variable} from './CmnInterface';\nimport type {Config} from './Config';\nimport type {SysBase} from './SysBase';\nimport type {SoundMng} from './SoundMng';\nimport type {IMakeDesignCast} from './LayerMng';\nimport {GrpLayDesignCast} from './DesignCast';\nimport {SpritesMng} from './SpritesMng';\nimport {Reading} from './Reading';\n\nimport {Sprite, AnimatedSprite, RenderTexture, type Application} from 'pixi.js';\n\n\nexport type T_RP_layGrp = T_RecordPlayBack_lay & {\n\tsBkFn\t: string;\n\tsBkFace\t: string;\n}\n\n\nexport class GrpLayer extends Layer {\n\tstatic\t#appPixi: Application;\n\tstatic\tinit(main: T_Main, cfg: Config, appPixi: Application, sys: SysBase, sndMng: SoundMng, val: T_Variable): void {\n\t\tGrpLayer.#appPixi = appPixi;\n\t\tSpritesMng.init(cfg, val, sys, main, sndMng);\n\t}\n\tstatic\tdestroy() {SpritesMng.destroy()}\n\n\treadonly\t#idc\t= new GrpLayDesignCast(this.ctn, this);\n\tconstructor() {\n\t\tsuper();\n\t\tif (CmnLib.isDbg) {\n\t\t\tthis.#setIdcSp = sp=> this.#idc.setSp(sp);\n\t\t\tthis.cvsResize = ()=> {super.cvsResize(); this.#idc.cvsResize()}\n\t\t}\n\t}\n\t#setIdcSp\t: (sp: Sprite)=> void\t= ()=> { /* empty */ };\n\n\t#csvFn\t\t= '';\n\t#sBkFn\t\t= '';\n\t#sBkFace\t= '';\n\toverride readonly\tlay = (hArg: TArg)=> {\n\t\tconst RPN_GRP_LAY = Reading.procID +`GrpLayer lay name:${this.name_}`;\n\t\tconst ret = this.#laySub(hArg, isStop=> {\n\t\t\tif (isStop) Reading.endProc(RPN_GRP_LAY);\n\t\t});\n\t\tif (ret) Reading.beginProc(RPN_GRP_LAY);\n\t\treturn ret;\n\t}\n\t#laySub(hArg: TArg, resolve: (isStop: boolean)=> void): boolean {\n\t\tconst {fn, face = ''} = hArg;\n\t\tthis.#idc.sethArg(hArg);\n\t\tif (! fn) {\n\t\t\tsuper.lay(hArg);\n\n\t\t\tif (this.ctn.children.length > 0) this.setPos(hArg);\n\t\t\tthis.#sBkFn = '';\n\t\t\tthis.#csvFn = this.#sBkFace = face;\n\t\t\tresolve(false);\n\t\t\treturn false;\n\t\t}\n\n\t\tconst inFn = 'fn' in hArg;\n\t\tconst inFace = 'face' in hArg;\n\n\t\tthis.clearLay({clear_filter: argChk_Boolean(hArg, 'clear_filter', true)});\n\t\tif (inFn) this.#sBkFn = fn;\t// clearLay()後に置く事\n\t\tif (inFace) this.#sBkFace = face;\n\t\tsuper.lay(hArg);\t// filter設定してる場合も\n\n\t\thArg.dx = 0;\n\t\thArg.dy = 0;\n\n\t\tthis.#sps.destroy();\n\t\tthis.#sps = new SpritesMng(\n\t\t\tthis.#csvFn = fn + (face ?','+ face :''),\n\t\t\tthis.ctn,\n\t\t\tsp=> {\n\t\t\t\tif ('width' in hArg || 'height' in hArg) {\n\t\t\t\t\tsp.width = argChk_Num(hArg, 'width', 0);\n\t\t\t\t\tsp.height = argChk_Num(hArg, 'height', 0);\n\t\t\t\t}\n\t\t\t\tthis.#width = sp.width;\n\t\t\t\tthis.#height = sp.height;\n\t\t\t\tLayer.setXY(sp, hArg, this.ctn, true);\n\t\t\t\tLayer.setBlendmode(this.ctn, hArg);\n\t\t\t//\tif (hArg.page === 'fore') this.rsvEvent(sp);\t// ======\n\t\t\t\t\t// [lay page=fore]のみswfアニメ終了イベント発生\n\t\t\t\tthis.#setIdcSp(sp);\n\t\t\t},\n\t\t\tisStop=> resolve(isStop),\n\t\t);\n\t\treturn this.#sps.ret;\n\t}\n\t#sps\t= new SpritesMng;\n\t#width\t= 0;\n\t#height\t= 0;\n\toverride\tget\twidth() {return this.#width}\n\toverride\tget\theight() {return this.#height}\n\n\n\toverride\trenderStart(isSkipping: boolean) {\n\t\tif (isSkipping) {\n\t\t\tconst a = this.ctn.alpha;\n\t\t\tthis.ctn.alpha = 1;\t// 無意味に思えるが、pixi部の挙動が変わるので一度やる\n\t\t\tthis.ctn.alpha = a;\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#spTsy = new Sprite(this.#rtTsy);\n\t\tthis.#spTsy.visible = false;\n\t\tthis.ctn.addChildAt(this.#spTsy, 0);\n\t\tthis.#spTsy.position.set(-this.ctn.x, -this.ctn.y);\n\n\t\tlet fncRenderFore = ()=> {\n\t\t\tconst a = this.ctn.alpha;\n\t\t\tthis.ctn.alpha = 1;\n\t\t\tfor (const s of this.ctn.children) s.visible = true;\n\t\t\tthis.#spTsy.visible = false;\n\t\t\tGrpLayer.#appPixi.renderer.render(this.ctn, {renderTexture: this.#rtTsy});\t// clear: true\n\t\t\tthis.ctn.alpha = a;\n\t\t\tfor (const s of this.ctn.children) s.visible = false;\n\t\t}\n\t\tif (! this.containMovement) {\n\t\t\tconst oldFnc = fncRenderFore;\t// 動きがないなら最初に一度\n\t\t\tfncRenderFore = ()=> {fncRenderFore = ()=> { /* empty */ }; oldFnc()};\n\t\t}\n\t\tthis.#fncRender = ()=> {\n\t\t\tfncRenderFore();\n\t\t\tthis.#spTsy.visible = true;\n\t\t};\n\t\tGrpLayer.#appPixi.ticker.add(this.#fncRender);\n\t}\n\t#rtTsy\t= RenderTexture.create({\n\t\twidth\t: CmnLib.stageW,\n\t\theight\t: CmnLib.stageH,\n\t});\n\t#spTsy\t= new Sprite;\n\t#fncRender = ()=> { /* empty */ };\n\toverride\trenderEnd() {\n\t\tGrpLayer.#appPixi.ticker.remove(this.#fncRender);\n\t\tthis.ctn.removeChild(this.#spTsy);\n\t\tfor (const s of this.ctn.children) s.visible = true;\n\t\tthis.#spTsy.destroy(true);\n\n\t\tthis.#rtTsy = RenderTexture.create({\n\t\t\twidth\t: CmnLib.stageW,\n\t\t\theight\t: CmnLib.stageH,\n\t\t});\n\t}\n\n\n\tsetPos(hArg: TArg): void {\n\t\tLayer.setXY(\n\t\t\tthis.ctn.children[0] ?? this.ctn,\n\t\t\thArg,\n\t\t\tthis.ctn,\n\t\t\ttrue\n\t\t);\n\t}\n\n\t// アニメ・動画を含むか\n\toverride get containMovement() {\n\t\tif (this.#csvFn === '') return false;\n\n\t\tconst c = this.ctn.children;\n\t\treturn this.#csvFn.split(',').some(\n\t\t\t(fn, i)=> c[i] instanceof AnimatedSprite || SpritesMng.getHFn2VElm(fn)\n\t\t);\n\t}\n\n\toverride clearLay(hArg: TArg): void {\n\t\tsuper.clearLay(hArg);\n\t\tthis.#sps.destroy();\n\t\tthis.#sBkFn\t\t= '';\n\t\tthis.#sBkFace\t= '';\n\t\tthis.#csvFn\t\t= '';\n\t}\n\toverride readonly record = ()=> ({...super.record(),\n\t\tsBkFn\t\t: this.#sBkFn,\n\t\tsBkFace\t\t: this.#sBkFace,\n//\t\tidc_hArg\t: this.#idc.gethArg(),\n\t});\n\toverride playback(hLay: T_RP_layGrp, aPrm: Promise<void>[]): void {\n\t\tsuper.playback(hLay, aPrm);\n\t\tif (hLay.sBkFn === '' && hLay.sBkFace === '') {\n\t\t\tthis.#sBkFn\t\t= '';\n\t\t\tthis.#sBkFace\t= '';\n//\t\t\tthis.#idc.sethArg(hLay.idc_hArg);\n\t\t\treturn;\n\t\t}\n\n\t\taPrm.push(new Promise(re=> this.#laySub(\n\t\t\t{fn: hLay.sBkFn, face: hLay.sBkFace, left: hLay.x, top: hLay.y, alpha: hLay.alpha, blendmode: Layer.getNum2Blendmode(hLay.blendMode), rotation: hLay.rotation, scale_x: hLay.scale_x, scale_y: hLay.scale_y},\n\t\t\t_isStop=> {this.ctn.position.set(hLay.x, hLay.y); re()},\n\t\t\t\t// Layer.setXY()の後に再度移動\n\t\t)));\n\t}\n\n\toverride makeDesignCast(gdc: IMakeDesignCast) {\n\t\tif (! this.ctn.visible) return;\n\t\tgdc(this.#idc);\n\t}\n\t//makeDesignCastChildren(_gdc: IMakeDesignCast) {}\n\n\toverride cvsResize() {super.cvsResize()}\n\n\toverride showDesignCast() {this.#idc.visible = true}\n\t//showDesignCastChildren() {}\n\n\toverride readonly dump = ()=> super.dump() +`, \"pic\":\"${this.#csvFn}\"`;\n\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,260 @@
|
|
|
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 {
|
|
4
|
+
layname = "";
|
|
5
|
+
name_ = "";
|
|
6
|
+
set name(e) {
|
|
7
|
+
this.name_ = e;
|
|
8
|
+
}
|
|
9
|
+
get name() {
|
|
10
|
+
return this.name_;
|
|
11
|
+
}
|
|
12
|
+
ctn = new Sprite(Texture.EMPTY);
|
|
13
|
+
get alpha() {
|
|
14
|
+
return this.ctn.alpha;
|
|
15
|
+
}
|
|
16
|
+
set alpha(e) {
|
|
17
|
+
this.ctn.alpha = e;
|
|
18
|
+
}
|
|
19
|
+
get height() {
|
|
20
|
+
return this.ctn.height;
|
|
21
|
+
}
|
|
22
|
+
get rotation() {
|
|
23
|
+
return this.ctn.angle;
|
|
24
|
+
}
|
|
25
|
+
set rotation(e) {
|
|
26
|
+
this.ctn.angle = e;
|
|
27
|
+
}
|
|
28
|
+
get scale_x() {
|
|
29
|
+
return this.ctn.scale.x;
|
|
30
|
+
}
|
|
31
|
+
set scale_x(e) {
|
|
32
|
+
this.ctn.scale.x = e;
|
|
33
|
+
}
|
|
34
|
+
get scale_y() {
|
|
35
|
+
return this.ctn.scale.y;
|
|
36
|
+
}
|
|
37
|
+
set scale_y(e) {
|
|
38
|
+
this.ctn.scale.y = e;
|
|
39
|
+
}
|
|
40
|
+
get width() {
|
|
41
|
+
return this.ctn.width;
|
|
42
|
+
}
|
|
43
|
+
get x() {
|
|
44
|
+
return this.ctn.x;
|
|
45
|
+
}
|
|
46
|
+
set x(e) {
|
|
47
|
+
this.procSetX(e), this.ctn.x = e;
|
|
48
|
+
}
|
|
49
|
+
procSetX(e) {}
|
|
50
|
+
get y() {
|
|
51
|
+
return this.ctn.y;
|
|
52
|
+
}
|
|
53
|
+
set y(e) {
|
|
54
|
+
this.procSetY(e), this.ctn.y = e;
|
|
55
|
+
}
|
|
56
|
+
procSetY(e) {}
|
|
57
|
+
destroy() {}
|
|
58
|
+
lay(e) {
|
|
59
|
+
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
|
+
}
|
|
62
|
+
aFltHArg = [];
|
|
63
|
+
static bldFilters(e) {
|
|
64
|
+
let { filter: t = "" } = e, n = c.hBldFilter[t];
|
|
65
|
+
if (!n) throw "filter が異常です";
|
|
66
|
+
let i = n(e);
|
|
67
|
+
i.enabled = argChk_Boolean(e, "enable_filter", !0);
|
|
68
|
+
let { blendmode: a } = e;
|
|
69
|
+
return a && (i.blendMode = c.getBlendmodeNum(a)), i;
|
|
70
|
+
}
|
|
71
|
+
static hBldFilter = {
|
|
72
|
+
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;
|
|
75
|
+
},
|
|
76
|
+
noise: (e) => new NoiseFilter(argChk_Num(e, "noise", .5), "seed" in e ? argChk_Num(e, "seed", 0) : void 0),
|
|
77
|
+
color_matrix: (n) => {
|
|
78
|
+
let r = new ColorMatrixFilter();
|
|
79
|
+
r.alpha = uint(argChk_Num(n, "alpha", 1));
|
|
80
|
+
let { matrix: i = "" } = n;
|
|
81
|
+
if (i) {
|
|
82
|
+
let t = i.split(","), n = t.length;
|
|
83
|
+
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));
|
|
86
|
+
return r;
|
|
87
|
+
},
|
|
88
|
+
black_and_white: (e) => {
|
|
89
|
+
let t = new ColorMatrixFilter();
|
|
90
|
+
return t.blackAndWhite(argChk_Boolean(e, "multiply", !1)), t;
|
|
91
|
+
},
|
|
92
|
+
brightness: (e) => {
|
|
93
|
+
let n = new ColorMatrixFilter();
|
|
94
|
+
return n.brightness(argChk_Num(e, "b", .5), argChk_Boolean(e, "multiply", !1)), n;
|
|
95
|
+
},
|
|
96
|
+
browni: (e) => {
|
|
97
|
+
let t = new ColorMatrixFilter();
|
|
98
|
+
return t.browni(argChk_Boolean(e, "multiply", !0)), t;
|
|
99
|
+
},
|
|
100
|
+
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;
|
|
103
|
+
},
|
|
104
|
+
contrast: (e) => {
|
|
105
|
+
let n = new ColorMatrixFilter();
|
|
106
|
+
return n.contrast(argChk_Num(e, "amount", .5), argChk_Boolean(e, "multiply", !1)), n;
|
|
107
|
+
},
|
|
108
|
+
grayscale: (e) => {
|
|
109
|
+
let n = new ColorMatrixFilter();
|
|
110
|
+
return n.grayscale(argChk_Num(e, "scale", .5), argChk_Boolean(e, "multiply", !1)), n;
|
|
111
|
+
},
|
|
112
|
+
hue: (e) => {
|
|
113
|
+
let n = new ColorMatrixFilter();
|
|
114
|
+
return n.hue(argChk_Num(e, "f_rotation", 90), argChk_Boolean(e, "multiply", !1)), n;
|
|
115
|
+
},
|
|
116
|
+
kodachrome: (e) => {
|
|
117
|
+
let t = new ColorMatrixFilter();
|
|
118
|
+
return t.kodachrome(argChk_Boolean(e, "multiply", !0)), t;
|
|
119
|
+
},
|
|
120
|
+
lsd: (e) => {
|
|
121
|
+
let t = new ColorMatrixFilter();
|
|
122
|
+
return t.lsd(argChk_Boolean(e, "multiply", !1)), t;
|
|
123
|
+
},
|
|
124
|
+
negative: (e) => {
|
|
125
|
+
let t = new ColorMatrixFilter();
|
|
126
|
+
return t.negative(argChk_Boolean(e, "multiply", !1)), t;
|
|
127
|
+
},
|
|
128
|
+
night: (e) => {
|
|
129
|
+
let n = new ColorMatrixFilter();
|
|
130
|
+
return n.night(argChk_Num(e, "intensity", .5), argChk_Boolean(e, "multiply", !1)), n;
|
|
131
|
+
},
|
|
132
|
+
polaroid: (e) => {
|
|
133
|
+
let t = new ColorMatrixFilter();
|
|
134
|
+
return t.polaroid(argChk_Boolean(e, "multiply", !1)), t;
|
|
135
|
+
},
|
|
136
|
+
predator: (e) => {
|
|
137
|
+
let n = new ColorMatrixFilter();
|
|
138
|
+
return n.predator(argChk_Num(e, "amount", .5), argChk_Boolean(e, "multiply", !1)), n;
|
|
139
|
+
},
|
|
140
|
+
saturate: (e) => {
|
|
141
|
+
let n = new ColorMatrixFilter();
|
|
142
|
+
return n.saturate(argChk_Num(e, "amount", .5), argChk_Boolean(e, "multiply", !1)), n;
|
|
143
|
+
},
|
|
144
|
+
sepia: (e) => {
|
|
145
|
+
let t = new ColorMatrixFilter();
|
|
146
|
+
return t.sepia(argChk_Boolean(e, "multiply", !1)), t;
|
|
147
|
+
},
|
|
148
|
+
technicolor: (e) => {
|
|
149
|
+
let t = new ColorMatrixFilter();
|
|
150
|
+
return t.technicolor(argChk_Boolean(e, "multiply", !0)), t;
|
|
151
|
+
},
|
|
152
|
+
tint: (e) => {
|
|
153
|
+
let n = new ColorMatrixFilter();
|
|
154
|
+
return n.tint(argChk_Num(e, "f_color", 8947848), argChk_Boolean(e, "multiply", !1)), n;
|
|
155
|
+
},
|
|
156
|
+
to_bgr: (e) => {
|
|
157
|
+
let t = new ColorMatrixFilter();
|
|
158
|
+
return t.toBGR(argChk_Boolean(e, "multiply", !1)), t;
|
|
159
|
+
},
|
|
160
|
+
vintage: (e) => {
|
|
161
|
+
let t = new ColorMatrixFilter();
|
|
162
|
+
return t.vintage(argChk_Boolean(e, "multiply", !0)), t;
|
|
163
|
+
}
|
|
164
|
+
};
|
|
165
|
+
static setBlendmode(e, t) {
|
|
166
|
+
let { blendmode: n } = t;
|
|
167
|
+
if (!n) return;
|
|
168
|
+
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);
|
|
171
|
+
}
|
|
172
|
+
static getBlendmodeNum(e) {
|
|
173
|
+
if (!e) return BLEND_MODES.NORMAL;
|
|
174
|
+
let t = c.#e[e];
|
|
175
|
+
if (t !== void 0) return t;
|
|
176
|
+
throw `${e} はサポートされない blendmode です`;
|
|
177
|
+
}
|
|
178
|
+
static #e = {
|
|
179
|
+
normal: BLEND_MODES.NORMAL,
|
|
180
|
+
add: BLEND_MODES.ADD,
|
|
181
|
+
multiply: BLEND_MODES.MULTIPLY,
|
|
182
|
+
screen: BLEND_MODES.SCREEN
|
|
183
|
+
};
|
|
184
|
+
static getNum2Blendmode(e) {
|
|
185
|
+
return c.#t[e] ?? "normal";
|
|
186
|
+
}
|
|
187
|
+
static #t = {
|
|
188
|
+
0: "normal",
|
|
189
|
+
1: "add",
|
|
190
|
+
2: "multiply",
|
|
191
|
+
3: "screen"
|
|
192
|
+
};
|
|
193
|
+
get containMovement() {
|
|
194
|
+
return !1;
|
|
195
|
+
}
|
|
196
|
+
renderStart(e) {}
|
|
197
|
+
renderEnd() {}
|
|
198
|
+
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
|
+
}
|
|
201
|
+
copy(e, t) {
|
|
202
|
+
let n = this.name_;
|
|
203
|
+
this.playback(e.record(), t), this.name = n;
|
|
204
|
+
}
|
|
205
|
+
record() {
|
|
206
|
+
return {
|
|
207
|
+
name: this.name_,
|
|
208
|
+
idx: this.ctn.parent.getChildIndex(this.ctn),
|
|
209
|
+
alpha: this.ctn.alpha,
|
|
210
|
+
blendMode: this.ctn.blendMode,
|
|
211
|
+
rotation: this.ctn.angle,
|
|
212
|
+
scale_x: this.ctn.scale.x,
|
|
213
|
+
scale_y: this.ctn.scale.y,
|
|
214
|
+
pivot_x: this.ctn.pivot.x,
|
|
215
|
+
pivot_y: this.ctn.pivot.y,
|
|
216
|
+
x: this.ctn.x,
|
|
217
|
+
y: this.ctn.y,
|
|
218
|
+
visible: this.ctn.visible,
|
|
219
|
+
aFltHArg: this.aFltHArg
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
playback(e, t) {
|
|
223
|
+
this.name = e.name, this.clearLay({ clear_filter: !0 }), this.ctn.alpha = e.alpha, this.ctn.blendMode = e.blendMode, this.ctn.angle = e.rotation, this.ctn.scale.set(e.scale_x, e.scale_y), this.ctn.pivot.set(e.pivot_x, e.pivot_y), this.ctn.position.set(e.x, e.y), this.ctn.visible = e.visible, this.aFltHArg = e.aFltHArg ?? [], this.ctn.filters = this.aFltHArg.length === 0 ? null : this.aFltHArg.map((e) => c.bldFilters(e));
|
|
224
|
+
}
|
|
225
|
+
snapshot(e, t) {
|
|
226
|
+
e.render(this.ctn, { clear: !1 }), t();
|
|
227
|
+
}
|
|
228
|
+
snapshot_end() {}
|
|
229
|
+
makeDesignCast(e) {}
|
|
230
|
+
makeDesignCastChildren(e) {}
|
|
231
|
+
showDesignCast() {}
|
|
232
|
+
showDesignCastChildren() {}
|
|
233
|
+
cvsResize() {}
|
|
234
|
+
cvsResizeChildren() {}
|
|
235
|
+
dump() {
|
|
236
|
+
return ` "idx":${String(this.ctn.parent.getChildIndex(this.ctn))}, "visible":"${String(this.ctn.visible)}", "left":${String(this.ctn.x)}, "top":${String(this.ctn.y)}, "alpha":${String(this.ctn.alpha)}, "rotation":${String(this.ctn.angle)}, "name":"${this.name_}", "scale_x":${String(this.ctn.scale.x)}, "scale_y":${String(this.ctn.scale.y)}, "filters": [${this.aFltHArg.map((e) => `"${e.filter ?? ""}"`).join(",")}]`;
|
|
237
|
+
}
|
|
238
|
+
static setXY(e, r, a, o = !1, s = !1) {
|
|
239
|
+
if (r.pos) {
|
|
240
|
+
c.setXYByPos(e, r.pos, a);
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
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
|
+
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
|
+
}
|
|
248
|
+
static setXYByPos(e, t, r) {
|
|
249
|
+
if (t === "stay") return;
|
|
250
|
+
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
|
+
}
|
|
253
|
+
static setXYCenter(e) {
|
|
254
|
+
let t = e.getBounds();
|
|
255
|
+
e.x = (CmnLib.stageW - t.width) * .5, e.y = (CmnLib.stageH - t.height) * .5;
|
|
256
|
+
}
|
|
257
|
+
};
|
|
258
|
+
export { Layer as t };
|
|
259
|
+
|
|
260
|
+
//# sourceMappingURL=Layer.js.map
|
|
@@ -0,0 +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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"}
|