001package com.fs.starfarer.api.campaign.comm; 002 003import java.util.List; 004 005import com.fs.starfarer.api.campaign.TextPanelAPI; 006 007public interface IntelManagerAPI { 008// public interface IntelCommQueueItemAPI { 009// float getDaysLeft(); 010// void setDaysLeft(float daysLeft); 011// IntelInfoPlugin getPlugin(); 012// void setPlugin(IntelInfoPlugin plugin); 013// } 014 015 boolean hasIntel(IntelInfoPlugin plugin); 016 boolean hasIntelQueued(IntelInfoPlugin plugin); 017 018 List<IntelInfoPlugin> getIntel(); 019 List<IntelInfoPlugin> getIntel(Class c); 020 021 List<IntelInfoPlugin> getCommQueue(); 022 List<IntelInfoPlugin> getCommQueue(Class c); 023 024 boolean unqueueIntel(IntelInfoPlugin plugin); 025 026 /** 027 * Will become known to the player as soon as they're in comm relay range. Will be unqueued 028 * if not received by the player within maxCommQueueDays days. 029 * @param plugin 030 * @param maxCommQueueDays 031 */ 032 void queueIntel(IntelInfoPlugin plugin, float maxCommQueueDays); 033 034 /** 035 * Will become known to the player as soon as they're in comm relay range. Will remain queued 036 * until it's either received or plugin.shouldRemoveIntel() returns true. 037 * 038 * @param plugin 039 */ 040 void queueIntel(IntelInfoPlugin plugin); 041 042 void addIntel(IntelInfoPlugin plugin); 043 void addIntel(IntelInfoPlugin plugin, boolean forceNoMessage); 044 void addIntel(IntelInfoPlugin plugin, boolean forceNoMessage, TextPanelAPI textPanel); 045 046 /** 047 * Removes and unqueues. 048 * @param plugin 049 */ 050 void removeIntel(IntelInfoPlugin plugin); 051 void removeAllThatShouldBeRemoved(); 052 void clear(); 053 054 void addIntelToTextPanel(IntelInfoPlugin plugin, TextPanelAPI textPanel); 055 056 int getIntelCount(Class c, boolean includeQueued); 057 058 boolean isPlayerInRangeOfCommRelay(); 059 IntelInfoPlugin getFirstIntel(Class c); 060 boolean hasIntelOfClass(Class<?> c); 061 void sortIntel(List<IntelInfoPlugin> toSort); 062 063 064 065 066 067}