UnmappedIsland ソースリファレンス - v0.1.0
    検索インデックスを準備しています...

    クラス WorldVocabulary

    コードがYAMLの単語へ寄せている依存の一覧。 ここに無い単語をコードが直に引いていたら、それは 一覧から漏れている——「この単語をYAMLから消したら何が壊れるか」を1箇所で答えられるようにするための表。

    ロード処理の最後、全ての名前のinternが終わったタイミングで1回だけ構築する。

    IDはinternで取る(無ければ作る)。 引いた名前を誰も宣言していなければ、そのIDを持つ物は世界に 1つも居ないので、「この物はそれを持つか」を訊けば自然に「持たない」が返る。語彙の有無を分岐に 使わないのはそのためで、number | undefinedも「絶対マッチしないID」も要らない。

    オブジェクト型の名前とアクション名は、IDではなく文字列で持つ。 型のIDはObjectDefTableの添字に なるので、宣言されていない名前をinternすると範囲外を指す。アクションは元々名前で引く(tryGetAction)。

    載せるのは、コード側にリテラルとして書かれている単語だけ。 シナリオYAMLやURLに書かれた名前を 引く箇所(Scenario・CodexView)はユーザーの語であって、コードの依存ではない。

    載せるのは単語であって、規則ではない。 「このタグならこの枠色」「この段に居たら覆いを出す」の ような対応は読む側(cardLooks)に残る——ここが答えるのは「その語をYAMLから消したら何が壊れるか」 だけで、消えた結果どう見えるかは知らない。

    1箇所でしか読まれず、結果と対でしか意味を持たない名前は載せない(cardLooks の cooking_progress・treatment など)。あれらは「その値が進んでいたら覆いを出す」という規則の一部で、 名前だけを引き剥がすと規則が2箇所に割れる。読む側が複数あるなら逆で、ここへ集める (unconsciousStage)——規則は側ごとに違っても、綴りは全部で一致していなければならないので、 散らせば次に変えた誰かが他の側を黙って壊す。種別を言うタグ(item・animal など)はそもそも規則と 対になっておらず、この世界に何が居るかを言う語なので、他の規約プロパティと同じくここに並ぶ。

    実測値の表の鍵も載せない(analysis/seasonalRain の季節名・天候の名前)。あれらは シミュレーションで測った数値に付いた行名で、名前と数値で1つ。世界を変えたときに古くなるのは 数値のほうで、それはこの一覧が答えられることではない。

    インデックス