001package com.fs.starfarer.api.util;
002
003import com.fs.starfarer.api.EveryFrameScript;
004import com.fs.starfarer.api.Global;
005
006public abstract class DelayedActionScript implements EveryFrameScript {
007
008        protected float daysLeft;
009        protected Boolean done = null;
010        public DelayedActionScript(float daysLeft) {
011                this.daysLeft = daysLeft;
012        }
013
014        public void advance(float amount) {
015                float days = Global.getSector().getClock().convertToDays(amount);
016                daysLeft -= days;
017                if (daysLeft <= 0) {
018                        doAction();
019                        done = true;
020                }
021        }
022        
023        public abstract void doAction();
024
025        public boolean isDone() {
026                return done != null && done == true;
027        }
028
029        public boolean runWhilePaused() {
030                return false;
031        }
032
033}