42 lines
1.1 KiB
C++
42 lines
1.1 KiB
C++
#include "Global.h"
|
|
|
|
int item_despawn_time = 3000;
|
|
|
|
LL_AUTO_TYPED_INSTANCE_HOOK(
|
|
ItemSpawnEventHook,
|
|
ll::memory::HookPriority::Normal,
|
|
Spawner,
|
|
"?spawnItem@Spawner@@QEAAPEAVItemActor@@AEAVBlockSource@@AEBVItemStack@@PEAVActor@@AEBVVec3@@H@Z",
|
|
ItemActor*,
|
|
class BlockSource& region,
|
|
class ItemStack const& item,
|
|
class Actor* spawner,
|
|
class Vec3 const& pos,
|
|
int throwTime
|
|
) {
|
|
auto itac = origin(region, item, spawner, pos, throwTime);
|
|
if (itac) {
|
|
if (spawner) {
|
|
if (spawner->isType(ActorType::Player)) {
|
|
if (!spawner->isAlive()) {
|
|
// Death Drop
|
|
return itac;
|
|
}
|
|
}
|
|
}
|
|
itac->mLifeTime = item_despawn_time;
|
|
}
|
|
return itac;
|
|
}
|
|
|
|
LL_AUTO_TYPED_INSTANCE_HOOK(
|
|
ItemTakeEventHook,
|
|
ll::memory::HookPriority::Normal,
|
|
Actor,
|
|
"?pickUpItem@Actor@@QEAAXAEAVItemActor@@H@Z",
|
|
void,
|
|
class ItemActor& itemActor, int count
|
|
) {
|
|
logger.warn("pickup item {}", this->getTypeName());
|
|
return origin(itemActor,count);
|
|
} |