Zum Hauptinhalt springen

3. Opening Hours - Öffnungszeiten

Übersicht

Warnung außerhalb der Saison Mit Opening Hours können Produktionen auf bestimmte Tageszeiten beschränkt werden.

🕐 Beispiel 1: Eine Bäckerei läuft nur von 3:00 - 12:00 Uhr, eine Molkerei von 6:00 - 18:00 Uhr. 🕐 Beispiel 2: Eine Kalk Produktion läuft nur von 06:00 - 22:00 Uhr.

Funktionsweise

  • Während Öffnungszeiten: Produktion kann normal laufen
  • Außerhalb Öffnungszeiten:
    • Laufende Produktionen werden automatisch gestoppt
    • Beim Startversuch erscheint eine Warnung
    • Im Info-Trigger werden die Öffnungszeiten angezeigt
Screenshot 1
Screenshot 2
Screenshot 3
Screenshot 4

XML-Konfiguration

Basis-Struktur

<placeable>
<productionExtension>
<openingHours>
<production id="baeckerei" openHour="3" closeHour="12"/>
</openingHours>

<productions>
<production id="baeckerei" name="Bäckerei" cyclesPerHour="2" costsPerActiveHour="10">
<inputs>
<input fillType="FLOUR" amount="500"/>
</inputs>
<outputs>
<output fillType="BREAD" amount="10"/>
</outputs>
</production>
</productions>
</productionExtension>
</placeable>
WICHTIG

Die id muss mit der Production-ID übereinstimmen!

Parameter

ParameterBeschreibungPflichtStandard
idProduction ID-
openHourÖffnungszeit (0-23 Uhr)6
closeHourSchließzeit (0-23 Uhr)22
autoResumeAutomatisch weitermachen beim Öffnentrue
showDialogDialog beim Schließen anzeigentrue

Beispiele

Einfache Öffnungszeiten

Bäckerei von 3:00 - 12:00 Uhr:

<openingHours>
<production id="baeckerei" openHour="3" closeHour="12"/>
</openingHours>

📷 [SCREENSHOT: Bäckerei aktiv um 8:00 Uhr, gestoppt um 14:00 Uhr]

Mehrere Produktionen

Jedes Placeable hat nur EINE Produktion. Beispiele für verschiedene Öffnungszeiten:

Placeable 1 - Bäckerei:

<placeable>
<productionExtension>
<openingHours>
<production id="baeckerei" openHour="3" closeHour="12"/>
</openingHours>
<productions>
<production id="baeckerei" name="Bäckerei" .../>
</productions>
</productionExtension>
</placeable>

Placeable 2 - Molkerei:

<placeable>
<productionExtension>
<openingHours>
<production id="molkerei" openHour="6" closeHour="18"/>
</openingHours>
<productions>
<production id="molkerei" name="Molkerei" .../>
</productions>
</productionExtension>
</placeable>

Über Mitternacht (Nachtbetrieb)

Brauerei von 18:00 - 3:00 Uhr (über Mitternacht):

<openingHours>
<production id="brauerei" openHour="18" closeHour="3"/>
</openingHours>

Öffnungszeiten:

  • ✅ Offen: 18:00, 19:00, ..., 23:00, 0:00, 1:00, 2:00
  • ❌ Geschlossen: 3:00, 4:00, ..., 17:00
TIPP

Wenn openHour > closeHour, läuft die Produktion über Mitternacht!

autoResume Parameter

autoResume="true" (Standard)

Produktion startet automatisch wieder, wenn Öffnungszeit erreicht wird (falls sie vorher lief):

<production id="baeckerei" openHour="3" closeHour="12" autoResume="true"/>

Verhalten:

  • 11:59 Uhr: Produktion läuft
  • 12:00 Uhr: Automatisch gestoppt
  • 03:00 Uhr (nächster Tag): Automatisch wieder gestartet

autoResume="false"

Produktion startet nicht automatisch wieder:

<production id="brauerei" openHour="18" closeHour="3" autoResume="false"/>

Verhalten:

  • 02:59 Uhr: Produktion läuft
  • 03:00 Uhr: Automatisch gestoppt
  • 18:00 Uhr: NICHT automatisch gestartet (Spieler muss manuell starten)
TIPP

Nutze autoResume="false" für Produktionen, die der Spieler manuell kontrollieren soll.

showDialog Parameter

showDialog="true" (Standard)

Zeigt Benachrichtigung beim Schließen:

<production id="baeckerei" openHour="3" closeHour="12" showDialog="true"/>

showDialog="false"

Keine Benachrichtigung beim Schließen:

<production id="molkerei" openHour="6" closeHour="18" showDialog="false"/>
TIPP

Gut bei vielen Produktionen, um Benachrichtigungs-Spam zu vermeiden.

24/7 Produktionen

Produktionen ohne <openingHours> laufen rund um die Uhr.

Beispiel - Mühle läuft 24/7:

<placeable>
<productionExtension>
<!-- Keine openingHours = läuft 24/7 -->
<productions>
<production id="baeckerei" name="Bäckerei" .../>
<production id="muehle" name="Mühle" .../> <!-- Läuft 24/7! -->
</productions>

Anzeige der Öffnungszeiten

In-World Display

Mit dem Production Display System können Öffnungszeiten direkt im 3D-Raum angezeigt werden:

<productionExtension>
<!-- Opening Hours konfigurieren -->
<openingHours>
<production id="baeckerei" openHour="3" closeHour="12"/>
</openingHours>

<!-- Display für Öffnungsstatus -->
<ProductionDisplay>
<display rootNode="0>5|0" font="LICENSE_PLATE_DE" size="0.06" color="1 1 1 1">
<displayLine
customTextNode="0>5|0|0"
customText="BÄCKEREI"/>

<displayLine
openingHoursStatusNode="0>5|0|1"
productionIndex="1"/>
</display>
</ProductionDisplay>
</productionExtension>

Anzeige:

  • "GEÖFFNET" (grün) - Während der Öffnungszeiten
  • "CLOSED" (rot) - Außerhalb der Öffnungszeiten

Features:

  • Automatische Farb-Kodierung (grün/rot)
  • Echtzeit-Update bei Stundenänderung
  • Kombinierbar mit anderen Display-Elementen
  • Mehrsprachig via i18n Keys (openingHours_open, openingHours_closed)

Kombination mit Seasonal Production

Opening Hours und Seasonal Production können kombiniert werden:

<seasonalProduction>
<production id="bier" seasons="summer,autumn"/>
</seasonalProduction>

<openingHours>
<production id="bier" openHour="8" closeHour="18"/>
</openingHours>

Verhalten:

  • Im Sommer/Herbst: Läuft nur 8:00 - 18:00 Uhr
  • Im Frühling/Winter: Immer gestoppt (egal welche Uhrzeit)
Hinweis

Häufige Fehler

❌ Produktion läuft trotz Schließzeit

Ursache: Production ID stimmt nicht überein

<!-- FALSCH -->
<openingHours>
<production id="Baeckerei" openHour="3" closeHour="12"/> <!-- Großes B -->
</openingHours>
<production id="baeckerei" name="..."> <!-- Kleines b -->

<!-- RICHTIG -->
<openingHours>
<production id="baeckerei" openHour="3" closeHour="12"/>
</openingHours>
<production id="baeckerei" name="...">

❌ Zeiten über Mitternacht funktionieren nicht

Ursache: Falsche Reihenfolge

Für Nachtbetrieb muss openHour > closeHour sein:

<!-- FALSCH - läuft nur von 3:00 - 18:00 -->
<production id="bar" openHour="3" closeHour="18"/>

<!-- RICHTIG - läuft von 18:00 - 3:00 -->
<production id="bar" openHour="18" closeHour="3"/>

Praktische Beispiele

Bäckerei (Frühbetrieb)

<openingHours>
<production id="baeckerei" openHour="3" closeHour="12" autoResume="true"/>
</openingHours>

Läuft: 3:00 - 11:59 Uhr

Molkerei (Tagbetrieb)

<openingHours>
<production id="molkerei" openHour="6" closeHour="18" autoResume="true"/>
</openingHours>

Läuft: 6:00 - 17:59 Uhr

Brauerei (Nachtbetrieb)

<openingHours>
<production id="brauerei" openHour="18" closeHour="3" autoResume="false"/>
</openingHours>

Läuft: 18:00 - 2:59 Uhr (über Mitternacht)

Spinnerei (Tagschicht)

<openingHours>
<production id="spinnerei" openHour="6" closeHour="18" autoResume="true"/>
</openingHours>

Läuft: 6:00 - 17:59 Uhr

Vollständiges Beispiel

Bäckerei mit Öffnungszeiten 3:00 - 12:00 Uhr:

<placeable>
<productionExtension>
<openingHours>
<production id="baeckerei"
openHour="3"
closeHour="12"
autoResume="true"
showDialog="true"/>
</openingHours>

<productions>
<production id="baeckerei" name="Bäckerei" cyclesPerHour="2" costsPerActiveHour="10">
<inputs>
<input fillType="FLOUR" amount="500"/>
</inputs>
<outputs>
<output fillType="BREAD" amount="10"/>
</outputs>
</production>
</productions>
</productionExtension>
</placeable>
Wichtig

Pro Placeable kann nur EINE Produktion definiert werden. Für mehrere Produktionen benötigst du mehrere Placeables.

📷 [SCREENSHOT: Produktionsmenü mit verschiedenen Öffnungszeiten]

Beispieldatei

Siehe: examples/05_OpeningHours.xml

Verwandte Features

Zusammenfassung

✅ Produktionen auf Tageszeiten beschränken ✅ Automatisches Stoppen/Starten ✅ Unterstützt Zeiten über Mitternacht ✅ Kombinierbar mit Seasonal Production ✅ Multiplayer-kompatibel