Textsystem: Bis-Strich mit Leerzeichen (Zahl – Zahl) per Agent-Sweep

562 Ersetzungen in 50 Dateien: Halbgeviertstrich zwischen zwei Ziffern (=
"bis"-Bereich) bekommt Leerzeichen davor/danach (3–4 -> 3 – 4). Regex
/([0-9])\s*–\s*(?=[0-9])/ auf Rohtext (format-erhaltend, CRLF/Einrueckung
unveraendert), Bindestriche in Woertern und Minuszeichen unangetastet, alle
JSON weiter gueltig. Energiemanager-Zeitbloecke sind Display-Labels (kein
Logik-Key) -> safe.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-08-22 12:38:19 +02:00
parent 9c99359d9c
commit fecd8bb9c9
139 changed files with 1827 additions and 411 deletions
+10 -10
View File
@@ -114,7 +114,7 @@ const PA = {
this.timer = setTimeout(() => {
if (S && !Sound.muted) Sound.playPA(this.POOL[this.idx++ % this.POOL.length], 0.32);
next();
}, 90000 + Math.random() * 120000); // alle 1,53,5 min
}, 90000 + Math.random() * 120000); // alle 1,5 3,5 min
};
next();
},
@@ -816,7 +816,7 @@ const World = {
const ox = -this.player.x * 0.0045 + t * 0.0006;
skies.forEach(s => { s.tex.offset.x = ox; });
}});
// Überflug-Animation: alle 1545 s quert eine Maschine ein Dachsegment
// Überflug-Animation: alle 15 45 s quert eine Maschine ein Dachsegment
let flyIdx = -1, flyX = 0, flyWait = 8;
this.animated.push({ update: (dt) => {
if (flyIdx < 0) {
@@ -873,7 +873,7 @@ const World = {
panoTex = new THREE.TextureLoader().load(BASE + 'assets/img/panorama-nacht.webp');
panoTex.colorSpace = THREE.SRGBColorSpace;
panoTex.wrapS = THREE.MirroredRepeatWrapping;
// Bildzone so legen, dass Jet + Tower durchs Fensterband (y ≈ 17,5 m) sichtbar sind
// Bildzone so legen, dass Jet + Tower durchs Fensterband (y ≈ 1 7,5 m) sichtbar sind
panoTex.repeat.set(2, 0.7); panoTex.offset.y = 0.15;
}
const pano = new THREE.Mesh(new THREE.PlaneGeometry(240, 16),
@@ -1012,7 +1012,7 @@ const World = {
} catch (_) {}
},
/* ============ Flughafen-Objekte (Sketchfab-Props, je 1080 KB) ============
/* ============ Flughafen-Objekte (Sketchfab-Props, je 10 80 KB) ============
* Ersetzen die wichtigsten prozeduralen Möbel; Positionen handgesetzt.
* mode: 'h' = auf Höhe normieren, 'long' = auf längste Seite normieren */
PROP_DEFS: [
@@ -1638,7 +1638,7 @@ const World = {
this.addBox(x, 2.6, -25, 1.6, 1.0, 0.1, 0x0e1d2a, { emissive: 0x2a6a8a, emissiveIntensity: 0.8 });
}
}
this.sign('Check-in 110', -35, 4.2, -29.4, 14, 1.8, 0, true);
this.sign('Check-in 1 10', -35, 4.2, -29.4, 14, 1.8, 0, true);
// Gepäckkarusselle (stehen nach Dienstschluss still): flaches Band
// mit Metall-Seitenwänden und Mittelinsel statt des alten „Donuts“
@@ -1832,9 +1832,9 @@ const World = {
// gap 0.27 rückt die Schilder vor/hinter die Säule (sonst verdeckt sie die Mitte)
lines.forEach((txt, i) => this.sign(txt, x, 2.45 - i * 0.55, z, 2.6, 0.48, rotY, true, 0.27));
};
mk(4, 14, 0, ['→ Abflug · Gates 1113', '← Gepäckausgabe']);
mk(-26, 2, Math.PI / 2, ['→ Check-in 110', '← Eingangshalle']);
mk(26, -8, -Math.PI / 2, ['→ Duty-free · Sicherheit', '← Gates 1113']);
mk(4, 14, 0, ['→ Abflug · Gates 11 13', '← Gepäckausgabe']);
mk(-26, 2, Math.PI / 2, ['→ Check-in 1 10', '← Eingangshalle']);
mk(26, -8, -Math.PI / 2, ['→ Duty-free · Sicherheit', '← Gates 11 13']);
mk(-48, 4, Math.PI / 2, ['→ Gepäcksortierung', '← Gepäckausgabe']);
},
@@ -2939,10 +2939,10 @@ const World = {
this.addInfo(-64, -6, '⚙️', 'Gepäcksortierung',
'Hinter den Kulissen laufen kilometerlange Förderanlagen. Scanner lesen die Barcodes der Anhänger und Weichen lenken jeden Koffer zum richtigen Flug — oft in unter 10 Minuten. Große Flughäfen sortieren so über 100.000 Gepäckstücke pro Tag.');
this.addInfo(46, -2, '🛫', 'Gates & Boarding',
'Am Gate wird die Bordkarte gescannt, dann geht es über die Fluggastbrücke ins Flugzeug. Die Gate-Nummer steht auf der Anzeigetafel — sie kann sich kurzfristig ändern, darum lohnt der Blick auf die Tafeln. „Boarding“ beginnt meist 3045 Minuten vor dem Abflug.');
'Am Gate wird die Bordkarte gescannt, dann geht es über die Fluggastbrücke ins Flugzeug. Die Gate-Nummer steht auf der Anzeigetafel — sie kann sich kurzfristig ändern, darum lohnt der Blick auf die Tafeln. „Boarding“ beginnt meist 30 45 Minuten vor dem Abflug.');
this.addInfo(49, 24, '🗃️', 'Fundbüro',
'Was im Flughafen liegen bleibt — vom Schal bis zum Laptop — landet hier. Fundstücke werden katalogisiert und mehrere Monate aufbewahrt. Gepäck von Flügen läuft getrennt über die Gepäckermittlung: genau dort arbeitest du heute.',
'Allein an den Sicherheitskontrollen der USA bleiben jeden Monat rund 90.000100.000 Gegenstände liegen. Nur etwa 1520 % finden zu ihren Besitzern zurück; der Rest wird gespendet, versteigert oder entsorgt.',
'Allein an den Sicherheitskontrollen der USA bleiben jeden Monat rund 90.000 100.000 Gegenstände liegen. Nur etwa 15 20 % finden zu ihren Besitzern zurück; der Rest wird gespendet, versteigert oder entsorgt.',
'US-Transportation Security Administration (TSA)',
'https://www.tsa.gov/contact/lost-and-found');
this.addInfo(0, 0, '🖥️', 'Abflugtafel lesen',