001package com.fs.starfarer.api.campaign;
002
003import java.util.Set;
004
005import java.awt.Color;
006
007import com.fs.starfarer.api.InteractionDialogImageVisual;
008import com.fs.starfarer.api.campaign.CampaignUIAPI.CoreUITradeMode;
009import com.fs.starfarer.api.characters.CharacterCreationData;
010import com.fs.starfarer.api.characters.PersonAPI;
011import com.fs.starfarer.api.fleet.FleetMemberAPI;
012import com.fs.starfarer.api.ui.CustomPanelAPI;
013
014public interface VisualPanelAPI {
015        void setVisualFade(float in, float out);
016        
017        void showFleetInfo(String titleOne, CampaignFleetAPI one, String titleTwo, CampaignFleetAPI two);
018        void showFleetInfo(String titleOne, CampaignFleetAPI one, String titleTwo, CampaignFleetAPI two, FleetEncounterContextPlugin context);
019        void showPersonInfo(PersonAPI person);
020        void showSecondPerson(PersonAPI person);
021        void hideSecondPerson();
022        void hideRankNamePost();
023        
024        void showPlanetInfo(SectorEntityToken planet);
025        void showFleetMemberInfo(FleetMemberAPI member);
026        
027        void showImagePortion(String category, String id,
028                                                  float x, float y, float w, float h,
029                                                  float xOffset, float yOffset,
030                                                  float displayWidth, float displayHeight);
031        void showImagePortion(String category, String id,
032                                                  float w, float h,
033                                                  float xOffset, float yOffset,
034                                                  float displayWidth, float displayHeight);
035        void showImageVisual(InteractionDialogImageVisual visual);
036        
037        CustomPanelAPI showCustomPanel(float width, float height, CustomUIPanelPlugin plugin);
038        
039        void fadeVisualOut();
040        
041        void showLoot(String title, CargoAPI otherCargo, boolean generatePods, CoreInteractionListener listener);
042        void showLoot(String title, CargoAPI otherCargo, boolean canLeavePersonnel, boolean revealMode, boolean generatePods, CoreInteractionListener listener);
043        
044        /**
045         * The noCost parameter isn't used; (other.isFreeTranser() || other.getFaction().isNeutralFaction) is used instead.
046         * Use the other showCore() method.
047         * @param tabId
048         * @param other
049         * @param noCost
050         * @param listener
051         */
052        @Deprecated void showCore(CoreUITabId tabId, SectorEntityToken other, boolean noCost, CoreInteractionListener listener);
053        
054        void showCore(CoreUITabId tabId, SectorEntityToken other, CoreInteractionListener listener);
055        void showCore(CoreUITabId tabId, SectorEntityToken other, CoreUITradeMode mode, CoreInteractionListener listener);
056        void hideCore();
057
058        void showNewGameOptionsPanel(CharacterCreationData data);
059
060        void showPersonInfo(PersonAPI person, boolean minimalMode);
061
062        void showPreBattleJoinInfo(String playerTitle, CampaignFleetAPI playerFleet, String titleOne, String titleTwo,
063                                                                FleetEncounterContextPlugin context);
064
065        void showFleetMemberInfo(FleetMemberAPI member, boolean recoveryMode);
066
067        void showFleetInfo(String titleOne, CampaignFleetAPI one, String titleTwo, CampaignFleetAPI two, FleetEncounterContextPlugin context, boolean recoveryMode);
068
069        void finishFadeFast();
070
071        void saveCurrentVisual();
072
073        void restoreSavedVisual();
074
075        void closeCoreUI();
076
077        void showPersonInfo(PersonAPI person, boolean minimalMode, boolean withRelBar);
078        void showThirdPerson(PersonAPI person);
079        void hideThirdPerson();
080
081        void showCore(CoreUITabId tabId, SectorEntityToken other, Object custom, CoreInteractionListener listener);
082        void showCore(CoreUITabId tabId, SectorEntityToken other, Object custom, CoreUITradeMode mode, CoreInteractionListener listener);
083
084        void showMapMarker(SectorEntityToken marker, String title, Color titleColor, 
085                                                boolean withIntel, String icon, String text, Set<String> intelTags);
086
087        void removeMapMarkerFromPersonInfo();
088
089        void showFirstPerson();
090        void hideFirstPerson();
091
092        void showLargePlanet(SectorEntityToken planet);
093
094        /**
095         * Only checks the "first" person, not second or third.
096         */
097        boolean isShowingPersonInfo(PersonAPI person);
098}
099
100
101