package mock.model.collider; import mock.model.MockBoat; import java.util.ArrayList; import java.util.List; /** * Registry for all Collider objects in a MockRace. Wraps the Collider interface as part of a Composite Pattern. */ public class ColliderRegistry implements Collider { /** * List of all registered Colliders */ private List colliders; /** * Default constructor for ColliderRegistry */ public ColliderRegistry() { this.colliders = new ArrayList<>(); } public void addCollider(Collider collider) { colliders.add(collider); } public void removeCollider(Collider collider) { colliders.remove(collider); } @Override public boolean rayCast(MockBoat boat, Collision collision) { for(Collider collider: colliders) { if(collider.rayCast(boat, collision)) return true; } return false; } @Override public void onCollisionEnter(Collision e) {} }