In Susuwatari entsteht Spannung nicht nur durch das Sammeln selbst, sondern durch klare Regeln. Eine davon lautet: Der Ofen akzeptiert Kohle erst, wenn im Raum keine mehr liegt. Dadurch wird das Einsammeln zur echten Aufgabe und nicht zu einer optionalen Nebensache.
Technisch übernimmt diese Kontrolle der RoomCoalManager, während der Ofen lediglich prüft, ob die Bedingung erfüllt ist.
Die Rolle des Ofens im System
Der Ofen ist kein Zähler. Er speichert nur die abgegebene Kohle. Ob abgegeben werden darf, entscheidet der RoomCoalManager.
Das Ofen Script hängt direkt am Ofen GameObject und besitzt eine Referenz zum Manager, die im Inspector gesetzt wird.
using UnityEngine;
public class Furnace : MonoBehaviour
{
public RoomCoalManager roomManager;
public int coalStored = 0;
private void OnTriggerEnter2D(Collider2D other)
{
if (!other.CompareTag("Player")) return;
var detector = other.GetComponent<PlayerCoalDetector>();
if (detector == null) return;
if (roomManager != null && !roomManager.AllCoalCollected)
{
Debug.Log("Noch liegt Kohle im Raum. Erst alles einsammeln, dann abliefern.");
return;
}
if (detector.coalAmount <= 0) return;
coalStored += detector.coalAmount;
detector.coalAmount = 0;
Debug.Log("Kohle im Ofen abgelegt. Gesamt im Ofen: " + coalStored);
}
}
Was hier technisch passiert
Beim Betreten des Ofens prüft das Script zunächst, ob wirklich der Player den Trigger betreten hat. Danach wird kontrolliert, ob ein PlayerCoalDetector vorhanden ist. Anschließend fragt der Ofen beim RoomCoalManager nach, ob alle Kohle eingesammelt wurde.
Erst wenn diese Bedingung erfüllt ist, wird die gespeicherte Kohle aus Susuwataris Inventar in den Ofen übertragen. Andernfalls bricht das Script bewusst ab.
Diese Struktur sorgt für klare Verantwortlichkeiten. Der Player sammelt. Der RoomCoalManager überwacht den Raum. Der Ofen verarbeitet.
Warum diese Bedingung wichtig ist
Ohne diese Prüfung könnte Susuwatari Kohle abliefern, obwohl noch Ressourcen im Raum liegen. Das würde das Levelziel verwässern und die Spielerführung schwächen. Mit der Bedingung entsteht ein eindeutiges Ziel. Erst alles einsammeln, dann abliefern.
Setup Check im Editor
Damit das System zuverlässig funktioniert, müssen einige Punkte stimmen.
Alle Kohle Objekte tragen den Tag Kohle
Der Player besitzt den Tag Player
Der Ofen hat einen BoxCollider2D mit aktiviertem Is Trigger
Ein RoomCoalManager befindet sich im Raum
Die Referenz roomManager ist im Furnace Script gesetzt
Fehlt einer dieser Punkte, blockiert das System oder reagiert nicht.
Erweiterungsmöglichkeiten
Statt nur eine Debug Meldung auszugeben, kannst du später eine UI Anzeige einblenden, die verbleibende Kohle anzeigen, ein Symbol über dem Ofen darstellen oder den Ofen visuell erst aktivieren, wenn der Raum leer ist.
Fazit
Der Ofen in Susuwatari verarbeitet Kohle nicht sofort, sondern folgt einer klar definierten Regel. Erst wenn der Raum vollständig geleert wurde, akzeptiert er die Lieferung. Diese zusätzliche Bedingung macht aus einer einfachen Mechanik ein strukturiertes Levelziel. Durch die saubere Zusammenarbeit zwischen Player, RoomCoalManager und Furnace bleibt das System übersichtlich und erweiterbar.
Weitere Artikel auf Games und Lyrik: Die Pendulo Studios
https://games-und-lyrik.de/pendulo-studios/
