This commit is contained in:
Team3
2026-09-16 16:15:32 +02:00
parent e813b5f7aa
commit 7c4edaa439
19 changed files with 1244 additions and 636 deletions

View File

@@ -254,7 +254,15 @@ static func _platz_frei(p: Vector3, groesse: Vector2) -> bool:
var c := Orte.center(PLACES, key)
var dx: float = absf(p.x - c.x) - (groesse.x + bx) * 0.5
var dz: float = absf(p.z - c.z) - (groesse.y + bz) * 0.5
if dx < HAUS_ABSTAND and dz < HAUS_ABSTAND:
# Zwei Terrassen verschiedener Höhe brauchen Platz für eine gehbare Böschung
# dazwischen -- sonst steht vor der Tür eine Klippe, und niemand kommt hinauf.
# Randstreifen beider plus eine Böschung dazwischen; über 4 m Höhenunterschied
# wird die Böschung zu steil (40°), dann muss der Abstand mitwachsen.
var dh := absf(hang(p.length()) - terrasse(key))
var luft := HAUS_ABSTAND
if dh > 0.6:
luft += TERRASSE_RAND + BOESCHUNG + maxf(0.0, dh - 4.0) * 1.5
if dx < luft and dz < luft:
return false
for k in NETZ.kanten:
if Netz.trifft_rechteck(NETZ.knoten[k[0]], NETZ.knoten[k[1]], p, groesse, WEG_ABSTAND):
@@ -511,10 +519,16 @@ static func _bewohner(i: int) -> Dictionary:
var ablauf: Array = []
for e in ABLAEUFE[i % ABLAEUFE.size()]:
ablauf.append([e[0], haus if e[1] == "haus" else e[1], e[2]])
var von := str(Game.completed[i]) if i < Game.completed.size() else ""
var mensch := HumanDB.by_id(von)
var rolle := _rolle(i)
if not mensch.is_empty():
rolle += " · aus %s Traum" % _besitz(str(mensch["name"]).get_slice(" ", 0))
return {
"id": "wesen_%d" % i,
"name": _name(i),
"rolle": _rolle(i),
"rolle": rolle,
"von": von,
"haus": haus,
"leuchtet": true,
"farbe": Color.from_hsv(fmod(0.72 + float(i) * 0.161, 1.0), 0.55, 0.95),