aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/github/moulberry/notenoughupdates/commands/dungeon/MapCommand.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/io/github/moulberry/notenoughupdates/commands/dungeon/MapCommand.java')
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/commands/dungeon/MapCommand.java215
1 files changed, 114 insertions, 101 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/commands/dungeon/MapCommand.java b/src/main/java/io/github/moulberry/notenoughupdates/commands/dungeon/MapCommand.java
index 77800bec..ae06a346 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/commands/dungeon/MapCommand.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/commands/dungeon/MapCommand.java
@@ -25,105 +25,118 @@ import java.util.Map;
public class MapCommand extends ClientCommandBase {
- public MapCommand() {
- super("neumap");
- }
-
- @Override
- public void processCommand(ICommandSender sender, String[] args) throws CommandException {
- if (NotEnoughUpdates.INSTANCE.colourMap == null) {
- try (BufferedReader reader = new BufferedReader(new InputStreamReader(Minecraft.getMinecraft().getResourceManager().getResource(
- new ResourceLocation("notenoughupdates:maps/F1Full.json")).getInputStream(), StandardCharsets.UTF_8))) {
- JsonObject json = NotEnoughUpdates.INSTANCE.manager.gson.fromJson(reader, JsonObject.class);
-
- NotEnoughUpdates.INSTANCE.colourMap = new Color[128][128];
- for (int x = 0; x < 128; x++) {
- for (int y = 0; y < 128; y++) {
- NotEnoughUpdates.INSTANCE.colourMap[x][y] = new Color(0, 0, 0, 0);
- }
- }
- for (Map.Entry<String, JsonElement> entry : json.entrySet()) {
- int x = Integer.parseInt(entry.getKey().split(":")[0]);
- int y = Integer.parseInt(entry.getKey().split(":")[1]);
-
- NotEnoughUpdates.INSTANCE.colourMap[x][y] = new Color(entry.getValue().getAsInt(), true);
- }
- } catch (Exception ignored) {}
- }
-
- if (!NotEnoughUpdates.INSTANCE.config.hidden.dev) {
- NotEnoughUpdates.INSTANCE.openGui = new GuiDungeonMapEditor();
- return;
- }
-
- if (args.length == 1 && args[0].equals("reset")) {
- NotEnoughUpdates.INSTANCE.colourMap = null;
- return;
- }
-
- if (args.length != 2) {
- NotEnoughUpdates.INSTANCE.openGui = new GuiDungeonMapEditor();
- return;
- }
-
- if (args[0].equals("save")) {
- ItemStack stack = Minecraft.getMinecraft().thePlayer.getHeldItem();
- if (stack != null && stack.getItem() instanceof ItemMap) {
- ItemMap map = (ItemMap) stack.getItem();
- MapData mapData = map.getMapData(stack, Minecraft.getMinecraft().theWorld);
-
- if (mapData == null) return;
-
- JsonObject json = new JsonObject();
- for (int i = 0; i < 16384; ++i) {
- int x = i % 128;
- int y = i / 128;
-
- int j = mapData.colors[i] & 255;
-
- Color c;
- if (j / 4 == 0) {
- c = new Color((i + i / 128 & 1) * 8 + 16 << 24, true);
- } else {
- c = new Color(MapColor.mapColorArray[j / 4].getMapColor(j & 3), true);
- }
-
- json.addProperty(x + ":" + y, c.getRGB());
- }
-
- try {
- new File(NotEnoughUpdates.INSTANCE.manager.configLocation, "maps").mkdirs();
- NotEnoughUpdates.INSTANCE.manager.writeJson(json, new File(NotEnoughUpdates.INSTANCE.manager.configLocation, "maps/" + args[1] + ".json"));
- } catch (Exception e) {
- e.printStackTrace();
- }
-
- Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN +
- "Saved to file."));
- }
-
- return;
- }
-
- if (args[0].equals("load")) {
- JsonObject json = NotEnoughUpdates.INSTANCE.manager.getJsonFromFile(new File(NotEnoughUpdates.INSTANCE.manager.configLocation, "maps/" + args[1] + ".json"));
-
- NotEnoughUpdates.INSTANCE.colourMap = new Color[128][128];
- for (int x = 0; x < 128; x++) {
- for (int y = 0; y < 128; y++) {
- NotEnoughUpdates.INSTANCE.colourMap[x][y] = new Color(0, 0, 0, 0);
- }
- }
- for (Map.Entry<String, JsonElement> entry : json.entrySet()) {
- int x = Integer.parseInt(entry.getKey().split(":")[0]);
- int y = Integer.parseInt(entry.getKey().split(":")[1]);
-
- NotEnoughUpdates.INSTANCE.colourMap[x][y] = new Color(entry.getValue().getAsInt(), true);
- }
-
- return;
- }
-
- NotEnoughUpdates.INSTANCE.openGui = new GuiDungeonMapEditor();
- }
+ public MapCommand() {
+ super("neumap");
+ }
+
+ @Override
+ public void processCommand(ICommandSender sender, String[] args) throws CommandException {
+ if (NotEnoughUpdates.INSTANCE.colourMap == null) {
+ try (
+ BufferedReader reader = new BufferedReader(new InputStreamReader(Minecraft
+ .getMinecraft()
+ .getResourceManager()
+ .getResource(
+ new ResourceLocation("notenoughupdates:maps/F1Full.json"))
+ .getInputStream(), StandardCharsets.UTF_8))
+ ) {
+ JsonObject json = NotEnoughUpdates.INSTANCE.manager.gson.fromJson(reader, JsonObject.class);
+
+ NotEnoughUpdates.INSTANCE.colourMap = new Color[128][128];
+ for (int x = 0; x < 128; x++) {
+ for (int y = 0; y < 128; y++) {
+ NotEnoughUpdates.INSTANCE.colourMap[x][y] = new Color(0, 0, 0, 0);
+ }
+ }
+ for (Map.Entry<String, JsonElement> entry : json.entrySet()) {
+ int x = Integer.parseInt(entry.getKey().split(":")[0]);
+ int y = Integer.parseInt(entry.getKey().split(":")[1]);
+
+ NotEnoughUpdates.INSTANCE.colourMap[x][y] = new Color(entry.getValue().getAsInt(), true);
+ }
+ } catch (Exception ignored) {
+ }
+ }
+
+ if (!NotEnoughUpdates.INSTANCE.config.hidden.dev) {
+ NotEnoughUpdates.INSTANCE.openGui = new GuiDungeonMapEditor();
+ return;
+ }
+
+ if (args.length == 1 && args[0].equals("reset")) {
+ NotEnoughUpdates.INSTANCE.colourMap = null;
+ return;
+ }
+
+ if (args.length != 2) {
+ NotEnoughUpdates.INSTANCE.openGui = new GuiDungeonMapEditor();
+ return;
+ }
+
+ if (args[0].equals("save")) {
+ ItemStack stack = Minecraft.getMinecraft().thePlayer.getHeldItem();
+ if (stack != null && stack.getItem() instanceof ItemMap) {
+ ItemMap map = (ItemMap) stack.getItem();
+ MapData mapData = map.getMapData(stack, Minecraft.getMinecraft().theWorld);
+
+ if (mapData == null) return;
+
+ JsonObject json = new JsonObject();
+ for (int i = 0; i < 16384; ++i) {
+ int x = i % 128;
+ int y = i / 128;
+
+ int j = mapData.colors[i] & 255;
+
+ Color c;
+ if (j / 4 == 0) {
+ c = new Color((i + i / 128 & 1) * 8 + 16 << 24, true);
+ } else {
+ c = new Color(MapColor.mapColorArray[j / 4].getMapColor(j & 3), true);
+ }
+
+ json.addProperty(x + ":" + y, c.getRGB());
+ }
+
+ try {
+ new File(NotEnoughUpdates.INSTANCE.manager.configLocation, "maps").mkdirs();
+ NotEnoughUpdates.INSTANCE.manager.writeJson(
+ json,
+ new File(NotEnoughUpdates.INSTANCE.manager.configLocation, "maps/" + args[1] + ".json")
+ );
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(EnumChatFormatting.GREEN +
+ "Saved to file."));
+ }
+
+ return;
+ }
+
+ if (args[0].equals("load")) {
+ JsonObject json = NotEnoughUpdates.INSTANCE.manager.getJsonFromFile(new File(
+ NotEnoughUpdates.INSTANCE.manager.configLocation,
+ "maps/" + args[1] + ".json"
+ ));
+
+ NotEnoughUpdates.INSTANCE.colourMap = new Color[128][128];
+ for (int x = 0; x < 128; x++) {
+ for (int y = 0; y < 128; y++) {
+ NotEnoughUpdates.INSTANCE.colourMap[x][y] = new Color(0, 0, 0, 0);
+ }
+ }
+ for (Map.Entry<String, JsonElement> entry : json.entrySet()) {
+ int x = Integer.parseInt(entry.getKey().split(":")[0]);
+ int y = Integer.parseInt(entry.getKey().split(":")[1]);
+
+ NotEnoughUpdates.INSTANCE.colourMap[x][y] = new Color(entry.getValue().getAsInt(), true);
+ }
+
+ return;
+ }
+
+ NotEnoughUpdates.INSTANCE.openGui = new GuiDungeonMapEditor();
+ }
}