Task 5 added some comments.
NOTE: Noticed a bug where after launching and inputting the string for the first time, the programme won't refresh if we put in a different string. Signed-off-by: Immanuel Alvaro Bhirawa <u7280427@anu.edu.au>
This commit is contained in:
parent
37b09c5576
commit
c633c8188f
@ -163,7 +163,7 @@ public class Viewer extends Application {
|
|||||||
for(int i = 0; i < boardHeight; i++){
|
for(int i = 0; i < boardHeight; i++){
|
||||||
for(int j = 0; j < boardHeight; j++){
|
for(int j = 0; j < boardHeight; j++){
|
||||||
addBoardTile(viewerGrid, boardHeightPx/boardHeight,
|
addBoardTile(viewerGrid, boardHeightPx/boardHeight,
|
||||||
String.format("%s,%s", i, j), Color.BLUE);
|
String.format("%s,%s", i, j), Color.DARKBLUE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -371,50 +371,79 @@ public class Viewer extends Application {
|
|||||||
// FIXME Task 5
|
// FIXME Task 5
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Generating the big board tiles such as the water tiles and the island tiles
|
||||||
void addBoardTile(GridPane board, int tileSize, String coordString, Color color) {
|
void addBoardTile(GridPane board, int tileSize, String coordString, Color color) {
|
||||||
|
// If the string empty, stop the function
|
||||||
if (coordString.equals("")) return;
|
if (coordString.equals("")) return;
|
||||||
|
|
||||||
String[] coords = coordString.split(",");
|
String[] coords = coordString.split(",");
|
||||||
Hexagon hex = new Hexagon(tileSize, color);
|
Hexagon hex = new Hexagon(tileSize, color);
|
||||||
|
|
||||||
|
// if the row is even, translate the tile to the right by tileSize/2
|
||||||
if (Integer.parseInt(coords[0]) % 2 == 0) hex.setTranslateX(tileSize/2);
|
if (Integer.parseInt(coords[0]) % 2 == 0) hex.setTranslateX(tileSize/2);
|
||||||
|
|
||||||
|
// Translate the whole tile's Y axis downwards so they connect and there's no gap
|
||||||
hex.setTranslateY(Integer.parseInt(coords[0]) * -0.25 * tileSize);
|
hex.setTranslateY(Integer.parseInt(coords[0]) * -0.25 * tileSize);
|
||||||
board.add(hex, Integer.parseInt(coords[1]), Integer.parseInt(coords[0]));
|
board.add(hex, Integer.parseInt(coords[1]), Integer.parseInt(coords[0]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Generating the small tiles such as resources, stones, etc
|
||||||
void addTileToBoard(GridPane board, int tileSize, String coordString, Color color) {
|
void addTileToBoard(GridPane board, int tileSize, String coordString, Color color) {
|
||||||
int tileSize2 = tileSize;
|
int tileSize2 = tileSize;
|
||||||
tileSize2 -= 15;
|
tileSize2 -= 15;
|
||||||
|
|
||||||
|
// If the string empty, stop the function
|
||||||
if (coordString.equals("")) return;
|
if (coordString.equals("")) return;
|
||||||
String[] coords = coordString.split(",");
|
String[] coords = coordString.split(",");
|
||||||
Hexagon hex = new Hexagon(tileSize2, color);
|
Hexagon hex = new Hexagon(tileSize2, color);
|
||||||
|
|
||||||
|
// if the row is even, translate the tile to the right by tileSize/2
|
||||||
if (Integer.parseInt(coords[0]) % 2 == 0) hex.setTranslateX(tileSize/2);
|
if (Integer.parseInt(coords[0]) % 2 == 0) hex.setTranslateX(tileSize/2);
|
||||||
|
// Translate the whole tile's Y axis downwards so they connect and there's no gap
|
||||||
hex.setTranslateY(Integer.parseInt(coords[0]) * -0.25 * tileSize);
|
hex.setTranslateY(Integer.parseInt(coords[0]) * -0.25 * tileSize);
|
||||||
|
|
||||||
|
// Translate the tile so they look center
|
||||||
hex.setTranslateX(7 + hex.getTranslateX());
|
hex.setTranslateX(7 + hex.getTranslateX());
|
||||||
board.add(hex, Integer.parseInt(coords[1]), Integer.parseInt(coords[0]));
|
board.add(hex, Integer.parseInt(coords[1]), Integer.parseInt(coords[0]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Adding labels to the resources tiles and stones tiles
|
||||||
void addLabelToTile(GridPane board, int tileSize, String coordString, Color color, String labelName){
|
void addLabelToTile(GridPane board, int tileSize, String coordString, Color color, String labelName){
|
||||||
|
// If the string empty, stop the function
|
||||||
if (coordString.equals("")) return;
|
if (coordString.equals("")) return;
|
||||||
String[] coords = coordString.split(",");
|
String[] coords = coordString.split(",");
|
||||||
Label newLabel = new Label(labelName);
|
Label newLabel = new Label(labelName);
|
||||||
newLabel.setTextFill(color);
|
newLabel.setTextFill(color);
|
||||||
newLabel.setFont(Font.font("Sans Serif", 12));
|
newLabel.setFont(Font.font("Sans Serif", 12));
|
||||||
|
|
||||||
|
// Following the tile's pos format
|
||||||
if (Integer.parseInt(coords[0]) % 2 == 0) newLabel.setTranslateX(tileSize/2);
|
if (Integer.parseInt(coords[0]) % 2 == 0) newLabel.setTranslateX(tileSize/2);
|
||||||
newLabel.setTranslateY(Integer.parseInt(coords[0]) * -0.25 * tileSize);
|
newLabel.setTranslateY(Integer.parseInt(coords[0]) * -0.25 * tileSize);
|
||||||
|
|
||||||
|
// Making the label center
|
||||||
newLabel.setTranslateX(20 + newLabel.getTranslateX());
|
newLabel.setTranslateX(20 + newLabel.getTranslateX());
|
||||||
board.add(newLabel, Integer.parseInt(coords[1]), Integer.parseInt(coords[0]));
|
board.add(newLabel, Integer.parseInt(coords[1]), Integer.parseInt(coords[0]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Adding labels to the villagers and settlers
|
||||||
void addSmallLabelToTile(GridPane board, int tileSize, String coordString, Color color, String labelName){
|
void addSmallLabelToTile(GridPane board, int tileSize, String coordString, Color color, String labelName){
|
||||||
|
// If the string empty, stop the function
|
||||||
if (coordString.equals("")) return;
|
if (coordString.equals("")) return;
|
||||||
String[] coords = coordString.split(",");
|
String[] coords = coordString.split(",");
|
||||||
Label newLabel = new Label(labelName);
|
Label newLabel = new Label(labelName);
|
||||||
newLabel.setTextFill(color);
|
newLabel.setTextFill(color);
|
||||||
newLabel.setFont(Font.font("Sans Serif", 9));
|
newLabel.setFont(Font.font("Sans Serif", 9));
|
||||||
|
|
||||||
|
// Following the tile's pos format
|
||||||
if (Integer.parseInt(coords[0]) % 2 == 0) newLabel.setTranslateX(tileSize/2);
|
if (Integer.parseInt(coords[0]) % 2 == 0) newLabel.setTranslateX(tileSize/2);
|
||||||
newLabel.setTranslateY(Integer.parseInt(coords[0]) * -0.25 * tileSize);
|
newLabel.setTranslateY(Integer.parseInt(coords[0]) * -0.25 * tileSize);
|
||||||
|
|
||||||
|
// Making the label center
|
||||||
newLabel.setTranslateX(9 + newLabel.getTranslateX());
|
newLabel.setTranslateX(9 + newLabel.getTranslateX());
|
||||||
board.add(newLabel, Integer.parseInt(coords[1]), Integer.parseInt(coords[0]));
|
board.add(newLabel, Integer.parseInt(coords[1]), Integer.parseInt(coords[0]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// A hexagon nested class shape
|
||||||
class Hexagon extends Polygon {
|
class Hexagon extends Polygon {
|
||||||
public Hexagon(double side, Paint fill) {
|
public Hexagon(double side, Paint fill) {
|
||||||
super(
|
super(
|
||||||
|
Loading…
Reference in New Issue
Block a user