My Project
Public Member Functions | Friends | List of all members
ParaEngine::BlockRegion Class Reference

512*512 region More...

#include <BlockRegion.h>

Inheritance diagram for ParaEngine::BlockRegion:
ParaEngine::IAttributeFields ParaEngine::IObject ParaEngine::CRefCounted

Public Member Functions

 BlockRegion (int16_t regionX, int16_t regionZ, CBlockWorld *pBlockWorld)
 
 ATTRIBUTE_DEFINE_CLASS (BlockRegion)
 
virtual int InstallFields (CAttributeClass *pClass, bool bOverride)
 this class should be implemented if one wants to add new attribute. More...
 
 ATTRIBUTE_METHOD1 (BlockRegion, GetRegionX_s, int *)
 
 ATTRIBUTE_METHOD1 (BlockRegion, GetRegionZ_s, int *)
 
 ATTRIBUTE_METHOD1 (BlockRegion, GetChunksLoaded_s, int *)
 
 ATTRIBUTE_METHOD1 (BlockRegion, SetChunksLoaded_s, int)
 
 ATTRIBUTE_METHOD1 (BlockRegion, IsModified_s, bool *)
 
 ATTRIBUTE_METHOD1 (BlockRegion, SetModified_s, bool)
 
 ATTRIBUTE_METHOD1 (BlockRegion, GetTotalBytes_s, int *)
 
 ATTRIBUTE_METHOD (BlockRegion, ClearAllLight_s)
 
virtual const std::string & GetIdentifier ()
 
virtual void SetIdentifier (const std::string &sID)
 
bool IsLocked ()
 
void SetBlockTemplateByIndex (uint16_t x_rs, uint16_t y_rs, uint16_t z_rs, BlockTemplate *pTemplate)
 
void RefreshBlockTemplateByIndex (uint16_t x_rs, uint16_t y_rs, uint16_t z_rs, BlockTemplate *pTemplate)
 
uint32_t GetBlockTemplateIdByIndex (int16_t x, int16_t y, int16_t z)
 
BlockTemplateGetBlockTemplateByIndex (int16_t x, int16_t y, int16_t z)
 
void SetBlockUserDataByIndex (int16_t x, int16_t y, int16_t z, uint32_t data)
 
uint32_t GetBlockUserDataByIndex (int16_t x, int16_t y, int16_t z)
 
void SetChunkColumnTimeStamp (uint16_t x_rs, uint16_t z_rs, uint16_t nTimeStamp)
 set chunk column time stamp. More...
 
uint16_t GetChunkColumnTimeStamp (uint16_t x, uint16_t z)
 get the time stamp of for the given chunk column 0 means not available, 1 means loaded before
 
bool IntersectBlock (int16_t blockX, int16_t blockY, int16_t blockZ, uint32_t filter)
 
int16_t GetRegionX ()
 
int16_t GetRegionZ ()
 
ChunkMaxHeightGetHighestBlock (uint16_t blockIdX_rs, uint16_t blockIdZ_rs)
 
uint32_t QueryApproxNeighborBlockState (const Int16x3 &blockPos)
 
BlockGetBlock (uint16_t x_rs, uint16_t y_rs, uint16_t z_rs)
 
void SaveToFile ()
 
void Load ()
 
void OnFrameMove ()
 
void OnLoadWorldFinished ()
 
void OnUnloadWorld ()
 
void DeleteAllBlocks ()
 
void RefreshAllLightsInColumn (uint16_t chunkX_ws, uint16_t chunkZ_ws)
 
void GetBlocksInChunk (uint16_t chunkX_ws, uint16_t chunkZ_ws, uint16_t startChunkY, uint16_t endChunkY, uint32_t matchtype, const luabind::adl::object &result, int32_t &blockCount)
 
void GetBlocksInChunk (uint16_t chunkX_ws, uint16_t chunkZ_ws, uint32_t verticalSectionFilter, uint32_t matchtype, const luabind::adl::object &result, int32_t &blockCount)
 
const std::string & GetMapChunkData (uint32_t chunkX, uint32_t chunkZ, bool bIncludeInit, uint32_t verticalSectionFilter=0xffff)
 
void ApplyMapChunkData (uint32_t chunkX, uint32_t chunkZ, uint32_t verticalSectionFilter, const std::string &chunkData, const luabind::adl::object &output)
 
void SetChunkDirty (uint16_t packedChunkID, bool isDirty)
 
void SetChunkDirtyByNeighbor (uint16_t packedChunkID)
 
void SetChunkLightDirty (uint16_t packedChunkID)
 
uint16_t GetPackedRegionIndex ()
 
BlockGetBlock (uint16_t chunkId, Uint16x3 &blockID_r)
 
BlockChunkGetChunk (uint16_t packedChunkID, bool createIfNotExist)
 
bool IsModified ()
 whether modified. More...
 
void SetModified (bool bModified=true)
 set modified. More...
 
uint32 GetChunksLoaded () const
 
void SetChunksLoaded (uint32 val)
 
int GetTotalBytes ()
 total number of bytes that this region occupies
 
void CalculateTotalBytes ()
 
void GetCenterBlockWs (Uint16x3 *pPos)
 get the world space position for the center block. More...
 
const Uint16x3GetMinBlockWs ()
 
const Uint16x3GetMaxBlockWs ()
 
void ClearAllLight ()
 
void SetChunksDirtyByBlockTemplate (uint16_t templateId)
 refresh chunks include one type block
 
- Public Member Functions inherited from ParaEngine::IAttributeFields
virtual int GetAttributeClassID ()
 attribute class ID should be identical, unless one knows how overriding rules work. More...
 
virtual const char * GetAttributeClassName ()
 a static string, describing the attribute class object's name
 
virtual const char * GetAttributeClassDescription ()
 a static string, describing the attribute class object
 
virtual int GetChildAttributeColumnCount ()
 we support multi-dimensional child object. More...
 
virtual int GetChildAttributeObjectCount (int nColumnIndex=0)
 get the number of child objects (row count) in the given column. More...
 
virtual IAttributeFieldsGetChildAttributeObject (int nRowIndex, int nColumnIndex=0)
 
virtual IAttributeFieldsGetChildAttributeObject (const std::string &sName)
 get attribute by child object. More...
 
 ATTRIBUTE_METHOD1 (IAttributeFields, GetName_s, const char **)
 
 ATTRIBUTE_METHOD1 (IAttributeFields, SetName_s, const char *)
 
 ATTRIBUTE_METHOD (IAttributeFields, PrintObject_s)
 
 ATTRIBUTE_METHOD (IAttributeFields, AddRef_s)
 
 ATTRIBUTE_METHOD1 (IAttributeFields, GetRefCount_s, int *)
 
 ATTRIBUTE_METHOD1 (IAttributeFields, SetTime_s, int)
 
 ATTRIBUTE_METHOD1 (IAttributeFields, GetTime_s, int *)
 
 ATTRIBUTE_METHOD (IAttributeFields, Release_s)
 
virtual bool ValidateFields ()
 validate all fields and return true if validation passed. More...
 
virtual string GetValidationMessage ()
 get the recent validation message due to the most recent call to ValidateFields()
 
virtual bool ResetField (int nFieldID)
 Reset the field to its initial or default value. More...
 
virtual bool InvokeEditor (int nFieldID, const std::string &sParameters)
 Invoke an (external) editor for a given field. More...
 
virtual bool AddChildAttributeObject (IAttributeFields *pChild, int nRowIndex=-1, int nColumnIndex=0)
 add child object. More...
 
virtual void * QueryObjectByName (const std::string &sObjectType)
 convert to object of a given type. More...
 
virtual void * QueryObject (int nObjectType)
 convert to object of a given type. More...
 
virtual int GetTime ()
 get the current local time in case it is animated in milli seconds frames. More...
 
virtual void SetTime (int nTime)
 
virtual CDynamicAttributeFieldGetDynamicField (const std::string &sName)
 Get a dynamic field with a given name. More...
 
virtual CDynamicAttributeFieldGetDynamicField (int nIndex)
 Get a dynamic field with a given index. More...
 
virtual const char * GetDynamicFieldNameByIndex (int nIndex)
 get field name by index
 
virtual int GetDynamicFieldCount ()
 how many dynamic field this object currently have. More...
 
virtual int SetDynamicField (const std::string &sName, const CVariable &value)
 set a dynamic field with a given name. More...
 
virtual int AddDynamicField (const std::string &sName, ATTRIBUTE_FIELDTYPE dwType)
 add dynamic field and return field index
 
virtual void RemoveAllDynamicFields ()
 remove all dynamic fields
 
virtual int SaveDynamicFieldsToString (std::string &output)
 save only text dynamic fields to fieldname = value text strings. More...
 
virtual int LoadDynamicFieldsFromString (const std::string &input)
 load only text dynamic fields from string More...
 
CAttributeClassGetAttributeClass ()
 get the main attribute class object. More...
 
void PrintObject ()
 print the content of this object to a text file at temp/doc/[ClassName].txt. More...
 
- Public Member Functions inherited from ParaEngine::IObject
virtual void Clone (IObject *obj) const
 Clone the object's contains to a pointer. More...
 
virtual IObjectClone () const
 Clone the object's contains and return a pointer to the newly created object. More...
 
virtual bool Equals (const IObject *obj) const
 Compare the object with another object. More...
 
virtual const ITypeGetType () const
 
virtual std::string ToString () const
 
WeakPtr_typeGetWeakReference ()
 get weak reference object. More...
 
virtual int ProcessObjectEvent (const ObjectEvent &event)
 this function is only used to backward compatibility of ParaObject:AddEvent() function. More...
 
- Public Member Functions inherited from ParaEngine::CRefCounted
void addref () const
 add reference count of the object. More...
 
bool delref () const
 decrease reference count of the object. More...
 
int GetRefCount () const
 get the reference count
 
virtual int Release ()
 
CRefCountedAddToAutoReleasePool ()
 addref and releases the ownership sometime soon automatically (usually at the end of the current frame). More...
 

Friends

class BlockChunk
 
class RenderableChunk
 

Additional Inherited Members

- Public Types inherited from ParaEngine::IAttributeFields
typedef ParaEngine::weak_ptr< IObject, IAttributeFieldsWeakPtr_type
 
- Public Types inherited from ParaEngine::IObject
typedef ParaEngine::weak_ptr< IObjectWeakPtr_type
 
- Static Public Member Functions inherited from ParaEngine::IAttributeFields
static HRESULT GetAttributeClassID_s (IAttributeFields *cls, int *p1)
 
static HRESULT GetAttributeClassName_s (IAttributeFields *cls, const char **p1)
 
static bool OpenWithDefaultEditor (const char *sFilename, bool bWaitOnReturn=false)
 Open a given file with the default registered editor in the game engine. More...
 
- Protected Member Functions inherited from ParaEngine::IAttributeFields
virtual CAttributeClassCreateAttributeClass ()
 initialize fields
 
virtual CDynamicAttributesSetGetDynamicAttributes (bool bCreateIfNotExist=false)
 
- Protected Attributes inherited from ParaEngine::IObject
WeakPtr_type m_weak_reference
 
- Protected Attributes inherited from ParaEngine::CRefCounted
int m_refcount
 

Detailed Description

512*512 region

Member Function Documentation

§ GetCenterBlockWs()

void ParaEngine::BlockRegion::GetCenterBlockWs ( Uint16x3 pPos)

get the world space position for the center block.

§ InstallFields()

int ParaEngine::BlockRegion::InstallFields ( CAttributeClass pClass,
bool  bOverride 
)
virtual

this class should be implemented if one wants to add new attribute.

This function is always called internally.

Reimplemented from ParaEngine::IAttributeFields.

§ IsModified()

bool ParaEngine::BlockRegion::IsModified ( )
virtual

whether modified.

Reimplemented from ParaEngine::IAttributeFields.

§ SetBlockTemplateByIndex()

void ParaEngine::BlockRegion::SetBlockTemplateByIndex ( uint16_t  x_rs,
uint16_t  y_rs,
uint16_t  z_rs,
BlockTemplate pTemplate 
)
Parameters
x,zrange in [0,512), y range in [0,256)
bNeedUpdateduring loading from file, bNeedUpdate is false.

§ SetChunkColumnTimeStamp()

void ParaEngine::BlockRegion::SetChunkColumnTimeStamp ( uint16_t  x_rs,
uint16_t  z_rs,
uint16_t  nTimeStamp 
)

set chunk column time stamp.

usually 0 for non-generated. 1 for generated. this is usually called by world generators, so that we will not generate again next time we load the world.

§ SetModified()

void ParaEngine::BlockRegion::SetModified ( bool  bModified = true)
virtual

set modified.

Reimplemented from ParaEngine::IAttributeFields.


The documentation for this class was generated from the following files: