more shit

This commit is contained in:
Soda Can 2026-03-10 15:17:59 +11:00
parent 8c5de84884
commit 569c7f35c0
2 changed files with 97 additions and 0 deletions

View file

@ -218,6 +218,85 @@ void SDK::SaveAll(bool force) {
if (list) list->saveAll(nullptr);
}
// ============================================================================
// World / Level
// ============================================================================
void SDK::ExplodeAt(double x, double y, double z, float radius, bool fire, bool destroyBlocks, int dimension) {
ServerLevel* level = GetServerLevel(dimension);
if (level) level->explode(nullptr, x, y, z, radius, fire, destroyBlocks);
}
void SDK::SendParticles(const std::wstring& name, double x, double y, double z, int count, int dimension) {
ServerLevel* level = GetServerLevel(dimension);
if (level) level->sendParticles(name, x, y, z, count);
}
void SDK::SendParticlesEx(const std::wstring& name, double x, double y, double z, int count, double xDist, double yDist, double zDist, double speed, int dimension) {
ServerLevel* level = GetServerLevel(dimension);
if (level) level->sendParticles(name, x, y, z, count, xDist, yDist, zDist, speed);
}
void SDK::SaveLevel(bool force, int dimension) {
ServerLevel* level = GetServerLevel(dimension);
if (level) level->save(force, nullptr);
}
bool SDK::IsLevelLoaded(int dimension) {
return GetServerLevel(dimension) != nullptr;
}
void SDK::SetLevelTime(__int64 time, int dimension) {
ServerLevel* level = GetServerLevel(dimension);
if (level) level->setTimeAndAdjustTileTicks(time);
}
__int64 SDK::GetLevelTime(int dimension) {
ServerLevel* level = GetServerLevel(dimension);
return level ? level->getGameTime() : 0LL;
}
void SDK::QueueTileUpdate(int x, int y, int z, int dimension) {
ServerLevel* level = GetServerLevel(dimension);
if (level) level->queueSendTileUpdate(x, y, z);
}
void SDK::AddTickNextTick(int x, int y, int z, int tileId, int tickDelay, int dimension) {
ServerLevel* level = GetServerLevel(dimension);
if (level) level->addToTickNextTick(x, y, z, tileId, tickDelay);
}
bool SDK::MayPlayerInteract(int index, int x, int y, int z, int content, int dimension) {
ServerLevel* level = GetServerLevel(dimension);
auto* p = GetLocalPlayer(index);
if (!level || !p) return false;
return level->mayInteract(std::shared_ptr<Player>(p, [](Player*) {}), x, y, z, content);
}
// ============================================================================
// Entity Limits
// ============================================================================
int SDK::GetPrimedTntCount(int dimension) {
ServerLevel* level = GetServerLevel(dimension);
return level ? level->m_primedTntCount : 0;
}
int SDK::GetFallingTileCount(int dimension) {
ServerLevel* level = GetServerLevel(dimension);
return level ? level->m_fallingTileCount : 0;
}
bool SDK::CanSpawnTnt(int dimension) {
ServerLevel* level = GetServerLevel(dimension);
return level ? level->newPrimedTntAllowed() : false;
}
bool SDK::CanSpawnFallingTile(int dimension) {
ServerLevel* level = GetServerLevel(dimension);
return level ? level->newFallingTileAllowed() : false;
}
// ============================================================================
// Game Rules
// ============================================================================

View file

@ -58,6 +58,24 @@ namespace SDK {
// Player Info
MODAPI std::wstring GetPlayerName(int index = 0);
// World / Level
MODAPI void ExplodeAt(double x, double y, double z, float radius, bool fire = false, bool destroyBlocks = true, int dimension = 0);
MODAPI void SendParticles(const std::wstring& name, double x, double y, double z, int count, int dimension = 0);
MODAPI void SendParticlesEx(const std::wstring& name, double x, double y, double z, int count, double xDist, double yDist, double zDist, double speed, int dimension = 0);
MODAPI void SaveLevel(bool force = false, int dimension = 0);
MODAPI bool IsLevelLoaded(int dimension = 0);
MODAPI void SetLevelTime(__int64 time, int dimension = 0);
MODAPI __int64 GetLevelTime(int dimension = 0);
MODAPI void QueueTileUpdate(int x, int y, int z, int dimension = 0);
MODAPI void AddTickNextTick(int x, int y, int z, int tileId, int tickDelay, int dimension = 0);
MODAPI bool MayPlayerInteract(int index, int x, int y, int z, int content, int dimension = 0);
// Entity Limits (read only)
MODAPI int GetPrimedTntCount(int dimension = 0);
MODAPI int GetFallingTileCount(int dimension = 0);
MODAPI bool CanSpawnTnt(int dimension = 0);
MODAPI bool CanSpawnFallingTile(int dimension = 0);
// Messaging
MODAPI void BroadcastMessage(const std::wstring& message);
MODAPI void SendMessageToPlayer(const std::wstring& playerName, const std::wstring& message);