UnmappedIsland ソースリファレンス - v0.1.0
ドキュメント
ゲーム
GitHub
検索インデックスを準備しています...
domain/generation/LocationTypeMatcher
assignTypes
関数 assignTypes
assignTypes
(
defs
:
GenerationDefs
,
scope
:
GenerationScopeDef
,
sites
:
readonly
Site
[]
,
)
:
void
各サイトへのLocationTypeの割り当て(TerrainGeneration.md 3.2〜3.4節)。
guarantees(島全体のバランス保証、同 3.4節): 「指定軸が最大/最小のサイトへ強制割当」を 最近傍マッチングより先に行う(例: 最高標高のサイトは必ず山頂)。軸カバレッジの事後検証+ 再生成ではなく、決定的な強制割当で保証する(再生成はシード再現性と停止性を複雑にするため)。
どの保証もhard_limitsを満たすサイトを得られる配り方が在るなら、必ずそれを採る
(assignGuaranteedSites)。
最近傍マッチング(同 3.2節): 正規化した重み付き距離 D = sqrt( Σ w_i * ((v_i - ideal_i) / tolerance_i)^2 / Σ w_i ) の最小の型を選ぶ。言及した軸だけをΣw_iで正規化するため、言及軸が少ない型が構造的に 有利になる次元数バイアスは無い。toleranceは距離のスケールであり、除外はhard_limitsのみが 担う(ドキュメントで未確定だった意味論の一義化)。同点は宣言順で先の型が勝つ(決定的)。
同じ型の抑制(同 3.4節): 既に置いた同じ型の個数に応じてマッチング距離へ割増を掛け、 max_sites_per_typeで打ち切る。同じ地形は環境も発見物も見た目も同じなので、並べても島は 広くならない。
譲るのは「その型らしさ」が薄いサイトから
なので、最良距離の昇順に決める。
フォールバック(同 3.3節): hard_limitsで全型が弾かれたサイトは、is_fallbackの型のうち priority最大のものが受ける(フォールバックは最後の受け皿のため、自身のhard_limitsも無視する)。
パラメータ
defs
:
GenerationDefs
scope
:
GenerationScopeDef
sites
:
readonly
Site
[]
戻り値
void
テーマ設定
メンバーの可視性
保護
非公開
継承
配色
自動
ライト
ダーク
ドキュメント
ゲーム
GitHub
UnmappedIsland ソースリファレンス - v0.1.0
読み込み中...
各サイトへのLocationTypeの割り当て(TerrainGeneration.md 3.2〜3.4節)。