From 1074a41cea982062859e57c683a047b388e3d7f0 Mon Sep 17 00:00:00 2001
From: Chris Kearney <chris.kearney@urbanairship.com>
Date: Thu, 4 Sep 2014 23:49:22 -0700
Subject: [PATCH] areas

---
 .gitignore                                    |   2 +-
 .../java/com/comandante/creeper/npc/Npc.java  |   1 -
 .../com/comandante/creeper/room/Area.java     |  24 +-
 .../comandante/creeper/room/BasicRoom.java    |   5 +-
 .../creeper/room/BasicRoomBuilder.java        |   8 +-
 .../comandante/creeper/room/MapMatrix.java    |   3 +-
 .../com/comandante/creeper/room/Room.java     |   4 +-
 .../comandante/creeper/room/RoomModel.java    |  12 +-
 .../creeper/room/RoomModelBuilder.java        |  18 +-
 .../creeper/room/WorldExporter.java           |  60 +-
 .../server/command/MovementCommand.java       |   8 +
 world/default.json                            | 667 ++++++++++++++++++
 world/main_floor.json                         | 667 ++++++++++++++++++
 13 files changed, 1433 insertions(+), 46 deletions(-)
 create mode 100644 world/default.json
 create mode 100644 world/main_floor.json

diff --git a/.gitignore b/.gitignore
index e484f324..bba62b6c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,4 +7,4 @@ creeperDb*
 *.pyc
 *.bak
 .idea/
-world/
+*.mapdb*
diff --git a/src/main/java/com/comandante/creeper/npc/Npc.java b/src/main/java/com/comandante/creeper/npc/Npc.java
index 5d0feb22..f4ebefe4 100644
--- a/src/main/java/com/comandante/creeper/npc/Npc.java
+++ b/src/main/java/com/comandante/creeper/npc/Npc.java
@@ -40,7 +40,6 @@ public abstract class Npc extends CreeperEntity {
     public void run() {
         if (randInt(0, 100) < 2) {
             if (!isInFight.get() && roamAreas.isPresent()) {
-                System.out.println("roam!" + getEntityId());
                 NpcMover npcMover = new NpcMover();
                 npcMover.roam(getGameManager(), getEntityId());
             }
diff --git a/src/main/java/com/comandante/creeper/room/Area.java b/src/main/java/com/comandante/creeper/room/Area.java
index 2434eab6..542893aa 100644
--- a/src/main/java/com/comandante/creeper/room/Area.java
+++ b/src/main/java/com/comandante/creeper/room/Area.java
@@ -1,6 +1,26 @@
 package com.comandante.creeper.room;
 
 public enum Area {
-    DEFAULT,
-    NEWBIE_ZONE
+    DEFAULT("default"),
+    NEWBIE_ZONE("newbie_zone");
+
+    private final String name;
+
+    Area(String name) {
+        this.name = name;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public static Area getByName(String name) {
+        Area[] values = Area.values();
+        for (Area area : values) {
+            if (area.getName().equals(name)) {
+                return area;
+            }
+        }
+        return DEFAULT;
+    }
 }
diff --git a/src/main/java/com/comandante/creeper/room/BasicRoom.java b/src/main/java/com/comandante/creeper/room/BasicRoom.java
index 715b768b..6f20ed8f 100644
--- a/src/main/java/com/comandante/creeper/room/BasicRoom.java
+++ b/src/main/java/com/comandante/creeper/room/BasicRoom.java
@@ -21,7 +21,8 @@ public class BasicRoom extends Room {
                      Optional<Integer> upId,
                      Optional<Integer> downId,
                      String roomDescription,
-                     Set<String> roomTags) {
-        super(roomId, roomTitle, floorId, northId, southId, eastId, westId, upId, downId, roomDescription, roomTags);
+                     Set<String> roomTags,
+                     Set<Area> areas) {
+        super(roomId, roomTitle, floorId, northId, southId, eastId, westId, upId, downId, roomDescription, roomTags, areas);
     }
 }
diff --git a/src/main/java/com/comandante/creeper/room/BasicRoomBuilder.java b/src/main/java/com/comandante/creeper/room/BasicRoomBuilder.java
index 1f9f1a73..3d703bd2 100644
--- a/src/main/java/com/comandante/creeper/room/BasicRoomBuilder.java
+++ b/src/main/java/com/comandante/creeper/room/BasicRoomBuilder.java
@@ -17,6 +17,7 @@ public class BasicRoomBuilder {
     private Optional<Integer> downId = Optional.absent();
     private String roomDescription;
     private Set<String> roomTags = Sets.newConcurrentHashSet();
+    private Set<Area> areas = Sets.newConcurrentHashSet();
 
 
     public BasicRoomBuilder setRoomId(Integer roomId) {
@@ -74,7 +75,12 @@ public class BasicRoomBuilder {
         return this;
     }
 
+    public BasicRoomBuilder addArea(Area area) {
+        this.areas.add(area);
+        return this;
+    }
+
     public BasicRoom createBasicRoom() {
-        return new BasicRoom(roomId, roomTitle, floorId, northId, southId, eastId, westId, upId, downId, roomDescription, roomTags);
+        return new BasicRoom(roomId, roomTitle, floorId, northId, southId, eastId, westId, upId, downId, roomDescription, roomTags, areas);
     }
 }
\ No newline at end of file
diff --git a/src/main/java/com/comandante/creeper/room/MapMatrix.java b/src/main/java/com/comandante/creeper/room/MapMatrix.java
index 90f904ca..af63cc84 100644
--- a/src/main/java/com/comandante/creeper/room/MapMatrix.java
+++ b/src/main/java/com/comandante/creeper/room/MapMatrix.java
@@ -149,7 +149,7 @@ public class MapMatrix {
     }
 
     public static MapMatrix createMatrixFromCsv(String mapCSV) {
-        List<String> rows = Arrays.asList(mapCSV.split("\n"));
+        List<String> rows = Arrays.asList(mapCSV.split("\\r?\\n"));
         ArrayList<List<Integer>> rowsList = Lists.newArrayList();
         for (String row : rows) {
             List<String> strings = Arrays.asList(row.split(",", -1));
@@ -166,7 +166,6 @@ public class MapMatrix {
         return new MapMatrix(rowsList);
     }
 
-
     private static MapMatrix getBlankMatrix(int maxRows, int maxColumns) {
         List<List<Integer>> lists = Lists.newArrayList();
         for (int i = 0; i <= maxRows; i++) {
diff --git a/src/main/java/com/comandante/creeper/room/Room.java b/src/main/java/com/comandante/creeper/room/Room.java
index ae6e80b2..d56addc1 100644
--- a/src/main/java/com/comandante/creeper/room/Room.java
+++ b/src/main/java/com/comandante/creeper/room/Room.java
@@ -49,7 +49,8 @@ public abstract class Room extends CreeperEntity {
                 Optional<Integer> westId,
                 Optional<Integer> upId,
                 Optional<Integer> downId,
-                String roomDescription, Set<String> roomTags) {
+                String roomDescription, Set<String> roomTags,
+                Set<Area> areas) {
         this.roomId = roomId;
         this.roomTitle = roomTitle;
         this.floorId = floorId;
@@ -61,6 +62,7 @@ public abstract class Room extends CreeperEntity {
         this.downId = downId;
         this.roomDescription = roomDescription;
         this.roomTags = roomTags;
+        this.areas = areas;
     }
 
     public Set<String> getRoomTags() {
diff --git a/src/main/java/com/comandante/creeper/room/RoomModel.java b/src/main/java/com/comandante/creeper/room/RoomModel.java
index 1e178a39..7e7fc13f 100644
--- a/src/main/java/com/comandante/creeper/room/RoomModel.java
+++ b/src/main/java/com/comandante/creeper/room/RoomModel.java
@@ -11,13 +11,23 @@ public class RoomModel {
     String roomDescription;
     String roomTitle;
     Set<String> roomTags;
+    Set<String> areaNames;
 
-    public RoomModel(int roomId, int floorId, String roomDescription, String roomTitle, Set<String> roomTags) {
+    public RoomModel(int roomId, int floorId, String roomDescription, String roomTitle, Set<String> roomTags, Set<String> areaNames) {
         this.roomId = roomId;
         this.floorId = floorId;
         this.roomDescription = roomDescription;
         this.roomTitle = roomTitle;
         this.roomTags = roomTags;
+        this.areaNames = areaNames;
+    }
+
+    public Set<String> getAreaNames() {
+        return areaNames;
+    }
+
+    public void setAreaNames(Set<String> areaNames) {
+        this.areaNames = areaNames;
     }
 
     public int getFloorId() {
diff --git a/src/main/java/com/comandante/creeper/room/RoomModelBuilder.java b/src/main/java/com/comandante/creeper/room/RoomModelBuilder.java
index 60bf1dbc..71f817c3 100644
--- a/src/main/java/com/comandante/creeper/room/RoomModelBuilder.java
+++ b/src/main/java/com/comandante/creeper/room/RoomModelBuilder.java
@@ -1,5 +1,7 @@
 package com.comandante.creeper.room;
 
+import com.google.common.collect.Sets;
+
 import java.util.Set;
 
 public class RoomModelBuilder {
@@ -7,7 +9,8 @@ public class RoomModelBuilder {
     private int floorId;
     private String roomDescription;
     private String roomTitle;
-    private Set<String> roomTags;
+    private Set<String> roomTags = Sets.newHashSet();
+    private Set<String> areaNames = Sets.newHashSet();
 
     public RoomModelBuilder setRoomId(int roomId) {
         this.roomId = roomId;
@@ -29,12 +32,21 @@ public class RoomModelBuilder {
         return this;
     }
 
-    public RoomModelBuilder setRoomTags(Set<String> roomTags) {
+    public void setRoomTags(Set<String> roomTags) {
         this.roomTags = roomTags;
+    }
+
+    public RoomModelBuilder addRoomTag(String roomTag) {
+        roomTags.add(roomTag);
+        return this;
+    }
+
+    public RoomModelBuilder addAreaName(String areaName) {
+        areaNames.add(areaName);
         return this;
     }
 
     public RoomModel build() {
-        return new RoomModel(roomId, floorId, roomDescription, roomTitle, roomTags);
+        return new RoomModel(roomId, floorId, roomDescription, roomTitle, roomTags, areaNames);
     }
 }
\ No newline at end of file
diff --git a/src/main/java/com/comandante/creeper/room/WorldExporter.java b/src/main/java/com/comandante/creeper/room/WorldExporter.java
index 0ea432d7..0535d14c 100644
--- a/src/main/java/com/comandante/creeper/room/WorldExporter.java
+++ b/src/main/java/com/comandante/creeper/room/WorldExporter.java
@@ -71,6 +71,9 @@ public class WorldExporter {
                 roomModelBuilder.setRoomTitle(room.getRoomTitle());
                 roomModelBuilder.setRoomId(room.getRoomId());
                 roomModelBuilder.setRoomTags(room.getRoomTags());
+                for (Area area: room.getAreas()) {
+                    roomModelBuilder.addAreaName(area.getName());
+                }
                 return roomModelBuilder.build();
             }
         };
@@ -89,32 +92,39 @@ public class WorldExporter {
                 for (String tag : roomModel.getRoomTags()) {
                     basicRoomBuilder.addTag(tag);
                 }
-                Integer north = mapMatrix.getNorth(roomModel.getRoomId());
-                if (north > 0) {
-                    basicRoomBuilder.setNorthId(Optional.of(north));
-                }
-                Integer east = mapMatrix.getEast(roomModel.getRoomId());
-                if (east > 0) {
-                    basicRoomBuilder.setEastId(Optional.of(east));
-                }
-                Integer south = mapMatrix.getSouth(roomModel.getRoomId());
-                if (south > 0) {
-                    basicRoomBuilder.setSouthId(Optional.of(south));
-                }
-                Integer west = mapMatrix.getWest(roomModel.getRoomId());
-                if (west > 0) {
-                    basicRoomBuilder.setWestId(Optional.of(west));
+                for (String areaName: roomModel.getAreaNames()) {
+                    basicRoomBuilder.addArea(Area.getByName(areaName));
                 }
+                configureExits(basicRoomBuilder, mapMatrix, roomModel.getRoomId());
                 return basicRoomBuilder.createBasicRoom();
             }
         };
     }
 
+    private void configureExits(BasicRoomBuilder basicRoomBuilder, MapMatrix mapMatrix, int roomId) {
+        Integer north = mapMatrix.getNorth(roomId);
+        if (north > 0) {
+            basicRoomBuilder.setNorthId(Optional.of(north));
+        }
+        Integer east = mapMatrix.getEast(roomId);
+        if (east > 0) {
+            basicRoomBuilder.setEastId(Optional.of(east));
+        }
+        Integer south = mapMatrix.getSouth(roomId);
+        if (south > 0) {
+            basicRoomBuilder.setSouthId(Optional.of(south));
+        }
+        Integer west = mapMatrix.getWest(roomId);
+        if (west > 0) {
+            basicRoomBuilder.setWestId(Optional.of(west));
+        }
+    }
+
     public MapMatrix readWorldFromDisk() throws FileNotFoundException {
         FloorModel floorModel = new GsonBuilder().create().fromJson(Files.newReader(new File(("world/main_floor.json")), Charset.defaultCharset()), FloorModel.class);
         MapMatrix matrixFromCsv = MapMatrix.createMatrixFromCsv(floorModel.getRawMatrixCsv());
         Set<Room> rooms = Sets.newHashSet();
-        if (floorModel.getRoomModels().size() == 0) {
+        if (floorModel.getRoomModels() == null || floorModel.getRoomModels().size() == 0) {
             Iterator<List<Integer>> rows = matrixFromCsv.getRows();
             while (rows.hasNext()) {
                 List<Integer> row = rows.next();
@@ -127,22 +137,8 @@ public class WorldExporter {
                     basicRoomBuilder.setRoomId(roomId);
                     basicRoomBuilder.setRoomTitle("This is a blank title.");
                     basicRoomBuilder.setRoomDescription("This is a blank Description.\nWords should go here, ideally.");
-                    Integer north = matrixFromCsv.getNorth(roomId);
-                    if (north > 0) {
-                        basicRoomBuilder.setNorthId(Optional.of(north));
-                    }
-                    Integer east = matrixFromCsv.getEast(roomId);
-                    if (east > 0) {
-                        basicRoomBuilder.setEastId(Optional.of(east));
-                    }
-                    Integer south = matrixFromCsv.getSouth(roomId);
-                    if (south > 0) {
-                        basicRoomBuilder.setSouthId(Optional.of(south));
-                    }
-                    Integer west = matrixFromCsv.getWest(roomId);
-                    if (west > 0) {
-                        basicRoomBuilder.setWestId(Optional.of(west));
-                    }
+                    basicRoomBuilder.addArea(Area.DEFAULT);
+                    configureExits(basicRoomBuilder, matrixFromCsv, roomId);
                     rooms.add(basicRoomBuilder.createBasicRoom());
                 }
             }
diff --git a/src/main/java/com/comandante/creeper/server/command/MovementCommand.java b/src/main/java/com/comandante/creeper/server/command/MovementCommand.java
index 8b25bf60..dae384b1 100644
--- a/src/main/java/com/comandante/creeper/server/command/MovementCommand.java
+++ b/src/main/java/com/comandante/creeper/server/command/MovementCommand.java
@@ -4,6 +4,7 @@ import com.comandante.creeper.fight.FightManager;
 import com.comandante.creeper.managers.GameManager;
 import com.comandante.creeper.player.PlayerMovement;
 import com.comandante.creeper.player.Player;
+import com.comandante.creeper.room.Coords;
 import com.comandante.creeper.room.Room;
 import com.comandante.creeper.server.ChannelUtils;
 import com.comandante.creeper.server.CreeperSession;
@@ -63,6 +64,7 @@ public class MovementCommand extends Command {
             }
             if (northTriggers.contains(command.toLowerCase())) {
                 if (!currentRoom.getNorthId().isPresent()) {
+                    channelUtils.write(getPlayerId(session), gameManager.getMapsManager().drawMap(currentRoom.getRoomId(), new Coords(9,9)));
                     channelUtils.write(getPlayerId(session), "There's no northern exit.");
                     return;
                 }
@@ -71,14 +73,17 @@ public class MovementCommand extends Command {
             }
             if (southTriggers.contains(command.toLowerCase())) {
                 if (!currentRoom.getSouthId().isPresent()) {
+                    channelUtils.write(getPlayerId(session), gameManager.getMapsManager().drawMap(currentRoom.getRoomId(), new Coords(9,9)));
                     channelUtils.write(getPlayerId(session), "There's no southern exit.");
                     return;
                 }
                 Room destinationRoom = gameManager.getRoomManager().getRoom(currentRoom.getSouthId().get());
+                channelUtils.write(getPlayerId(session), gameManager.getMapsManager().drawMap(currentRoom.getRoomId(), new Coords(9,9)));
                 playerMovement = new PlayerMovement(player, currentRoom.getRoomId(), destinationRoom.getRoomId(), this, "exited to the south.", "north");
             }
             if (eastTriggers.contains(command.toLowerCase())) {
                 if (!currentRoom.getEastId().isPresent()) {
+                    channelUtils.write(getPlayerId(session), gameManager.getMapsManager().drawMap(currentRoom.getRoomId(), new Coords(9,9)));
                     channelUtils.write(getPlayerId(session), "There's no eastern exit.");
                     return;
                 }
@@ -87,6 +92,7 @@ public class MovementCommand extends Command {
             }
             if (westTriggers.contains(command.toLowerCase())) {
                 if (!currentRoom.getWestId().isPresent()) {
+                    channelUtils.write(getPlayerId(session), gameManager.getMapsManager().drawMap(currentRoom.getRoomId(), new Coords(9,9)));
                     channelUtils.write(getPlayerId(session), "There's no western exit.");
                     return;
                 }
@@ -95,6 +101,7 @@ public class MovementCommand extends Command {
             }
             if (upTriggers.contains(command.toLowerCase())) {
                 if (!currentRoom.getUpId().isPresent()) {
+                    channelUtils.write(getPlayerId(session), gameManager.getMapsManager().drawMap(currentRoom.getRoomId(), new Coords(9,9)));
                     channelUtils.write(getPlayerId(session), "There's no up exit.");
                     return;
                 }
@@ -103,6 +110,7 @@ public class MovementCommand extends Command {
             }
             if (downTriggers.contains(command.toLowerCase())) {
                 if (!currentRoom.getDownId().isPresent()) {
+                    channelUtils.write(getPlayerId(session), gameManager.getMapsManager().drawMap(currentRoom.getRoomId(), new Coords(9,9)));
                     channelUtils.write(getPlayerId(session), "There's no down exit.");
                     return;
                 }
diff --git a/world/default.json b/world/default.json
new file mode 100644
index 00000000..03e52330
--- /dev/null
+++ b/world/default.json
@@ -0,0 +1,667 @@
+{
+  "name": "main",
+  "id": 0,
+  "rawMatrixCsv": ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,46,45,44,43,42,41,40,39,38,37,36,35,34,33,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,47,,,,,,,,,,,,,32,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,49,48,,,,,,,,,,,,,31,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,50,,,,,,,,,,,,,,30,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,51,,21,20,19,18,,,,,,,,,29,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,52,,13,12,11,10,9,8,22,23,24,25,26,27,28,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,53,,14,15,16,17,,7,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,54,,,,,,,6,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,55,,,,,,,2,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,56,,,,,,3,1,4,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,57,58,59,60,61,62,,5,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,63,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,64,65,66,,,,,,,,,,\n",
+  "roomModels": [
+    {
+      "roomId": 42,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 4,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 63,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 19,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 41,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 25,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 3,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 1,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 35,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 14,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 49,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 15,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 26,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 52,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 62,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 27,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 47,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 39,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 17,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 66,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 12,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 5,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 60,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 22,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 10,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 20,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 38,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 51,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 9,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 44,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 64,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 53,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 2,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 57,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 30,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 16,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 65,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 13,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 24,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 31,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 45,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 59,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 34,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 46,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 7,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 56,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 50,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 55,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 54,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 58,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 28,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 6,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 18,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 43,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 61,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 36,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 40,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 33,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 32,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 8,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 37,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 23,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 48,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 21,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 11,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 29,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    }
+  ]
+}
diff --git a/world/main_floor.json b/world/main_floor.json
new file mode 100644
index 00000000..7de9b6d6
--- /dev/null
+++ b/world/main_floor.json
@@ -0,0 +1,667 @@
+{
+  "name": "main",
+  "id": 0,
+  "rawMatrixCsv": ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,46,45,44,43,42,41,40,39,38,37,36,35,34,33,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,47,,,,,,,,,,,,,32,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,49,48,,,,,,,,,,,,,31,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,50,,,,,,,,,,,,,,30,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,51,,21,20,19,18,,,,,,,,,29,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,52,,13,12,11,10,9,8,22,23,24,25,26,27,28,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,53,,14,15,16,17,,7,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,54,,,,,,,6,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,55,,,,,,,2,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,56,,,,,,3,1,4,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,57,58,59,60,61,62,,5,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,63,,,,,,,,,,,,\n,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,64,65,66,,,,,,,,,,\n",
+  "roomModels": [
+    {
+      "roomId": 42,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 4,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 63,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 19,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 41,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 25,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 3,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 1,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 35,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 14,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 49,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 15,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 26,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 52,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 62,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 27,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 47,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 39,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 17,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 66,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 12,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 5,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 60,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 22,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 10,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 20,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 38,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 51,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 9,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 44,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 64,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 53,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 2,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 57,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 30,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 16,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 65,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 13,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 24,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 31,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 45,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 59,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 34,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 46,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 7,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 56,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 50,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 55,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 54,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 58,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 28,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 6,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 18,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 43,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 61,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 36,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 40,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 33,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 32,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 8,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 37,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 23,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 48,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 21,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 11,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    },
+    {
+      "roomId": 29,
+      "floorId": 0,
+      "roomDescription": "This is a blank Description.\nWords should go here, ideally.",
+      "roomTitle": "This is a blank title.",
+      "roomTags": [],
+      "areaNames": [
+        "newbie_zone"
+      ]
+    }
+  ]
+}
\ No newline at end of file
-- 
GitLab