Starsector API
Loading...
Searching...
No Matches
AddBarEvent.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.campaign.rulecmd.salvage;
2
3import java.awt.Color;
4import java.util.LinkedHashMap;
5import java.util.List;
6import java.util.Map;
7
8import com.fs.starfarer.api.campaign.InteractionDialogAPI;
9import com.fs.starfarer.api.campaign.econ.MarketAPI;
10import com.fs.starfarer.api.campaign.rules.MemoryAPI;
11import com.fs.starfarer.api.impl.campaign.rulecmd.BaseCommandPlugin;
12import com.fs.starfarer.api.util.Misc.Token;
13
17public class AddBarEvent extends BaseCommandPlugin {
18
19 public static class BarEventData {
20 public String optionId;
21 public String option;
22 public String blurb;
23 public Color optionColor;
24 public BarEventData(String optionId, String option, String blurb) {
25 this.optionId = optionId;
26 this.option = option;
27 this.blurb = blurb;
28 }
29 }
30
31 public static class TempBarEvents {
32 public Map<String, BarEventData> events = new LinkedHashMap<String, BarEventData>();
33 }
34
35 public static String KEY = "$core_tempBarEvents";
36 public static TempBarEvents getTempEvents(MarketAPI market) {
37 MemoryAPI mem = market.getMemoryWithoutUpdate();
38 TempBarEvents events = (TempBarEvents)mem.get(KEY);
39 if (events == null) {
40 events = new TempBarEvents();
41 mem.set(KEY, events, 0f);
42 }
43 return events;
44 }
45
46 public static void removeTempEvent(MarketAPI market, String optionId) {
47 getTempEvents(market).events.remove(optionId);
48 }
49
50 public static void clearTempEvents(MarketAPI market) {
51 MemoryAPI mem = market.getMemoryWithoutUpdate();
52 mem.unset(KEY);
53 }
54
55
56 public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
57 MarketAPI market = dialog.getInteractionTarget().getMarket();
58 if (market == null) return true;
59
60 String optionId = params.get(0).getString(memoryMap);
61 String option = params.get(1).getStringWithTokenReplacement(ruleId, dialog, memoryMap);
62 String blurb = params.get(2).getStringWithTokenReplacement(ruleId, dialog, memoryMap);
63
64 Color color = null;
65 if (params.size() >= 4) {
66 color = params.get(3).getColor(memoryMap);
67 }
68
69 TempBarEvents events = getTempEvents(market);
70
71 BarEventData data = new BarEventData(optionId, option, blurb);
72 data.optionColor = color;
73 events.events.put(optionId, data);
74 return true;
75 }
76
77}
78
79
80
81
82
83
84
85
86
boolean execute(String ruleId, InteractionDialogAPI dialog, List< Token > params, Map< String, MemoryAPI > memoryMap)
static void removeTempEvent(MarketAPI market, String optionId)