From 3c795da12195af7f7fe9fc5350d6c0e02aff4550 Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Mon, 2 May 2022 19:37:50 -0400 Subject: [PATCH] Separate map-specific functionality into a Map interface --- core/src/com/redstrate/watersymbol/Map.java | 9 ++++ .../redstrate/watersymbol/maps/TestMap.java | 48 +++++++++++++++++++ .../watersymbol/screens/GameScreen.java | 41 +++------------- 3 files changed, 64 insertions(+), 34 deletions(-) create mode 100644 core/src/com/redstrate/watersymbol/Map.java create mode 100644 core/src/com/redstrate/watersymbol/maps/TestMap.java diff --git a/core/src/com/redstrate/watersymbol/Map.java b/core/src/com/redstrate/watersymbol/Map.java new file mode 100644 index 0000000..0c113ea --- /dev/null +++ b/core/src/com/redstrate/watersymbol/Map.java @@ -0,0 +1,9 @@ +package com.redstrate.watersymbol; + +import com.redstrate.watersymbol.screens.GameScreen; + +public interface Map { + public void setup(GameScreen game); + + public String getMapFilename(); +} diff --git a/core/src/com/redstrate/watersymbol/maps/TestMap.java b/core/src/com/redstrate/watersymbol/maps/TestMap.java new file mode 100644 index 0000000..b879261 --- /dev/null +++ b/core/src/com/redstrate/watersymbol/maps/TestMap.java @@ -0,0 +1,48 @@ +package com.redstrate.watersymbol.maps; + +import com.redstrate.watersymbol.Map; +import com.redstrate.watersymbol.Unit; +import com.redstrate.watersymbol.screens.GameScreen; + +public class TestMap implements Map { + + @Override + public void setup(GameScreen game) { + Unit player = new Unit(); + player.name = "Unit"; + player.positionX = 11; + player.positionY = 16; + player.team = Unit.Team.Player; + + game.units.add(player); + + Unit player2 = new Unit(); + player2.name = "Unit 2"; + player2.positionX = 11; + player2.positionY = 20; + player2.team = Unit.Team.Player; + + game.units.add(player2); + + Unit enemy = new Unit(); + enemy.name = "Bandit A"; + enemy.positionX = 15; + enemy.positionY = 18; + enemy.team = Unit.Team.Enemy; + + game.units.add(enemy); + + Unit enemy2 = new Unit(); + enemy2.name = "Bandit B"; + enemy2.positionX = 15; + enemy2.positionY = 30; + enemy2.team = Unit.Team.Enemy; + + game.units.add(enemy2); + } + + @Override + public String getMapFilename() { + return "test.tmx"; + } +} diff --git a/core/src/com/redstrate/watersymbol/screens/GameScreen.java b/core/src/com/redstrate/watersymbol/screens/GameScreen.java index 00a01c6..9f7b0b4 100644 --- a/core/src/com/redstrate/watersymbol/screens/GameScreen.java +++ b/core/src/com/redstrate/watersymbol/screens/GameScreen.java @@ -20,6 +20,7 @@ import com.badlogic.gdx.scenes.scene2d.ui.Table; import com.badlogic.gdx.scenes.scene2d.ui.TextButton; import com.badlogic.gdx.utils.ScreenUtils; import com.redstrate.watersymbol.*; +import com.redstrate.watersymbol.maps.TestMap; import org.w3c.dom.Text; import java.util.ArrayList; @@ -33,7 +34,8 @@ public class GameScreen implements Screen { OrthographicCamera camera; TiledMapRenderer tiledMapRenderer; - ArrayList units = new ArrayList<>(); + public Map map; + public ArrayList units = new ArrayList<>(); Unit.Team currentTurnTeam = Unit.Team.Player; Unit currentUnit = null; int currentUnitIndex = 0; @@ -67,41 +69,12 @@ public class GameScreen implements Screen { camera.setToOrtho(false, 800, 480); camera.zoom = 2.0f; - tiledMap = new TmxMapLoader().load("test.tmx"); + map = new TestMap(); + tiledMap = new TmxMapLoader().load(map.getMapFilename()); + map.setup(this); + tiledMapRenderer = new OrthogonalTiledMapRenderer(tiledMap); - Unit player = new Unit(); - player.name = "Unit"; - player.positionX = 11; - player.positionY = 16; - player.team = Unit.Team.Player; - - units.add(player); - - Unit player2 = new Unit(); - player2.name = "Unit 2"; - player2.positionX = 11; - player2.positionY = 20; - player2.team = Unit.Team.Player; - - units.add(player2); - - Unit enemy = new Unit(); - enemy.name = "Bandit A"; - enemy.positionX = 15; - enemy.positionY = 18; - enemy.team = Unit.Team.Enemy; - - units.add(enemy); - - Unit enemy2 = new Unit(); - enemy2.name = "Bandit B"; - enemy2.positionX = 15; - enemy2.positionY = 30; - enemy2.team = Unit.Team.Enemy; - - units.add(enemy2); - playerTexture = new Texture(Gdx.files.internal("player.png")); playerSprite = new Sprite(playerTexture); playerIdleAnimation = new Animation(0.500f, new TextureAtlas("player-idle.atlas").getRegions(), Animation.PlayMode.LOOP_PINGPONG);