Explorar o código

Added "Ornaments" tab in sidebar
Added trees and fence

DaveyMathijssen %!s(int64=10) %!d(string=hai) anos
pai
achega
c8edf3594b

+ 2 - 0
src/gui/simulator/DrawEngine.java

@@ -109,6 +109,8 @@ public abstract class DrawEngine {
         this.terrain.getEntities().remove(this);
         this.terrain.removeWalkingPaths(this);
     }
+    
+    public abstract String getFacilityName();
 
 
 }

+ 6 - 0
src/gui/simulator/Images.java

@@ -25,6 +25,9 @@ public class Images{
 			images.add(ImageIO.read(Main.class.getResource("/simulator/snackbar.png")));
 			images.add(ImageIO.read(Main.class.getResource("/simulator/border.png")));
 			images.add(ImageIO.read(Main.class.getResource("/simulator/crosspoint.png")));
+			images.add(ImageIO.read(Main.class.getResource("/simulator/tree1.png")));
+			images.add(ImageIO.read(Main.class.getResource("/simulator/palmtree1.png")));
+			images.add(ImageIO.read(Main.class.getResource("/simulator/fence.png")));
 			images.add(ImageIO.read(Main.class.getResource("/visitor.png")));
 			images.add(ImageIO.read(Main.class.getResource("/add.png")));
 			images.add(ImageIO.read(Main.class.getResource("/ground_stone.jpg")));
@@ -63,6 +66,9 @@ public class Images{
 		Snackbar,
 		Border,
 		Crosspoint,
+		Tree1,
+		PalmTree1,
+		Fence,
 		Visitor,
 		Add,
 		PathGroundStone,

+ 23 - 5
src/gui/simulator/Sidebar.java

@@ -1,9 +1,12 @@
 package gui.simulator;
 
 import gui.simulator.Images.ImageType;
+import gui.simulator.facilities.Fence;
+import gui.simulator.facilities.PalmTree1;
 import gui.simulator.facilities.RestRoom;
 import gui.simulator.facilities.SimulatorStage;
 import gui.simulator.facilities.SnackBar;
+import gui.simulator.facilities.Tree1;
 import gui.simulator.facilities.WayPoint;
 
 import java.awt.BasicStroke;
@@ -28,10 +31,11 @@ public class Sidebar implements Serializable  {
 	private Terrain terrain;
 	private LinkedHashMap<String, DrawEngine> drawableStages = new LinkedHashMap<String, DrawEngine>();
 	private LinkedHashMap<String, DrawEngine> drawableFacilities = new LinkedHashMap<String, DrawEngine>();
+	private LinkedHashMap<String, DrawEngine> drawableOrnaments = new LinkedHashMap<String, DrawEngine>();
 	private LinkedHashMap<String, Images.ImageType> drawablePaths = new LinkedHashMap<String, Images.ImageType>();
 	private ArrayList<LinkedHashMap<String, DrawEngine>> drawableArrays = new ArrayList<LinkedHashMap<String, DrawEngine>>();
 	public enum SideBarTab{
-		STAGES(0), FACILITIES(1), PATHS(2);
+		STAGES(0), FACILITIES(1), ORNAMENTS(2), PATHS(3);
 		
 		public final int value;
 		SideBarTab(int value){
@@ -91,11 +95,15 @@ public class Sidebar implements Serializable  {
 		drawablePaths.put("Ground-stone", Images.ImageType.PathGroundStone);
 		drawablePaths.put("Dirt", Images.ImageType.PathDirt);
 		drawablePaths.put("Stone", Images.ImageType.PathStone);
-
-		//drawablePaths.add("My awesome path name", new AwesomePath());
+		
+		//ornaments
+		drawableOrnaments.put("Tree1", new Tree1(0, 0, 0.7, 1, this.terrain));
+		drawableOrnaments.put("PalmTree1", new PalmTree1(0, 0, 0.7, 1, this.terrain));
+		drawableOrnaments.put("Fence", new Fence(0, 0, 0.4, 1, this.terrain));
 
 		drawableArrays.add(drawableStages);
 		drawableArrays.add(drawableFacilities);
+		drawableArrays.add(drawableOrnaments);
 	}
 	
 	public void draw(Graphics2D g2){
@@ -108,7 +116,8 @@ public class Sidebar implements Serializable  {
         g2.fill3DRect(0, 0, sideBarWidth, 30, true);
         g2.fill3DRect(tab1X, 30, tabWidth, 30, true);
         g2.fill3DRect(tab2X, 30, tabWidth, 30, true);
-        g2.fill3DRect(tab3X, 30, tabWidth, 30, true);       
+        g2.fill3DRect(tab3X, 30, tabWidth, 30, true);  
+        g2.fill3DRect(0, 60, sideBarWidth, 30, true); 
         g2.setColor(Color.WHITE);
         g2.setFont(new Font("SansSerif", Font.BOLD, 20));
         //g2.drawString(str, x, y);
@@ -117,6 +126,7 @@ public class Sidebar implements Serializable  {
         g2.drawString("Stages", tab1X+10, 50);
         g2.drawString("Facilities", tab2X+3, 50);
         g2.drawString("Paths", tab3X+15, 50);
+        g2.drawString("Ornaments", sideBarWidth/3, 80);
         switch (currentTab) {
 		case STAGES:
 			g2.drawLine(tab1X+10, 55, tab1X+60, 55);
@@ -127,6 +137,9 @@ public class Sidebar implements Serializable  {
 		case PATHS:
 			g2.drawLine(tab3X+15, 55, tab3X+55, 55);
 			break;
+		case ORNAMENTS:
+			g2.drawLine(sideBarWidth/3, 85, (sideBarWidth/3)+80, 85);
+			break;
 		default:
 			break;
 		}
@@ -134,7 +147,7 @@ public class Sidebar implements Serializable  {
         //draw objects
         g2.setColor(Color.BLACK);
         int objectPlacementX = 0;
-        int objectPlacementY = 61;
+        int objectPlacementY = 91;
 
         if(currentTab == SideBarTab.PATHS){
         	for(Entry<String, ImageType> object : drawablePaths.entrySet()){
@@ -152,6 +165,8 @@ public class Sidebar implements Serializable  {
 			for(Entry<String, DrawEngine> object : drawableArrays.get(currentTab.getValue()).entrySet()){
 				object.getValue().setX(objectPlacementX);
 				object.getValue().setY(objectPlacementY);
+				if(object.getValue().getFacilityName() == "Fence")
+					object.getValue().setY(objectPlacementY+50);
 				object.getValue().draw(g2);
 				g2.drawString(object.getKey(), objectPlacementX+2, objectPlacementY + 95);
 				g2.drawRect(objectPlacementX, objectPlacementY, sideBarWidth/2, 100);
@@ -188,6 +203,9 @@ public class Sidebar implements Serializable  {
     				currentTab = SideBarTab.PATHS;
     			}
     		}
+    		if(e.getY() > 60 && e.getY() < 90){
+    			currentTab = SideBarTab.ORNAMENTS;
+    		}
     		//check for object selection
     		int objectPlacementX = 0;
             int objectPlacementY = 61;

+ 1 - 1
src/gui/simulator/SimulatorPane.java

@@ -21,7 +21,7 @@ public class SimulatorPane extends JPanel{
 	//terrain type enums
 	public enum Terrains{BEACH, GRASS, URBAN, UNDEFINED};
 	//object type enums
-	public enum Objects{STAGE, DRINK, SNACKBAR, RESTROOM, SUNGLAS, WAYPOINT, ENTRANCE, EXIT, BORDER};
+	public enum Objects{STAGE, DRINK, SNACKBAR, RESTROOM, SUNGLAS, WAYPOINT, ENTRANCE, EXIT, BORDER, TREE1, PALMTREE1, FENCE};
 	//time control enums
 	public enum Time{STOP, PAUZE, PLAY, FASTER, FASTEST};
 	

+ 1 - 1
src/gui/simulator/facilities/RestRoom.java

@@ -10,7 +10,7 @@ import gui.simulator.Terrain;
 public class RestRoom extends DrawEngine implements Serializable {
 
 	private static Images.ImageType images = Images.ImageType.Toilet;
-	private static String facilityName = "Plee";
+	private static String facilityName = "Toilet";
 
     public RestRoom(int x, int y, Terrain terrain) {
         super(images, x, y, 1, 0, SimulatorPane.Objects.RESTROOM, terrain);

+ 6 - 0
src/gui/simulator/facilities/WayPoint.java

@@ -9,8 +9,14 @@ import gui.simulator.Terrain;
 
 public class WayPoint extends DrawEngine{
 
+	private static String facilityName = "WayPoint";
+	
 	public WayPoint(int x, int y, double scale, double distance, Terrain terrain) {
 		super(Images.ImageType.Crosspoint, x, y, scale, 1, SimulatorPane.Objects.WAYPOINT, terrain);
 	}
+	
+    public String getFacilityName(){
+    	return facilityName;
+    }
 
 }