From e9b4c33a66eb888dc485b9cab344a93d94cddc8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=90=E6=B2=90=E5=91=80?= <163636894+zimuya4153@users.noreply.github.com> Date: Fri, 31 May 2024 20:15:28 +0800 Subject: [PATCH] feat: add getBlockTranslateKeyFromName --- lib/GMLIB_API-JS.js | 7 ++++++- src/CompatibilityApi.cpp | 6 ++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/GMLIB_API-JS.js b/lib/GMLIB_API-JS.js index c086eb2..3ceb2c9 100644 --- a/lib/GMLIB_API-JS.js +++ b/lib/GMLIB_API-JS.js @@ -126,7 +126,8 @@ const GMLIB_API = { blockIsAlwaysDestroyable: ll.import("GMLIB_API", "blockIsAlwaysDestroyable"), blockPlayerWillDestroy: ll.import("GMLIB_API", "blockPlayerWillDestroy"), playerAttack: ll.import("GMLIB_API", "playerAttack"), - playerPullInEntity: ll.import("GMLIB_API", "playerPullInEntity") + playerPullInEntity: ll.import("GMLIB_API", "playerPullInEntity"), + getBlockTranslateKeyFromName: ll.import("GMLIB_API", "getBlockTranslateKeyFromName") } const FloatingTextList = []; @@ -451,6 +452,10 @@ class Minecraft { static readNbtFromFile(path, isBinary = true) { return GMLIB_API.readNbtFromFile(path, isBinary); } + + static getBlockTranslateKeyFromName(name) { + return GMLIB_API.getBlockTranslateKeyFromName(name); + } } class Recipes { diff --git a/src/CompatibilityApi.cpp b/src/CompatibilityApi.cpp index b8efc71..83a76d2 100644 --- a/src/CompatibilityApi.cpp +++ b/src/CompatibilityApi.cpp @@ -671,4 +671,10 @@ void Export_Compatibility_API() { RemoteCall::exportAs("GMLIB_API", "playerPullInEntity", [](Player* player, Actor* entity) -> bool { return player->pullInEntity(*entity); }); + RemoteCall::exportAs("GMLIB_API", "getBlockTranslateKeyFromName", [](std::string const& blockName) -> std::string { + if (auto block = Block::tryGetFromRegistry(blockName)) { + return block->buildDescriptionId(); + } + return blockName; + }); } \ No newline at end of file