001package com.fs.starfarer.api.campaign;
002
003import java.util.List;
004import java.util.Set;
005
006import com.fs.starfarer.api.campaign.econ.MarketAPI;
007
008
009public interface MissionBoardAPI {
010        public static interface MissionAvailabilityAPI {
011                Set<SectorEntityToken> getAvailableAt();
012                CampaignMissionPlugin getMission();
013        }
014
015        List<MissionAvailabilityAPI> getMissionsCopy();
016
017        MissionAvailabilityAPI getAvailabilityForMission(String id);
018
019        
020        void makeAvailableAt(CampaignMissionPlugin mission, SectorEntityToken loc);
021        void makeUnavailableAt(CampaignMissionPlugin mission, SectorEntityToken loc);
022        void makeAvailableAt(CampaignMissionPlugin mission, String entityId);
023        void makeUnavailableAt(CampaignMissionPlugin mission, String entityId);
024
025        int getNumMissions(Class<?> clazz);
026
027        void makeAvailableAt(CampaignMissionPlugin mission, MarketAPI market);
028
029        void removeMission(CampaignMissionPlugin mission, boolean withCleanup);
030        void removeMission(String id, boolean withCleanup);
031}