feat: add playerWillDestroy,attack,pullInEntity
feat: add playerWillDestroy,attack,pullInEntity
This commit is contained in:
+21
-1
@@ -123,7 +123,11 @@ const GMLIB_API = {
|
|||||||
itemCanDestroyInCreative: ll.import("GMLIB_API", "itemCanDestroyInCreative"),
|
itemCanDestroyInCreative: ll.import("GMLIB_API", "itemCanDestroyInCreative"),
|
||||||
itemCanDestroySpecial: ll.import("GMLIB_API", "itemCanDestroySpecial"),
|
itemCanDestroySpecial: ll.import("GMLIB_API", "itemCanDestroySpecial"),
|
||||||
blockCanDropWithAnyTool: ll.import("GMLIB_API", "blockCanDropWithAnyTool"),
|
blockCanDropWithAnyTool: ll.import("GMLIB_API", "blockCanDropWithAnyTool"),
|
||||||
blockIsAlwaysDestroyable: ll.import("GMLIB_API", "blockIsAlwaysDestroyable")
|
blockIsAlwaysDestroyable: ll.import("GMLIB_API", "blockIsAlwaysDestroyable"),
|
||||||
|
blockPlayerWillDestroy: ll.import("GMLIB_API", "blockPlayerWillDestroy"),
|
||||||
|
playerAttack: ll.import("GMLIB_API", "playerAttack"),
|
||||||
|
playerPullInEntity: ll.import("GMLIB_API", "playerPullInEntity"),
|
||||||
|
getBlockTranslateKeyFromName: ll.import("GMLIB_API", "getBlockTranslateKeyFromName")
|
||||||
}
|
}
|
||||||
|
|
||||||
const mStaticFloatingTextMap = new Map();
|
const mStaticFloatingTextMap = new Map();
|
||||||
@@ -431,6 +435,10 @@ class Minecraft {
|
|||||||
static readNbtFromFile(path, isBinary = true) {
|
static readNbtFromFile(path, isBinary = true) {
|
||||||
return GMLIB_API.readNbtFromFile(path, isBinary);
|
return GMLIB_API.readNbtFromFile(path, isBinary);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static getBlockTranslateKeyFromName(name) {
|
||||||
|
return GMLIB_API.getBlockTranslateKeyFromName(name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class Recipes {
|
class Recipes {
|
||||||
@@ -990,6 +998,18 @@ LLSE_Block.prototype.isAlwaysDestroyable = function () {
|
|||||||
return GMLIB_API.blockIsAlwaysDestroyable(this);
|
return GMLIB_API.blockIsAlwaysDestroyable(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LLSE_Block.prototype.playerWillDestroy = function (player) {
|
||||||
|
return GMLIB_API.blockPlayerWillDestroy(this, player, this.pos);
|
||||||
|
}
|
||||||
|
|
||||||
|
LLSE_Player.prototype.attack = function (entity) {
|
||||||
|
return GMLIB_API.playerAttack(this, entity);
|
||||||
|
}
|
||||||
|
|
||||||
|
LLSE_Player.prototype.pullInEntity = function (entity) {
|
||||||
|
return GMLIB_API.playerPullInEntity(this, entity);
|
||||||
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
StaticFloatingText,
|
StaticFloatingText,
|
||||||
DynamicFloatingText,
|
DynamicFloatingText,
|
||||||
|
|||||||
@@ -659,4 +659,23 @@ void Export_Compatibility_API() {
|
|||||||
RemoteCall::exportAs("GMLIB_API", "blockIsAlwaysDestroyable", [](Block const* block) -> bool {
|
RemoteCall::exportAs("GMLIB_API", "blockIsAlwaysDestroyable", [](Block const* block) -> bool {
|
||||||
return block->getMaterial().isAlwaysDestroyable();
|
return block->getMaterial().isAlwaysDestroyable();
|
||||||
});
|
});
|
||||||
|
RemoteCall::exportAs(
|
||||||
|
"GMLIB_API",
|
||||||
|
"blockPlayerWillDestroy",
|
||||||
|
[](Block const* block, Player* player, std::pair<BlockPos, int> pos) -> bool {
|
||||||
|
return block->playerWillDestroy(*player, pos.first);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
RemoteCall::exportAs("GMLIB_API", "playerAttack", [](Player* player, Actor* entity) -> bool {
|
||||||
|
return player->attack(*entity, ActorDamageCause::EntityAttack);
|
||||||
|
});
|
||||||
|
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;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user