aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World/Direction.cpp
diff options
context:
space:
mode:
authordaoge <3523206925@qq.com>2026-03-03 03:04:10 +0800
committerGitHub <noreply@github.com>2026-03-03 03:04:10 +0800
commitb3feddfef372618c8a9d7a0abcaf18cfad866c18 (patch)
tree267761c3bb39241ba5c347bfbe2254d06686e287 /Minecraft.World/Direction.cpp
parent84c31a2331f7a0ec85b9d438992e244f60e5020f (diff)
feat: TU19 (Dec 2014) Features & Content (#155)
* try to resolve merge conflict * feat: TU19 (Dec 2014) Features & Content (#32) * December 2014 files * Working release build * Fix compilation issues * Add sound to Windows64Media * Add DLC content and force Tutorial DLC * Revert "Add DLC content and force Tutorial DLC" This reverts commit 97a43994725008e35fceb984d5549df9c8cea470. * Disable broken light packing * Disable breakpoint during DLC texture map load Allows DLC loading but the DLC textures are still broken * Fix post build not working * ... * fix vs2022 build * fix cmake build --------- Co-authored-by: Loki <lokirautio@gmail.com>
Diffstat (limited to 'Minecraft.World/Direction.cpp')
-rw-r--r--Minecraft.World/Direction.cpp80
1 files changed, 58 insertions, 22 deletions
diff --git a/Minecraft.World/Direction.cpp b/Minecraft.World/Direction.cpp
index 408bbab5..f758798b 100644
--- a/Minecraft.World/Direction.cpp
+++ b/Minecraft.World/Direction.cpp
@@ -4,18 +4,20 @@
const int Direction::STEP_X[] =
{
- 0, -1, 0, 1
+ 0, -1, 0, 1
};
const int Direction::STEP_Z[] =
{
- 1, 0, -1, 0
+ 1, 0, -1, 0
};
+const wstring Direction::NAMES[] = {L"SOUTH", L"WEST", L"NORTH", L"EAST" };
+
// for [direction] it gives [tile-face]
int Direction::DIRECTION_FACING[4] =
{
- Facing::SOUTH, Facing::WEST, Facing::NORTH, Facing::EAST
+ Facing::SOUTH, Facing::WEST, Facing::NORTH, Facing::EAST
};
// for [facing] it gives [direction]
@@ -26,37 +28,71 @@ int Direction::FACING_DIRECTION[] =
int Direction::DIRECTION_OPPOSITE[4] =
{
- Direction::NORTH, Direction::EAST, Direction::SOUTH, Direction::WEST
+ NORTH, EAST, SOUTH, WEST
};
// for [direction] it gives [90 degrees clockwise direction]
int Direction::DIRECTION_CLOCKWISE[] =
{
- Direction::WEST, Direction::NORTH, Direction::EAST, Direction::SOUTH
+ WEST, NORTH, EAST, SOUTH
};
// for [direction] it gives [90 degrees counter clockwise direction]
int Direction::DIRECTION_COUNTER_CLOCKWISE[] =
{
- Direction::EAST, Direction::SOUTH, Direction::WEST, Direction::NORTH
+ EAST, SOUTH, WEST, NORTH
};
int Direction::RELATIVE_DIRECTION_FACING[4][6] =
{
- // south
- {
- Facing::UP, Facing::DOWN, Facing::SOUTH, Facing::NORTH, Facing::EAST, Facing::WEST
- },
- // west
- {
- Facing::UP, Facing::DOWN, Facing::EAST, Facing::WEST, Facing::NORTH, Facing::SOUTH
- },
- // north
- {
- Facing::UP, Facing::DOWN, Facing::NORTH, Facing::SOUTH, Facing::WEST, Facing::EAST
- },
- // east
- {
- Facing::UP, Facing::DOWN, Facing::WEST, Facing::EAST, Facing::SOUTH, Facing::NORTH
- }
+ // south
+ {
+ Facing::UP, Facing::DOWN, Facing::SOUTH, Facing::NORTH, Facing::EAST, Facing::WEST
+ },
+ // west
+ {
+ Facing::UP, Facing::DOWN, Facing::EAST, Facing::WEST, Facing::NORTH, Facing::SOUTH
+ },
+ // north
+ {
+ Facing::UP, Facing::DOWN, Facing::NORTH, Facing::SOUTH, Facing::WEST, Facing::EAST
+ },
+ // east
+ {
+ Facing::UP, Facing::DOWN, Facing::WEST, Facing::EAST, Facing::SOUTH, Facing::NORTH
+ }
};
+
+int Direction::getDirection(double xd, double zd)
+{
+ if (Mth::abs((float) xd) > Mth::abs((float) zd))
+ {
+ if (xd > 0)
+ {
+ return WEST;
+ }
+ else
+ {
+ return EAST;
+ }
+ }
+ else
+ {
+ if (zd > 0)
+ {
+ return NORTH;
+ }
+ else
+ {
+ return SOUTH;
+ }
+ }
+}
+
+int Direction::getDirection(int x0, int z0, int x1, int z1)
+{
+ int xd = x0 - x1;
+ int zd = z0 - z1;
+
+ return getDirection(xd, zd);
+} \ No newline at end of file