Package game.habits

Source Code of game.habits.MetalHabit

package game.habits;

import engine.classes.Colour;
import engine.geometry.Circle;
import engine.geometry.Vector;
import engine.hierarchy.DefaultHabit;
import engine.interfaces.RenderTarget;
import game.scenes.LevelScene;

public class MetalHabit extends DefaultHabit {
    private DynamicHabit dynamic;
   
    public MetalHabit(final DynamicHabit dynamic) {
        this.dynamic = dynamic;
    }

    @Override
    protected void onAdd() {
        ((LevelScene) getScene()).getSpace().putObject(this, getCircle().getBoundingPolygon());
    }

    @Override
    protected void onUpdate() {
        setVisible(false);
    }
   
    @Override
    protected void onMove() {
        // TODO: ensure this happens after dynamic's move event???
        ((LevelScene) getScene()).getSpace().putObject(this, getCircle().getBoundingPolygon());
    }

    public void applyImpulse(final Vector impulse) {
        dynamic.applyImpulse(impulse);
        setVisible(true);
    }
   
    public void addVelocity(final Vector impulse) {
        dynamic.addVelocity(impulse);
        setVisible(true);
    }
   
    public double getMass() {
        return dynamic.getMass();
    }
   
    public Circle getCircle() {
        return new Circle(dynamic.getPolygon().getMid(), 40); // TODO: use the correct size
    }
   
    @Override
    protected void onDraw(RenderTarget target) {
        target.fillCircle(getCircle(), new Colour(255, 0, 0, 64)); // TODO: remove once debugged
    }
}
TOP

Related Classes of game.habits.MetalHabit

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.