はじめに
タイルマップレイヤーに対するセーブ・ロード機能をプラグインにして下ドックに追加しようと思います。
プラグインを登録した後、その中身を作っていきます。
今回の肝はタイルマップレイヤーのノードをエディタの今のシーンから取得する方法です。
目次
プラグインの登録
"プロジェクト設定"ウィンドウの上部から"プラグイン"を選択します。(fig.1)
次に"新しいプラグインの作成"ボタンを押します。
次にプラグインの登録を行います。この記事での名前は"MapControl"とします。(fig.2)
前回のシーンの位置の変更
"Part.1"で作成したセーブ&ロード機能のシーンとスクリプト(map_control.tscn, map_control.gd)を、
先ほど作成したプラグインのフォルダへ移動します。(fig.3)
スクリプト名の変更
"map_control.gd"スクリプトはプラグインの本体にあたるのでスクリプト名を変更しておきましょう。(fig.4)
当記事では"map_control_body.gd"とします。
プラグインのスクリプト
プラグインのスクリプト"MapControl.gd"の中身を
マップコントロールのシーンを下部ドックに追加されるように変更します。(Script.1)
Script.1 プラグインのスクリプト
用途:下部ドックにシーンを追加します。
用途:下部ドックから指定したシーンを削除します。
シーン本体のスクリプト
"map_control_body.gd"スクリプトをプラグイン用に変更していきます。(Script.2)
Script.2 シーン本体のスクリプト
用途:実行中のシーンツリーを取得します。
edited_scene_rootオプションでシーンのルートノードを取得します。
用途:子シーンを取得します。
シーンツリーの上に行くほどインデックスが若くなります。
用途:タイルマップレイヤーの指定した場所のアトラスコードを取得します。
用途:指定した座標に任意のアトラスコード(マップタイル)を登録します。
ここまででエラーがなければ次の項目に進みます。
プロジェクトの再読み込み
プラグインを反映させるためにプロジェクトを読み込みなおします。(fig.5)

fig.5 プロジェクトの再読み込み
再読み込みが終わったら、下部ドックに"MapControl"が追加されているか確認しましょう。(fig.6)
おわりに
動作確認をしてみて、上手いことできたでしょうか?
"Godot v4.3"から"TileMap"ノードが非推奨となったことによりメソッドの覚えなおしをしました。
メソッドの引数が簡略化された一方、レイヤが増えるとコードも増えてしまうのでは?とも感じました。
そこは、慣れが追いつくのを待つしかないなと思います。
今回の記事はここまでとなります。
最後までお読みいただきありがとうございました。
参考
当記事は以下のサイトの記事を参考にしています。
作者の皆様、本当にありがとうございました。
Godot Engine 4.4の日本語のドキュメント TileMapLayer
https://docs.godotengine.org/ja/4.x/classes/class_tilemaplayer.html