From 57f8c140839a931c8f45ddd6c28207cdb3f74aa4 Mon Sep 17 00:00:00 2001 From: Michael Pollind Date: Wed, 13 Jan 2021 13:06:38 -0800 Subject: [PATCH] feat(JOML): migrate orientation and Sector (#5) --- .../org/terasology/commonworld/Orientation.java | 16 +++++++++++++--- .../java/org/terasology/commonworld/Sector.java | 7 ++++--- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/terasology/commonworld/Orientation.java b/src/main/java/org/terasology/commonworld/Orientation.java index 1b39fd6..f8019c3 100644 --- a/src/main/java/org/terasology/commonworld/Orientation.java +++ b/src/main/java/org/terasology/commonworld/Orientation.java @@ -18,6 +18,8 @@ import java.util.EnumMap; +import org.joml.Vector2i; +import org.joml.Vector2ic; import org.terasology.math.geom.BaseVector2i; import org.terasology.math.geom.ImmutableVector2i; @@ -102,10 +104,10 @@ public enum Orientation { ROTATE_CCW.put(NORTHEAST, NORTH); } - private final ImmutableVector2i dir; + private final Vector2ic dir; Orientation(int dx, int dz) { - this.dir = new ImmutableVector2i(dx, dz); + this.dir = new Vector2i(dx, dz); } /** @@ -164,8 +166,16 @@ public Orientation getRotated(int degrees) { /** * @return the orientation */ + public Vector2ic direction() { + return dir; + } + + /** + * @return the orientation + */ + @Deprecated public ImmutableVector2i getDir() { - return this.dir; + return new ImmutableVector2i(this.dir.x(), this.dir.y()); } /** diff --git a/src/main/java/org/terasology/commonworld/Sector.java b/src/main/java/org/terasology/commonworld/Sector.java index 8bfb5d5..bb1607a 100644 --- a/src/main/java/org/terasology/commonworld/Sector.java +++ b/src/main/java/org/terasology/commonworld/Sector.java @@ -16,6 +16,7 @@ package org.terasology.commonworld; +import org.joml.Vector2ic; import org.terasology.math.geom.BaseVector2i; import org.terasology.math.geom.ImmutableVector2i; import org.terasology.math.geom.Vector2i; @@ -64,9 +65,9 @@ public ImmutableVector2i getCoords() { */ public Sector getNeighbor(Orientation dir) { - ImmutableVector2i v = dir.getDir(); - int x = coords.getX() + v.getX(); - int z = coords.getY() + v.getY(); + Vector2ic v = dir.direction(); + int x = coords.getX() + v.x(); + int z = coords.getY() + v.y(); return Sectors.getSector(new Vector2i(x, z)); }