Difference between revisions of "User:Chalst/hier"
Jump to navigation
Jump to search
(More on dependencies) |
|||
Line 1: | Line 1: | ||
= Project file hierarchy = | = Project file hierarchy = | ||
− | + | Everything outside the src directory seems to be either not code, or tools that are not part of the client or server runtime. | |
− | + | == Reused code == | |
− | # cguitfont - Freetype font stuff | + | Some widely used libraries are included as subfolders under src |
+ | |||
+ | # cguitfont - Some Freetype-related font stuff | ||
# json - The C++ Json Project implementation | # json - The C++ Json Project implementation | ||
# jthread | # jthread | ||
# lua - Lua 5.1, I assume for compatibility with Luajit | # lua - Lua 5.1, I assume for compatibility with Luajit | ||
− | # sqlite | + | # sqlite - Although the make process seems to allow Redis and Leveldb as alternative db backends |
+ | |||
+ | Additionally, the util subfolder seems to contain repurposed older code of celeron's. | ||
+ | |||
+ | Some other projects are used via external includes: Irrlicht, Freetype itself, | ||
− | + | # sha1.cpp | |
− | # script - both C++ to intialise Lua structures, and code to register C++ code as Lua functions. (E.g., script/scripting_mainmenu.cpp seems to be C++ code to invoke Lua fns defined in script/lua_api/l_mainmenu.cpp) | + | And other projects are used which are not included in the src hierarchy: Irrlicht and Ogg Vorbis |
+ | |||
+ | == The script subfolder == | ||
+ | |||
+ | # script - contains both C++ to intialise Lua structures, and code to register C++ code as Lua functions. (E.g., script/scripting_mainmenu.cpp seems to be C++ code to invoke Lua fns defined in script/lua_api/l_mainmenu.cpp) | ||
## lua_api - (i) wrappers for C++ code to use in Lua scripts and via the Lua-C api (e.g., lua_api/l_server.cpp), and (ii) making simple game abstractions (e.g., lua_api/l_inventory.cpp) | ## lua_api - (i) wrappers for C++ code to use in Lua scripts and via the Lua-C api (e.g., lua_api/l_server.cpp), and (ii) making simple game abstractions (e.g., lua_api/l_inventory.cpp) | ||
## cpp_api - seems to be C++ similar to (ii) for lua_api, except they don't register Lua functions and they seem to a named global L Lua state object | ## cpp_api - seems to be C++ similar to (ii) for lua_api, except they don't register Lua functions and they seem to a named global L Lua state object | ||
− | # | + | ## |
= Subsystems = | = Subsystems = | ||
Line 35: | Line 45: | ||
== Mapgen == | == Mapgen == | ||
== Rendering == | == Rendering == | ||
+ | |||
+ | Heavily dependent on the Irrlicht engine. | ||
+ | |||
== Server == | == Server == |
Latest revision as of 09:43, 28 August 2014
Project file hierarchy
Everything outside the src directory seems to be either not code, or tools that are not part of the client or server runtime.
Reused code
Some widely used libraries are included as subfolders under src
- cguitfont - Some Freetype-related font stuff
- json - The C++ Json Project implementation
- jthread
- lua - Lua 5.1, I assume for compatibility with Luajit
- sqlite - Although the make process seems to allow Redis and Leveldb as alternative db backends
Additionally, the util subfolder seems to contain repurposed older code of celeron's.
Some other projects are used via external includes: Irrlicht, Freetype itself,
- sha1.cpp
And other projects are used which are not included in the src hierarchy: Irrlicht and Ogg Vorbis
The script subfolder
- script - contains both C++ to intialise Lua structures, and code to register C++ code as Lua functions. (E.g., script/scripting_mainmenu.cpp seems to be C++ code to invoke Lua fns defined in script/lua_api/l_mainmenu.cpp)
- lua_api - (i) wrappers for C++ code to use in Lua scripts and via the Lua-C api (e.g., lua_api/l_server.cpp), and (ii) making simple game abstractions (e.g., lua_api/l_inventory.cpp)
- cpp_api - seems to be C++ similar to (ii) for lua_api, except they don't register Lua functions and they seem to a named global L Lua state object
Subsystems
Chat
Item
- itemdef.cpp
- script/cpp_api/s_item.cpp
- script/lua_api/l_item.cpp
Inventory
- inventory.cpp
- inventorymanager.cpp
- script/cpp_api/s_inventory.cpp
- script/lua_api/l_inventory.cpp
Menus
Mapgen
Rendering
Heavily dependent on the Irrlicht engine.