25 public static interface SalvageSpecialData {
26 SalvageSpecialPlugin createSpecialPlugin();
30 public static interface SalvageSpecialPlugin {
32 void optionSelected(String optionText, Object optionData);
34 boolean endWithContinue();
35 boolean shouldShowAgain();
36 boolean shouldAbortSalvageAndRemoveEntity();
43 private Map<String, MemoryAPI> memoryMap;
44 private final SalvageSpecialPlugin special;
45 private final Object specialData;
47 public SalvageSpecialDialogPlugin(
InteractionDialogPlugin originalPlugin, SalvageSpecialPlugin special, Object specialData, Map<String, MemoryAPI> memoryMap) {
48 this.originalPlugin = originalPlugin;
49 this.special = special;
50 this.specialData = specialData;
51 this.memoryMap = memoryMap;
57 special.init(dialog, specialData);
58 if (special.isDone()) {
59 endSpecial(special.endWithContinue(), special.shouldAbortSalvageAndRemoveEntity());
66 public void optionSelected(String optionText, Object optionData) {
67 if (optionText !=
null) {
79 special.optionSelected(optionText, optionData);
80 if (special.isDone()) {
81 endSpecial(special.endWithContinue(), special.shouldAbortSalvageAndRemoveEntity());
89 public void endSpecial(
boolean withContinue,
boolean withAbort) {
90 if (!special.shouldShowAgain()) {
101 FireBest.
fire(
null, dialog, memoryMap,
"SalvageSpecialFinished");
103 FireBest.
fire(
null, dialog, memoryMap,
"SalvageSpecialFinishedNoContinue");
108 public void advance(
float amount) {
112 public Object getContext() {
115 public Map<String, MemoryAPI> getMemoryMap() {
118 public void optionMousedOver(String optionText, Object optionData) {
124 if (dialog ==
null)
return false;
146 SalvageSpecialPlugin special =
null;
147 if (specialData instanceof SalvageSpecialData) {
148 special = ((SalvageSpecialData) specialData).createSpecialPlugin();
151 if (special ==
null) {
152 FireBest.
fire(
null, dialog, memoryMap,
"SalvageSpecialFinishedNoContinue");
163 SalvageSpecialDialogPlugin plugin =
new SalvageSpecialDialogPlugin(originalPlugin, special, specialData, memoryMap);
LabelAPI addParagraph(String text)