Skip to content

Commit

Permalink
feat: layer setting
Browse files Browse the repository at this point in the history
  • Loading branch information
hyunel committed Dec 9, 2022
1 parent 692d2f8 commit fb13bce
Showing 1 changed file with 31 additions and 16 deletions.
47 changes: 31 additions & 16 deletions src/main/java/com/hyun/craftamap/commands/GenerateCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.nio.file.Path;
import java.util.Arrays;
import java.util.Iterator;
import java.util.Objects;
import java.util.concurrent.CompletableFuture;
Expand Down Expand Up @@ -141,6 +142,7 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command

var scale = 1d;
var buildingMode = "shell";
var layersStr = "region,road,building,poi,roadName";
for (var i = 1; i < args.length; i++) {
if (args[i].equals("-s")) {
scale = Double.parseDouble(args[++i]);
Expand All @@ -152,7 +154,11 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command
return true;
}
}
if (args[i].equals("-l")) {
layersStr = args[++i];
}
}
var layers = Arrays.stream(layersStr.replace(" ", "").split(",")).toList();

Location loc = player.getLocation();

Expand Down Expand Up @@ -191,26 +197,35 @@ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command
double finalScale = scale;
String finalBuildingMode = buildingMode;
CompletableFuture.runAsync(()->{
player.sendMessage("§a§l正在绘制地图区域,共计 " + elements.getRegions().length + " 个...");
drawRegions(session, player, horizon, elements.getRegions());
session.flushQueue();

player.sendMessage("§a§l正在绘制道路,共计 " + elements.getRoads().length + " 个...");
drawRoads(session, player, horizon, elements.getRoads());
session.flushQueue();
if(layers.contains("region")) {
player.sendMessage("§a§l正在绘制地图区域,共计 " + elements.getRegions().length + " 个...");
drawRegions(session, player, horizon, elements.getRegions());
session.flushQueue();
}

player.sendMessage("§a§l正在绘制建筑,共计 " + elements.getBuildings().length + " 个...");
drawBuildings(finalScale, session, player, horizon, elements.getBuildings(), finalBuildingMode);
session.flushQueue();
if(layers.contains("road")) {
player.sendMessage("§a§l正在绘制道路,共计 " + elements.getRoads().length + " 个...");
drawRoads(session, player, horizon, elements.getRoads());
session.flushQueue();
}

player.sendMessage("§a§l正在绘制地标,共计 " + elements.getPois().length + " 个...");
drawPOIs(session, player, horizon, elements.getPois());
session.flushQueue();
if(layers.contains("building")) {
player.sendMessage("§a§l正在绘制建筑,共计 " + elements.getBuildings().length + " 个...");
drawBuildings(finalScale, session, player, horizon, elements.getBuildings(), finalBuildingMode);
session.flushQueue();
}

player.sendMessage("§a§l正在绘制路标,共计 " + elements.getRoadnames().length + " 个...");
drawRoadNames(session, player, horizon, elements.getRoadnames());
session.flushQueue();
if(layers.contains("poi")) {
player.sendMessage("§a§l正在绘制地标,共计 " + elements.getPois().length + " 个...");
drawPOIs(session, player, horizon, elements.getPois());
session.flushQueue();
}

if(layers.contains("roadName")) {
player.sendMessage("§a§l正在绘制路标,共计 " + elements.getRoadnames().length + " 个...");
drawRoadNames(session, player, horizon, elements.getRoadnames());
session.flushQueue();
}
}).thenRun(()-> {
session.close();
sender.sendMessage("§a地图生成完成!");
Expand Down

0 comments on commit fb13bce

Please sign in to comment.