Browse Source

CustomModule: update example to use ClassDB

Poommetee Ketson 8 years ago
parent
commit
08ba9d2212
1 changed files with 46 additions and 46 deletions
  1. 46 46
      development/cpp/custom_modules_in_cpp.rst

+ 46 - 46
development/cpp/custom_modules_in_cpp.rst

@@ -40,29 +40,29 @@ To create a new module, the first step is creating a directory inside
 ``modules/``. If you want to maintain the module separately, you can checkout
 ``modules/``. If you want to maintain the module separately, you can checkout
 a different VCS into modules and use it.
 a different VCS into modules and use it.
 
 
-The example module will be called "sumator", and is placed inside the
+The example module will be called "summator", and is placed inside the
 Godot source tree (``C:\godot`` refers to wherever the Godot sources are
 Godot source tree (``C:\godot`` refers to wherever the Godot sources are
 located):
 located):
 
 
 ::
 ::
 
 
     C:\godot> cd modules
     C:\godot> cd modules
-    C:\godot\modules> mkdir sumator
-    C:\godot\modules> cd sumator
-    C:\godot\modules\sumator>
+    C:\godot\modules> mkdir summator
+    C:\godot\modules> cd summator
+    C:\godot\modules\summator>
 
 
-Inside we will create a simple sumator class:
+Inside we will create a simple summator class:
 
 
 .. code:: cpp
 .. code:: cpp
 
 
-    /* sumator.h */
-    #ifndef SUMATOR_H
-    #define SUMATOR_H
+    /* summator.h */
+    #ifndef SUMMATOR_H
+    #define SUMMATOR_H
 
 
     #include "reference.h"
     #include "reference.h"
 
 
-    class Sumator : public Reference {
-        OBJ_TYPE(Sumator,Reference);
+    class Summator : public Reference {
+        GDCLASS(Summator, Reference);
 
 
         int count;
         int count;
 
 
@@ -74,7 +74,7 @@ Inside we will create a simple sumator class:
         void reset();
         void reset();
         int get_total() const;
         int get_total() const;
 
 
-        Sumator();
+        Summator();
     };
     };
 
 
     #endif
     #endif
@@ -83,34 +83,34 @@ And then the cpp file.
 
 
 .. code:: cpp
 .. code:: cpp
 
 
-    /* sumator.cpp */
+    /* summator.cpp */
 
 
-    #include "sumator.h"
+    #include "summator.h"
 
 
-    void Sumator::add(int value) {
+    void Summator::add(int value) {
 
 
-        count+=value;
+        count += value;
     }
     }
 
 
-    void Sumator::reset() {
+    void Summator::reset() {
 
 
-        count=0;
+        count = 0;
     }
     }
 
 
-    int Sumator::get_total() const {
+    int Summator::get_total() const {
 
 
         return count;
         return count;
     }
     }
 
 
-    void Sumator::_bind_methods() {
+    void Summator::_bind_methods() {
 
 
-        ObjectTypeDB::bind_method("add",&Sumator::add);
-        ObjectTypeDB::bind_method("reset",&Sumator::reset);
-        ObjectTypeDB::bind_method("get_total",&Sumator::get_total);
+        ClassDB::bind_method(D_METHOD("add", "value"), &Summator::add);
+        ClassDB::bind_method(D_METHOD("reset"), &Summator::reset);
+        ClassDB::bind_method(D_METHOD("get_total"), &Summator::get_total);
     }
     }
 
 
-    Sumator::Sumator() {
-        count=0;
+    Summator::Summator() {
+        count = 0;
     }
     }
 
 
 Then, the new class needs to be registered somehow, so two more files
 Then, the new class needs to be registered somehow, so two more files
@@ -127,8 +127,8 @@ With the following contents:
 
 
     /* register_types.h */
     /* register_types.h */
 
 
-    void register_sumator_types();
-    void unregister_sumator_types();
+    void register_summator_types();
+    void unregister_summator_types();
     /* yes, the word in the middle must be the same as the module folder name */
     /* yes, the word in the middle must be the same as the module folder name */
 
 
 .. code:: cpp
 .. code:: cpp
@@ -136,15 +136,15 @@ With the following contents:
     /* register_types.cpp */
     /* register_types.cpp */
 
 
     #include "register_types.h"
     #include "register_types.h"
-    #include "object_type_db.h"
-    #include "sumator.h"
+    #include "class_db.h"
+    #include "summator.h"
 
 
-    void register_sumator_types() {
+    void register_summator_types() {
 
 
-            ObjectTypeDB::register_type<Sumator>();
+            ClassDB::register_type<Summator>();
     }
     }
 
 
-    void unregister_sumator_types() {
+    void unregister_summator_types() {
        //nothing to do here
        //nothing to do here
     }
     }
 
 
@@ -212,12 +212,12 @@ this:
 
 
 ::
 ::
 
 
-    godot/modules/sumator/config.py
-    godot/modules/sumator/sumator.h
-    godot/modules/sumator/sumator.cpp
-    godot/modules/sumator/register_types.h
-    godot/modules/sumator/register_types.cpp
-    godot/modules/sumator/SCsub
+    godot/modules/summator/config.py
+    godot/modules/summator/summator.h
+    godot/modules/summator/summator.cpp
+    godot/modules/summator/register_types.h
+    godot/modules/summator/register_types.cpp
+    godot/modules/summator/SCsub
 
 
 You can then zip it and share the module with everyone else. When
 You can then zip it and share the module with everyone else. When
 building for every platform (instructions in the previous sections),
 building for every platform (instructions in the previous sections),
@@ -231,7 +231,7 @@ now do:
 
 
 ::
 ::
 
 
-    var s = Sumator.new()
+    var s = Summator.new()
     s.add(10)
     s.add(10)
     s.add(20)
     s.add(20)
     s.add(30)
     s.add(30)
@@ -264,7 +264,7 @@ library that will be dynamically loaded when starting our game's binary.
 
 
     sources = [
     sources = [
         "register_types.cpp",
         "register_types.cpp",
-        "sumator.cpp"
+        "summator.cpp"
     ]
     ]
 
 
     # First, create a custom env for the shared library.
     # First, create a custom env for the shared library.
@@ -276,7 +276,7 @@ library that will be dynamically loaded when starting our game's binary.
     # Now define the shared library. Note that by default it would be built
     # Now define the shared library. Note that by default it would be built
     # into the module's folder, however it's better to output it into `bin`
     # into the module's folder, however it's better to output it into `bin`
     # next to the godot binary.
     # next to the godot binary.
-    shared_lib = module_env.SharedLibrary(target='#bin/sumator', source=sources)
+    shared_lib = module_env.SharedLibrary(target='#bin/summator', source=sources)
 
 
     # Finally notify the main env it has our shared lirary as a new dependency.
     # Finally notify the main env it has our shared lirary as a new dependency.
     # To do so, SCons wants the name of the lib with it custom suffixes
     # To do so, SCons wants the name of the lib with it custom suffixes
@@ -287,7 +287,7 @@ library that will be dynamically loaded when starting our game's binary.
     env.Append(LIBPATH=['#bin'])
     env.Append(LIBPATH=['#bin'])
 
 
 Once compiled, we should end up with a ``bin`` directory containing both the
 Once compiled, we should end up with a ``bin`` directory containing both the
-``godot*`` binary and our ``libsumator*.so``. However given the .so is not in
+``godot*`` binary and our ``libsummator*.so``. However given the .so is not in
 a standard directory (like ``/usr/lib``), we have to help our binary find it
 a standard directory (like ``/usr/lib``), we have to help our binary find it
 during runtime with the ``LD_LIBRARY_PATH`` environ variable:
 during runtime with the ``LD_LIBRARY_PATH`` environ variable:
 
 
@@ -311,17 +311,17 @@ using the `ARGUMENT` command:
 
 
     sources = [
     sources = [
         "register_types.cpp",
         "register_types.cpp",
-        "sumator.cpp"
+        "summator.cpp"
     ]
     ]
 
 
     module_env = env.Clone()
     module_env = env.Clone()
     module_env.Append(CXXFLAGS=['-O2', '-std=c++11'])
     module_env.Append(CXXFLAGS=['-O2', '-std=c++11'])
 
 
-    if ARGUMENTS.get('sumator_shared', 'no') == 'yes':
+    if ARGUMENTS.get('summator_shared', 'no') == 'yes':
         # Shared lib compilation
         # Shared lib compilation
         module_env.Append(CXXFLAGS='-fPIC')
         module_env.Append(CXXFLAGS='-fPIC')
         module_env['LIBS'] = []
         module_env['LIBS'] = []
-        shared_lib = module_env.SharedLibrary(target='#bin/sumator', source=sources)
+        shared_lib = module_env.SharedLibrary(target='#bin/summator', source=sources)
         shared_lib_shim = shared_lib[0].name.rsplit('.', 1)[0]
         shared_lib_shim = shared_lib[0].name.rsplit('.', 1)[0]
         env.Append(LIBS=[shared_lib_shim])
         env.Append(LIBS=[shared_lib_shim])
         env.Append(LIBPATH=['#bin'])
         env.Append(LIBPATH=['#bin'])
@@ -330,14 +330,14 @@ using the `ARGUMENT` command:
         module_env.add_source_files(env.modules_sources, sources)
         module_env.add_source_files(env.modules_sources, sources)
 
 
 Now by default ``scons`` command will build our module as part of godot's binary
 Now by default ``scons`` command will build our module as part of godot's binary
-and as a shared library when passing ``sumator_shared=yes``.
+and as a shared library when passing ``summator_shared=yes``.
 
 
 Finally you can even speedup build further by explicitly specifying your
 Finally you can even speedup build further by explicitly specifying your
 shared module as target in the scons command:
 shared module as target in the scons command:
 
 
 ::
 ::
 
 
-    user@host:~/godot$ scons sumator_shared=yes bin/sumator.x11.tools.64.so
+    user@host:~/godot$ scons summator_shared=yes bin/summator.x11.tools.64.so
 
 
 
 
 Summing up
 Summing up