<microprocessor_definition> 要素としてインラインで埋め込まれます。このページでは、その内部データ構造をまとめます。
全体構造
属性
id_counter と id_counter_node は「次に配る ID」ではなく、それぞれの系列で過去に配った最大 ID を保持する値です。ブロックを削除しても値は減りません。オブジェクト系列(<object id>)とノード系列(<n id>)は別の ID 空間で、同じ数値が両方に同時に存在することがあります。
sym0〜sym15 — サムネイルアイコン
マイクロコントローラーのインベントリや選択時に表示される、16×16 ピクセルの2値ビットマップです。symN(N=0〜15)が1行を表し、各行は16ビットの整数値です。最上位ビット(1 << 15 = 32768)が一番左のピクセル、最下位ビット(1 << 0 = 1)が一番右のピクセルに対応します。
内部ブロック <components>/<c type="N">
内部のロジックブロックは、type 属性の数値でブロック種別を表します。<object> が実体で、ID・座標・入力ピン・種別ごとのプロパティを持ちます。
ブロック種別 ID(type 0〜59)
type 29〜32 は旧世代の Composite ブロックで、互換性維持のためゲーム内に残っています。現在配置できる Composite Write は type 40/41 です。
in1 = Composite 入力、in2 = Video 入力、out1 = Composite 出力、out2 = Video 出力です。
配置座標
内部エディタのグリッドは 0.25 単位です。ノードブロックの幅は 1(4マス)です。配置の Y 座標は底辺基準で、高さの異なるブロックを同じ Y 座標に並べると下端がそろいます。マイクロコントローラー内部のブロック配置(
<pos>)は見た目だけの情報で、回路の動作には影響しません。配線モデル
マイクロコントローラー内部の配線は、エッジの明示的なリストを持ちません。代わりに、各ブロックの入力ピン(in1、in2…)が「どのブロックの出力を参照するか」を保持する参照方式です。
- 出力側が複数のポートを持つ場合、入力ピンの
node_index属性でどのポートを参照するか選択します。 - 入力ピンは1つにつき1接続、出力は分岐自由です(複数の入力ピンが同じ出力を参照できます)。
component_id="0"は「未接続」を表す特別な値です。マイクロコントローラー内に ID0のブロックが存在することはありません。
外部ピンと境界
マイクロコントローラーを外から見たときの入出力ピンは<nodes>/<n> で定義され、それぞれが <components_bridge> 内の境界ブロックに対応します。