読み取り専用def非公開 読み取り専用layout読み取り専用ownerこの枠を持っているオブジェクト。枠は必ず誰かのものなので、受け入れ判定に要る規約プロパティも 断る理由に書く名前も、呼び出し側から渡されずに自分で辿る。
セルの並びの写しと、実体のセル(CellLayout.cells)。位置=添字。
スタックの区別を畳み込んだ、このスロットの中身全部の写し(CellLayout.contents)。
中身を、積み重なっているまとまりごとに分けたものの写し(空セルは含まない。先頭が代表。 CellLayout.stacks)。
candidatesを先頭から順に入れていったとき、続けて受け取れる個数(1つ目で断るなら0)。
1つずつrejectionForを訊いても答えは出ない——2つ目が入るかは、1つ目が入った後の空きで決まるため。 まとめて入れる操作が「何個まで入るか」を、実際に動かす前に問うための入口。
candidatesは同じ束の仲間(同じ型・同じ代表チェーン)であることを前提にする。置ける枠の数は 型だけで決まるので先頭の1つで代表して数え、かさ(volume)だけを1つずつ積み上げる。
中身のかさ(7.3節のvolume)が上限(capacity)に対して占める割合(0〜1)。上限を持たないスロットは 割合を定義できないためundefined。
same_slotによる置き換えの配置(CellLayout.placeSameSlot)。
この枠へitemを入れるのにかかるゲーム内時間(分、SlotDef.putInMinutes)。宣言が無ければ0。 値段は枠が決めるので、どの経路で入れても同じだけかかる(slotEntry参照)。
押す前に見せるための問い合わせなので、関係は張るだけで動作主は主張しない(during)。
この枠へitemを入れる操作が結ぶ関係(11.5節)。枠の持ち主がpatient、入れる物がinstrument ——どの物がどの役に就くかを決めるのはここだけで、分数の問い合わせも、時間の経過と入れること そのものも、この関係を張った状態で行う(slotEntry.putIntoSlot)。
この候補オブジェクトを受け入れない理由(受け入れるならundefined)。見るのは枠の型・枠の空き・ capacityと、身につける枠なら装備の排他(重ならない問いへの分け方はSlotSystem.md 2節)。atを渡すと、 その位置へ置けるかまで見る(CellLayout.canInsertAt)。
オプションat: SlotPosition非公開sum非公開wornこの枠で候補が占める場所(7.5節)。身につける枠でなければ、部位を持たない物と同じくundefined ——同じ衣類を2着持ち歩けなくなっては困るので、排他が効くのは着る場所だけ。
エンジンの他の規則と違い、ここは世界の側の語をそのまま読む——「身につける枠」を枠の宣言から
導く手掛かりが他に無いため(WorldRuleVocabulary。WorldObject.isLandと同じ事情)。
非公開worn候補と同じ場所を既に占めている中身(競合はブロック型なので、外すのはプレイヤー。7.5節)。
1つのWorldObjectが持つ、1つのスロットの実行時状態。中身の並べ方はCellLayoutが持ち、こちらは このスロットが何を受け入れるかを答える。正の情報源はこちら側(親のスロット配列)であり、 子側のWorldObject.parentは逆引き用のキャッシュ(SlotSystem.md 1節)。
中身の追加・削除はWorldObjectのスロット移動系経由でのみ行う(親子の整合性を1箇所でのみ保証するため)。