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}