void LoadUtilLibrary(LuaState &state) { state.GetGlobalNamespace() .beginClass<VertexInfo>("Vertex") .addConstructor<void(*)(const FVec3&, const FVec3&, const FVec2&)>() .addData("vertex", &VertexInfo::vertex) .addData("normal", &VertexInfo::normal) .addData("uv", &VertexInfo::uv) .endClass() .beginClass<ManualModel>("Model") .addConstructor<void(*)(void)>() .addFunction("AddVertex", &ManualModel::AddVertexData) .endClass(); }
void LoadGameLibrary(LuaState &state) { state.SetGlobal("ChunkWidth", ChunkWidth); state.SetGlobal("ChunkHeight", ChunkHeight); state.SetGlobal("ChunkLength", ChunkLength); state.GetGlobalNamespace() .beginClass<Dimension>("Dimension") .addFunction("GetBlock", &Dimension::GetBlockByCoord) .addFunction("IsSolidBlock", &Dimension::IsSolidBlock) .endClass() .beginClass<Chunk>("Chunk") .addFunction("GetBlock", &Chunk::GetBlock) .addFunction("IsSolidBlock", &Chunk::IsSolidBlock) .addFunction("GetDimension", &Chunk::GetDimension) .addFunction("GetX", &Chunk::GetX) .addFunction("GetZ", &Chunk::GetZ) .endClass() .beginClass<Block>("Block") .addFunction("GetX", &Block::GetX) .addFunction("GetY", &Block::GetY) .addFunction("GetZ", &Block::GetZ) .addFunction("GetAbsX", &Block::GetAbsoluteX) .addFunction("GetAbsZ", &Block::GetAbsoluteZ) .addFunction("IsSolid", &Block::IsSolid) .addFunction("GetChunk", &Block::GetChunk) .endClass() .beginClass<Entity>("Entity") .addFunction("GetPosition", &Entity::GetPosition) .addFunction("GetRotation", &Entity::GetRotation) .addFunction("SetPosition", &Entity::SetPosition) .addFunction("SetRotation", &Entity::SetRotation) .endClass() .beginClass<TextureAtlas<TEXTURE_ATLAS_BLOCK>>("BlockTexture") .addStaticFunction("GetTexCoord", &TextureAtlas<TEXTURE_ATLAS_BLOCK>::GetTextureCoords) ; }