egordorichev/LastTry

View on GitHub
core/src/org/egordorichev/lasttry/world/environment/Event.java

Summary

Maintainability
A
0 mins
Test Coverage
package org.egordorichev.lasttry.world.environment;

import org.egordorichev.lasttry.world.environment.events.BloomMoon;
import org.egordorichev.lasttry.world.environment.events.Rain;

public class Event {
    public static Event bloodMoon = new BloomMoon();
    public static Event rain = new Rain();

    /**
     * Event's name
     */
    private String name;

    /**
     * If event is happening
     */
    private boolean happening = false;

    public Event(String name) {
        this.name = name;
    }

    public boolean start() {
        if (this.happening) {
            return false;
        }

        if (this.canHappen()) {
            this.happening = true;
            this.onStart();
            return true;
        }

        return false;
    }

    public void update(int dt) {

    }

    public void end() {
        if (!this.happening) {
            return;
        }

        this.happening = false;
        this.onEnd();
    }

    protected void onStart() {

    }

    protected void onEnd() {

    }

    public boolean isHappening() {
        return this.happening;
    }

    public boolean canHappen() {
        return false;
    }

    public String getName() {
        return this.name;
    }
}