From 7c4576a02591d8ebe41656c5cefb1eb25a086a10 Mon Sep 17 00:00:00 2001 From: Lukas Pioch Date: Tue, 9 May 2017 14:24:41 +0200 Subject: Exported cFallingBlock and cExpOrb (#3700) --- Server/Plugins/APIDump/APIDesc.lua | 89 +++++++++++++++++++++++++++++++++++++- src/Bindings/AllToLua.pkg | 2 + src/Bindings/CMakeLists.txt | 2 + src/Entities/ExpOrb.h | 12 +++-- src/Entities/FallingBlock.h | 9 +++- 5 files changed, 108 insertions(+), 6 deletions(-) diff --git a/Server/Plugins/APIDump/APIDesc.lua b/Server/Plugins/APIDump/APIDesc.lua index 6db4b056f..4ca81d5d3 100644 --- a/Server/Plugins/APIDump/APIDesc.lua +++ b/Server/Plugins/APIDump/APIDesc.lua @@ -6004,6 +6004,10 @@ local Hash = cCryptoHash.sha1HexString("DataToHash") }, Constants = { + INVALID_ID = + { + Notes = "Special value of an entity ID, indicating a failure. Used primarily in functions that create entities when the entity cannot be created.", + }, etBoat = { Notes = "The entity is a {{cBoat}}", @@ -10922,12 +10926,95 @@ a_Player:OpenWindow(Window); }, Inherits = "cEntity", }, + cExpOrb = + { + Desc = [[ + This class represents an experience orb. This entity can be spawned by using {{cWorld#SpawnExperienceOrb_1|cWorld:SpawnExperienceOrb}}. + It's also spawned when a monster is killed or a player is mining coal. The default lifetime of an experience orb is 5 mins. + ]], + Functions = + { + GetAge = + { + Returns = + { + { + Type = "number" + }, + }, + Notes = "Returns the number of ticks that this experience orb has existed.", + }, + SetAge = + { + Params = + { + { + Type = "number", + }, + }, + Notes = "Sets the experience orb's age, in ticks.", + }, + GetReward = + { + Returns = + { + { + Type = "number", + }, + }, + Notes = "Returns the experience amount.", + }, + SetReward = + { + Params = + { + { + Type = "number", + }, + }, + Notes = "Sets the experience amount.", + }, + }, + Inherits = "cEntity", + }, + cFallingBlock = + { + Desc = [[ + This class represents a falling block. This entity can be spawned by using {{cWorld#SpawnFallingBlock_1|cWorld:SpawnFallingBlock}}. + ]], + Functions = + { + GetBlockType = + { + Returns = + { + { + Name = "BlockType", + Type = "number", + } + }, + Notes = "Returns the block type of the falling block.", + }, + GetBlockMeta = + { + Returns = + { + { + Name = "BlockMeta", + Type = "number", + } + }, + Notes = "Returns the block meta of the falling block.", + }, + }, + Inherits = "cEntity", + }, cPickup = { Desc = [[ This class represents a pickup entity (an item that the player or mobs can pick up). It is also commonly known as "drops". With this class you could create your own "drop" or modify those - created automatically. + created automatically. The default lifetime of a pickup is 5 mins. ]], Functions = { diff --git a/src/Bindings/AllToLua.pkg b/src/Bindings/AllToLua.pkg index 6ca9c8658..55f26bc60 100644 --- a/src/Bindings/AllToLua.pkg +++ b/src/Bindings/AllToLua.pkg @@ -75,6 +75,8 @@ $cfile "../Entities/ProjectileEntity.h" $cfile "../Entities/ArrowEntity.h" $cfile "../Entities/EntityEffect.h" $cfile "../Entities/ExpBottleEntity.h" +$cfile "../Entities/ExpOrb.h" +$cfile "../Entities/FallingBlock.h" $cfile "../Entities/FireChargeEntity.h" $cfile "../Entities/FireworkEntity.h" $cfile "../Entities/Floater.h" diff --git a/src/Bindings/CMakeLists.txt b/src/Bindings/CMakeLists.txt index ccd6f0a3f..349f15b08 100644 --- a/src/Bindings/CMakeLists.txt +++ b/src/Bindings/CMakeLists.txt @@ -94,8 +94,10 @@ set(BINDING_DEPENDENCIES ../Enchantments.h ../Entities/ArrowEntity.h ../Entities/Entity.h + ../Entities/ExpOrb.h ../Entities/EntityEffect.h ../Entities/ExpBottleEntity.h + ../Entities/FallingBlock.h ../Entities/FireChargeEntity.h ../Entities/FireworkEntity.h ../Entities/Floater.h diff --git a/src/Entities/ExpOrb.h b/src/Entities/ExpOrb.h index bb4c79c8e..83672ea02 100644 --- a/src/Entities/ExpOrb.h +++ b/src/Entities/ExpOrb.h @@ -25,17 +25,21 @@ public: virtual void Tick(std::chrono::milliseconds a_Dt, cChunk & a_Chunk) override; virtual void SpawnOn(cClientHandle & a_Client) override; + // tolua_begin + /** Returns the number of ticks that this entity has existed */ - int GetAge(void) const { return std::chrono::duration_cast(m_Timer).count(); } // tolua_export + int GetAge(void) const { return std::chrono::duration_cast(m_Timer).count(); } /** Set the number of ticks that this entity has existed */ - void SetAge(int a_Age) { m_Timer = cTickTime(a_Age); } // tolua_export + void SetAge(int a_Age) { m_Timer = cTickTime(a_Age); } /** Get the exp amount */ - int GetReward(void) const { return m_Reward; } // tolua_export + int GetReward(void) const { return m_Reward; } /** Set the exp amount */ - void SetReward(int a_Reward) { m_Reward = a_Reward; } // tolua_export + void SetReward(int a_Reward) { m_Reward = a_Reward; } + + // tolua_end protected: int m_Reward; diff --git a/src/Entities/FallingBlock.h b/src/Entities/FallingBlock.h index 3e80564e5..8bdf46ca0 100644 --- a/src/Entities/FallingBlock.h +++ b/src/Entities/FallingBlock.h @@ -13,6 +13,7 @@ class cItem; +// tolua_begin class cFallingBlock : public cEntity @@ -20,14 +21,20 @@ class cFallingBlock : typedef cEntity super; public: + // tolua_end + CLASS_PROTODEF(cFallingBlock) /** Creates a new falling block. a_BlockPosition is expected in world coords */ cFallingBlock(const Vector3i & a_BlockPosition, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta); + // tolua_begin + BLOCKTYPE GetBlockType(void) const { return m_BlockType; } NIBBLETYPE GetBlockMeta(void) const { return m_BlockMeta; } + // tolua_end + // cEntity overrides: virtual void SpawnOn(cClientHandle & a_ClientHandle) override; virtual void Tick(std::chrono::milliseconds a_Dt, cChunk & a_Chunk) override; @@ -36,7 +43,7 @@ private: BLOCKTYPE m_BlockType; NIBBLETYPE m_BlockMeta; Vector3i m_OriginalPosition; // Position where the falling block has started, in world coords -} ; +} ; // tolua_export -- cgit v1.2.3