summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/com/fourisland/fourpuzzle/Display.java8
-rwxr-xr-xsrc/com/fourisland/fourpuzzle/database/Database.java6
-rw-r--r--src/com/fourisland/fourpuzzle/database/Transitions.java58
-rwxr-xr-xsrc/com/fourisland/fourpuzzle/gamestate/GameOverGameState.java2
-rwxr-xr-xsrc/com/fourisland/fourpuzzle/gamestate/TitleScreenGameState.java4
-rwxr-xr-xsrc/com/fourisland/fourpuzzle/gamestate/mapview/event/SpecialEvent.java6
-rw-r--r--src/com/fourisland/fourpuzzle/transition/TransitionPair.java38
7 files changed, 64 insertions, 58 deletions
diff --git a/src/com/fourisland/fourpuzzle/Display.java b/src/com/fourisland/fourpuzzle/Display.java index cf1cb2d..a8c9a37 100755 --- a/src/com/fourisland/fourpuzzle/Display.java +++ b/src/com/fourisland/fourpuzzle/Display.java
@@ -11,6 +11,7 @@ import com.fourisland.fourpuzzle.transition.MultidirectionalTransition;
11import com.fourisland.fourpuzzle.transition.OutTransition; 11import com.fourisland.fourpuzzle.transition.OutTransition;
12import com.fourisland.fourpuzzle.transition.Transition; 12import com.fourisland.fourpuzzle.transition.Transition;
13import com.fourisland.fourpuzzle.transition.TransitionDirection; 13import com.fourisland.fourpuzzle.transition.TransitionDirection;
14import com.fourisland.fourpuzzle.transition.TransitionPair;
14import com.fourisland.fourpuzzle.transition.TransitionUnsupportedException; 15import com.fourisland.fourpuzzle.transition.TransitionUnsupportedException;
15import com.fourisland.fourpuzzle.util.Renderable; 16import com.fourisland.fourpuzzle.util.Renderable;
16import java.awt.Color; 17import java.awt.Color;
@@ -208,7 +209,7 @@ public class Display {
208 } 209 }
209 210
210 private static Executor transitioner = Executors.newSingleThreadExecutor(); 211 private static Executor transitioner = Executors.newSingleThreadExecutor();
211 public static void transition(final Transition out, final GameState gameState, final Transition in, boolean thread) 212 public static void transition(final OutTransition out, final GameState gameState, final InTransition in, boolean thread)
212 { 213 {
213 Runnable transitionCall = new Runnable() { 214 Runnable transitionCall = new Runnable() {
214 public void run() 215 public void run()
@@ -237,6 +238,11 @@ public class Display {
237 } 238 }
238 } 239 }
239 240
241 public static void transition(TransitionPair trans, GameState gameState, boolean thread)
242 {
243 transition(trans.getOutTransition(), gameState, trans.getInTransition(), thread);
244 }
245
240 public static boolean isTransitionRunning() 246 public static boolean isTransitionRunning()
241 { 247 {
242 return transitionRunning; 248 return transitionRunning;
diff --git a/src/com/fourisland/fourpuzzle/database/Database.java b/src/com/fourisland/fourpuzzle/database/Database.java index 922ab60..03405c8 100755 --- a/src/com/fourisland/fourpuzzle/database/Database.java +++ b/src/com/fourisland/fourpuzzle/database/Database.java
@@ -6,7 +6,7 @@
6package com.fourisland.fourpuzzle.database; 6package com.fourisland.fourpuzzle.database;
7 7
8import com.fourisland.fourpuzzle.gamestate.mapview.Map; 8import com.fourisland.fourpuzzle.gamestate.mapview.Map;
9import com.fourisland.fourpuzzle.transition.Transition; 9import com.fourisland.fourpuzzle.transition.TransitionPair;
10import java.util.HashMap; 10import java.util.HashMap;
11 11
12/** 12/**
@@ -77,7 +77,7 @@ public class Database {
77 key.setValue(value); 77 key.setValue(value);
78 } 78 }
79 79
80 public static Transition getTransition(Transitions key) 80 public static TransitionPair getTransition(Transitions key)
81 { 81 {
82 return key.getValue().copy(); 82 return key.getValue().copy();
83 } 83 }
@@ -96,7 +96,7 @@ public class Database {
96 * @param key The transition to change 96 * @param key The transition to change
97 * @param value The transition to change it to 97 * @param value The transition to change it to
98 */ 98 */
99 public static void setTransition(Transitions key, Transition value) 99 public static void setTransition(Transitions key, TransitionPair value)
100 { 100 {
101 key.setValue(value); 101 key.setValue(value);
102 } 102 }
diff --git a/src/com/fourisland/fourpuzzle/database/Transitions.java b/src/com/fourisland/fourpuzzle/database/Transitions.java index 98345a9..74c0674 100644 --- a/src/com/fourisland/fourpuzzle/database/Transitions.java +++ b/src/com/fourisland/fourpuzzle/database/Transitions.java
@@ -6,71 +6,33 @@
6package com.fourisland.fourpuzzle.database; 6package com.fourisland.fourpuzzle.database;
7 7
8import com.fourisland.fourpuzzle.transition.FadeTransition; 8import com.fourisland.fourpuzzle.transition.FadeTransition;
9import com.fourisland.fourpuzzle.transition.InTransition;
10import com.fourisland.fourpuzzle.transition.MultidirectionalTransition;
11import com.fourisland.fourpuzzle.transition.OutTransition;
12import com.fourisland.fourpuzzle.transition.SquareTransition; 9import com.fourisland.fourpuzzle.transition.SquareTransition;
13import com.fourisland.fourpuzzle.transition.Transition;
14import com.fourisland.fourpuzzle.transition.TransitionDirection; 10import com.fourisland.fourpuzzle.transition.TransitionDirection;
15import com.fourisland.fourpuzzle.transition.TransitionUnsupportedException; 11import com.fourisland.fourpuzzle.transition.TransitionPair;
16 12
17/** 13/**
18 * 14 *
19 * @author hatkirby 15 * @author hatkirby
20 */ 16 */
21public enum Transitions { 17public enum Transitions {
22 TitleExit(TransitionDirection.Out, new FadeTransition(TransitionDirection.Out)),
23 TitleToMap(TransitionDirection.In, new FadeTransition(TransitionDirection.In)),
24 MapExit(TransitionDirection.Out, new SquareTransition(TransitionDirection.Out)),
25 MapEnter(TransitionDirection.In, new SquareTransition(TransitionDirection.In)),
26 MapToTitle(TransitionDirection.Out, new FadeTransition(TransitionDirection.Out)),
27 TitleEnter(TransitionDirection.In, new FadeTransition(TransitionDirection.In)),
28 MapToGameOver(TransitionDirection.Out, new FadeTransition(TransitionDirection.Out)),
29 GameOverEnter(TransitionDirection.In, new FadeTransition(TransitionDirection.In)),
30 GameOverToTitle(TransitionDirection.Out, new FadeTransition(TransitionDirection.Out));
31 18
32 private final TransitionDirection dir; 19 Generic(new TransitionPair(new FadeTransition(TransitionDirection.Out), new FadeTransition(TransitionDirection.In))),
33 private Transition trans; 20 Map(new TransitionPair(new SquareTransition(TransitionDirection.Out), new SquareTransition(TransitionDirection.In)));
34 private Transitions(TransitionDirection dir, Transition trans) 21
22 private TransitionPair trans;
23 private Transitions(TransitionPair trans)
35 { 24 {
36 this.dir = dir; 25 this.trans = trans;
37
38 if (isTransitionSupported(dir, trans))
39 {
40 this.trans = trans;
41 } else {
42 throw new TransitionUnsupportedException(trans.getClass().getName(), dir);
43 }
44 } 26 }
45 27
46 Transition getValue() 28 TransitionPair getValue()
47 { 29 {
48 return trans; 30 return trans;
49 } 31 }
50 32
51 void setValue(Transition trans) 33 void setValue(TransitionPair trans)
52 { 34 {
53 if (isTransitionSupported(dir, trans)) 35 this.trans = trans;
54 {
55 this.trans = trans;
56 } else {
57 throw new TransitionUnsupportedException(trans.getClass().getName(), dir);
58 }
59 } 36 }
60 37
61 private boolean isTransitionSupported(TransitionDirection dir, Transition trans)
62 {
63 if (trans instanceof MultidirectionalTransition)
64 {
65 return (((MultidirectionalTransition) trans).getDirection() == dir);
66 } else if (trans instanceof OutTransition)
67 {
68 return (dir == TransitionDirection.Out);
69 } else if (trans instanceof InTransition)
70 {
71 return (dir == TransitionDirection.In);
72 }
73
74 return false;
75 }
76} 38}
diff --git a/src/com/fourisland/fourpuzzle/gamestate/GameOverGameState.java b/src/com/fourisland/fourpuzzle/gamestate/GameOverGameState.java index 670d900..692554e 100755 --- a/src/com/fourisland/fourpuzzle/gamestate/GameOverGameState.java +++ b/src/com/fourisland/fourpuzzle/gamestate/GameOverGameState.java
@@ -38,7 +38,7 @@ public class GameOverGameState implements GameState {
38 { 38 {
39 Game.setSaveFile(new SaveFile()); 39 Game.setSaveFile(new SaveFile());
40 40
41 Display.transition(Database.getTransition(Transitions.GameOverToTitle), new TitleScreenGameState(), Database.getTransition(Transitions.TitleEnter), true); 41 Display.transition(Database.getTransition(Transitions.Generic), new TitleScreenGameState(), true);
42 } 42 }
43 } 43 }
44 44
diff --git a/src/com/fourisland/fourpuzzle/gamestate/TitleScreenGameState.java b/src/com/fourisland/fourpuzzle/gamestate/TitleScreenGameState.java index a72a22a..cedf5a6 100755 --- a/src/com/fourisland/fourpuzzle/gamestate/TitleScreenGameState.java +++ b/src/com/fourisland/fourpuzzle/gamestate/TitleScreenGameState.java
@@ -56,7 +56,7 @@ public class TitleScreenGameState implements GameState {
56 { 56 {
57 Game.setSaveFile(new SaveFile()); 57 Game.setSaveFile(new SaveFile());
58 58
59 Display.transition(Database.getTransition(Transitions.TitleExit), new MapViewGameState("TestMap", 1, 2), Database.getTransition(Transitions.TitleToMap), true); 59 Display.transition(Database.getTransition(Transitions.Generic), new MapViewGameState("TestMap", 1, 2), true);
60 } else if (choices.getSelected().equals(Database.getVocab(Vocabulary.LoadGame))) 60 } else if (choices.getSelected().equals(Database.getVocab(Vocabulary.LoadGame)))
61 { 61 {
62 // Do nothing, yet 62 // Do nothing, yet
@@ -65,7 +65,7 @@ public class TitleScreenGameState implements GameState {
65 new Thread(new Runnable() { 65 new Thread(new Runnable() {
66 public void run() { 66 public void run() {
67 try { 67 try {
68 Display.transition(Database.getTransition(Transitions.TitleExit)); 68 Display.transition(Database.getTransition(Transitions.Generic).getOutTransition());
69 } catch (InterruptedException ex) { 69 } catch (InterruptedException ex) {
70 Thread.currentThread().interrupt(); 70 Thread.currentThread().interrupt();
71 } 71 }
diff --git a/src/com/fourisland/fourpuzzle/gamestate/mapview/event/SpecialEvent.java b/src/com/fourisland/fourpuzzle/gamestate/mapview/event/SpecialEvent.java index ebb0e27..c3bec32 100755 --- a/src/com/fourisland/fourpuzzle/gamestate/mapview/event/SpecialEvent.java +++ b/src/com/fourisland/fourpuzzle/gamestate/mapview/event/SpecialEvent.java
@@ -157,7 +157,7 @@ public class SpecialEvent {
157 { 157 {
158 Audio.stopMusic(); 158 Audio.stopMusic();
159 159
160 Display.transition(Database.getTransition(Transitions.MapToGameOver), new GameOverGameState(), Database.getTransition(Transitions.GameOverEnter), false); 160 Display.transition(Database.getTransition(Transitions.Generic), new GameOverGameState(), false);
161 } 161 }
162 162
163 /** 163 /**
@@ -169,7 +169,7 @@ public class SpecialEvent {
169 { 169 {
170 Audio.stopMusic(); 170 Audio.stopMusic();
171 171
172 Display.transition(Database.getTransition(Transitions.MapToTitle), new TitleScreenGameState(), Database.getTransition(Transitions.TitleEnter), false); 172 Display.transition(Database.getTransition(Transitions.Generic), new TitleScreenGameState(), false);
173 } 173 }
174 174
175 private boolean startedTransition = false; 175 private boolean startedTransition = false;
@@ -211,7 +211,7 @@ public class SpecialEvent {
211 { 211 {
212 if (!startedTransition) 212 if (!startedTransition)
213 { 213 {
214 Display.transition(Database.getTransition(Transitions.MapExit), new MapViewGameState(map, x, y), Database.getTransition(Transitions.MapEnter), false); 214 Display.transition(Database.getTransition(Transitions.Map), new MapViewGameState(map, x, y), false);
215 } else { 215 } else {
216 Game.setGameState(new MapViewGameState(map, x, y)); 216 Game.setGameState(new MapViewGameState(map, x, y));
217 } 217 }
diff --git a/src/com/fourisland/fourpuzzle/transition/TransitionPair.java b/src/com/fourisland/fourpuzzle/transition/TransitionPair.java new file mode 100644 index 0000000..a73e671 --- /dev/null +++ b/src/com/fourisland/fourpuzzle/transition/TransitionPair.java
@@ -0,0 +1,38 @@
1/*
2 * To change this template, choose Tools | Templates
3 * and open the template in the editor.
4 */
5
6package com.fourisland.fourpuzzle.transition;
7
8/**
9 *
10 * @author hatkirby
11 */
12public class TransitionPair {
13
14 private OutTransition out;
15 private InTransition in;
16
17 public TransitionPair(OutTransition out, InTransition in)
18 {
19 this.out = out;
20 this.in = in;
21 }
22
23 public OutTransition getOutTransition()
24 {
25 return out;
26 }
27
28 public InTransition getInTransition()
29 {
30 return in;
31 }
32
33 public TransitionPair copy()
34 {
35 return new TransitionPair((OutTransition) out.copy(), (InTransition) in.copy());
36 }
37
38}