Skip to content

Commit 6aae6d8

Browse files
committed
action refactor
1 parent f465ff2 commit 6aae6d8

27 files changed

+105
-139
lines changed

blade-engine/src/com/bladecoder/engine/actions/Action.java

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,18 +21,16 @@
2121
import com.bladecoder.engine.actions.Param;
2222

2323
public interface Action {
24-
public void run();
25-
26-
public void setParams(HashMap<String, String> params);
27-
2824
/**
29-
* If this method returns true, the verb must stops the execution and wait
30-
* for the action to call the cb.resume()
25+
* Execute the action
3126
*
3227
* @param cb
33-
* @return
28+
* @return If returns true, the verb must stops the execution and wait
29+
* for the action to call the cb.resume()
3430
*/
35-
public boolean waitForFinish(ActionCallback cb);
31+
public boolean run(ActionCallback cb);
32+
33+
public void setParams(HashMap<String, String> params);
3634

3735
public String getInfo();
3836

blade-engine/src/com/bladecoder/engine/actions/BaseCallbackAction.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,10 @@ public void resume() {
4141
cb2.resume();
4242
}
4343
}
44-
45-
@Override
46-
public boolean waitForFinish(ActionCallback cb) {
44+
45+
public void setVerbCb(ActionCallback cb) {
4746
this.verbCb = cb;
48-
49-
return wait;
50-
}
47+
}
5148

5249
public void setWait(boolean wait) {
5350
this.wait = wait;

blade-engine/src/com/bladecoder/engine/actions/CameraAction.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,6 @@
1717

1818
import java.util.HashMap;
1919

20-
import com.bladecoder.engine.actions.BaseCallbackAction;
21-
import com.bladecoder.engine.actions.Param;
22-
2320
import com.badlogic.gdx.math.Vector2;
2421
import com.badlogic.gdx.utils.Json;
2522
import com.badlogic.gdx.utils.JsonValue;
@@ -28,7 +25,6 @@
2825
import com.bladecoder.engine.model.SceneCamera;
2926
import com.bladecoder.engine.model.SpriteActor;
3027
import com.bladecoder.engine.model.World;
31-
import com.bladecoder.engine.util.EngineLogger;
3228

3329
public class CameraAction extends BaseCallbackAction {
3430
public static final String INFO = "Set/Animates the camera position and zoom. Also can stablish the follow character parameter";
@@ -73,8 +69,8 @@ public void setParams(HashMap<String, String> params) {
7369
}
7470

7571
@Override
76-
public void run() {
77-
EngineLogger.debug("CAMERA_ACTION");
72+
public boolean run(ActionCallback cb) {
73+
setVerbCb(cb);
7874

7975
float scale = EngineAssetManager.getInstance().getScale();
8076

@@ -103,6 +99,8 @@ public void run() {
10399
} else {
104100
camera.startAnimation(pos.x * scale, pos.y * scale, zoom, duration, getWait()?this:null);
105101
}
102+
103+
return getWait();
106104
}
107105

108106

blade-engine/src/com/bladecoder/engine/actions/CancelVerbAction.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@ public void setParams(HashMap<String, String> params) {
5050
}
5151

5252
@Override
53-
public void run() {
53+
public boolean run(ActionCallback cb) {
54+
5455
if(actorId != null) {
5556
Actor actor = World.getInstance().getCurrentScene().getActor(actorId, true);
5657

@@ -59,6 +60,8 @@ public void run() {
5960
Scene s = World.getInstance().getCurrentScene();
6061
s.getVerbManager().cancelVerb(verb, s.getState(), target);
6162
}
63+
64+
return false;
6265
}
6366

6467
@Override
@@ -71,9 +74,4 @@ public Param[] getParams() {
7174
return PARAMS;
7275
}
7376

74-
@Override
75-
public boolean waitForFinish(ActionCallback cb) {
76-
return false;
77-
}
78-
7977
}

blade-engine/src/com/bladecoder/engine/actions/DialogOptionAction.java

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -62,15 +62,15 @@ public void setParams(HashMap<String, String> params) {
6262
}
6363

6464
@Override
65-
public void run() {
65+
public boolean run(ActionCallback cb) {
6666

6767
SpriteActor actor = (SpriteActor) World.getInstance().getCurrentScene()
6868
.getActor(actorId, false);
6969
Dialog d = actor.getDialog(dialog);
7070

7171
if (d == null) {
7272
EngineLogger.error("DialogOptionAction: Dialog '" + dialog + "' not found");
73-
return;
73+
return false;
7474
}
7575

7676
DialogOption o = null;
@@ -80,7 +80,7 @@ public void run() {
8080

8181
if (o == null) {
8282
EngineLogger.error("DialogOptionAction: Option '" + option + "' not found");
83-
return;
83+
return false;
8484
}
8585
}
8686

@@ -91,6 +91,8 @@ public void run() {
9191
World.getInstance().setCurrentDialog(actor.getDialog(dialog));
9292
d.setCurrentOption(o);
9393
}
94+
95+
return false;
9496
}
9597

9698

@@ -103,9 +105,4 @@ public String getInfo() {
103105
public Param[] getParams() {
104106
return PARAMS;
105107
}
106-
107-
@Override
108-
public boolean waitForFinish(ActionCallback cb) {
109-
return false;
110-
}
111108
}

blade-engine/src/com/bladecoder/engine/actions/DropItemAction.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -46,14 +46,14 @@ public void setParams(HashMap<String, String> params) {
4646
}
4747

4848
@Override
49-
public void run() {
49+
public boolean run(ActionCallback cb) {
5050
float scale = EngineAssetManager.getInstance().getScale();
5151

5252
Actor actor = World.getInstance().getInventory().getItem(itemId);
5353

5454
if(actor==null) {
5555
EngineLogger.error(MessageFormat.format("DropItemAction - Item not found: {0}", itemId));
56-
return;
56+
return false;
5757
}
5858

5959
World.getInstance().getInventory().removeItem(itemId);
@@ -66,6 +66,8 @@ public void run() {
6666

6767
if(pos != null)
6868
((SpriteActor)actor).setPosition(pos.x * scale, pos.y * scale);
69+
70+
return false;
6971
}
7072

7173
@Override
@@ -77,9 +79,4 @@ public String getInfo() {
7779
public Param[] getParams() {
7880
return PARAMS;
7981
}
80-
81-
@Override
82-
public boolean waitForFinish(ActionCallback cb) {
83-
return false;
84-
}
8582
}

blade-engine/src/com/bladecoder/engine/actions/FrameAnimationAction.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import com.bladecoder.engine.actions.Action;
2222
import com.bladecoder.engine.actions.BaseCallbackAction;
2323
import com.bladecoder.engine.actions.Param;
24-
2524
import com.badlogic.gdx.utils.Json;
2625
import com.badlogic.gdx.utils.JsonValue;
2726
import com.bladecoder.engine.actions.Param.Type;
@@ -99,7 +98,8 @@ public void setParams(HashMap<String, String> params) {
9998
}
10099

101100
@Override
102-
public void run() {
101+
public boolean run(ActionCallback cb) {
102+
setVerbCb(cb);
103103
EngineLogger.debug(MessageFormat.format("SET_FRAMEANIMATION_ACTION: {0}", fa));
104104

105105
float scale = EngineAssetManager.getInstance().getScale();
@@ -113,6 +113,8 @@ else if (setPos == SET_POS_RELATIVE) {
113113
}
114114

115115
actor.startFrameAnimation(fa, repeat, count, getWait()?this:null);
116+
117+
return getWait();
116118
}
117119

118120
@Override

blade-engine/src/com/bladecoder/engine/actions/GotoAction.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919

2020
import com.bladecoder.engine.actions.BaseCallbackAction;
2121
import com.bladecoder.engine.actions.Param;
22-
2322
import com.badlogic.gdx.math.Rectangle;
2423
import com.badlogic.gdx.math.Vector2;
2524
import com.badlogic.gdx.utils.Json;
@@ -44,7 +43,9 @@ public class GotoAction extends BaseCallbackAction {
4443
private String targetId;
4544

4645
@Override
47-
public void run() {
46+
public boolean run(ActionCallback cb) {
47+
setVerbCb(cb);
48+
4849
float scale = EngineAssetManager.getInstance().getScale();
4950

5051
SpriteActor actor = (SpriteActor) World.getInstance().getCurrentScene().getActor(actorId, false);
@@ -59,6 +60,8 @@ public void run() {
5960
}
6061
} else
6162
actor.goTo(new Vector2(pos.x * scale, pos.y * scale), getWait()?this:null);
63+
64+
return getWait();
6265
}
6366

6467
@Override

blade-engine/src/com/bladecoder/engine/actions/LeaveAction.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,16 @@ public class LeaveAction implements Action {
3737
String chapter;
3838

3939
@Override
40-
public void run() {
40+
public boolean run(ActionCallback cb) {
41+
4142
EngineLogger.debug("LEAVE ACTION");
4243

4344
if(chapter == null || chapter.isEmpty())
4445
World.getInstance().setCurrentScene(scene);
4546
else
4647
World.getInstance().loadXMLChapter(chapter, scene);
48+
49+
return false;
4750
}
4851

4952
@Override
@@ -63,8 +66,4 @@ public Param[] getParams() {
6366
return PARAMS;
6467
}
6568

66-
@Override
67-
public boolean waitForFinish(ActionCallback cb) {
68-
return false;
69-
}
7069
}

blade-engine/src/com/bladecoder/engine/actions/LookAtAction.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,8 @@ public void setParams(HashMap<String, String> params) {
6363
}
6464

6565
@Override
66-
public void run() {
66+
public boolean run(ActionCallback cb) {
67+
6768
EngineLogger.debug("LOOKAT ACTION");
6869
Actor actor = (Actor) World.getInstance().getCurrentScene().getActor(actorId, true);
6970

@@ -81,6 +82,8 @@ else if(actor!=null && player != null) {
8182
if(text !=null)
8283
World.getInstance().getTextManager().addSubtitle(text, TextManager.POS_SUBTITLE,
8384
TextManager.POS_SUBTITLE, false, Text.Type.RECTANGLE, Color.BLACK, null);
85+
86+
return false;
8487
}
8588

8689

@@ -93,9 +96,4 @@ public String getInfo() {
9396
public Param[] getParams() {
9497
return PARAMS;
9598
}
96-
97-
@Override
98-
public boolean waitForFinish(ActionCallback cb) {
99-
return false;
100-
}
10199
}

0 commit comments

Comments
 (0)