From b0b395f068f7a0e0258a62949e7f8544782e7527 Mon Sep 17 00:00:00 2001 From: LunarAkai Date: Thu, 21 Mar 2024 20:11:08 +0100 Subject: [PATCH] blub --- .../minecleaner/MinecleanerListener.java | 3 +- .../minecleaner/MinecleanerRayTrace.java | 76 +++++++++++++++++++ 2 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 src/main/java/de/lunarakai/minecleaner/MinecleanerRayTrace.java diff --git a/src/main/java/de/lunarakai/minecleaner/MinecleanerListener.java b/src/main/java/de/lunarakai/minecleaner/MinecleanerListener.java index dc72f8d..d2ddbfa 100644 --- a/src/main/java/de/lunarakai/minecleaner/MinecleanerListener.java +++ b/src/main/java/de/lunarakai/minecleaner/MinecleanerListener.java @@ -220,5 +220,6 @@ public class MinecleanerListener implements Listener { } } } - } + + diff --git a/src/main/java/de/lunarakai/minecleaner/MinecleanerRayTrace.java b/src/main/java/de/lunarakai/minecleaner/MinecleanerRayTrace.java new file mode 100644 index 0000000..e6a6403 --- /dev/null +++ b/src/main/java/de/lunarakai/minecleaner/MinecleanerRayTrace.java @@ -0,0 +1,76 @@ +package de.lunarakai.minecleaner; + +import org.bukkit.Location; +import org.bukkit.entity.Player; +import org.joml.Vector2d; +import org.joml.Vector2i; + +public class MinecleanerRayTrace { + MinecleanerPlugin plugin; + + Location arenaFieldCenterLocation; + Location playerEyeLocation; + + // get center of arena field -> define as (0,0) for now + // -> get clicked block + // --> get clicked cell on that block + // ---> get distance from clicked cell to arena center + // ----> do math idk?? + + /* Example on Board with Width Index 0 (9*9) + * + * + * | | + * ------|----------------------------------------------------------------|-- + * (8,x) | (8,0) (8,1) (8,2) (8,3) (8,4) (8,5) (8,6) (8,7) (8,8) | + * | | + * (7,x) | (7,0) (7,1) (7,2) (7,3) (7,4) (7,5) (7,6) (7,7) (7,8) | + * | | + * (6,x) | (6,0) (6,1) (6,2) (6,3) (6,4) (6,5) (6,6) (6,7) (6,8) | + * | | + * (5,x) | (5,0) (5,1) (5,2) (5,3) (5,4) (5,5) (5,6) (5,7) (5,8) | + * | | + * (4,x) | (4,0) (4,1) (4,2) (4,3) (4,4) (4,5) (4,6) (4,7) (4,8) | + * | | + * (3,x) | (3,0) (3,1) (3,2) (3,3) (3,4) (3,5) (3,6) (3,7) (3,8) | + * | | + * (2,x) | (2,0) (2,1) (2,2) (2,3) (2,4) (2,5) (2,6) (2,7) (2,8) | + * | | + * (1,x) | (1,0) (1,1) (1,2) (1,3) (1,4) (1,5) (1,6) (1,7) (1,8) | + * | | + * (0,x) | (0,0) (0,1) (0,2) (0,3) (0,4) (0,5) (0,6) (0,7) (0,8) | + * ------|----------------------------------------------------------------|-- + * | (y,0) (y,1) (y,2) (y,3) (y,4) (y,5) (y,6) (y,7) (y,8) | + */ + + public MinecleanerRayTrace(MinecleanerPlugin plugin, MinecleanerArena arena, Player player) { + this.plugin = plugin; + this.playerEyeLocation = player.getEyeLocation(); + + arenaFieldCenterLocation = arena.getLocation().add(0.5, 0.5, 0.5); + + } + + public Vector2i getClickedCellPosition(Location rayTracedBlock) { + Vector2d fieldCenter = new Vector2d(4.0,4.0); + Vector2d blockVector = new Vector2d(rayTracedBlock.toVector().getX(), rayTracedBlock.toVector().getZ()); + + //double lengthblockVector = blockVector.length(); + double distanceBlockFromFieldCenter = fieldCenter.sub(blockVector).length(); + + + + + + double distanceFieldCenterPlayerEyeLocation = returnDistanceBetweenTwoLocations(playerEyeLocation, arenaFieldCenterLocation); + + return null; + } + + + private double returnDistanceBetweenTwoLocations(Location loc1, Location loc2) { + double distance = loc1.distance(loc2); + return distance; + } + +}