001package com.fs.starfarer.api.impl.campaign.rulecmd;
002
003import java.util.LinkedHashSet;
004import java.util.List;
005import java.util.Map;
006import java.util.Set;
007
008import com.fs.starfarer.api.Global;
009import com.fs.starfarer.api.campaign.InteractionDialogAPI;
010import com.fs.starfarer.api.campaign.SectorEntityToken;
011import com.fs.starfarer.api.campaign.econ.MarketAPI;
012import com.fs.starfarer.api.campaign.rules.MemoryAPI;
013import com.fs.starfarer.api.impl.campaign.ids.Tags;
014import com.fs.starfarer.api.util.Misc.Token;
015
016/**
017 * ShowIntelMarker <entity or market id> <optional title> <optional text>
018 */
019public class ShowMapMarker extends BaseCommandPlugin {
020
021        public ShowMapMarker() {
022                
023        }
024        
025        public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
026                
027                String id = params.get(0).getString(memoryMap);
028                
029                SectorEntityToken entity = Global.getSector().getEntityById(id);
030                if (entity == null) {
031                        MarketAPI market = Global.getSector().getEconomy().getMarket(id);
032                        if (market != null) {
033                                entity = market.getPrimaryEntity();
034                        }
035                }
036                
037                if (entity == null) return false;
038                
039                String title = entity.getName();
040                if (params.size() >= 2) {
041                        title = params.get(1).getString(memoryMap);
042                }
043                String text = null;
044                if (params.size() >= 3) {
045                        text = params.get(2).getString(memoryMap);
046                }
047                
048                String icon = Global.getSettings().getSpriteName("intel", "discovered_entity");
049                
050                Set<String> tags = new LinkedHashSet<String>();
051                tags.add(Tags.INTEL_NEW);
052                
053                dialog.getVisualPanel().showMapMarker(entity, title, entity.getFaction().getBaseUIColor(), 
054                                                                                        true, icon, text, tags);
055                
056                return true;
057        }
058        
059
060}
061
062