@famibee/skynovel 1.65.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (176) hide show
  1. package/README.md +3 -3
  2. package/dist/Button.js +131 -163
  3. package/dist/Button.js.map +1 -1
  4. package/dist/CallStack.js +19 -22
  5. package/dist/CallStack.js.map +1 -1
  6. package/dist/CmnInterface.js +91 -0
  7. package/dist/CmnInterface.js.map +1 -0
  8. package/dist/CmnLib.js +94 -0
  9. package/dist/CmnLib.js.map +1 -0
  10. package/dist/Config.js +26 -0
  11. package/dist/Config.js.map +1 -0
  12. package/dist/ConfigBase.js +152 -0
  13. package/dist/ConfigBase.js.map +1 -0
  14. package/dist/DebugMng.js +89 -102
  15. package/dist/DebugMng.js.map +1 -1
  16. package/dist/EventListenerCtn.js +21 -0
  17. package/dist/EventListenerCtn.js.map +1 -0
  18. package/dist/EventMng.js +1435 -1577
  19. package/dist/EventMng.js.map +1 -1
  20. package/dist/Grammar.js +194 -0
  21. package/dist/Grammar.js.map +1 -0
  22. package/dist/GrpLayer.js +163 -195
  23. package/dist/GrpLayer.js.map +1 -1
  24. package/dist/Layer.js +260 -0
  25. package/dist/Layer.js.map +1 -0
  26. package/dist/LayerMng.js +810 -991
  27. package/dist/LayerMng.js.map +1 -1
  28. package/dist/Main.js +144 -393
  29. package/dist/Main.js.map +1 -1
  30. package/dist/PropParser.js +936 -834
  31. package/dist/PropParser.js.map +1 -1
  32. package/dist/Reading.js +918 -786
  33. package/dist/Reading.js.map +1 -1
  34. package/dist/RubySpliter.js +59 -92
  35. package/dist/RubySpliter.js.map +1 -1
  36. package/dist/ScriptIterator.js +805 -1034
  37. package/dist/ScriptIterator.js.map +1 -1
  38. package/dist/SndBuf.js +1097 -1332
  39. package/dist/SndBuf.js.map +1 -1
  40. package/dist/SoundMng.js +124 -135
  41. package/dist/SoundMng.js.map +1 -1
  42. package/dist/SpritesMng.js +220 -232
  43. package/dist/SpritesMng.js.map +1 -1
  44. package/dist/SysBase.js +1729 -0
  45. package/dist/SysBase.js.map +1 -0
  46. package/dist/TxtLayer.js +1212 -1397
  47. package/dist/TxtLayer.js.map +1 -1
  48. package/dist/Variable.js +398 -466
  49. package/dist/Variable.js.map +1 -1
  50. package/dist/chunk.js +18 -0
  51. package/dist/gamepad.js +723 -511
  52. package/dist/gamepad.js.map +1 -1
  53. package/dist/pixi.js +13422 -0
  54. package/dist/pixi.js.map +1 -0
  55. package/dist/platform.js +424 -369
  56. package/dist/platform.js.map +1 -1
  57. package/dist/sn/AnalyzeTagArg.d.ts +1 -1
  58. package/dist/sn/AnalyzeTagArg.d.ts.map +1 -1
  59. package/dist/sn/CmnInterface.d.ts +3 -1
  60. package/dist/sn/CmnInterface.d.ts.map +1 -1
  61. package/dist/sn/CmnLib.d.ts.map +1 -1
  62. package/dist/sn/CmnTween.d.ts +3 -3
  63. package/dist/sn/CmnTween.d.ts.map +1 -1
  64. package/dist/sn/EventMng.d.ts.map +1 -1
  65. package/dist/sn/Grammar.d.ts +1 -1
  66. package/dist/sn/Grammar.d.ts.map +1 -1
  67. package/dist/sn/PropParser.d.ts +2 -2
  68. package/dist/sn/PropParser.d.ts.map +1 -1
  69. package/dist/sn/Reading.d.ts +6 -0
  70. package/dist/sn/Reading.d.ts.map +1 -1
  71. package/dist/sn/ScriptIterator.d.ts.map +1 -1
  72. package/dist/sn/SndBuf.d.ts +27 -16
  73. package/dist/sn/SndBuf.d.ts.map +1 -1
  74. package/dist/sn/SoundMng.d.ts +4 -1
  75. package/dist/sn/SoundMng.d.ts.map +1 -1
  76. package/dist/sn/SysBase.d.ts.map +1 -1
  77. package/dist/sn/TxtStage.d.ts +2 -1
  78. package/dist/sn/TxtStage.d.ts.map +1 -1
  79. package/dist/test/ValTest.d.ts +1 -1
  80. package/dist/test/ValTest.d.ts.map +1 -1
  81. package/dist/web.js +653 -8
  82. package/dist/web.js.map +1 -1
  83. package/dist_app/Button.js +131 -163
  84. package/dist_app/Button.js.map +1 -1
  85. package/dist_app/CallStack.js +19 -22
  86. package/dist_app/CallStack.js.map +1 -1
  87. package/dist_app/CmnInterface.js +91 -0
  88. package/dist_app/CmnInterface.js.map +1 -0
  89. package/dist_app/CmnLib.js +94 -0
  90. package/dist_app/CmnLib.js.map +1 -0
  91. package/dist_app/Config.js +26 -0
  92. package/dist_app/Config.js.map +1 -0
  93. package/dist_app/ConfigBase.js +152 -0
  94. package/dist_app/ConfigBase.js.map +1 -0
  95. package/dist_app/DebugMng.js +92 -0
  96. package/dist_app/DebugMng.js.map +1 -0
  97. package/dist_app/EventListenerCtn.js +21 -0
  98. package/dist_app/EventListenerCtn.js.map +1 -0
  99. package/dist_app/EventMng.js +1435 -1577
  100. package/dist_app/EventMng.js.map +1 -1
  101. package/dist_app/Grammar.js +194 -0
  102. package/dist_app/Grammar.js.map +1 -0
  103. package/dist_app/GrpLayer.js +163 -195
  104. package/dist_app/GrpLayer.js.map +1 -1
  105. package/dist_app/Layer.js +260 -0
  106. package/dist_app/Layer.js.map +1 -0
  107. package/dist_app/LayerMng.js +810 -991
  108. package/dist_app/LayerMng.js.map +1 -1
  109. package/dist_app/Main.js +144 -392
  110. package/dist_app/Main.js.map +1 -1
  111. package/dist_app/PropParser.js +936 -834
  112. package/dist_app/PropParser.js.map +1 -1
  113. package/dist_app/Reading.js +918 -786
  114. package/dist_app/Reading.js.map +1 -1
  115. package/dist_app/RubySpliter.js +59 -92
  116. package/dist_app/RubySpliter.js.map +1 -1
  117. package/dist_app/ScriptIterator.js +805 -1033
  118. package/dist_app/ScriptIterator.js.map +1 -1
  119. package/dist_app/SndBuf.js +1097 -1332
  120. package/dist_app/SndBuf.js.map +1 -1
  121. package/dist_app/SoundMng.js +124 -135
  122. package/dist_app/SoundMng.js.map +1 -1
  123. package/dist_app/SpritesMng.js +220 -231
  124. package/dist_app/SpritesMng.js.map +1 -1
  125. package/dist_app/SysBase.js +1729 -0
  126. package/dist_app/SysBase.js.map +1 -0
  127. package/dist_app/TxtLayer.js +1212 -1396
  128. package/dist_app/TxtLayer.js.map +1 -1
  129. package/dist_app/Variable.js +398 -466
  130. package/dist_app/Variable.js.map +1 -1
  131. package/dist_app/app.js +211 -8
  132. package/dist_app/app.js.map +1 -1
  133. package/dist_app/appMain.js +20 -21
  134. package/dist_app/appMain.js.map +1 -1
  135. package/dist_app/chunk.js +18 -0
  136. package/dist_app/gamepad.js +723 -511
  137. package/dist_app/gamepad.js.map +1 -1
  138. package/dist_app/pixi.js +11181 -0
  139. package/dist_app/pixi.js.map +1 -0
  140. package/dist_app/platform.js +424 -369
  141. package/dist_app/platform.js.map +1 -1
  142. package/dist_app/preload.js +2 -2
  143. package/dist_app/preload.js.map +1 -1
  144. package/dist_app/sn/AnalyzeTagArg.d.ts +1 -1
  145. package/dist_app/sn/AnalyzeTagArg.d.ts.map +1 -1
  146. package/dist_app/sn/CmnInterface.d.ts +3 -1
  147. package/dist_app/sn/CmnInterface.d.ts.map +1 -1
  148. package/dist_app/sn/CmnLib.d.ts.map +1 -1
  149. package/dist_app/sn/CmnTween.d.ts +3 -3
  150. package/dist_app/sn/CmnTween.d.ts.map +1 -1
  151. package/dist_app/sn/EventMng.d.ts.map +1 -1
  152. package/dist_app/sn/Grammar.d.ts +1 -1
  153. package/dist_app/sn/Grammar.d.ts.map +1 -1
  154. package/dist_app/sn/PropParser.d.ts +2 -2
  155. package/dist_app/sn/PropParser.d.ts.map +1 -1
  156. package/dist_app/sn/Reading.d.ts +6 -0
  157. package/dist_app/sn/Reading.d.ts.map +1 -1
  158. package/dist_app/sn/ScriptIterator.d.ts.map +1 -1
  159. package/dist_app/sn/SndBuf.d.ts +27 -16
  160. package/dist_app/sn/SndBuf.d.ts.map +1 -1
  161. package/dist_app/sn/SoundMng.d.ts +4 -1
  162. package/dist_app/sn/SoundMng.d.ts.map +1 -1
  163. package/dist_app/sn/SysBase.d.ts.map +1 -1
  164. package/dist_app/sn/TxtStage.d.ts +2 -1
  165. package/dist_app/sn/TxtStage.d.ts.map +1 -1
  166. package/dist_app/test/ValTest.d.ts +1 -1
  167. package/dist_app/test/ValTest.d.ts.map +1 -1
  168. package/package.json +23 -13
  169. package/dist/CmnTween.js +0 -1005
  170. package/dist/CmnTween.js.map +0 -1
  171. package/dist/web2.js +0 -21644
  172. package/dist/web2.js.map +0 -1
  173. package/dist_app/CmnTween.js +0 -1005
  174. package/dist_app/CmnTween.js.map +0 -1
  175. package/dist_app/app2.js +0 -18547
  176. package/dist_app/app2.js.map +0 -1
@@ -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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"}
package/dist/Layer.js ADDED
@@ -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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"}