User:Chalst/hier

From Minetest Developer Wiki
< User:Chalst
Revision as of 10:33, 27 August 2014 by Chalst (talk | contribs) (→‎Project file hierarchy: improve discussion of cpp_api & add list of subsystems)
Jump to navigation Jump to search

Project file hierarchy

minetest/src folders

Contains implementations of widely used libraries:

  1. cguitfont - Freetype font stuff
  2. json - The C++ Json Project implementation
  3. jthread
  4. lua - Lua 5.1, I assume for compatibility with Luajit
  5. sqlite


  1. 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)
    1. 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)
    2. 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
  2. util - seems to be repurposed code of celeron's.

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

Server