// Asteroid Push - A game featuring selfmade spaceships and pompous physics // Copyright (C) 2013 Christian Meyer, Silvan Wegmann // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. package org.codecranachan.asteroidpush.content.actors; import java.util.Collection; import java.util.LinkedList; import org.codecranachan.asteroidpush.base.input.Controller; import org.codecranachan.asteroidpush.base.simulation.Actor; import org.codecranachan.asteroidpush.base.simulation.RigidBody; import org.codecranachan.asteroidpush.base.simulation.command.Command; import org.codecranachan.asteroidpush.base.visuals.Representation; import org.codecranachan.asteroidpush.utils.Angle; import org.codecranachan.asteroidpush.utils.FieldOfView; public class Projectile implements Actor { private RigidBody body; private Representation representation; public Projectile(RigidBody body, Representation representation) { assert body != null; assert representation != null; this.body = body; this.representation = representation; } public void destroy() { body.destroy(); } public Collection<Command> update(int frameNumber) { return new LinkedList<Command>(); } public Collection<Representation> getRepresentations() { Collection<Representation> representations = new LinkedList<Representation>(); representations.add(representation); return representations; } public FieldOfView getFieldOfView() { return new FieldOfView(body.getEnclosingCircle().addRadius(10f), Angle.PI); } public void setController(Controller controller) { // nothing to do } }