geforkt von Mirrors/Paper
96d5e6ca48
Currently includes generated key holder classes for types used in the Registry Modification API
67 Zeilen
2.4 KiB
Diff
67 Zeilen
2.4 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
Date: Wed, 25 Jul 2018 01:36:07 -0400
|
|
Subject: [PATCH] Expand Location Manipulation API
|
|
|
|
Adds set(x, y, z), add(base, x, y, z), subtract(base, x, y, z);
|
|
|
|
diff --git a/src/main/java/org/bukkit/Location.java b/src/main/java/org/bukkit/Location.java
|
|
index b7ff09ffdd3aecc1843d175bc76fe5fae1f48dde..aa6821aa33d3c579a139bd7c0378253c43b3754a 100644
|
|
--- a/src/main/java/org/bukkit/Location.java
|
|
+++ b/src/main/java/org/bukkit/Location.java
|
|
@@ -546,6 +546,54 @@ public class Location implements Cloneable, ConfigurationSerializable, io.paperm
|
|
public boolean isChunkLoaded() { return this.getWorld().isChunkLoaded(locToBlock(x) >> 4, locToBlock(z) >> 4); } // Paper
|
|
|
|
// Paper start
|
|
+
|
|
+ /**
|
|
+ * Sets the position of this Location and returns itself
|
|
+ *
|
|
+ * This mutates this object, clone first.
|
|
+ * @param x X coordinate
|
|
+ * @param y Y coordinate
|
|
+ * @param z Z coordinate
|
|
+ * @return self (not cloned)
|
|
+ */
|
|
+ @NotNull
|
|
+ public Location set(double x, double y, double z) {
|
|
+ this.x = x;
|
|
+ this.y = y;
|
|
+ this.z = z;
|
|
+ return this;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Takes the x/y/z from base and adds the specified x/y/z to it and returns self
|
|
+ *
|
|
+ * This mutates this object, clone first.
|
|
+ * @param base The base coordinate to modify
|
|
+ * @param x X coordinate to add to base
|
|
+ * @param y Y coordinate to add to base
|
|
+ * @param z Z coordinate to add to base
|
|
+ * @return self (not cloned)
|
|
+ */
|
|
+ @NotNull
|
|
+ public Location add(@NotNull Location base, double x, double y, double z) {
|
|
+ return this.set(base.x + x, base.y + y, base.z + z);
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Takes the x/y/z from base and subtracts the specified x/y/z to it and returns self
|
|
+ *
|
|
+ * This mutates this object, clone first.
|
|
+ * @param base The base coordinate to modify
|
|
+ * @param x X coordinate to subtract from base
|
|
+ * @param y Y coordinate to subtract from base
|
|
+ * @param z Z coordinate to subtract from base
|
|
+ * @return self (not cloned)
|
|
+ */
|
|
+ @NotNull
|
|
+ public Location subtract(@NotNull Location base, double x, double y, double z) {
|
|
+ return this.set(base.x - x, base.y - y, base.z - z);
|
|
+ }
|
|
+
|
|
/**
|
|
* @return A new location where X/Y/Z are on the Block location (integer value of X/Y/Z)
|
|
*/
|