Add README.md
This commit is contained in:
commit
42794fd530
56
README.md
Normal file
56
README.md
Normal file
|
@ -0,0 +1,56 @@
|
|||
# Godot module style guide and conventions
|
||||
|
||||
## Headers
|
||||
|
||||
```cpp
|
||||
// always use #define-based header guards,
|
||||
// the name has to match the filename
|
||||
#ifndef MY_CLASS_H
|
||||
#define MY_CLASS_H
|
||||
|
||||
// PascalCase for all types
|
||||
class MyClass : public Object {
|
||||
GDCLASS(MyClass, Object);
|
||||
// functions are always snake_cased
|
||||
static void _bind_methods();
|
||||
void on_some_signal(); // signal listeners are private unless otherwise called
|
||||
public:
|
||||
void do_things();
|
||||
void set_my_var(int value); // set first
|
||||
int get_my_var() const; // get second, and const except when it can't be
|
||||
private:
|
||||
int myvar{1}; // variables are snake_case, and always initialized in headers unless impossible
|
||||
// (e.g, const vars that get initialized in constructors)
|
||||
String const sig_some_signal{"some_signal"}; // store signal names in a variable to make them easier to keep track of
|
||||
};
|
||||
#endif // !MY_CLASS_H // end #if/#ifdef/#ifndef directives with a repeat of the condition
|
||||
```
|
||||
|
||||
# Implementations
|
||||
|
||||
```cpp
|
||||
#include "my_class.h"
|
||||
// the matching header always goes on top, other header includes come after in alphabetical order
|
||||
#include "macros.h"
|
||||
void MyClass::_bind_methods() {
|
||||
BIND_PROPERTY(Variant::INT, my_var); // use macros.h simplified binding tools when possible
|
||||
}
|
||||
|
||||
void MyClass::do_things() {
|
||||
set_my_var(10); // this-> is not required for class methods
|
||||
cast_to<Object>(this); // nor for static class methods.
|
||||
// use self_type when referring to the type of 'this'
|
||||
this->connect(this->sig_some_signal, callable_mp(this, &self_type::on_some_signal));
|
||||
}
|
||||
|
||||
void MyClass::set_my_var(int value) {
|
||||
// for all uses of member variables, use this->
|
||||
this->my_var = value;
|
||||
}
|
||||
|
||||
int MyClass::get_my_var() const {
|
||||
return this->my_var;
|
||||
}
|
||||
```
|
||||
|
||||
|
Loading…
Reference in a new issue