diff options
Diffstat (limited to 'src/Blocks/WorldInterface.h')
-rw-r--r-- | src/Blocks/WorldInterface.h | 70 |
1 files changed, 53 insertions, 17 deletions
diff --git a/src/Blocks/WorldInterface.h b/src/Blocks/WorldInterface.h index b3fc9878d..404a75407 100644 --- a/src/Blocks/WorldInterface.h +++ b/src/Blocks/WorldInterface.h @@ -10,36 +10,72 @@ class cItems; class cPlayer; using cBlockEntityCallback = cFunctionRef<bool(cBlockEntity &)>; -using cPlayerListCallback = cFunctionRef<bool(cPlayer &)>; -using cEntityCallback = cFunctionRef<bool(cEntity &)>; +using cPlayerListCallback = cFunctionRef<bool(cPlayer &)>; +using cEntityCallback = cFunctionRef<bool(cEntity &)>; class cWorldInterface { -public: + public: virtual ~cWorldInterface() {} virtual cTickTime GetTimeOfDay(void) const = 0; - virtual cTickTimeLong GetWorldAge(void) const = 0; + virtual cTickTimeLong GetWorldAge(void) const = 0; virtual eDimension GetDimension(void) const = 0; virtual cBroadcastInterface & GetBroadcastManager() = 0; - virtual void DoExplosionAt(double a_ExplosionSize, double a_BlockX, double a_BlockY, double a_BlockZ, bool a_CanCauseFire, eExplosionSource a_Source, void * a_SourceData) = 0; - - /** Calls the callback for the block entity at the specified coords; returns false if there's no block entity at those coords, true if found */ + virtual void DoExplosionAt( + double a_ExplosionSize, + double a_BlockX, + double a_BlockY, + double a_BlockZ, + bool a_CanCauseFire, + eExplosionSource a_Source, + void * a_SourceData + ) = 0; + + /** Calls the callback for the block entity at the specified coords; returns false if there's no block entity at + * those coords, true if found */ virtual bool DoWithBlockEntityAt(Vector3i a_Position, cBlockEntityCallback a_Callback) = 0; /** Spawns item pickups for each item in the list. May compress pickups if too many entities: */ - virtual void SpawnItemPickups(const cItems & a_Pickups, double a_BlockX, double a_BlockY, double a_BlockZ, double a_FlyAwaySpeed = 1.0, bool IsPlayerCreated = false) = 0; - - /** Spawns item pickups for each item in the list. May compress pickups if too many entities. All pickups get the speed specified. */ - virtual void SpawnItemPickups(const cItems & a_Pickups, double a_BlockX, double a_BlockY, double a_BlockZ, double a_SpeedX, double a_SpeedY, double a_SpeedZ, bool IsPlayerCreated = false) = 0; - - virtual UInt32 SpawnItemPickup(double a_PosX, double a_PosY, double a_PosZ, const cItem & a_Item, float a_SpeedX = 0.f, float a_SpeedY = 0.f, float a_SpeedZ = 0.f, int a_LifetimeTicks = 6000, bool a_CanCombine = true) = 0; + virtual void SpawnItemPickups( + const cItems & a_Pickups, + double a_BlockX, + double a_BlockY, + double a_BlockZ, + double a_FlyAwaySpeed = 1.0, + bool IsPlayerCreated = false + ) = 0; + + /** Spawns item pickups for each item in the list. May compress pickups if too many entities. All pickups get the + * speed specified. */ + virtual void SpawnItemPickups( + const cItems & a_Pickups, + double a_BlockX, + double a_BlockY, + double a_BlockZ, + double a_SpeedX, + double a_SpeedY, + double a_SpeedZ, + bool IsPlayerCreated = false + ) = 0; + + virtual UInt32 SpawnItemPickup( + double a_PosX, + double a_PosY, + double a_PosZ, + const cItem & a_Item, + float a_SpeedX = 0.f, + float a_SpeedY = 0.f, + float a_SpeedZ = 0.f, + int a_LifetimeTicks = 6000, + bool a_CanCombine = true + ) = 0; /** Spawns a mob of the specified type. Returns the mob's UniqueID if recognized and spawned, or cEntity::INVALID_ID on failure. */ @@ -49,8 +85,8 @@ public: Returns the UniqueID of the spawned experience orb, or cEntity::INVALID_ID on failure. */ virtual UInt32 SpawnExperienceOrb(double a_X, double a_Y, double a_Z, int a_Reward) = 0; - /** Spawns experience orbs of the specified total value at the given location. The orbs' values are split according to regular Minecraft rules. - Returns an vector of UniqueID of all the orbs. */ + /** Spawns experience orbs of the specified total value at the given location. The orbs' values are split according + to regular Minecraft rules. Returns an vector of UniqueID of all the orbs. */ virtual std::vector<UInt32> SpawnSplitExperienceOrbs(Vector3d a_Pos, int a_Reward) = 0; /** Sends the block on those coords to the player */ @@ -62,7 +98,8 @@ public: SendBlockTo(a_BlockPos.x, a_BlockPos.y, a_BlockPos.z, a_Player); } - /** Calls the callback for each player in the list; returns true if all players processed, false if the callback aborted by returning true */ + /** Calls the callback for each player in the list; returns true if all players processed, false if the callback + * aborted by returning true */ virtual bool ForEachPlayer(cPlayerListCallback a_Callback) = 0; /** Calls the callback for each entity that has a nonempty intersection with the specified boundingbox. @@ -96,5 +133,4 @@ public: /** Wakes up the simulators for the specified block */ virtual void WakeUpSimulators(Vector3i a_Block) = 0; - }; |