From 140e2eef485bf92d90e49a0e807c9a7ab6323b98 Mon Sep 17 00:00:00 2001 From: TheBrokenRail Date: Wed, 26 Feb 2025 06:29:27 -0500 Subject: [PATCH] Small Fix --- mods/src/api/api.cpp | 14 ++++++-------- mods/src/api/events.cpp | 22 +++++++++++----------- mods/src/f3/f3.cpp | 4 ++-- symbols/src/api/OffsetPosTranslator.def | 6 ++++-- 4 files changed, 23 insertions(+), 23 deletions(-) diff --git a/mods/src/api/api.cpp b/mods/src/api/api.cpp index f359c77c..1f56a32d 100644 --- a/mods/src/api/api.cpp +++ b/mods/src/api/api.cpp @@ -84,8 +84,8 @@ static std::string get_blocks(CommandServer *server, const Vec3 &start, const Ve int end_z = int(end.z); // Apply Offset - server->pos_translator.from(start_x, start_y, start_z); - server->pos_translator.from(end_x, end_y, end_z); + server->pos_translator.from_int(start_x, start_y, start_z); + server->pos_translator.from_int(end_x, end_y, end_z); // Swap If Needed #define swap_if_needed(axis) \ @@ -225,7 +225,7 @@ static std::string get_entity_message(CommandServer *server, Entity *entity) { float x = entity->x; float y = entity->y - entity->height_offset; float z = entity->z; - server->pos_translator.to(x, y, z); + server->pos_translator.to_float(x, y, z); pieces.push_back(std::to_string(x)); pieces.push_back(std::to_string(y)); pieces.push_back(std::to_string(z)); @@ -508,7 +508,7 @@ std::string CommandServer_parse_injection(CommandServer_parse_t old, CommandServ next_int(id); next_int(data); // Translate - server->pos_translator.from(x, y, z); + server->pos_translator.from_int(x, y, z); // Set Block server->minecraft->level->setTileAndData(x, y, z, id, data); // Set Sign Data @@ -535,7 +535,7 @@ sign->lines[i] = get_input(line_##i); \ next_int(y); next_int(z); // Translate - server->pos_translator.from(x, y, z); + server->pos_translator.from_int(x, y, z); // Read SignTileEntity *sign = get_sign(server, x, y, z); if (sign == nullptr) { @@ -553,9 +553,7 @@ sign->lines[i] = get_input(line_##i); \ next_float(z); next_int(type); // Translate - x -= server->pos_translator.x; - y -= server->pos_translator.y; - z -= server->pos_translator.z; + server->pos_translator.from_float(x, y, z); if (api_compat_mode) { api_convert_to_mcpi_entity_type(type); } diff --git a/mods/src/api/events.cpp b/mods/src/api/events.cpp index 09831465..cf12f9db 100644 --- a/mods/src/api/events.cpp +++ b/mods/src/api/events.cpp @@ -22,10 +22,10 @@ struct ProjectileHitEvent { }; static std::string event_to_string(CommandServer *server, const ProjectileHitEvent &e) { // Offset Position - float nx = float(e.x); - float ny = float(e.y); - float nz = float(e.z); - server->pos_translator.to(nx, ny, nz); + int nx = e.x; + int ny = e.y; + int nz = e.z; + server->pos_translator.to_int(nx, ny, nz); // Get Outputs std::vector pieces = { // Position @@ -75,16 +75,16 @@ static std::string event_to_string(__attribute__((unused)) CommandServer *server // Block Hit Event static std::string event_to_string(CommandServer *server, const TileEvent &e) { // Offset Coordinates - float x = float(e.x); - float y = float(e.y); - float z = float(e.z); - server->pos_translator.to(x, y, z); + int x = e.x; + int y = e.y; + int z = e.z; + server->pos_translator.to_int(x, y, z); // Output return api_join_outputs({ // Position - std::to_string(int(x)), - std::to_string(int(y)), - std::to_string(int(z)), + std::to_string(x), + std::to_string(y), + std::to_string(z), // Face std::to_string(e.face), // Entity ID diff --git a/mods/src/f3/f3.cpp b/mods/src/f3/f3.cpp index c92db6e8..44fcec51 100644 --- a/mods/src/f3/f3.cpp +++ b/mods/src/f3/f3.cpp @@ -52,7 +52,7 @@ static std::vector get_debug_info_left(const Minecraft *minecraft) float x = minecraft->player->x; float y = minecraft->player->y - minecraft->player->height_offset; float z = minecraft->player->z; - minecraft->command_server->pos_translator.to(x, y, z); + minecraft->command_server->pos_translator.to_float(x, y, z); info.push_back("X: " + to_string_with_precision(x, debug_precision)); info.push_back("Y: " + to_string_with_precision(y, debug_precision)); info.push_back("Z: " + to_string_with_precision(z, debug_precision)); @@ -142,7 +142,7 @@ static std::vector get_debug_info_right(const Minecraft *minecraft) } xyz_precision = debug_precision; } - minecraft->command_server->pos_translator.to(x, y, z); + minecraft->command_server->pos_translator.to_float(x, y, z); info.push_back(""); info.push_back("Target X: " + to_string_with_precision(x, xyz_precision)); info.push_back("Target Y: " + to_string_with_precision(y, xyz_precision)); diff --git a/symbols/src/api/OffsetPosTranslator.def b/symbols/src/api/OffsetPosTranslator.def index d8033b28..64b8eb69 100644 --- a/symbols/src/api/OffsetPosTranslator.def +++ b/symbols/src/api/OffsetPosTranslator.def @@ -1,5 +1,7 @@ -method void from(int &x, int &y, int &z) = 0x27c98; -method void to(float &x, float &y, float &z) = 0x27be0; +method void from_int(int &x, int &y, int &z) = 0x27c98; +method void from_float(float &x, float &y, float &z) = 0x27c64; +method void to_float(float &x, float &y, float &z) = 0x27be0; +method void to_int(int &x, int &y, int &z) = 0x27c14; property float x = 0x4; property float y = 0x8;