Grüß Euch,
bin gerade dabei, ein kleines Spiel mit einem "Entity-Component-System" (ECS) zu programmieren. Ich habe, damit die verschiedenen Objekte (Entities) nicht während der Laufzeit initialisiert werden müssen, diese in einer Liste mit Vorlagen gespeichert und kann sie bei Bedarf herausholen, also kopieren (wird auch "EntityPool" oder "EntityFactory" genannt).
Hier liegt aber auch schon das Problem: Die Komponenten-Liste der neu erstellten Einheit ist natürlich nur eine Referenz auf die Komponenten-Liste der Vorlage. Also wird ja die Vorlage mitverändert, wenn eine Komponente verändert wird, was natürlich überhaupt nicht gewünscht ist.
Wie kann ich also von einer Java-Collection eine "deep copy" machen, ohne in jeder der speziellen Komponenten-Klassen eine "clone()"-Methode einführen zu müssen?
Vielen Dank für jegliche Hilfe.
bin gerade dabei, ein kleines Spiel mit einem "Entity-Component-System" (ECS) zu programmieren. Ich habe, damit die verschiedenen Objekte (Entities) nicht während der Laufzeit initialisiert werden müssen, diese in einer Liste mit Vorlagen gespeichert und kann sie bei Bedarf herausholen, also kopieren (wird auch "EntityPool" oder "EntityFactory" genannt).
Hier liegt aber auch schon das Problem: Die Komponenten-Liste der neu erstellten Einheit ist natürlich nur eine Referenz auf die Komponenten-Liste der Vorlage. Also wird ja die Vorlage mitverändert, wenn eine Komponente verändert wird, was natürlich überhaupt nicht gewünscht ist.
Wie kann ich also von einer Java-Collection eine "deep copy" machen, ohne in jeder der speziellen Komponenten-Klassen eine "clone()"-Methode einführen zu müssen?
Vielen Dank für jegliche Hilfe.