This commit is contained in:
team3
2026-08-30 11:50:09 +02:00
parent 4d771c9a6e
commit a46eba4145
23 changed files with 816 additions and 601 deletions

View File

@@ -1,5 +1,5 @@
class_name HumanDB
## Orte der Kleinstadt und die Menschen mit ihren Tagesabläufen.
## Die Kleinstadt auf der Erde und die Menschen mit ihren Tagesabläufen.
## Gebäude liegen im Ring um den Park. Alle Türen zeigen zur Mitte.
## pos = Standplatz drinnen, size = Grundfläche, dir = Richtung der Türlücke.
@@ -42,31 +42,6 @@ static var PLACES: Dictionary = {
},
}
static var DIR_VEC: Dictionary = {
"back": Vector3(0, 0, 1),
"forward": Vector3(0, 0, -1),
"left": Vector3(-1, 0, 0),
"right": Vector3(1, 0, 0),
"none": Vector3(0, 0, 0),
}
static var ACTIVITY_TEXT: Dictionary = {
"schlaeft": "schläft",
"morgenroutine": "Morgenroutine",
"arbeitet": "arbeitet",
"pause": "macht Pause",
"essen": "isst",
"gruebelt": "grübelt",
"ruht": "ruht sich aus",
"angespannt": "ist angespannt",
"abendroutine": "Abendroutine",
"aufraeumen": "räumt auf",
"wartet": "wartet",
"muede": "ist müde",
"unterwegs": "geht spazieren",
"zoegert": "zögert",
}
static var LIST: Array = [
{
"id": "lena",
@@ -76,6 +51,7 @@ static var LIST: Array = [
"traum": "Ihr Bilderbuch endlich zu Ende zeichnen.",
"problem": "Sie schiebt die letzten zwölf Seiten seit acht Monaten vor sich her. Jeder Entwurf kommt ihr zu schlecht vor, also fängt sie lieber gar nicht erst an.",
"tags": ["prokrastination", "selbstzweifel", "ablenkung"],
"mission": true,
"farbe": Color(0.85, 0.45, 0.55),
"routine": [
[0, "haus_lena", "schlaeft"],
@@ -100,6 +76,7 @@ static var LIST: Array = [
"traum": "Wieder Klavier spielen wie mit zwanzig.",
"problem": "Das Klavier steht zugestellt im Flur. Nach der Frühschicht ist er zu müde, um auch nur den Deckel zu öffnen.",
"tags": ["gewohnheit", "erschoepfung", "ablenkung"],
"mission": true,
"farbe": Color(0.55, 0.45, 0.30),
"routine": [
[0, "haus_bruno", "schlaeft"],
@@ -122,6 +99,7 @@ static var LIST: Array = [
"traum": "Ihre Abschlussarbeit vortragen, ohne zu erstarren.",
"problem": "Die Arbeit ist längst fertig. Aber vor jedem Vortrag wird ihr schwarz vor Augen, und sie meldet sich wieder ab.",
"tags": ["angst", "ueberforderung", "selbstzweifel"],
"mission": true,
"farbe": Color(0.35, 0.60, 0.85),
"routine": [
[0, "haus_mira", "schlaeft"],
@@ -145,6 +123,7 @@ static var LIST: Array = [
"traum": "Abends wieder Zeit für seine Tochter haben.",
"problem": "Er sagt zu jeder Bitte ja und sitzt dafür jeden Abend bis acht im Büro. Zu Hause ist er nur noch müde.",
"tags": ["stress", "grenzen", "erschoepfung"],
"mission": true,
"farbe": Color(0.40, 0.55, 0.45),
"routine": [
[0, "haus_tobias", "schlaeft"],
@@ -166,41 +145,3 @@ static func by_id(id: String) -> Dictionary:
if h["id"] == id:
return h
return {}
static func place_center(key: String) -> Vector3:
var p: Array = PLACES[key]["pos"]
return Vector3(p[0], 0.0, p[1])
## Punkt direkt vor der Türlücke, außerhalb des Gebäudes.
static func place_door(key: String) -> Vector3:
var pl: Dictionary = PLACES[key]
var c := place_center(key)
var d: Vector3 = DIR_VEC[pl["dir"]]
if d == Vector3.ZERO:
return c
var size: Array = pl["size"]
var half: float = size[1] * 0.5 if absf(d.z) > 0.0 else size[0] * 0.5
return c + d * (half + 2.5)
## Route von Ort a nach Ort b: aus der Tür, über den Platz, zur neuen Tür, hinein.
static func route(a: String, b: String, offset: Vector3) -> Array:
var pts: Array = []
if a == b:
return pts
var da := place_door(a)
var db := place_door(b)
pts.append(da)
if da.length() > 17.0:
pts.append(da.normalized() * 15.0)
if db.length() > 17.0:
pts.append(db.normalized() * 15.0)
pts.append(db)
pts.append(place_center(b) + offset)
return pts
static func activity_text(a: String) -> String:
return ACTIVITY_TEXT.get(a, a)