kujirahand / nadesiko3

Japanese Programming Language Nadesiko v3 (JavaScript/TypeScript)
https://nadesi.com/
MIT License
234 stars 19 forks source link

ライブラリ読み込みとプラグイン読み込みにasync版を追加(既存はcallback版) #1672

Closed weyk closed 3 months ago

weyk commented 3 months ago

単一のPluginオブジェクトから管理クラスとカメクラスを分離。 turtle3dをtypescriptに変更。 新しいthreejsのimportmap方式でも記述の仕方で使えるよう変更。 非互換:カメラ変更が現在の亀の動作と同期から即時実行に変更。

非互換部分をどうするかは考え中。 カメクラスを分離の際にEventTargetを継承したのでカメの コマンドキューが空になった時のイベントを追加する方向が よさそうかなぁと検討中。 もしくは、plugin_turtle_promiseのようにカメのコマンドキューに 入るすべての命令をpromiseを返すようにしてasyncFn:falseにして 必要なときにawaitやthen()を行えるようにするか。

kujirahand commented 3 months ago

@weyk 素晴らしい修正、お疲れ様ですm(__)m こちら、Node.js CIでエラーが出てしまってますけど、マージしちゃって大丈夫なやつですか? ・・・って、よく見たらDraftでしたね。 引き続きよろしくお願いします。

weyk commented 3 months ago

buildエラーの原因判明。CIログからだとエラーメッセージが無くちょっと難しい。 ・./release/commond.jsonが無いことが直接のエラーの原因。  手元では成功していた頃の残骸がありエラーにならず気が付かなかった。 ・cmd_txt2jsonが./batch/command.txtの内容の誤りで失敗してファイルが生成されてなかった。  プラグイン名の後に表題がなく関数・定数の行が並んでいいたため。 ・js2txtの実行結果の./batch/command.txtが正しくなかった。  typescriptの型指定により引数の認識に失敗して引数不一致になっていた。  →callback functionで()があると)で引数が閉じてしまう。typeで定義して使うことで回避。  →型に[number,number]等があると,で引数として分離されてしまう。typeで定義して使うことで回避。  →他、単純に|や.などの数字も型としてカットされなくなってしまう。batchの正規表現修正。

他、個々のカメに対する命令は実行時にpromiseを返して実際に命令が実行されたらresolveするよう修正。 promiseを簡単に待てるようにT3D待つを追加。

kujirahand commented 3 months ago

@weyk さん、修正作業ありがとうございました✨ マージしたいと思います。 ただ、Merge pull requestボタンが押せませんね…

kujirahand commented 3 months ago

マージできました😊 @weyk さん、ありがとうございました✨