001package com.fs.starfarer.api.impl.campaign.rulecmd; 002 003import java.util.ArrayList; 004import java.util.List; 005import java.util.Map; 006 007import com.fs.starfarer.api.campaign.InteractionDialogAPI; 008import com.fs.starfarer.api.campaign.rules.MemoryAPI; 009import com.fs.starfarer.api.util.Misc.Token; 010import com.fs.starfarer.api.util.Misc.VarAndMemory; 011 012/** 013 * Use "Call" instead; same functionality, more accurate and shorter name. 014 * 015 * CallEvent $eventHandle <params> 016 */ 017public class CallEvent extends BaseCommandPlugin { 018 019 public static interface CallableEvent { 020 boolean callEvent(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap); 021 } 022 023 public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) { 024 025 VarAndMemory handle = params.get(0).getVarNameAndMemory(memoryMap); 026 if (handle.memory.contains(handle.name)) { 027 CallableEvent event = (CallableEvent) handle.memory.get(handle.name); 028 029 if (event != null) { 030 List<Token> notifyParams = new ArrayList<Token>(); 031 for (int i = 1; i < params.size(); i++) { 032 notifyParams.add(params.get(i)); 033 //params.get(i).getString(memoryMap) 034 } 035 return event.callEvent(ruleId, dialog, notifyParams, memoryMap); 036 } 037 } 038 039 return false; 040 } 041 042} 043 044 045 046