My Project
ParaScriptingBlockWorld.h
1 //-----------------------------------------------------------------------------
2 // Copyright (C) 2004 - 2006 ParaEngine Dev Studio, All Rights Reserved.
3 // Date: 2006.1
4 // Description: API for world
5 //-----------------------------------------------------------------------------
6 #pragma once
7 
8 #include "ParaScriptingGlobal.h"
9 
10 namespace luabind
11 {
12  namespace adl{
13  class object;
14  }
15  using adl::object;
16 }
17 
18 namespace ParaEngine
19 {
20  class CBlockWorld;
21 }
22 
23 namespace ParaScripting
24 {
25  using namespace std;
26  using namespace luabind;
27  using namespace ParaEngine;
28  class ParaTerrain;
29 
35  class PE_CORE_DECL ParaBlockWorld
36  {
37  public:
39  ~ParaBlockWorld();
40 
41  public:
43  static object GetWorld(const object& sWorldName);
44 
46  static int GetVersion(const object& pWorld);
47 
49  static ParaAttributeObject GetBlockAttributeObject(const object& pWorld);
50 
51  public:
56  static bool RegisterBlockTemplate(const object& pWorld, uint16_t templateId, const object& params);
57  static bool RegisterBlockTemplate_(CBlockWorld* pWorld, uint16_t templateId, const object& params);
58 
60  static void SetBlockWorldYOffset(const object& pWorld, float offset);
61 
67  static void EnterWorld(const object& pWorld, const char* sWorldDir);
68 
70  static void LeaveWorld(const object& pWorld);
71 
72  static void SaveBlockWorld(const object& pWorld, bool saveToTemp);
73 
77  static void LoadRegion(const object& pWorld, uint16_t x, uint16_t y, uint16_t z);
79  static void UnloadRegion(const object& pWorld, uint16_t x, uint16_t y, uint16_t z);
80 
85  static void SetBlockId(const object& pWorld, uint16_t x, uint16_t y, uint16_t z, uint32_t templateId);
86 
88  static uint32_t GetBlockId(const object& pWorld, uint16_t x, uint16_t y, uint16_t z);
89 
93  static void SetBlockData(const object& pWorld, uint16_t x, uint16_t y, uint16_t z, uint32_t data);
94 
98  static uint32_t GetBlockData(const object& pWorld, uint16_t x, uint16_t y, uint16_t z);
99 
100 
106  static object GetBlocksInRegion(const object& pWorld, int32_t startChunkX, int32_t startChunkY, int32_t startChunkZ, int32_t endChunkX, int32_t endChunkY, int32_t endChunkZ,
107  uint32_t matchType, const object& result);
108 
110  static void SetBlockWorldSunIntensity(const object& pWorld, float value);
111 
119  static int FindFirstBlock(const object& pWorld, uint16_t x, uint16_t y, uint16_t z, uint16_t nSide = 4, uint32_t max_dist = 32, uint32_t attrFilter = 0xffffffff, int nCategoryID = -1);
120 
123  static int GetFirstBlock(const object& pWorld, uint16_t x, uint16_t y, uint16_t z, int nBlockId, uint16_t nSide = 4, uint32_t max_dist = 32);
124 
125  // following are client only functions.
126  public:
131  static void SetTemplateTexture(const object& pWorld, uint16_t templateId, const char* fileName);
132 
133 
138  static object GetVisibleChunkRegion(const object& pWorld, const object& result);
139 
154  static object Pick(const object& pWorld, float rayX, float rayY, float rayZ, float dirX, float dirY, float dirZ, float fMaxDistance, const object& result, uint32_t filter = 0xffffffff);
155 
160  static object MousePick(const object& pWorld, float fMaxDistance, const object& result, uint32_t filter = 0xffffffff);
161 
162 
169  static void SelectBlock(const object& pWorld, uint16_t x, uint16_t y, uint16_t z, bool isSelect);
170  static void SelectBlock1(const object& pWorld, uint16_t x, uint16_t y, uint16_t z, bool isSelect, int nGroupID);
171 
175  static void DeselectAllBlock1(const object& pWorld, int nGroupID);
176  static void DeselectAllBlock(const object& pWorld);
177 
182  static void SetDamagedBlock(const object& pWorld, uint16_t x, uint16_t y, uint16_t z);
183 
187  static void SetDamageDegree(const object& pWorld, float damagedDegree);
188  };
189 }
Definition: SceneObject.h:15
different physics engine has different winding order.
Definition: EventBinding.h:32
base class for an instance of block world
Definition: BlockWorld.h:35
Definition: PEtypes.h:507
Definition: enum_maker.hpp:46
it represents an attribute object associated with an object.
Definition: ParaScriptingGlobal.h:458
Wrapper of internal CBlockWorld.
Definition: ParaScriptingBlockWorld.h:35
for luabind, The main drawback of this approach is that the compilation time will increase for the fi...
Definition: luaSQLite.cpp:1971