From 49c220a0794add807a2925a76f4100ffe61c2377 Mon Sep 17 00:00:00 2001 From: Jantoom <75770311+Jantoom@users.noreply.github.com> Date: Wed, 3 Nov 2021 14:29:11 +1000 Subject: [PATCH] Added default exterior tiling for backyard entities. --- .../maps/_floor_plans/floor_plan_43x43_0.json | 5 ++-- .../maps/_floor_plans/floor_plan_43x43_1.json | 3 ++- .../main/com/deco2800/game/maps/Floor.java | 26 ++++++++++--------- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/source/core/assets/maps/_floor_plans/floor_plan_43x43_0.json b/source/core/assets/maps/_floor_plans/floor_plan_43x43_0.json index b8140788..6673fa4e 100644 --- a/source/core/assets/maps/_floor_plans/floor_plan_43x43_0.json +++ b/source/core/assets/maps/_floor_plans/floor_plan_43x43_0.json @@ -1,5 +1,6 @@ { - defaultTile: [tile_wood_0, 0] + defaultInteriorTile: [tile_wood_0, 0] + defaultExteriorTile: [tile_grass_0, 0] defaultWall: [object_wall_0, 0] tileMap: { _: [tile_grass_0, 0] // Grass @@ -33,7 +34,7 @@ [_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _], [_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _], [_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _], - [_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, A, A, A, A, A, A, A, A, A, ., _, _, _, _, _, _, _, _, _, _, _, _, _, _], + [_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, A, A, A, A, A, A, A, A, A, ., _, _, _, -, |, _, _, _, _, _, _, _, _, _], [_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, A, A, A, A, A, A, A, A, A, ., _, _, _, _, _, _, _, _, _, _, _, _, _, _], [_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, A, A, A, A, A, A, A, A, A, ., _, _, _, _, _, _, _, _, _, _, _, _, _, _], [_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, A, A, A, A, A, A, A, A, A, ., _, _, _, _, _, _, _, _, _, _, _, _, _, _], diff --git a/source/core/assets/maps/_floor_plans/floor_plan_43x43_1.json b/source/core/assets/maps/_floor_plans/floor_plan_43x43_1.json index 0ed5c9f9..13eaec70 100644 --- a/source/core/assets/maps/_floor_plans/floor_plan_43x43_1.json +++ b/source/core/assets/maps/_floor_plans/floor_plan_43x43_1.json @@ -1,5 +1,6 @@ { - defaultTile: [tile_wood_0, 0] + defaultInteriorTile: [tile_wood_0, 0] + defaultExteriorTile: [tile_grass_0, 0] defaultWall: [object_wall_0, 0] tileMap: { _: [tile_grass_0, 0] // Grass diff --git a/source/core/src/main/com/deco2800/game/maps/Floor.java b/source/core/src/main/com/deco2800/game/maps/Floor.java index 0797f037..fb380645 100644 --- a/source/core/src/main/com/deco2800/game/maps/Floor.java +++ b/source/core/src/main/com/deco2800/game/maps/Floor.java @@ -30,7 +30,8 @@ */ public class Floor extends RetroactiveArea implements Json.Serializable { // Defined on deserialization - private ObjectDescription defaultTile; + private ObjectDescription defaultInteriorTile; + private ObjectDescription defaultExteriorTile; private ObjectDescription defaultWall; private ObjectMap tileMap; private ObjectMap entityMap; @@ -59,7 +60,7 @@ public void create() { */ private void createAllTiles() { TextureRegion textureRegion = new TextureRegion( - ServiceLocator.getResourceService().getAsset(defaultTile.getData().getAssets()[0], Texture.class)); + ServiceLocator.getResourceService().getAsset(defaultInteriorTile.getData().getAssets()[0], Texture.class)); TiledMapTileLayer layer = new TiledMapTileLayer( dimensions.x, dimensions.y, @@ -81,7 +82,7 @@ private void createAllTiles() { } ObjectDescription entityDesc = entityMap.get(symbol); if (entityDesc != null && layer.getCell(x, y) == null) { - createGridTile(defaultTile, new GridPoint2(x, y), layer); + createGridTile(defaultExteriorTile, new GridPoint2(x, y), layer); } } } @@ -133,7 +134,7 @@ private void createAllEntities() { */ public void createGridTile(ObjectDescription tileDesc, GridPoint2 worldPos, TiledMapTileLayer layer) { if (tileDesc == null) { - tileDesc = defaultTile; + tileDesc = defaultInteriorTile; } try { TerrainTile tile = (TerrainTile) tileDesc.getData().getMethod().invoke(null, tileDesc, worldPos); @@ -230,10 +231,6 @@ private void createBeds() { bedPositions.add(playerBedPosition); } - public ObjectDescription getDefaultTile() { - return defaultTile; - } - public ObjectDescription getDefaultWall() { return defaultWall; } @@ -276,9 +273,14 @@ public void write(Json json) { public void read(Json json, JsonValue jsonData) { try { JsonValue iterator = jsonData.child(); - FileLoader.assertJsonValueName(iterator, "defaultTile"); + FileLoader.assertJsonValueName(iterator, "defaultInteriorTile"); String[] desc = iterator.asStringArray(); - defaultTile = new ObjectDescription(Home.getObject(desc[0]), Integer.parseInt(desc[1])); + defaultInteriorTile = new ObjectDescription(Home.getObject(desc[0]), Integer.parseInt(desc[1])); + + iterator = iterator.next(); + FileLoader.assertJsonValueName(iterator, "defaultExteriorTile"); + desc = iterator.asStringArray(); + defaultExteriorTile = new ObjectDescription(Home.getObject(desc[0]), Integer.parseInt(desc[1])); iterator = iterator.next(); FileLoader.assertJsonValueName(iterator, "defaultWall"); @@ -332,7 +334,7 @@ public boolean equals(Object o) { return false; } Floor floor = (Floor) o; - return Objects.equals(defaultTile, floor.defaultTile) && + return Objects.equals(defaultInteriorTile, floor.defaultInteriorTile) && Objects.equals(defaultWall, floor.defaultWall) && Objects.equals(tileMap, floor.tileMap) && Objects.equals(entityMap, floor.entityMap) && @@ -343,7 +345,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - int result = Objects.hash(defaultTile, defaultWall, tileMap, entityMap, roomMap, dimensions); + int result = Objects.hash(defaultInteriorTile, defaultWall, tileMap, entityMap, roomMap, dimensions); result = 31 * result + Arrays.deepHashCode(floorGrid); return result; }