ter_furn_transform

ter_furn_transform は、ある地形を別の地形へ、またある家具を別の家具へ変換する JSON オブジェクトの型です。

[
  {
    "type": "ter_furn_transform",
    "id": "example",
    "terrain": [
      {
        "result": "t_dirt",
        "valid_terrain": ["t_sand"],
        "message": "sandy!",
        "message_good": true
      }
    ]
  }
]

上の例は、直接の地形 ID を比較して「砂」を「土」に変えます。変換失敗時のメッセージも追加できます。砂を「土または草」に変えたい場合は、次のようにします。

"terrain": [
  {
    "fail_message": "no sand!",
    "result": [ "t_dirt", "t_grass" ],
    "valid_terrain": [ "t_sand" ],
    "message": "sandy!"
  }
]

message_good は任意で、デフォルトは true です。この例では土と草を 1:1 の割合で選びます。4:1 の割合にする場合は次のようにします。

"terrain": [
  {
    "result": [ [ "t_dirt", 4 ], "t_grass" ],
    "valid_terrain": [ "t_sand" ],
    "message": "sandy!"
  }
]

このように、重み付き配列と単一の文字列を混在できます。単一の文字列の重みは 1 です。

上記は家具にも同様に適用されます。

"furniture": [
  {
    "result": [ [ "f_null", 4 ], "f_chair" ],
    "valid_furniture": [ "f_hay", "f_woodchips" ],
   "message": "I need a chair"
  }
]

家具と地形のどちらでも、特定の ID の代わりにフラグを使用できます。

"terrain": [
  {
    "result": "t_floor",
    "valid_flags": [ "FLAT" ],
    "message": "flooring"
  }
]

掘削可能な地形を対象にするには、ブール値を使用します。

"terrain": [
  {
    "result": "t_dirt",
    "diggable": true,
    "message": "digdug"
  }
]

ter_furn_transform は terrain と furniture の両フィールドを持てます。これらは別々に扱われるため、「土なら椅子を追加」のような処理にはなりません。