mirror of
https://github.com/quizhizhe/LiteLoaderBDS-1.16.40.git
synced 2025-06-03 04:23:39 +00:00
修复BlockExploded
事件
This commit is contained in:
parent
a73afd9fe9
commit
b14f5fe505
@ -926,20 +926,49 @@ TClasslessInstanceHook(unsigned short,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/////////////////// BlockExploded ///////////////////
|
/////////////////// BlockExploded ///////////////////
|
||||||
// 没有这个符号
|
// block::onExploded实际是调用以下其中之一
|
||||||
// TInstanceHook(void, "?onExploded@Block@@QEBAXAEAVBlockSource@@AEBVBlockPos@@PEAVActor@@@Z",
|
// StairBlock
|
||||||
// Block, BlockSource* bs, BlockPos* bp, Actor* actor) {
|
TInstanceHook(void, "onExploded@StairBlock@@UEBAXAEAVBlockSource@@AEBVBlockPos@@PEAVActor@@@Z",
|
||||||
// IF_LISTENED(BlockExplodedEvent) {
|
Block, BlockSource* bs, BlockPos* bp, Actor* actor) {
|
||||||
// if (actor) {
|
IF_LISTENED(BlockExplodedEvent) {
|
||||||
// BlockExplodedEvent ev{};
|
if (actor) {
|
||||||
// ev.mBlockInstance = BlockInstance::createBlockInstance(this, *bp, bs->getDimensionId());
|
BlockExplodedEvent ev{};
|
||||||
// ev.mExplodeSource = actor;
|
ev.mBlockInstance = BlockInstance::createBlockInstance(this, *bp, bs->getDimensionId());
|
||||||
// ev.call();
|
ev.mExplodeSource = actor;
|
||||||
// }
|
ev.call();
|
||||||
// }
|
}
|
||||||
// IF_LISTENED_END(BlockExplodedEvent)
|
}
|
||||||
// return original(this, bs, bp, actor);
|
IF_LISTENED_END(BlockExplodedEvent)
|
||||||
// }
|
return original(this, bs, bp, actor);
|
||||||
|
}
|
||||||
|
//TntBlock
|
||||||
|
TInstanceHook(void, "?onExploded@TntBlock@@UEBAXAEAVBlockSource@@AEBVBlockPos@@PEAVActor@@@Z",
|
||||||
|
Block, BlockSource* bs, BlockPos* bp, Actor* actor) {
|
||||||
|
IF_LISTENED(BlockExplodedEvent) {
|
||||||
|
if (actor) {
|
||||||
|
BlockExplodedEvent ev{};
|
||||||
|
ev.mBlockInstance = BlockInstance::createBlockInstance(this, *bp, bs->getDimensionId());
|
||||||
|
ev.mExplodeSource = actor;
|
||||||
|
ev.call();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
IF_LISTENED_END(BlockExplodedEvent)
|
||||||
|
return original(this, bs, bp, actor);
|
||||||
|
}
|
||||||
|
//TopSnowBlock
|
||||||
|
TInstanceHook(void, "?onExploded@TopSnowBlock@@UEBAXAEAVBlockSource@@AEBVBlockPos@@PEAVActor@@@Z",
|
||||||
|
Block, BlockSource* bs, BlockPos* bp, Actor* actor) {
|
||||||
|
IF_LISTENED(BlockExplodedEvent) {
|
||||||
|
if (actor) {
|
||||||
|
BlockExplodedEvent ev{};
|
||||||
|
ev.mBlockInstance = BlockInstance::createBlockInstance(this, *bp, bs->getDimensionId());
|
||||||
|
ev.mExplodeSource = actor;
|
||||||
|
ev.call();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
IF_LISTENED_END(BlockExplodedEvent)
|
||||||
|
return original(this, bs, bp, actor);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/////////////////// FireSpread ///////////////////
|
/////////////////// FireSpread ///////////////////
|
||||||
|
Loading…
Reference in New Issue
Block a user