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:
@@ -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,5–3,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 15–45 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 ≈ 1–7,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 10–80 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 1–10', -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 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(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 30–45 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.000–100.000 Gegenstände liegen. Nur etwa 15–20 % 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',
|
||||
|
||||
Reference in New Issue
Block a user