001package com.fs.starfarer.api.campaign; 002 003import java.util.List; 004 005import org.lwjgl.util.vector.Vector2f; 006 007import com.fs.starfarer.api.EveryFrameScript; 008import com.fs.starfarer.api.Script; 009import com.fs.starfarer.api.campaign.CampaignEventListener.FleetDespawnReason; 010import com.fs.starfarer.api.campaign.ai.FleetAssignmentDataAPI; 011import com.fs.starfarer.api.campaign.listeners.FleetEventListener; 012import com.fs.starfarer.api.campaign.rules.MemoryAPI; 013 014public interface FleetOrStubAPI { 015 016 String getId(); 017 LocationAPI getContainingLocation(); 018 Vector2f getLocation(); 019 FleetAssignmentDataAPI getCurrentAssignment(); 020 List<FleetAssignmentDataAPI> getAssignmentsCopy(); 021 void addAssignment(FleetAssignment assignment, SectorEntityToken target, 022 float maxDurationInDays, Script onCompletion); 023 void addAssignment(FleetAssignment assignment, SectorEntityToken target, 024 float maxDurationInDays, String actionText, Script onCompletion); 025 void addAssignment(FleetAssignment assignment, SectorEntityToken target, 026 float maxDurationInDays, String actionText); 027 void addAssignmentAtStart(FleetAssignment assignment, 028 SectorEntityToken target, float maxDurationInDays, 029 String actionText, Script onCompletion); 030 void addAssignmentAtStart(FleetAssignment assignment, 031 SectorEntityToken target, float maxDurationInDays, 032 Script onCompletion); 033 void addAssignment(FleetAssignment assignment, SectorEntityToken target, float maxDurationInDays); 034 boolean isCurrentAssignment(FleetAssignment assignment); 035 void removeFirstAssignmentIfItIs(FleetAssignment assignment); 036 void removeFirstAssignment(); 037 void clearAssignments(); 038 MemoryAPI getMemoryWithoutUpdate(); 039 040 void despawn(); 041 void despawn(FleetDespawnReason reason, Object param); 042 boolean isFleet(); 043 //boolean isStub(); 044 void addScript(EveryFrameScript script); 045 List<FleetEventListener> getEventListeners(); 046 void addEventListener(FleetEventListener listener); 047 void removeEventListener(FleetEventListener listener); 048 List<EveryFrameScript> getScripts(); 049 Vector2f getLocationInHyperspace(); 050 051 052 053}