1010import javax .imageio .ImageIO ;
1111
1212import com .redomar .game .entities .Entity ;
13+ import com .redomar .game .entities .Player ;
1314import com .redomar .game .entities .PlayerMP ;
1415import com .redomar .game .gfx .Screen ;
1516import com .redomar .game .level .tiles .Tile ;
@@ -19,7 +20,7 @@ public class LevelHandler {
1920 private byte [] tiles ;
2021 public int width ;
2122 public int height ;
22- public List <Entity > entities = new ArrayList <Entity >();
23+ private List <Entity > entities = new ArrayList <Entity >();
2324 private String imagePath ;
2425 private BufferedImage image ;
2526
@@ -91,9 +92,13 @@ private void generateLevel() {
9192 }
9293 }
9394 }
95+
96+ public synchronized List <Entity >getEntities (){
97+ return this .entities ;
98+ }
9499
95100 public void tick () {
96- for (Entity e : entities ) {
101+ for (Entity e : getEntities () ) {
97102 e .tick ();
98103 }
99104
@@ -130,7 +135,7 @@ public void renderTiles(Screen screen, int xOffset, int yOffset) {
130135 }
131136
132137 public void renderEntities (Screen screen ) {
133- for (Entity e : entities ) {
138+ for (Entity e : getEntities () ) {
134139 e .render (screen );
135140 }
136141 }
@@ -143,23 +148,23 @@ public Tile getTile(int x, int y) {
143148 }
144149
145150 public void addEntity (Entity entity ) {
146- this .entities .add (entity );
151+ this .getEntities () .add (entity );
147152 }
148153
149154 public void removeEntity (String username ) {
150155 int index = 0 ;
151- for (Entity e : entities ){
156+ for (Entity e : getEntities () ){
152157 if (e instanceof PlayerMP && ((PlayerMP )e ).getUsername ().equalsIgnoreCase (username )){
153158 break ;
154159 }
155160 index ++;
156161 }
157- this .entities .remove (index );
162+ this .getEntities () .remove (index );
158163 }
159164
160165 private int getPlayerMPIndex (String username ){
161166 int index = 0 ;
162- for (Entity e : entities ){
167+ for (Entity e : getEntities () ){
163168 if (e instanceof PlayerMP && ((PlayerMP )e ).getUsername ().equalsIgnoreCase (username )){
164169 break ;
165170 }
@@ -168,10 +173,14 @@ private int getPlayerMPIndex(String username){
168173 return index ;
169174 }
170175
171- public void movePlayer (String username , int x , int y ){
176+ public void movePlayer (String username , int x , int y , int numSteps , boolean isMoving , int movingDir ){
172177 int index = getPlayerMPIndex (username );
173- this .entities .get (index ).x = x ;
174- this .entities .get (index ).y = y ;
178+ PlayerMP player = (PlayerMP )this .getEntities ().get (index );
179+ player .x = x ;
180+ player .y = y ;
181+ player .setNumSteps (numSteps );
182+ player .setMoving (isMoving );
183+ player .setMovingDir (movingDir );
175184 }
176185
177186}
0 commit comments