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.InteractionDialogAPI;
008import com.fs.starfarer.api.campaign.rules.MemoryAPI;
009import com.fs.starfarer.api.util.Misc.Token;
010
011/**
012 * SetCodexEntryId <entry id>
013 * Sets the id of the entry to show when the Codex is opened, with an expiration of 0.
014 * If no entry id is specified, it is unset instead.
015 */
016public class SetCodexEntryId extends BaseCommandPlugin {
017
018        public static String GLOBAL_CODEX_ENTRY_TO_OPEN = "$codexEntryId";
019        
020        public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
021                if (dialog == null) return false;
022                
023                if (params.size() <= 0) {
024                        Global.getSector().getMemoryWithoutUpdate().unset(GLOBAL_CODEX_ENTRY_TO_OPEN);
025                } else {
026                        Global.getSector().getMemoryWithoutUpdate().set(
027                                        GLOBAL_CODEX_ENTRY_TO_OPEN, params.get(0).getString(memoryMap), 0f);
028                }
029                
030                
031                return true;
032        }
033
034}