From cff7c118538bf1e9ee7824bc082dfe43b41d2e9e Mon Sep 17 00:00:00 2001 From: Thomas Date: Sun, 12 Jul 2026 00:25:13 +0200 Subject: [PATCH] Tourismustal: Editor-Export Runde 1 fest eingebacken Thomas' Justier-Werte (2026-07-12) in SPRITE_DEFS + SOLAR_POS uebernommen: Gasthaus/Rettungsstation/Bushaltestelle-Anker korrigiert, Mega-Hotel/ -Gasthaus/-Schneizentrale/-Spielplatz neu gesetzt, 40+ Solar-Positionen pro Gebaeude UND Ausbaustufe (inkl. Lift/Gondel/Bus). Lift/Gondel- Sprite-Werte bewusst ausgelassen (Vektor-Zeichnungen, wirkungslos). Gilt jetzt fuer ALLE Geraete, nicht nur das Justier-iPad. Co-Authored-By: Claude Opus 4.8 (1M context) --- App/sims/tourismustal/js/iso.js | 70 ++++++++++++++++++++++++++------- 1 file changed, 56 insertions(+), 14 deletions(-) diff --git a/App/sims/tourismustal/js/iso.js b/App/sims/tourismustal/js/iso.js index 6e5aaa9..b8fc045 100644 --- a/App/sims/tourismustal/js/iso.js +++ b/App/sims/tourismustal/js/iso.js @@ -25,30 +25,28 @@ const TERRAIN_COLORS = { // KI-generierte Sprites (Nordic-Flat, transparent). Fehlt eine Datei, // greift automatisch die Vektor-Zeichnung als Fallback. // w = Zeichenbreite in px, bottom = Abstand Unterkante Motiv → Kachelmitte +// Werte aus Thomas' Editor-Export 2026-07-12 (erste Justier-Runde) — +// weitere Feinjustagen kommen über editor.html → Export → hier einbacken. export const SPRITE_DEFS = { - restaurant: { w: 78, bottom: 10 }, + restaurant: { w: 69, bottom: 17 }, hotel: { w: 88, bottom: 10 }, hotel2: { w: 104, bottom: 11 }, staffhouse: { w: 64, bottom: 9 }, house: { w: 54, bottom: 8 }, church: { w: 66, bottom: 9 }, - access: { w: 52, bottom: 8 }, - rescue: { w: 60, bottom: 9 }, + access: { w: 38, bottom: 15 }, + rescue: { w: 51, bottom: 19 }, snow: { w: 44, bottom: 7 }, bikepark: { w: 58, bottom: 8 }, // Basisstation; Strecke via _drawBikeParks - // 2×2-Areale (Megabauwerke): Mitte des Sprites = Mitte der 4 Kacheln; - // w/bottom so, dass der Fuß bis zur vorderen Kachel-Spitze reicht - // (~40 px unter dem Zentrum: bottom + 0.12·w ≈ 38). - // Megabauwerke: eigene Motive (mehr Elemente statt vergrößerter Fenster) - mega_restaurant: { w: 116, bottom: 24 }, - mega_hotel: { w: 118, bottom: 24 }, + // Megabauwerke (2×2): eigene Motive, zentriert über den 4 Kacheln + mega_restaurant: { w: 122, bottom: 41 }, + mega_hotel: { w: 102, bottom: 30 }, mega_staffhouse: { w: 114, bottom: 24 }, - mega_snow: { w: 108, bottom: 24 }, + mega_snow: { w: 92, bottom: 30 }, mega_badesee: { w: 122, bottom: 26 }, mega_ropes: { w: 116, bottom: 22 }, - mega_playground: { w: 116, bottom: 24 }, + mega_playground: { w: 121, bottom: 25 }, mega_bikerental: { w: 110, bottom: 24 }, - mega_trail: { w: 112, bottom: 22 }, ropes: { w: 58, bottom: 8 }, bikerental: { w: 50, bottom: 8 }, platform: { w: 62, bottom: 9 }, @@ -62,11 +60,55 @@ export const SPRITE_DEFS = { broadleaf: { w: 44, bottom: 6 }, }; -// Solarpanel-Position (Öko-Umbau) je Sprite-Key; Fallback default/defaultBig. -// dx/dy relativ zum Gebäude-Ankerpunkt, s = Skalierung. +// Solarpanel-Position (Öko-Umbau) je Sprite-Key, optional pro Ausbaustufe +// ("@L"). Fallback default/defaultBig. dx/dy relativ zum +// Gebäude-Ankerpunkt, s = Skalierung. Werte: Editor-Export 2026-07-12. export const SOLAR_POS = { default: { dx: -3, dy: -27, s: 1 }, defaultBig: { dx: -5, dy: -36, s: 1.6 }, + playground: { dx: -3, dy: 7, s: 1.5 }, + 'mega_playground': { dx: 34, dy: -44, s: 1.15 }, + bikepark: { dx: -6, dy: -45, s: 1 }, + 'lift@L1': { dx: 3, dy: -15, s: 1.2 }, + 'lift@L2': { dx: 1, dy: -14, s: 1 }, + 'lift@L3': { dx: 4, dy: -14, s: 1.3 }, + 'lift@L4': { dx: 3, dy: -13, s: 1.55 }, + 'gondola@L1': { dx: 4, dy: -14, s: 1 }, + 'gondola@L2': { dx: 2, dy: -13, s: 1 }, + 'gondola@L3': { dx: 2, dy: -13, s: 1 }, + 'gondola@L4': { dx: 0, dy: -14, s: 1.2 }, + 'mega_hotel@L1': { dx: -13, dy: -42, s: 2.15 }, + 'mega_hotel@L2': { dx: -14, dy: -41, s: 1.95 }, + 'mega_hotel@L3': { dx: -14, dy: -41, s: 2 }, + 'mega_hotel@L4': { dx: -15, dy: -42, s: 2 }, + 'hotel@L1': { dx: -4, dy: -48, s: 1.3 }, + 'hotel2@L2': { dx: -8, dy: -53, s: 1.55 }, + 'hotel2@L3': { dx: -10, dy: -62, s: 1.55 }, + 'hotel2@L4': { dx: -11, dy: -62, s: 1.55 }, + 'mega_restaurant@L1': { dx: 22, dy: -22, s: 1.6 }, + 'mega_restaurant@L2': { dx: 21, dy: -22, s: 1.6 }, + 'mega_restaurant@L3': { dx: 20, dy: -22, s: 1.6 }, + 'mega_restaurant@L4': { dx: 21, dy: -25, s: 1.6 }, + 'restaurant@L1': { dx: -11, dy: -19, s: 1.35 }, + 'restaurant@L2': { dx: -12, dy: -24, s: 1.45 }, + 'restaurant@L3': { dx: -14, dy: -28, s: 1.65 }, + 'restaurant@L4': { dx: -13, dy: -28, s: 1.7 }, + 'snow@L1': { dx: 8, dy: 4, s: 1 }, + 'snow@L2': { dx: 8, dy: 5, s: 1 }, + 'snow@L3': { dx: 9, dy: 4, s: 1 }, + 'snow@L4': { dx: 8, dy: 4, s: 1 }, + 'mega_snow@L1': { dx: -1, dy: -32, s: 1.6 }, + 'mega_snow@L2': { dx: -1, dy: -33, s: 1.6 }, + 'mega_snow@L3': { dx: 0, dy: -33, s: 1.6 }, + 'mega_snow@L4': { dx: 0, dy: -32, s: 1.6 }, + 'rescue@L1': { dx: -3, dy: -14, s: 1 }, + 'rescue@L2': { dx: -3, dy: -16, s: 1 }, + 'rescue@L3': { dx: -5, dy: -21, s: 1 }, + 'rescue@L4': { dx: -4, dy: -21, s: 1 }, + 'access@L1': { dx: 0, dy: -8, s: 1 }, + 'access@L2': { dx: -1, dy: -11, s: 1 }, + 'access@L3': { dx: -2, dy: -13, s: 1 }, + 'access@L4': { dx: -2, dy: -14, s: 1 }, }; // Feinjustierung aus dem Editor (editor.html): überschreibt SPRITE_DEFS-