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}