-Added to building class
-Buildings now generated and placed on map -Maps only generated on interval -Fixed grid lines (I think) Signed-off-by: Tony Grosinger <github2@grosinger.net>
This commit is contained in:
parent
db1b945815
commit
b53eec8a61
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -17,13 +17,15 @@ public class Building implements GameObject {
|
||||
Structure structure;
|
||||
String name;
|
||||
|
||||
// Can't decide if I want to add Drone Houses as another enum item or as a
|
||||
// separate class that extends Building
|
||||
int x;
|
||||
int y;
|
||||
|
||||
// Houses will extend Buildings
|
||||
public enum Structure {
|
||||
TOWNHALL, REPAIRSHOP, UPGRADESHOP, POLICESTATION
|
||||
}
|
||||
|
||||
public Building(Structure thisBuilding) {
|
||||
public Building(Structure thisBuilding, int newX, int newY) {
|
||||
structure = thisBuilding;
|
||||
switch (structure) {
|
||||
case TOWNHALL: {
|
||||
@ -43,6 +45,9 @@ public class Building implements GameObject {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
x = newX;
|
||||
y = newY;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -50,11 +55,58 @@ public class Building implements GameObject {
|
||||
return name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve what type of building it is (I.E. TownHall, RepairShop, etc.)
|
||||
*
|
||||
* @return <code>Structure</code>
|
||||
*/
|
||||
public Structure getType() {
|
||||
return structure;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve x index
|
||||
*
|
||||
* return <code>int</code>
|
||||
*/
|
||||
public int getX() {
|
||||
return x;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve y index
|
||||
*
|
||||
* @return <code>int</code>
|
||||
*/
|
||||
public int getY() {
|
||||
return y;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setName(String newName) {
|
||||
name = newName;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets a new x value for the building (As if buildings could move)
|
||||
*
|
||||
* @param newX
|
||||
* - int, new x location
|
||||
*/
|
||||
public void setX(int newX) {
|
||||
x = newX;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets a new y value for the building (As if buildings could move)
|
||||
*
|
||||
* @param newY
|
||||
* - int, new y location
|
||||
*/
|
||||
public void setY(int newY) {
|
||||
y = newY;
|
||||
}
|
||||
|
||||
/*
|
||||
* Information about how to use the switch command with enums
|
||||
* http://download.oracle.com/javase/tutorial/java/javaOO/enum.html
|
||||
|
@ -38,7 +38,6 @@ public class DroneListItem {
|
||||
private int reliability;
|
||||
private int defenses;
|
||||
private int speed; // Reflected in movements per turn
|
||||
private int turning;
|
||||
private int cargoSpace;
|
||||
private int theft;
|
||||
|
||||
@ -149,15 +148,6 @@ public class DroneListItem {
|
||||
return speed;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the turning factor of this drone
|
||||
*
|
||||
* @return <code>int</code>
|
||||
*/
|
||||
public int getTurning() {
|
||||
return turning;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the total space in the cargo hold of this drone. Does include
|
||||
*
|
||||
|
@ -10,6 +10,8 @@ import java.util.Enumeration;
|
||||
import java.util.jar.JarEntry;
|
||||
import java.util.jar.JarFile;
|
||||
|
||||
import net.grosinger.nomads.Building.Structure;
|
||||
|
||||
/**
|
||||
* Various methods used when first setting up the game and loading everything
|
||||
* into the world.
|
||||
@ -145,9 +147,19 @@ public class InitializeGame {
|
||||
if (Nomads.DEBUGSTATUS)
|
||||
System.out.println("Generating and placing required buildings...");
|
||||
|
||||
Building townHall = new Building(Structure.TOWNHALL, 30, 40);
|
||||
Building upgradeShop = new Building(Structure.UPGRADESHOP, 30, 60);
|
||||
Building policeStation = new Building(Structure.POLICESTATION, 50, 40);
|
||||
Building RepairShop = new Building(Structure.REPAIRSHOP, 50, 60);
|
||||
|
||||
if (Nomads.DEBUGSTATUS)
|
||||
System.out.println("Building generation complete");
|
||||
|
||||
awesomeWorld.placeNewBuilding(townHall);
|
||||
awesomeWorld.placeNewBuilding(upgradeShop);
|
||||
awesomeWorld.placeNewBuilding(policeStation);
|
||||
awesomeWorld.placeNewBuilding(RepairShop);
|
||||
|
||||
if (Nomads.DEBUGSTATUS)
|
||||
System.out.println("Building placement complete");
|
||||
}
|
||||
|
@ -17,6 +17,12 @@ public class Nomads {
|
||||
public static final boolean DEBUGCREATIONS = true;
|
||||
public static final boolean DEBUGBUILDINGS = true;
|
||||
|
||||
/**
|
||||
* How frequently should a new map be generated? (In turns, 1 means every
|
||||
* turn)
|
||||
*/
|
||||
public static final int MAPGENRATE = 2;
|
||||
|
||||
public static void main(String[] args) {
|
||||
if (DEBUGSTATUS)
|
||||
System.out.println("Game initialization beginning...");
|
||||
@ -64,9 +70,10 @@ public class Nomads {
|
||||
System.out.println("Game loop starting...");
|
||||
|
||||
int turn = 0;
|
||||
int counter = 0;
|
||||
|
||||
while (running) {
|
||||
|
||||
counter++;
|
||||
turn++;
|
||||
|
||||
long startTime = System.currentTimeMillis();
|
||||
@ -80,7 +87,11 @@ public class Nomads {
|
||||
if (DEBUGSTATUS)
|
||||
System.out.println("Moves took " + (endTime - startTime) + "milliseconds");
|
||||
|
||||
awesomeWorld.generateMap(turn);
|
||||
// Create a new map
|
||||
if (counter == MAPGENRATE) {
|
||||
awesomeWorld.generateMap(turn);
|
||||
counter = 0;
|
||||
}
|
||||
|
||||
try {
|
||||
Thread.sleep(200);
|
||||
|
@ -143,6 +143,19 @@ public class World {
|
||||
setObjectAt(lastUsedX, 20, newDrone.getCurrent());
|
||||
}
|
||||
|
||||
/**
|
||||
* Places a building in the world
|
||||
*
|
||||
* @param newBuilding
|
||||
* The building to be placed
|
||||
*/
|
||||
public void placeNewBuilding(Building newBuilding) {
|
||||
int x = newBuilding.getX();
|
||||
int y = newBuilding.getY();
|
||||
|
||||
theWorld[x][y] = newBuilding;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns if the Drone at given coordinates is in a safe zone
|
||||
*
|
||||
@ -181,6 +194,22 @@ public class World {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Searches for any buildings within range spaces of x,y
|
||||
*
|
||||
* @param x
|
||||
* - X Index
|
||||
* @param y
|
||||
* - Y Index
|
||||
* @param range
|
||||
* - range to search
|
||||
* @return <code>Arraylist(building)</code>
|
||||
*/
|
||||
public ArrayList<Building> buildingsInRange(int x, int y, int range) {
|
||||
// TODO - implement buildingsInRange
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Outputs an HTML file showing the world
|
||||
*/
|
||||
@ -209,7 +238,7 @@ public class World {
|
||||
|
||||
// draw grid lines
|
||||
g2d.setColor(Color.black);
|
||||
for (int i = 10; i <= 1000; i += 100) {
|
||||
for (int i = 0; i <= 1000; i += 100) {
|
||||
g2d.drawLine(i, 0, i, 1000);
|
||||
g2d.drawLine(0, i, 1000, i);
|
||||
}
|
||||
@ -224,7 +253,8 @@ public class World {
|
||||
g2d.setColor(color);
|
||||
g2d.fillOval(j * 10, i * 10, 10, 10);
|
||||
} else if (objectHere instanceof Building) {
|
||||
// TODO - output for buildings
|
||||
g2d.setColor(Color.black);
|
||||
g2d.fillRect(j * 10, i * 10, 10, 10);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user