Package pi.actor

Class Group<T extends Actor>

java.lang.Object
pi.actor.Group<T>
Type Parameters:
T - der Typ der enthaltenen Actor-Objekte
All Implemented Interfaces:
Iterable<T>

public class Group<T extends Actor> extends Object implements Iterable<T>
Eine Gruppe bestehend aus mehreren Actor-Objekten.

Über eine Gruppe lassen sich mehrere Figure gemeinsam verwalten, z.B. gleichzeitig bewegen oder einer Szene hinzufügen. Die Gruppe implementiert Iterable, sodass sie direkt in einer for-Schleife verwendet werden kann.

Author:
Josef Friedrich
  • Constructor Details

    • Group

      @SafeVarargs public Group(T... actors)
      Erstellt eine neue Gruppe mit den angegebenen Actor-Objekten.
      Parameters:
      actors - Die Figuren, aus denen die Gruppe besteht.
  • Method Details

    • actors

      @API @Getter public List<T> actors()
      Gibt die Liste zurück, die alle Figuren enthält.
      Returns:
      Die Liste, die alle Figuren enthält.
      Since:
      0.45.0
    • iterator

      public Iterator<T> iterator()
      Gibt einen Iterator über alle Figuren dieser Gruppe zurück.

      Die zurückgegebene Liste ist schreibgeschützt; Änderungen an der Gruppe müssen über die Methoden der Gruppe selbst vorgenommen werden.

      Specified by:
      iterator in interface Iterable<T extends Actor>
      Returns:
      Ein Iterator über alle Figuren der Gruppe.
      Since:
      0.45.0
    • add

      @API @ChainableMethod public Group<T> add(T actor)
      Fügt eine Figur zur Gruppe hinzu.
      Parameters:
      actor - Die Figur, die hinzugefügt werden soll.
      Returns:
      diese Gruppe (für Method-Chaining)
    • remove

      @API @ChainableMethod public Group<T> remove(T actor)
      Entfernt eine Figur aus der Gruppe.
      Parameters:
      actor - Die Figur, die entfernt werden soll.
      Returns:
      diese Gruppe (für Method-Chaining)
    • size

      @API public int size()
      Gibt die Anzahl der enthaltenen Figuren zurück.
      Returns:
      Die Anzahl der Figuren in dieser Gruppe.
    • isEmpty

      @API public boolean isEmpty()
      Prüft, ob diese Gruppe keine Figuren enthält.
      Returns:
      true, wenn die Gruppe leer ist, sonst false.
    • addToScene

      @API @ChainableMethod public Group<T> addToScene(Scene scene)
      Fügt alle Figuren dieser Gruppe der angegebenen Scene hinzu.
      Parameters:
      scene - Die Szene, der die Figuren hinzugefügt werden sollen.
      Returns:
      diese Gruppe (für Method-Chaining)
      Since:
      0.45.0
    • forEachActor

      @API @ChainableMethod public Group<T> forEachActor(Consumer<? super T> action)
      Führt eine Aktion für alle Figuren aus. Da die Klasse Group die Schnittstelle Iterable implementiert, gibt es bereits eine forEach-Methode. Diese Methode ist jedoch verkettbar.
      Parameters:
      action - Die Aktion, die für jede passende Figur ausgeführt wird.
      Since:
      0.45.0
    • forEach

      @API @ChainableMethod public <S extends T> Group<T> forEach(Class<S> clazz, Consumer<? super S> action)
      Führt eine Aktion für alle Figuren aus, die Instanzen der angegebenen Unterklasse sind.
      Type Parameters:
      S - Die gesuchte Unterklasse.
      Parameters:
      clazz - Die Unterklasse, nach der gefiltert werden soll.
      action - Die Aktion, die für jede passende Figur ausgeführt wird.
      Since:
      0.45.0