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

    クラス Slot

    1つのWorldObjectが持つ、1つのスロットの実行時状態。中身の並べ方はCellLayoutが持ち、こちらは このスロットが何を受け入れるかを答える。正の情報源はこちら側(親のスロット配列)であり、 子側のWorldObject.parentは逆引き用のキャッシュ(SlotSystem.md 1節)。

    中身の追加・削除はWorldObjectのスロット移動系経由でのみ行う(親子の整合性を1箇所でのみ保証するため)。

    インデックス
    def: SlotDef
    layout: CellLayout

    この枠を持っているオブジェクト。枠は必ず誰かのものなので、受け入れ判定に要る規約プロパティも 断る理由に書く名前も、呼び出し側から渡されずに自分で辿る。

    • get stacks(): readonly (readonly WorldObject[])[]

      中身を、積み重なっているまとまりごとに分けたものの写し(空セルは含まない。先頭が代表。 CellLayout.stacks)。

      戻り値 readonly (readonly WorldObject[])[]

    • candidatesを先頭から順に入れていったとき、続けて受け取れる個数(1つ目で断るなら0)。

      1つずつrejectionForを訊いても答えは出ない——2つ目が入るかは、1つ目が入った後の空きで決まるため。 まとめて入れる操作が「何個まで入るか」を、実際に動かす前に問うための入口。

      candidatesは同じ束の仲間(同じ型・同じ代表チェーン)であることを前提にする。置ける枠の数は 型だけで決まるので先頭の1つで代表して数え、かさ(volume)だけを1つずつ積み上げる。

      パラメータ

      戻り値 number

    • 中身のかさ(7.3節のvolume)が上限(capacity)に対して占める割合(0〜1)。上限を持たないスロットは 割合を定義できないためundefined。

      パラメータ

      戻り値 number | undefined

    • same_slotによる置き換えの配置(CellLayout.placeSameSlot)。

      パラメータ

      • obj: WorldObject
      • originCellIndex: number
      • sameKindStillInCell: boolean

      戻り値 boolean

    • この枠へitemを入れるのにかかるゲーム内時間(分、SlotDef.putInMinutes)。宣言が無ければ0。 値段は枠が決めるので、どの経路で入れても同じだけかかる(slotEntry参照)。

      押す前に見せるための問い合わせなので、関係は張るだけで動作主は主張しない(during)。

      パラメータ

      戻り値 number

    • この枠へitemを入れる操作が結ぶ関係(11.5節)。枠の持ち主がpatient、入れる物がinstrument ——どの物がどの役に就くかを決めるのはここだけで、分数の問い合わせも、時間の経過と入れること そのものも、この関係を張った状態で行う(slotEntry.putIntoSlot)。

      パラメータ

      戻り値 InteractionRelation

    • この候補オブジェクトを受け入れない理由(受け入れるならundefined)。見るのは枠の型・枠の空き・ capacityと、身につける枠なら装備の排他(重ならない問いへの分け方はSlotSystem.md 2節)。atを渡すと、 その位置へ置けるかまで見る(CellLayout.canInsertAt)。

      パラメータ

      戻り値 string | undefined

    • この枠で候補が占める場所(7.5節)。身につける枠でなければ、部位を持たない物と同じくundefined ——同じ衣類を2着持ち歩けなくなっては困るので、排他が効くのは着る場所だけ。

      エンジンの他の規則と違い、ここは世界の側の語をそのまま読む——「身につける枠」を枠の宣言から 導く手掛かりが他に無いため(WorldRuleVocabulary。WorldObject.isLandと同じ事情)。

      パラメータ

      戻り値 WornCoverage | undefined