Example #1
0
 /**
  * Generates a random dungeon.
  *
  * @param dungeonMapData The dungeon specification, not null
  * @return The entrance to the dungeon, never null
  * @throws IOException If {@link DungeonBuilder#setDungeonMapData(DungeonMapData)} fails
  * @throws ReflectiveOperationException If the desired DungeonBuilder can not be instantiated
  */
 public static DungeonLevel buildDungeon(final DungeonMapData dungeonMapData)
     throws IOException, ReflectiveOperationException {
   final DungeonBuilder builder = getDungeonBuilder(dungeonMapData);
   builder.fromString(builder.buildRandomDungeonString());
   final List<DungeonLevel> dungeonLevels = builder.getLevels();
   return dungeonLevels.get(0);
 }
Example #2
0
 /**
  * De-serializes a dungeon.
  *
  * @param dungeonMapData The dungeon specification, not null
  * @param serializedDungeon The serialized dungeon String, not null
  * @return The entrance to the dungeon, never null
  * @throws IOException If {@link DungeonBuilder#setDungeonMapData(DungeonMapData)} fails
  * @throws ReflectiveOperationException If the desired DungeonBuilder can not be instantiated
  * @see DungeonBuilder#fromString(String)
  */
 public static DungeonLevel fromString(
     final DungeonMapData dungeonMapData, final String serializedDungeon)
     throws IOException, ReflectiveOperationException {
   final DungeonBuilder builder = getDungeonBuilder(dungeonMapData);
   builder.fromString(serializedDungeon);
   final List<DungeonLevel> dungeonLevels = builder.getLevels();
   return dungeonLevels.get(0);
 }
Example #3
0
  private static DungeonBuilder getDungeonBuilder(final DungeonMapData dungeonMapData)
      throws IOException, ReflectiveOperationException {
    final DungeonType dungeonType = dungeonMapData.getDungeonType();

    Validate.notNull(dungeonType);
    if (!BUILDER_MAP.containsKey(dungeonType)) {
      throw new InvalidKeyException("Encountered unknown DungeonType '" + dungeonType + "'.");
    }

    final DungeonBuilder builder = (DungeonBuilder) BUILDER_MAP.get(dungeonType).newInstance();
    builder.setDungeonMapData(dungeonMapData);

    return builder;
  }
Example #4
0
 /**
  * Generates a random serialized dungeon.
  *
  * @param dungeonMapData The dungeon specification, not null
  * @return A base-64 encoded String representing the serialized dungeon, never null
  * @throws IOException If {@link DungeonBuilder#setDungeonMapData(DungeonMapData)} fails
  * @throws ReflectiveOperationException If the desired DungeonBuilder can not be instantiated
  * @see DungeonBuilder#buildRandomDungeonString()
  */
 public static String generateSerializedDungeon(final DungeonMapData dungeonMapData)
     throws IOException, ReflectiveOperationException {
   final DungeonBuilder builder = getDungeonBuilder(dungeonMapData);
   return builder.buildRandomDungeonString();
 }