Readd blanked developers.md

master
rubenwardy 2014-08-18 18:18:26 +01:00
parent 1f0c34e4e2
commit 5c267f9d36
1 changed files with 119 additions and 0 deletions

View File

@ -0,0 +1,119 @@
Introduction
============
This guide contains technical information on installing, building, and maintaining the Node Box Editor
Code Style
----------
The project tries to follow [Minetest's code style](http://dev.minetest.net/Code_style_guidelines)
GitHub things
-------------
Patches should be in their own branch when making a pull request.
Do not pull request from upstream to your repo using GitHub's pull request and merge feature.
Releasing a new version
-----------------------
* Bump settings in CMAKE.
* Update README.md
* Create windows build.
* Write changelog.
* Commit and push code to upstream.
* Post message on Minetest forums.
* Tag and release version on GitHub.
Building and Installation
=========================
Linux
-----
**Install Dependencies**
I recommend that you use the **misc/install_irrlicht.sh** script to install Irrlicht,
as some features in NBE require Irrlicht 1.8 or later, which is not in apt-get
Alternative method (Installs Irrlicht 1.7.2):
# download source and go to the root folder
$ sudo apt-get install build-essential libirrlicht-dev cmake libpng12-dev libbz2-dev libjpeg8-dev libgl1-mesa-dev
**Compiling**
# Compile the editor
$ cmake .
$ make -j2
**Running**
$ ./bin/nodeboxeditor
# You could also double click the executable file in bin
**Installing**
$ sudo make install
$ nodeboxeditor
# See make_install.md
Microsoft Visual Studio
-----------------------
Express edition makes no difference to the process.
**Prerequisites**
* Download Irrlicht. Some features in NBE require Irrlicht 1.8 or later in order to be enabled.
* Download the source code for NBE
* You will need to download Visual Studio, of course.
**Step One: Set up a project**
* Copy the conf_cmake.hpp.in to conf_cmake.hpp where you downloaded the source
* Open up conf_cmake.hpp, and edit the defines where there is @NBE_A_SETTING@
* @NBE_DESCR_VERSION@: "0.7 - Iron" for example
* Create a C++ project in Visual Studio
* Add the source code using right click > Add > Existing file. Make sure to include src/FileFormat and src/util as well.
**Step Two: Adding Irrlicht**
See [Irrlicht's tutorial](http://irrlicht.sourceforge.net/docu/example001.html) on setting up Visual Studio if you have problems.
* Right click on the name of the project on the Solution Explorer
* Click properties
* Go to the C++ Include Directories tab
* Add the irrlicht include folder to include directories
* Add the irrlicht lib/win32-visualstudio folder to lib directories
* Copy irrlicht/bin/win32-visualstudio/irrlicht.dll to project/debug/irrlicht.dll
The project should now build correctly. You will need to copy the media folder across to project/debug
Code
====
* **common**.hpp - general compile settings, includes and defines. Used in every other file.
* **conf_cmake**.hpp.in - defines from cmake.
* **main**.cpp - contains the main() function, starts irrlicht and the editor.
* **Editor**.cpp/hpp - contains the Editor class which contains the update loop.
* **EditorState**.cpp/hpp - contains the EditorState class, which is used to share common variables. Also contains main class for mode FSM.
* **MenuState**.cpp/hpp - contains the MenuState class which handles the user interface such as the menu bar and mode icons.
* **NBEEditor**.cpp/hpp - contains the node box editor mode in the mode FSM.
* **NodeEditor**.cpp/hpp - contains the node editor mode in the mode FSM.
* **Project**.cpp/hpp - holds the project in a contained way.
* **Node**.cpp/hpp - hold the data and node boxes for a single node.
* **NodeBox**.cpp/hpp - a single node box.
* **Configuration**.cpp/hpp - the settings manager for the editor. Reads from / writes to editor.conf
* **GUIHelpers**.cpp/hpp - contains helpers such as creating x/y/z text boxes.
* FileFormat
* **FileFormat**.cpp/hpp - factory and base class for file formats.
* **Lua**.cpp/hpp - the Lua file parser.
* **NBE**.cpp/hpp - the NBE file parser.
* **MTC**.cpp/hpp - the Minetest Classic (.cpp) file parser.
* util
* **string**.cpp/hpp - helper functions for strings