not baad
This commit is contained in:
parent
4a8aff90b2
commit
6cef9a3abe
11 changed files with 1184 additions and 235 deletions
|
|
@ -160,7 +160,6 @@ const TERRAIN_TYPES = [
|
|||
{
|
||||
id: "tohoku_spine",
|
||||
label: "東北型・長大脊梁",
|
||||
weight: 0.24,
|
||||
coastStyle: "parallel_spine",
|
||||
mountainMode: "range",
|
||||
massifnessRange: [0.06, 0.26],
|
||||
|
|
@ -185,7 +184,6 @@ const TERRAIN_TYPES = [
|
|||
{
|
||||
id: "chubu_mountain",
|
||||
label: "中部型・交差高山地",
|
||||
weight: 0.24,
|
||||
coastStyle: "outer_coast",
|
||||
mountainMode: "massif",
|
||||
massifnessRange: [0.42, 0.74],
|
||||
|
|
@ -210,7 +208,6 @@ const TERRAIN_TYPES = [
|
|||
{
|
||||
id: "oceanic_archipelago",
|
||||
label: "Ocean",
|
||||
weight: 0.00,
|
||||
autoSelectable: false,
|
||||
coastStyle: "oceanic_archipelago",
|
||||
mountainMode: "mixed",
|
||||
|
|
@ -236,24 +233,23 @@ const TERRAIN_TYPES = [
|
|||
{
|
||||
id: "setouchi_inland_sea",
|
||||
label: "瀬戸内型・内海多島",
|
||||
weight: 0.16,
|
||||
coastStyle: "inland_sea",
|
||||
mountainMode: "mixed",
|
||||
massifnessRange: [0.34, 0.62],
|
||||
seaRatioRange: [0.28, 0.43],
|
||||
twoSidedChance: 0.92,
|
||||
seaRatioRange: [0.40, 0.56],
|
||||
twoSidedChance: 0.96,
|
||||
mountainOffsetRange: [0.22, 0.34],
|
||||
baseHeightRange: [0.46, 0.78],
|
||||
primaryLengthRange: [0.52, 0.78],
|
||||
primaryWidthRange: [0.20, 0.38],
|
||||
systemCountRange: [16, 22],
|
||||
beltCountRange: [3, 4],
|
||||
systemCountRange: [20, 28],
|
||||
beltCountRange: [4, 5],
|
||||
angleSpread: 0.34,
|
||||
crossSpread: 0.86,
|
||||
lengthScale: 1.00,
|
||||
widthScale: 1.18,
|
||||
heightScale: 0.82,
|
||||
coastStrength: 1.34,
|
||||
lengthScale: 0.92,
|
||||
widthScale: 1.02,
|
||||
heightScale: 0.78,
|
||||
coastStrength: 1.52,
|
||||
plainBiasRange: [0.26, 0.50],
|
||||
riverRichnessRange: [0.58, 0.96],
|
||||
bigRiverChanceRange: [0.18, 0.42],
|
||||
|
|
@ -261,7 +257,6 @@ const TERRAIN_TYPES = [
|
|||
{
|
||||
id: "kanto_alluvial",
|
||||
label: "関東・濃尾型・大河川平野",
|
||||
weight: 0.16,
|
||||
coastStyle: "open_bay",
|
||||
mountainMode: "range",
|
||||
massifnessRange: [0.10, 0.30],
|
||||
|
|
@ -286,7 +281,6 @@ const TERRAIN_TYPES = [
|
|||
{
|
||||
id: "mixed_archipelago",
|
||||
label: "混合型・列島変化",
|
||||
weight: 0.20,
|
||||
coastStyle: "mixed_archipelago",
|
||||
mountainMode: "mixed",
|
||||
massifnessRange: [0.16, 0.72],
|
||||
|
|
@ -1896,16 +1890,19 @@ export function generateTerrainAndRivers(seed, options = {}) {
|
|||
e -= high * clamp(0.18 + mountainMaskMax * 0.22, 0.18, 0.40);
|
||||
}
|
||||
if (terrainTemplate.terrainType === "setouchi_inland_sea") {
|
||||
// Setouchi maps should have many low hills and island backbones rather
|
||||
// than a few high alpine ridges. Add broad low relief, then cap peaks.
|
||||
const lowHillNoise = clamp((fbm(wx * 0.95 + 17, wy * 0.95 - 23, seed + 571) - 0.38) * 2.9);
|
||||
const lowHillMask = clamp(0.34 + mountainMaskMax * 0.72 + lowHillNoise * 0.50 - coastPressure * 0.12);
|
||||
e += lowHillMask * 0.145;
|
||||
// Do not add the previous fine speckle uplift here: it created too many
|
||||
// tiny islets. Sea amount is controlled by seaRatio/coast pressure.
|
||||
e -= clamp((coastPressure - 0.42) * 1.35) * 0.026;
|
||||
const high = Math.max(0, e - 0.62);
|
||||
e -= high * 0.42;
|
||||
// Setouchi should read as sea-dominant, with many compact wooded island
|
||||
// backbones rather than broad continental ridges. The small-massif term
|
||||
// is band-limited so it forms believable islands, not one-cell speckle.
|
||||
const lowHillNoise = clamp((fbm(wx * 0.95 + 17, wy * 0.95 - 23, seed + 571) - 0.39) * 2.7);
|
||||
const islandMassif = clamp((fbm(wx * 1.85 - 31, wy * 1.85 + 19, seed + 573) - 0.50) * 3.4);
|
||||
const islandBackbone = clamp((valueNoise(wx * 2.8 + 7, wy * 2.8 - 11, seed + 574, 9) - 0.54) * 3.2);
|
||||
const coastalIslandBias = clamp(coastPressure * 0.64 + mountainMaskMax * 0.46 + lowHillNoise * 0.24);
|
||||
e += lowHillNoise * 0.090;
|
||||
e += islandMassif * coastalIslandBias * 0.105;
|
||||
e += islandBackbone * coastalIslandBias * 0.045;
|
||||
e -= clamp((coastPressure - 0.34) * 1.55) * 0.044;
|
||||
const high = Math.max(0, e - 0.60);
|
||||
e -= high * 0.48;
|
||||
}
|
||||
if (terrainTemplate.terrainType === "oceanic_archipelago") {
|
||||
// 海洋型は大きな山塊ではなく、島列を読むための低い起伏を点在させる。
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue