Plugin-System
Interface-basierte Entkopplung von Interaktionsobjekten
Das Interaktionssystem verbindet die Blickrichtung des Spielers (facingRow / facingCol) mit Objekten in der Welt. Design-Patterns:Interface Interactable: Ermöglicht die polymorphe Behandlung aller ansprechbaren Objekte (NPCs, Truhen, Schildern). Zustandsloses Subsystem: InteractionSystem hält als Utility-Klasse keinen eigenen State, wodurch Kopplung vermieden wird. Blickrichtungs-Ziel: Das Ziel-Tile errechnet sich aus playerCenter + facingOffset.
Referenz:
Datei
1. Spielprojekt
· Klasse Interactable, InteractionSystem, Player
// Ermittlung des Zielfeldes davor
int targetRow = playerCenterRow + player.getFacingRow();
int targetCol = playerCenterCol + player.getFacingCol();
for (InteractableObject object : objects) {
if (object.getTileRow() == targetRow && object.getTileCol() == targetCol) {
object.interact(); // Polymorpher Aufruf
return;
}
}