1
1
package fr .ryfax .rge .engine .global ;
2
2
3
3
4
+ import fr .ryfax .rge .engine .global .listeners .KeyboardListener ;
5
+ import fr .ryfax .rge .engine .global .listeners .MouseListener ;
4
6
import fr .ryfax .rge .engine .global .scenes .SceneBuilder ;
5
7
import fr .ryfax .rge .engine .global .scenes .SceneManager ;
6
8
import fr .ryfax .rge .engine .utils .Logger ;
7
9
import fr .ryfax .rge .engine .utils .drawing .Drawer ;
8
10
import fr .ryfax .rge .engine .utils .drawing .font .FontLoader ;
9
11
10
12
import java .awt .*;
13
+ import java .util .ArrayList ;
11
14
import java .util .HashMap ;
12
15
13
16
import static fr .ryfax .rge .engine .utils .Sleep .*;
@@ -30,6 +33,11 @@ public class Engine {
30
33
private final Logger logger = new Logger (this );
31
34
private final Window window ;
32
35
36
+ private final ArrayList <KeyboardListener > keyboardListeners = new ArrayList <>();
37
+ private final ArrayList <MouseListener > mouseListeners = new ArrayList <>();
38
+ private final ArrayList <Integer > buttonsPressed = new ArrayList <>();
39
+
40
+ private Point mousePosition = new Point (0 , 0 );
33
41
private boolean isRunning = true , pause = false ;
34
42
private final double UPDATE_OBJECTIVE = 1 /60D ;
35
43
@@ -95,6 +103,7 @@ private synchronized void loop() {
95
103
}
96
104
97
105
private synchronized void update (int tick ) {
106
+ mousePosition = window .getCanvas ().getMousePosition ();
98
107
sceneManager .getCurrentScene ().update (tick );
99
108
}
100
109
@@ -111,7 +120,6 @@ private synchronized void draw() {
111
120
private void loadText () {
112
121
fontLoader .setPath ("fr/ryfax/rge/assets/fonts/ascii.png" );
113
122
fontLoader .setFontColor (new Color (255 , 255 , 255 ));
114
- fontLoader .setBackgroundColor (new Color (0 , 0 , 0 , 100 ));
115
123
116
124
HashMap <Character , Integer > chars = new HashMap <>();
117
125
chars .put ('i' , 8 );
@@ -125,18 +133,30 @@ private void loadText() {
125
133
126
134
fontLoader .setSpacingChar (4 );
127
135
fontLoader .setSpecialCharsSize (chars );
128
- fontLoader .load (FontLoader .RGE_DEFAULT_FONT );
136
+ fontLoader .load (FontLoader .RGE_DEFAULT );
129
137
130
138
fontLoader .setShadow (2 , 2 );
131
139
fontLoader .load (FontLoader .RGE_SHADOW );
132
140
141
+ fontLoader .setBackgroundColor (new Color (0 , 0 , 0 , 100 ));
142
+ fontLoader .load (FontLoader .RGE_SHADOW_BACKGROUND );
143
+
144
+ fontLoader .setShadow (0 , 0 );
145
+ fontLoader .load (FontLoader .RGE_DEFAULT_BACKGROUND );
133
146
}
134
147
148
+ public void addListener (KeyboardListener keyboardListener ) { keyboardListeners .add (keyboardListener ); }
149
+ public void addListener (MouseListener mouseListener ) { mouseListeners .add (mouseListener ); }
150
+
135
151
/*
136
152
* Getters
137
153
*/
154
+ public ArrayList <KeyboardListener > getKeyboardListeners () { return keyboardListeners ; }
155
+ public ArrayList <MouseListener > getMouseListeners () { return mouseListeners ; }
156
+ public ArrayList <Integer > getButtonsPressed () { return buttonsPressed ; }
138
157
public SceneBuilder getSceneBuilder () { return sceneBuilder ; }
139
158
public SceneManager getSceneManager () { return sceneManager ; }
159
+ public Point getMousePosition () { return mousePosition ; }
140
160
public Parameters getParameters () { return parameters ; }
141
161
public Statistics getStatistics () { return statistics ; }
142
162
public FontLoader getFontLoader () { return fontLoader ; }
0 commit comments