Readd blanked developers.md
parent
1f0c34e4e2
commit
5c267f9d36
|
@ -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
|
||||
|
Loading…
Reference in New Issue