001package com.fs.starfarer.api.campaign.comm;
002
003import java.util.Collection;
004import java.util.List;
005import java.util.Map;
006
007import java.awt.Color;
008
009import org.lwjgl.util.vector.Vector2f;
010
011import com.fs.starfarer.api.campaign.OnMessageDeliveryScript;
012import com.fs.starfarer.api.campaign.SectorEntityToken;
013import com.fs.starfarer.api.campaign.econ.MarketAPI;
014import com.fs.starfarer.api.campaign.events.CampaignEventPlugin;
015import com.fs.starfarer.api.campaign.events.CampaignEventPlugin.PriceUpdatePlugin;
016import com.fs.starfarer.api.util.Highlights;
017
018public interface CommMessageAPI {
019        
020        public static enum MessageClickAction {
021                FLEET_TAB,
022                REFIT_TAB,
023                INTEL_TAB,
024                CHARACTER_TAB,
025                CARGO_TAB,
026                INCOME_TAB,
027                COLONY_INFO,
028                INTERACTION_DIALOG,
029                NOTHING,
030        }
031        
032        
033        public static final String MESSAGE_FACTION_ID_KEY = "CMAPIfactionId";
034        public static final String MESSAGE_PERSON_ID_KEY = "CMAPIpersonId";
035        
036        
037        Color getSubjectColor();
038        void setSubjectColor(Color defaultColor);
039        OnMessageDeliveryScript getOnDelivery();
040        void setOnDelivery(OnMessageDeliveryScript onDelivery);
041        String getId();
042        boolean isAddToIntelTab();
043        void setAddToIntelTab(boolean addToIntelTab);
044        String getType();
045        void setType(String type);
046        String getShortType();
047        void setShortType(String shortType);
048        String getDeliveredBy();
049        void setDeliveredBy(String deliveredBy);
050        String getSender();
051        void setSender(String sender);
052        long getTimeSent();
053        void setTimeSent(long timeSent);
054        long getTimeReceived();
055        void setTimeReceived(long timeReceived);
056        String getSubject();
057        void setSubject(String subject);
058        MessageSectionAPI getSection1();
059        MessageSectionAPI getSection2();
060        MessageSectionAPI getSection3();
061        String getSound();
062        void setSound(String sound);
063        String getSmallIcon();
064        void setSmallIcon(String smallIcon);
065        String getImage();
066        void setImage(String largeIcon);
067        String getStarSystemId();
068        void setStarSystemId(String starSystemId);
069        String getLocationString();
070        void setLocationString(String locationString);
071        Highlights getSubjectHighlights();
072        void setSubjectHighlights(Highlights subjectHighlights);
073        String getChannel();
074        void setChannel(String channel);
075        Object getCustomData();
076        void setCustomData(Object customData);
077        CampaignEventPlugin getEvent();
078        String getNote();
079        void setNote(String note);
080        Color getNoteColor();
081        void setNoteColor(Color noteColor);
082
083
084        boolean hasTag(String tag);
085        void addTag(String tag);
086        void removeTag(String tag);
087        Collection<String> getTags();
088        void clearTags();
089        Map<String, Object> getCustomMap();
090        String getMarketId();
091        void setMarketId(String marketId);
092        MarketAPI getMarket();
093        List<PriceUpdatePlugin> getPriceUpdates();
094        void setPriceUpdates(List<PriceUpdatePlugin> priceUpdates);
095        boolean isShowInCampaignList();
096        void setShowInCampaignList(boolean showInCampaignList);
097        MessageClickAction getAction();
098        void setAction(MessageClickAction action);
099        Vector2f getLocInHyper();
100        void setLocInHyper(Vector2f locInHyper);
101        SectorEntityToken getCenterMapOnEntity();
102        void setCenterMapOnEntity(SectorEntityToken centerMapOnEntity);
103        
104}