001package com.fs.starfarer.api.impl.campaign.rulecmd;
002
003import java.util.List;
004import java.util.Map;
005
006import com.fs.starfarer.api.Global;
007import com.fs.starfarer.api.campaign.CoreInteractionListener;
008import com.fs.starfarer.api.campaign.CoreUITabId;
009import com.fs.starfarer.api.campaign.InteractionDialogAPI;
010import com.fs.starfarer.api.campaign.CampaignUIAPI.CoreUITradeMode;
011import com.fs.starfarer.api.campaign.rules.MemoryAPI;
012import com.fs.starfarer.api.util.Misc;
013import com.fs.starfarer.api.util.Misc.Token;
014
015/**
016 * OpenCoreTab <CoreUITabId> <CoreUITradeMode (optional)>
017 */
018public class OpenCoreTab extends BaseCommandPlugin implements CoreInteractionListener {
019
020        private Map<String, MemoryAPI> memoryMap;
021        private InteractionDialogAPI dialog;
022        
023        /** 
024         * OpenCoreUI <CoreUITabId>
025         */
026        public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
027                this.dialog = dialog;
028                this.memoryMap = memoryMap;
029                String tabIdStr = params.get(0).getString(memoryMap);
030                
031                CoreUITabId tabId = CoreUITabId.valueOf(tabIdStr);
032                dialog.getOptionPanel().clearOptions();
033                
034                CoreUITradeMode mode = CoreUITradeMode.OPEN;
035                if (params.size() > 1) {
036                        mode = CoreUITradeMode.valueOf(params.get(1).getString(memoryMap));
037                }
038                
039                //memoryMap.get(MemKeys.LOCAL).set("$lastTradeMode", mode.name(), 0);
040                dialog.getVisualPanel().showCore(tabId, dialog.getInteractionTarget(), mode, this);
041                
042                Misc.stopPlayerFleet();
043                
044                return true;
045        }
046
047        public void coreUIDismissed() {
048                // update player memory - supplies/fuel the player has, etc
049                Global.getSector().getCharacterData().getMemory();
050                
051                
052                FireAll.fire(null, dialog, memoryMap, "PopulateOptions");
053        }
054}