Added more object types.
Added Map and Structure. Created a working map int Test.java, but Structures are still not implemented.
This commit is contained in:
parent
ad09ee4b1d
commit
fc74f55c85
47
java/Map.java
Normal file
47
java/Map.java
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
public class Map {
|
||||||
|
private Tile[][] tiles;
|
||||||
|
|
||||||
|
public Map(int width, int height, int wWidth, int wHeight, Tile empty, Tile wall) {
|
||||||
|
int fullHeight = height + (2 * wHeight);
|
||||||
|
int fullWidth = width + (2 * wWidth);
|
||||||
|
Tile[][] map = new Tile[fullHeight][fullWidth];
|
||||||
|
for (int i = 0; i < fullHeight; i++) {
|
||||||
|
for (int j = 0; j < fullWidth; j++) {
|
||||||
|
if (i < wHeight || i >= height + wHeight || j < wWidth || j >= width + wWidth) {
|
||||||
|
map[i][j] = wall;
|
||||||
|
} else {
|
||||||
|
map[i][j] = empty;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.tiles = map;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Tile[][] getTiles() {
|
||||||
|
return this.tiles;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void generateStructure(String name, int x, int y) {
|
||||||
|
for (Structure structure : Structure.getStructures()) {
|
||||||
|
if (name.equals(structure.getName())) {
|
||||||
|
this.placeStructure(structure, x, y);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void placeStructure(Structure structure, int x, int y) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString() {
|
||||||
|
Tile[][] tiles = this.getTiles();
|
||||||
|
String str = "";
|
||||||
|
for (int i = 0; i < tiles.length; i++) {
|
||||||
|
for (int j = 0; j < tiles[i].length; j++) {
|
||||||
|
str += tiles[i][j].toChar();
|
||||||
|
}
|
||||||
|
str += "\n";
|
||||||
|
}
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
}
|
39
java/Structure.java
Normal file
39
java/Structure.java
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
public class Structure {
|
||||||
|
private static ArrayList<Structure> structures;
|
||||||
|
private Tile[][] tiles;
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
public Structure(String name, Tile[][] tiles) {
|
||||||
|
this.name = name;
|
||||||
|
this.tiles = tiles;
|
||||||
|
structures.add(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return this.name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Tile[][] getTiles() {
|
||||||
|
return this.tiles;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ArrayList<Structure> getStructures() {
|
||||||
|
return structures;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getWidth() {
|
||||||
|
return this.tiles.length;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getHeight() {
|
||||||
|
int max = 0;
|
||||||
|
for (Tile[] tile : this.tiles) {
|
||||||
|
if (tile.length > max) {
|
||||||
|
max = tile.length;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return max;
|
||||||
|
}
|
||||||
|
}
|
8
java/Test.java
Normal file
8
java/Test.java
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
public class Test {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Tile wall = new Tile('#', true, "NONE");
|
||||||
|
Tile empty = new Tile('+', false, "NONE");
|
||||||
|
Map map = new Map(50, 5, 5, 5, empty, wall);
|
||||||
|
System.out.println(map);
|
||||||
|
}
|
||||||
|
}
|
@ -5,7 +5,7 @@ public class Tile {
|
|||||||
private Action action;
|
private Action action;
|
||||||
private int[] teleportTarget;
|
private int[] teleportTarget;
|
||||||
|
|
||||||
public Tile (char representation, boolean solid, String action) {
|
public Tile (char representation, boolean solid, String action) throws IllegalArgumentException {
|
||||||
this.representation = representation;
|
this.representation = representation;
|
||||||
this.solid = solid;
|
this.solid = solid;
|
||||||
this.action = Action.valueOf(action.toUpperCase());
|
this.action = Action.valueOf(action.toUpperCase());
|
||||||
@ -16,12 +16,16 @@ public class Tile {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Tile (char representation, boolean solid, String action, int x, int y) {
|
public Tile (char representation, boolean solid, String action, int x, int y) throws IllegalArgumentException {
|
||||||
this.representation = representation;
|
this.representation = representation;
|
||||||
this.solid = solid;
|
this.solid = solid;
|
||||||
this.action = Action.valueOf(action.toUpperCase());
|
this.action = Action.valueOf(action.toUpperCase());
|
||||||
int[] intArray = {x, y};
|
if (this.action == Action.TELEPORT) {
|
||||||
this.teleportTarget = intArray;
|
int[] intArray = {x, y};
|
||||||
|
this.teleportTarget = intArray;
|
||||||
|
} else {
|
||||||
|
throw new IllegalArgumentException("A non-teleport tile can't have a teleport target.");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public char toChar() {
|
public char toChar() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user