diff --git a/src/main/java/de/_82grfl1bif/KPI_Visualizer/commands/SetPreset.java b/src/main/java/de/_82grfl1bif/KPI_Visualizer/commands/SetPreset.java index 27d0c065438d9060d7b091eedbc973ffde882759..d3df5f88633cfd47e5498738b0287009c770eb92 100644 --- a/src/main/java/de/_82grfl1bif/KPI_Visualizer/commands/SetPreset.java +++ b/src/main/java/de/_82grfl1bif/KPI_Visualizer/commands/SetPreset.java @@ -1,83 +1,47 @@ package de._82grfl1bif.KPI_Visualizer.commands; -import com.google.gson.Gson; -import com.google.gson.stream.JsonReader; import de._82grfl1bif.KPI_Visualizer.data.DataHolder; +import de._82grfl1bif.KPI_Visualizer.structures.Builder; import de._82grfl1bif.KPI_Visualizer.structures.Building; import de._82grfl1bif.KPI_Visualizer.structures.Structure; import org.bukkit.Bukkit; import org.bukkit.Location; -import org.bukkit.Material; import org.bukkit.Server; -import org.bukkit.block.Block; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; -import java.io.FileReader; import java.util.logging.Level; -public class SetPreset implements CommandExecutor{ +public class SetPreset implements CommandExecutor { @Override public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { + Builder builder = new Builder(); Server server = sender.getServer(); Player player = server.getPlayer(sender.getName()); - Location location = player.getLocation(); - - if(location == null){ - Bukkit.getLogger().log(Level.SEVERE,"Keine Location gefunden."); - return false; - } //if no Player is found - - if (args.length != 1){ - sender.sendMessage("try with one Number behind the command."); - return false; - }else { - Runnable t = new Runnable() { - @Override - public void run() { + if (player != null) { + Location location = player.getLocation(); + if (args.length != 1) { + sender.sendMessage("try with one Number behind the command."); + return false; + } else { + Runnable t = () -> { DataHolder.foundation.setLocation(location); DataHolder.generateSimpleData(Integer.parseInt(args[0])); - fillPlane(server, location, DataHolder.foundation.getWidth().x, DataHolder.foundation.getWidth().y, DataHolder.foundation.getMaterial()); + builder.setFoundation(server, location, DataHolder.foundation.getWidth().x, DataHolder.foundation.getWidth().y, DataHolder.foundation.getMaterial()); for (Structure structure : DataHolder.foundation.getChildren()) { Building building = (Building) structure; sender.sendMessage("bau" + building.toString()); - fillQube(server, building.getLocation(), building.getWidth().x, building.getHeight(), building.getWidth().y, building.getMaterial());//Not yet ready to print foundations + builder.fillQube(server, building.getLocation(), building.getWidth().x, building.getHeight(), building.getWidth().y, building.getMaterial());//Not yet ready to print foundations } - } - }; - t.run(); - } - return true; - } - - private void fillPlane(Server server, Location startLocation, int x, int z, Material material){ - for (int cx = 0; cx < x; cx++ ) { - for ( int cz = 0; cz < z; cz++){ - Block block = server.getWorlds().get(0).getBlockAt(startLocation.clone().add(cx,0,cz)); - block.setType(material); + }; + t.run(); } - } - } - - private void fillQube(Server server,Location startLocation, int x, int y, int z, Material material){ - for(int cy = 0; cy < y; cy++){ - fillPlane(server,startLocation.clone().add(0,cy,0),x,z,material); - } - } - - private boolean evalJson(String fileName){ - if(!fileName.contains(".json")){ - fileName = fileName + ".json"; - } //Add .json in case user forgets - try(JsonReader reader = new JsonReader(new FileReader("/Users/flgr/Desktop/PaperServer/LayoutJson"+ fileName))){ - Gson gson = new Gson(); - - }catch (Exception ex){ - Bukkit.getLogger().log(Level.SEVERE, String.valueOf(ex)); + } else { + Bukkit.getLogger().log(Level.SEVERE, "Kein Spieler gefunden."); return false; } return true; diff --git a/src/main/java/de/_82grfl1bif/KPI_Visualizer/commands/generateLayout.java b/src/main/java/de/_82grfl1bif/KPI_Visualizer/commands/generateLayout.java index 6a9ca5d3f6be15c00c2e9f846bb7799f7c85a659..67642962f11081427c2cb2c1051dc5d0713f1990 100644 --- a/src/main/java/de/_82grfl1bif/KPI_Visualizer/commands/generateLayout.java +++ b/src/main/java/de/_82grfl1bif/KPI_Visualizer/commands/generateLayout.java @@ -1,13 +1,10 @@ package de._82grfl1bif.KPI_Visualizer.commands; import de._82grfl1bif.KPI_Visualizer.data.DataHolder; -import de._82grfl1bif.KPI_Visualizer.structures.Building; -import de._82grfl1bif.KPI_Visualizer.structures.Foundation; -import de._82grfl1bif.KPI_Visualizer.structures.Structure; +import de._82grfl1bif.KPI_Visualizer.structures.*; +import org.bukkit.Bukkit; import org.bukkit.Location; -import org.bukkit.Material; import org.bukkit.Server; -import org.bukkit.block.Block; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; @@ -15,123 +12,45 @@ import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; import org.jetbrains.annotations.NotNull; +import java.util.logging.Level; + public class generateLayout implements CommandExecutor { + Builder builder = new Builder(); @Override public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { sender.sendMessage("generating Layout"); Server server = sender.getServer(); Player player = server.getPlayer(sender.getName()); - Location location = player.getLocation(); - - BukkitRunnable t = new BukkitRunnable() { - @Override - public void run() { - DataHolder.ComplexData(); - DataHolder.foundation.setLocation(location); - DataHolder.foundation.organizeFoundation(); - DataHolder.foundation.correctAllLocations(location); - setFoundation(server, DataHolder.foundation.getLocation().clone().add(0, DataHolder.foundation.getDepth(), 0), DataHolder.foundation.getWidth().x, DataHolder.foundation.getWidth().x, DataHolder.foundation.getMaterial()); - setAllChildren(server, DataHolder.foundation); - } - }; - t.run(); - return true; - } - - private void setFoundation(Server server, Location startLocation, int x, int z, Material material) { - for (int cx = 0; cx < x; cx++) { - for (int cz = 0; cz < z; cz++) { - Block block = server.getWorlds().get(0).getBlockAt(startLocation.clone().add(cx, 0, cz)); - block.setType(material); - } + if(player != null) { + Location location = player.getLocation(); + + BukkitRunnable t = new BukkitRunnable() { + @Override + public void run() { + DataHolder.ComplexData(); + DataHolder.foundation.setLocation(location); + DataHolder.foundation.organizeFoundation(); + DataHolder.foundation.correctAllLocations(location); + builder.setFoundation(server, DataHolder.foundation.getLocation().clone().add(0, DataHolder.foundation.getDepth(), 0), DataHolder.foundation.getWidth().x, DataHolder.foundation.getWidth().x, DataHolder.foundation.getMaterial()); + setAllChildren(server, DataHolder.foundation); + } + }; + t.run(); + return true; + }else{ + Bukkit.getLogger().log(Level.SEVERE, "Kein Spieler gefunden."); + return false; } } - private void buildBuilding(Server server, Location startLocation, int x, int y, Material material) { - setWalls(server, startLocation.clone().add(0, 1, 0), x, y, material); - } - - private void setWalls(Server server, Location startLocation, int x, int y,Material material) { - Location save = startLocation.clone(); - Location temp = startLocation.clone(); - for (int cx = 0; cx < x - 1; cx++) {// x+x Wall - for (int cy = 0; cy < y; cy++) { - server.getWorlds().get(0).getBlockAt(temp.clone().add(cx,cy,1)).setType(material); - } - } - temp = save.clone(); - for (int cz = 0; cz < x - 1; cz++) {// z+x Wall - for (int cy = 0; cy < y; cy++) { - server.getWorlds().get(0).getBlockAt(temp.clone().add(1, cy, cz)).setType(material); - } - } - temp = save.clone().add(0, 0, x - 1); - for (int cx = 0; cx < x; cx++) {// x+x z+x Wall from x+x - for (int cy = 0; cy < y; cy++) { - server.getWorlds().get(0).getBlockAt(temp.clone().add(cx, cy, -1)).setType(material); - } - } - temp = save.clone().add(x - 1, 0, 0); - for (int cz = 0; cz < x - 1; cz++) {// x+x z+x Wall from x+z - for (int cy = 0; cy < y; cy++) { - server.getWorlds().get(0).getBlockAt(temp.clone().add(-1, cy, cz)).setType(material); - } - } - - temp = save.clone(); - for (int cx = 0; cx < x - 1; cx++) {// x+x Wall - for (int cy = 0; cy < y; cy++) { - server.getWorlds().get(0).getBlockAt(temp.clone().add(cx, cy, 0)).setType(Material.GLASS); - } - } - temp = save.clone(); - for (int cz = 0; cz < x - 1; cz++) {// z+x Wall - for (int cy = 0; cy < y; cy++) { - server.getWorlds().get(0).getBlockAt(temp.clone().add(0, cy, cz)).setType(Material.GLASS); - } - } - temp = save.clone().add(0, 0, x - 1); - for (int cx = 0; cx < x; cx++) {// x+x z+x Wall from x+x - for (int cy = 0; cy < y; cy++) { - server.getWorlds().get(0).getBlockAt(temp.clone().add(cx, cy, 0)).setType(Material.GLASS); - } - } - temp = save.clone().add(x - 1, 0, 0); - for (int cz = 0; cz < x - 1; cz++) {// x+x z+x Wall from x+z - for (int cy = 0; cy < y; cy++) { - server.getWorlds().get(0).getBlockAt(temp.clone().add(0, cy, cz)).setType(Material.GLASS); - } - } - - temp = save.clone(); - for (int cy = 0; cy < y; cy++) { - server.getWorlds().get(0).getBlockAt(temp.clone().add(0, cy, 0)).setType(Material.BLACKSTONE); - } - temp = save.clone().add(x - 1, 0, 0); - for (int cy = 0; cy < y; cy++) { - server.getWorlds().get(0).getBlockAt(temp.clone().add(0, cy, 0)).setType(Material.BLACKSTONE); - } - temp = save.clone().add(0, 0, x - 1); - for (int cy = 0; cy < y; cy++) { - server.getWorlds().get(0).getBlockAt(temp.clone().add(0, cy, 0)).setType(Material.BLACKSTONE); - } - temp = save.clone().add(x - 1, 0, x - 1); - for (int cy = 0; cy < y; cy++) { - server.getWorlds().get(0).getBlockAt(temp.clone().add(0, cy, 0)).setType(Material.BLACKSTONE); - } - - save.add(0,y,0);//roof - setFoundation(server,save,x,x,Material.BLACKSTONE); - } - private void setAllChildren(Server server, Foundation foundation) { for (Structure s : foundation.getChildren()) { if (s.getClass() == Foundation.class) {//TODO must be revisited to draw rectangular Foundations - setFoundation(server, s.getLocation().clone().add(0, s.getDepth(), 0), s.getWidth().x, s.getWidth().x, s.getMaterial()); + builder.setFoundation(server, s.getLocation().clone().add(0, s.getDepth(), 0), s.getWidth().x, s.getWidth().x, s.getMaterial()); setAllChildren(server, (Foundation) s); } else {//TODO must be revisited to draw rectangular Buildings - buildBuilding(server, s.getLocation().clone().add(1, s.getDepth(), 1), s.getWidth().x - 2, ((Building) s).getHeight(), s.getMaterial()); + builder.buildBuilding(server, s.getLocation().clone().add(1, s.getDepth(), 1), s.getWidth().x - 2, ((Building) s).getHeight(), s.getMaterial()); } } } diff --git a/src/main/java/de/_82grfl1bif/KPI_Visualizer/data/JsonParser.java b/src/main/java/de/_82grfl1bif/KPI_Visualizer/data/JsonParser.java new file mode 100644 index 0000000000000000000000000000000000000000..0916ebc24b667dfb6fbbe00ae371ddba8983799b --- /dev/null +++ b/src/main/java/de/_82grfl1bif/KPI_Visualizer/data/JsonParser.java @@ -0,0 +1,29 @@ +package de._82grfl1bif.KPI_Visualizer.data; + +import com.google.gson.Gson; +import com.google.gson.stream.JsonReader; +import org.bukkit.Bukkit; +import java.io.FileReader; +import java.util.logging.Level; + +public class JsonParser { + String standardPath = ""; + + private boolean evalJson(String fileName) { + if (!fileName.contains(".json")) { + fileName = fileName + ".json"; + } //Add .json in case user forgets + if (!(fileName.contains("/"))){ + fileName = standardPath + fileName; + } + try (JsonReader reader = new JsonReader(new FileReader("/Users/flgr/Desktop/PaperServer/LayoutJson" + fileName))) { + Gson gson = new Gson(); + + } catch (Exception ex) { + Bukkit.getLogger().log(Level.SEVERE, String.valueOf(ex)); + return false; + } + return true; + } + +} diff --git a/src/main/java/de/_82grfl1bif/KPI_Visualizer/data/ResultSetMapper.java b/src/main/java/de/_82grfl1bif/KPI_Visualizer/data/ResultSetMapper.java deleted file mode 100644 index a1cdf5d8d733cbc3680b1f340674dba2226e6f70..0000000000000000000000000000000000000000 --- a/src/main/java/de/_82grfl1bif/KPI_Visualizer/data/ResultSetMapper.java +++ /dev/null @@ -1,58 +0,0 @@ -package de._82grfl1bif.KPI_Visualizer.data; - -import org.apache.commons.beanutils.BeanUtils; - -import javax.persistence.Column; -import javax.swing.text.html.parser.Entity; -import java.lang.reflect.Field; -import java.sql.ResultSet; -import java.sql.ResultSetMetaData; -import java.util.ArrayList; -import java.util.List; - -public class ResultSetMapper { - - public List mapResultSetToObject(ResultSet rs, Class outputClass) { - List outputList = null; - try { - // make sure resultSet is not null - if (rs != null) { - // check if outputClass has 'Entity' annotation - if (outputClass.isAnnotationPresent(Entity.class)) { - // get the resultSet metadata - ResultSetMetaData rsMetaData = rs.getMetaData(); - // get all the attributes of outputClass - Field[] fields = outputClass.getDeclaredFields(); - while (rs.next()) { - T bean = (T) outputClass.newInstance(); - for (int _iterator = 0; _iterator < rsMetaData.getColumnCount(); _iterator++) { - // getting the SQL column name - String columnName = rsMetaData.getColumnName(_iterator + 1); - // reading the value of the SQL column - Object columnValue = rs.getObject(_iterator + 1); - // iterating over outputClass attributes to check if any attribute has 'Column' annotation with matching 'name' value - for (Field field : fields) { - if (field.isAnnotationPresent(Column.class)) { - Column column = field.getAnnotation(Column.class); - if (column.name().equalsIgnoreCase(columnName) && columnValue != null) { - BeanUtils.setProperty(bean, field.getName(), columnValue); - break; - } - } - } - } - if (outputList == null) { - outputList = new ArrayList<>(); - } - outputList.add(bean); - } - } - } else { - return null; - } - } catch (Exception e) { - e.printStackTrace(); - } - return outputList; - } -} \ No newline at end of file diff --git a/src/main/java/de/_82grfl1bif/KPI_Visualizer/helpers/Layout.java b/src/main/java/de/_82grfl1bif/KPI_Visualizer/helpers/Layout.java index a46cd8b67aa83493204a132b1ca10147c32438c3..e2c935767d24d698ffcc3f82b6df46fc38e44089 100644 --- a/src/main/java/de/_82grfl1bif/KPI_Visualizer/helpers/Layout.java +++ b/src/main/java/de/_82grfl1bif/KPI_Visualizer/helpers/Layout.java @@ -78,9 +78,9 @@ public class Layout { layout.add(new Quadrat(new Point(q.bottomLeftCorner.x,q.bottomLeftCorner.x),structure.getWidth().x)); // Oberes rechtes Quadrat if((this.size-(2*structure.getWidth().x)) > 0){ //falls Abstand zwischen den Quadraten ist. Rectangle rTop = new Rectangle(structure.getWidth().x,(this.size-2*structure.getWidth().x),new Point(q .topRightCorner.y,q.bottomLeftCorner.x)); - layout.addAll(rTop.splittToQuads(rTop)); + layout.addAll(rTop.splitToQuads(rTop)); Rectangle rRight = new Rectangle((this.size-2*structure.getWidth().x),structure.getWidth().x,new Point(q.bottomLeftCorner.x,q.topRightCorner.y)); - layout.addAll(rRight.splittToQuads(rRight)); + layout.addAll(rRight.splitToQuads(rRight)); } } diff --git a/src/main/java/de/_82grfl1bif/KPI_Visualizer/helpers/Quadrat.java b/src/main/java/de/_82grfl1bif/KPI_Visualizer/helpers/Quadrat.java index 4714f23f48faae3e18f3426294dc39bd28338b4f..97bbb0031e50d6d8b43842ca51939f2dc4227e87 100644 --- a/src/main/java/de/_82grfl1bif/KPI_Visualizer/helpers/Quadrat.java +++ b/src/main/java/de/_82grfl1bif/KPI_Visualizer/helpers/Quadrat.java @@ -41,16 +41,16 @@ public class Quadrat extends Shape{ this.belegt = true; this.structure = structure; ArrayList result = new ArrayList<>(); - if(this.xEdgeLength > structure.getWidth().x+3){//if you can splitt rest into more quads + if(this.xEdgeLength > structure.getWidth().x+3){//if you can split rest into more quads int scrapLength = this.xEdgeLength-structure.getWidth().x; result.add(new Quadrat(new Point(this.bottomLeftCorner.x+structure.getWidth().x,this.bottomLeftCorner.y),scrapLength)); result.add(new Quadrat(new Point(this.bottomLeftCorner.x,this.bottomLeftCorner.y+structure.getWidth().x),scrapLength)); result.add(new Quadrat(new Point(this.bottomLeftCorner.x+structure.getWidth().x,this.bottomLeftCorner.y+structure.getWidth().x),scrapLength)); if(this.xEdgeLength%scrapLength != 0){ Rectangle temp = new Rectangle(scrapLength,this.xEdgeLength-2*scrapLength,new Point(this.bottomLeftCorner.x+scrapLength,this.bottomLeftCorner.y+structure.getWidth().x)); - result.addAll(temp.splittToQuads(temp)); + result.addAll(temp.splitToQuads(temp)); temp = new Rectangle(this.xEdgeLength-2*scrapLength,scrapLength,new Point(this.bottomLeftCorner.x+structure.getWidth().x,this.bottomLeftCorner.y+scrapLength)); - result.addAll(temp.splittToQuads(temp)); + result.addAll(temp.splitToQuads(temp)); } } return result; @@ -64,7 +64,7 @@ public class Quadrat extends Shape{ return new Point(topRightCorner.x-bottomLeftCorner.x,topRightCorner.y-bottomLeftCorner.y); } - public void applyCoordinates(){ - + public void applyCoordinates(Point coordinates){ + this.bottomLeftCorner = coordinates; } } diff --git a/src/main/java/de/_82grfl1bif/KPI_Visualizer/helpers/Rectangle.java b/src/main/java/de/_82grfl1bif/KPI_Visualizer/helpers/Rectangle.java index 580e2db5f80939ad7f684097e6a25a0e796c0a0b..c9f5e4df2506a5ae6335131db4baf3a277d663ed 100644 --- a/src/main/java/de/_82grfl1bif/KPI_Visualizer/helpers/Rectangle.java +++ b/src/main/java/de/_82grfl1bif/KPI_Visualizer/helpers/Rectangle.java @@ -5,7 +5,7 @@ import java.util.ArrayList; public class Rectangle extends Shape { - private int zEdgeLength; + private final int zEdgeLength; public Rectangle(int zEdgeLength, int xEdgeLength, Point bottomLeftCorner) { this.zEdgeLength = zEdgeLength; @@ -14,7 +14,7 @@ public class Rectangle extends Shape { this.topRightCorner = new Point(bottomLeftCorner.x + xEdgeLength, bottomLeftCorner.y + zEdgeLength); } - public ArrayList splittToQuads(Rectangle r) { + public ArrayList splitToQuads(Rectangle r) { ArrayList result = new ArrayList<>(); if (r.xEdgeLength >= 3 && r.zEdgeLength >= 3) { if ((r.xEdgeLength - r.zEdgeLength) < 0) {//standing Rectangle @@ -32,7 +32,7 @@ public class Rectangle extends Shape { scrapPoint.y = (r.bottomLeftCorner.y + (r.xEdgeLength * (c + 1))); } if (scrapLength >= 3 && r.xEdgeLength >= 3) { - result.addAll(splittToQuads(new Rectangle(scrapLength, r.xEdgeLength, scrapPoint))); + result.addAll(splitToQuads(new Rectangle(scrapLength, r.xEdgeLength, scrapPoint))); } } } else {//laying Rectangles @@ -49,8 +49,8 @@ public class Rectangle extends Shape { scrapPoint.x = (r.bottomLeftCorner.x + (r.zEdgeLength * (c + 1))); scrapPoint.y = r.bottomLeftCorner.y; } - if (r.zEdgeLength >= 3 && scrapLength >= 3) { - result.addAll(splittToQuads(new Rectangle(r.zEdgeLength, scrapLength, scrapPoint))); + if (scrapLength >= 3) { + result.addAll(splitToQuads(new Rectangle(r.zEdgeLength, scrapLength, scrapPoint))); } } } diff --git a/src/main/java/de/_82grfl1bif/KPI_Visualizer/structures/Builder.java b/src/main/java/de/_82grfl1bif/KPI_Visualizer/structures/Builder.java new file mode 100644 index 0000000000000000000000000000000000000000..3400a046ceb781ccbde9f83988257cb683c56f43 --- /dev/null +++ b/src/main/java/de/_82grfl1bif/KPI_Visualizer/structures/Builder.java @@ -0,0 +1,102 @@ +package de._82grfl1bif.KPI_Visualizer.structures; + +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.Server; +import org.bukkit.block.Block; + +public class Builder { + + public void setFoundation(Server server, Location startLocation, int x, int z, Material material) { + for (int cx = 0; cx < x; cx++) { + for (int cz = 0; cz < z; cz++) { + Block block = server.getWorlds().get(0).getBlockAt(startLocation.clone().add(cx, 0, cz)); + block.setType(material); + } + } + } + + public void fillQube(Server server, Location startLocation, int x, int y, int z, Material material) { + for (int cy = 0; cy < y; cy++) { + setFoundation(server, startLocation.clone().add(0, cy, 0), x, z, material); + } + } + + private void setWalls(Server server, Location startLocation, int x, int y,Material material) { + Location save = startLocation.clone(); + Location temp = startLocation.clone(); + for (int cx = 0; cx < x - 1; cx++) {// x+x Wall + for (int cy = 0; cy < y; cy++) { + server.getWorlds().get(0).getBlockAt(temp.clone().add(cx,cy,1)).setType(material); + } + } + temp = save.clone(); + for (int cz = 0; cz < x - 1; cz++) {// z+x Wall + for (int cy = 0; cy < y; cy++) { + server.getWorlds().get(0).getBlockAt(temp.clone().add(1, cy, cz)).setType(material); + } + } + temp = save.clone().add(0, 0, x - 1); + for (int cx = 0; cx < x; cx++) {// x+x z+x Wall from x+x + for (int cy = 0; cy < y; cy++) { + server.getWorlds().get(0).getBlockAt(temp.clone().add(cx, cy, -1)).setType(material); + } + } + temp = save.clone().add(x - 1, 0, 0); + for (int cz = 0; cz < x - 1; cz++) {// x+x z+x Wall from x+z + for (int cy = 0; cy < y; cy++) { + server.getWorlds().get(0).getBlockAt(temp.clone().add(-1, cy, cz)).setType(material); + } + } + + temp = save.clone(); + for (int cx = 0; cx < x - 1; cx++) {// x+x Wall + for (int cy = 0; cy < y; cy++) { + server.getWorlds().get(0).getBlockAt(temp.clone().add(cx, cy, 0)).setType(Material.GLASS); + } + } + temp = save.clone(); + for (int cz = 0; cz < x - 1; cz++) {// z+x Wall + for (int cy = 0; cy < y; cy++) { + server.getWorlds().get(0).getBlockAt(temp.clone().add(0, cy, cz)).setType(Material.GLASS); + } + } + temp = save.clone().add(0, 0, x - 1); + for (int cx = 0; cx < x; cx++) {// x+x z+x Wall from x+x + for (int cy = 0; cy < y; cy++) { + server.getWorlds().get(0).getBlockAt(temp.clone().add(cx, cy, 0)).setType(Material.GLASS); + } + } + temp = save.clone().add(x - 1, 0, 0); + for (int cz = 0; cz < x - 1; cz++) {// x+x z+x Wall from x+z + for (int cy = 0; cy < y; cy++) { + server.getWorlds().get(0).getBlockAt(temp.clone().add(0, cy, cz)).setType(Material.GLASS); + } + } + + temp = save.clone(); + for (int cy = 0; cy < y; cy++) { + server.getWorlds().get(0).getBlockAt(temp.clone().add(0, cy, 0)).setType(Material.BLACKSTONE); + } + temp = save.clone().add(x - 1, 0, 0); + for (int cy = 0; cy < y; cy++) { + server.getWorlds().get(0).getBlockAt(temp.clone().add(0, cy, 0)).setType(Material.BLACKSTONE); + } + temp = save.clone().add(0, 0, x - 1); + for (int cy = 0; cy < y; cy++) { + server.getWorlds().get(0).getBlockAt(temp.clone().add(0, cy, 0)).setType(Material.BLACKSTONE); + } + temp = save.clone().add(x - 1, 0, x - 1); + for (int cy = 0; cy < y; cy++) { + server.getWorlds().get(0).getBlockAt(temp.clone().add(0, cy, 0)).setType(Material.BLACKSTONE); + } + + save.add(0,y,0);//roof + setFoundation(server,save,x,x,Material.BLACKSTONE); + } + + public void buildBuilding(Server server, Location startLocation, int x, int y, Material material) { + setWalls(server, startLocation.clone().add(0, 1, 0), x, y, material); + } + +} diff --git a/src/main/java/de/_82grfl1bif/KPI_Visualizer/structures/Building.java b/src/main/java/de/_82grfl1bif/KPI_Visualizer/structures/Building.java index 9cd97772d2860a4b1e16efac317b0f7af701798f..6e8335c28e7a1b5c770824f4b4293719abf66f71 100644 --- a/src/main/java/de/_82grfl1bif/KPI_Visualizer/structures/Building.java +++ b/src/main/java/de/_82grfl1bif/KPI_Visualizer/structures/Building.java @@ -2,11 +2,9 @@ package de._82grfl1bif.KPI_Visualizer.structures; import org.bukkit.Material; -import javax.persistence.Column; -import java.awt.*; +import java.awt.Point; public class Building extends Structure{ - @Column(name = "height") private final int height; public Building(int width, int height, Material material){ //Buildings are Square -> no depth diff --git a/src/main/java/de/_82grfl1bif/KPI_Visualizer/structures/Structure.java b/src/main/java/de/_82grfl1bif/KPI_Visualizer/structures/Structure.java index c65d14800e9e66a45d0a126863627a8b2621a42f..8f1c803d001635c1ce3db8f41fb5b12b418849d4 100644 --- a/src/main/java/de/_82grfl1bif/KPI_Visualizer/structures/Structure.java +++ b/src/main/java/de/_82grfl1bif/KPI_Visualizer/structures/Structure.java @@ -8,12 +8,9 @@ import javax.persistence.Column; import javax.persistence.Entity; import java.awt.*; -@Entity public class Structure{ - @Column(name ="width") protected Point width = new Point(0,0); - @Column(name ="material") protected Material material; protected Location location; protected int depth;