001package com.fs.starfarer.api.characters; 002 003import java.util.List; 004import java.util.Random; 005import java.util.Set; 006 007import com.fs.starfarer.api.campaign.FactionAPI; 008import com.fs.starfarer.api.campaign.SectorEntityToken; 009import com.fs.starfarer.api.campaign.econ.MarketAPI; 010 011public interface ImportantPeopleAPI { 012 013 public interface PersonFilter { 014 boolean accept(PersonDataAPI personData); 015 } 016 017 public interface PersonDataAPI { 018 PersonLocationAPI getLocation(); 019 void setLocation(PersonLocationAPI location); 020 PersonAPI getPerson(); 021 Set<String> getCheckedOutFor(); 022 } 023 024 public interface PersonLocationAPI { 025 MarketAPI getMarket(); 026 void setMarket(MarketAPI market); 027 SectorEntityToken getEntity(); 028 void setEntity(SectorEntityToken entity); 029 boolean isInMarket(); 030 boolean isOnFleet(); 031 } 032 033 void addPerson(PersonAPI person); 034 035 boolean containsPerson(PersonAPI person); 036 void removePerson(PersonAPI person); 037 void removePerson(String id); 038 039 List<PersonDataAPI> getPeopleCopy(); 040 List<PersonAPI> getPeopleWithRank(String rankId); 041 List<PersonAPI> getPeopleWithPost(String postId); 042 043 PersonDataAPI getData(PersonAPI person); 044 PersonDataAPI getData(String id); 045 PersonAPI getPerson(String id); 046 047 boolean canCheckOutPerson(PersonAPI person, String reasonId); 048 void checkOutPerson(PersonAPI person, String reasonId); 049 void returnPerson(PersonAPI person, String reasonId); 050 051 List<PersonDataAPI> getMatching(PersonFilter filter); 052 053 PersonDataAPI getPerson(FactionAPI faction, MarketAPI market, 054 String checkoutReason, String defaultRank, String ... postIds); 055 056 PersonDataAPI getPerson(String factionId, MarketAPI market, 057 String checkoutReason, String defaultRank, String ... postIds); 058 059 boolean isCheckedOutForAnything(PersonAPI person); 060 061 PersonDataAPI getPerson(Random random, FactionAPI faction, 062 MarketAPI market, String checkoutReason, String defaultRank, 063 String... postIds); 064 065 boolean isLastGetPersonResultWasExistingPerson(); 066 067 void excludeFromGetPerson(PersonAPI person); 068 void resetExcludeFromGetPerson(); 069 070 071 072}