001package com.fs.starfarer.api.impl.campaign.fleets; 002 003import com.fs.starfarer.api.EveryFrameScript; 004import com.fs.starfarer.api.Global; 005import com.fs.starfarer.api.impl.campaign.fleets.RouteManager.RouteFleetSpawner; 006import com.fs.starfarer.api.util.IntervalUtil; 007 008public abstract class BaseRouteFleetManager implements EveryFrameScript, RouteFleetSpawner { 009 010 protected IntervalUtil interval; 011 012 public BaseRouteFleetManager(float minInterval, float maxInterval) { 013 interval = new IntervalUtil(minInterval, maxInterval); 014 } 015 016 protected abstract String getRouteSourceId(); 017 protected abstract int getMaxFleets(); 018 protected abstract void addRouteFleetIfPossible(); 019 020 public void advance(float amount) { 021 float days = Global.getSector().getClock().convertToDays(amount); 022// boolean econ = EconomyFleetRouteManager.class.isInstance(this); 023// if (econ) { 024// days *= 1000f; 025// } 026 027 interval.advance(days); 028 if (interval.intervalElapsed()) { 029 String id = getRouteSourceId(); 030 int max = getMaxFleets(); 031// if (econ) { 032// max = 1; 033// } 034 int curr = RouteManager.getInstance().getNumRoutesFor(id); 035 if (curr >= max) return; 036 037 addRouteFleetIfPossible(); 038 } 039 } 040 041 public boolean isDone() { 042 return false; 043 } 044 045 public boolean runWhilePaused() { 046 return false; 047 } 048 049}