Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -124,5 +124,11 @@
<scope>provided</scope>
<type>maven-plugin</type>
</dependency>
</dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
11 changes: 7 additions & 4 deletions src/main/java/amidst/gui/main/Actions.java
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,10 @@
import amidst.settings.biomeprofile.BiomeProfileDirectory;
import amidst.settings.biomeprofile.BiomeProfileSelection;
import amidst.util.FileExtensionChecker;
import amidst.util.Pair;
import jdk.jfr.BooleanFlag;
import lombok.AllArgsConstructor;
import lombok.Data;

@NotThreadSafe
public class Actions {
Expand Down Expand Up @@ -136,9 +140,9 @@ public void exit() {
public void goToCoordinate() {
ViewerFacade viewerFacade = viewerFacadeSupplier.get();
if (viewerFacade != null) {
String input = dialogs.askForCoordinates();
if (input != null) {
CoordinatesInWorld coordinates = CoordinatesInWorld.tryParse(input);
Pair<String, Boolean> output = dialogs.askForCoordinates();
if (output.getFirst() != null) {
CoordinatesInWorld coordinates = CoordinatesInWorld.tryParse(output.getFirst(), output.getSecond());
if (coordinates != null) {
viewerFacade.centerOn(coordinates);
} else {
Expand Down Expand Up @@ -424,5 +428,4 @@ public static Path appendFileExtensionIfNecessary(Path file, String fileExtensio
}
return Paths.get(filename);
}

}
18 changes: 8 additions & 10 deletions src/main/java/amidst/gui/main/MainWindowDialogs.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,7 @@
import java.nio.file.Path;
import java.util.List;

import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.*;

import amidst.AmidstSettings;
import amidst.documentation.AmidstThread;
Expand All @@ -16,6 +14,7 @@
import amidst.mojangapi.world.WorldSeed;
import amidst.mojangapi.world.WorldType;
import amidst.mojangapi.world.player.WorldPlayerType;
import amidst.util.Pair;

@NotThreadSafe
public class MainWindowDialogs {
Expand Down Expand Up @@ -147,8 +146,12 @@ public <T> T askForOptions(String title, String message, List<T> choices) {
}

@CalledOnlyBy(AmidstThread.EDT)
public String askForCoordinates() {
return askForString("Go To", "Enter coordinates: (Ex. 123,456)");
public Pair<String, Boolean> askForCoordinates() {
JCheckBox checkbox = new JCheckBox("Nether");
String message = "Enter coordinates: (Ex. 123,456)";
Object[] params = {message, checkbox};
String answer = JOptionPane.showInputDialog(frame, params, "Go To", JOptionPane.QUESTION_MESSAGE);
return Pair.of(answer, checkbox.isSelected());
}

@CalledOnlyBy(AmidstThread.EDT)
Expand All @@ -167,10 +170,5 @@ public String askForPlayerHeight(long currentHeight) {
return null;
}
}

@CalledOnlyBy(AmidstThread.EDT)
private String askForString(String title, String message) {
return JOptionPane.showInputDialog(frame, message, title, JOptionPane.QUESTION_MESSAGE);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ protected List<String> updateTextLines() {
if (mousePosition != null) {
CoordinatesInWorld coordinates = translator.screenToWorld(mousePosition);
String biomeName = getBiomeNameAt(coordinates);
return Arrays.asList(biomeName + " " + coordinates.toString());
return Arrays.asList(biomeName, "Overworld: " + coordinates.toString(), "Nether: " + CoordinatesInWorld.toNether(coordinates).toString());
} else {
return null;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,19 @@

@Immutable
public class CoordinatesInWorld implements Comparable<CoordinatesInWorld> {
public static CoordinatesInWorld tryParse(String coordinates) {
public static CoordinatesInWorld tryParse(String coordinates, Boolean isNether) {
String[] parsedCoordinates = coordinates.replaceAll(" ", "").split(",");
if (parsedCoordinates.length != 2) {
return null;
}
try {
return CoordinatesInWorld.from(Long.parseLong(parsedCoordinates[0]), Long.parseLong(parsedCoordinates[1]));
long x = Long.parseLong(parsedCoordinates[0]);
long z = Long.parseLong(parsedCoordinates[1]);
if (isNether) {
return CoordinatesInWorld.fromNether(x, z);
} else {
return CoordinatesInWorld.from(x, z);
}
} catch (NumberFormatException e) {
return null;
}
Expand All @@ -22,6 +28,14 @@ public static CoordinatesInWorld from(long xInWorld, long yInWorld) {
return new CoordinatesInWorld(xInWorld, yInWorld);
}

public static CoordinatesInWorld fromNether(long xInWorld, long yInWorld) {
return new CoordinatesInWorld(xInWorld * 8, yInWorld * 8);
}

public static CoordinatesInWorld toNether(CoordinatesInWorld coordinates) {
return new CoordinatesInWorld(coordinates.xInWorld / 8, coordinates.yInWorld / 8);
}

public static CoordinatesInWorld from(long xAsResolution, long yAsResolution, Resolution resolution) {
return new CoordinatesInWorld(
resolution.convertFromThisToWorld(xAsResolution),
Expand Down
11 changes: 11 additions & 0 deletions src/main/java/amidst/util/Pair.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package amidst.util;

import lombok.AllArgsConstructor;
import lombok.Data;

@Data
@AllArgsConstructor(staticName = "of")
public class Pair<F, S> {
private F first;
private S second;
}