Compare commits
11 commits
31c715db98
...
1828ebbe21
Author | SHA1 | Date | |
---|---|---|---|
![]() |
1828ebbe21 | ||
![]() |
f6e6cf9e55 | ||
![]() |
37b3a63ae6 | ||
|
fdb9ad8de0 | ||
![]() |
79048bc28e | ||
![]() |
684fcbf3c9 | ||
![]() |
384cfcbec6 | ||
![]() |
2d7050a065 | ||
![]() |
49689745db | ||
![]() |
0e78ce5031 | ||
![]() |
58690660c4 |
12
.gitignore
vendored
12
.gitignore
vendored
|
@ -5,10 +5,16 @@
|
|||
# When configure fails, SCons outputs these
|
||||
config.log
|
||||
.sconf_temp
|
||||
.config
|
||||
|
||||
# build artefacts
|
||||
.cache/
|
||||
*.o
|
||||
compile_commands.json
|
||||
|
||||
engine/.github
|
||||
project/.godot
|
||||
build/PROJECT.pck
|
||||
build/PROJECT.x86_64
|
||||
build/PROJECT.exe
|
||||
build/authority.pck
|
||||
build/authority.x86_64
|
||||
build/authority.exe
|
||||
build.zip
|
||||
|
|
3
.gitmodules
vendored
3
.gitmodules
vendored
|
@ -0,0 +1,3 @@
|
|||
[submodule "engine"]
|
||||
path = engine
|
||||
url = https://github.com/godotengine/godot.git
|
1
engine
Submodule
1
engine
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit e531f3eb7b13a9adaaf5b15ac9b3aebc4c2030cd
|
34
justfile
34
justfile
|
@ -1,34 +1,46 @@
|
|||
set export
|
||||
|
||||
BUILD_NAME := "change_me"
|
||||
|
||||
release_template_path_linux := `realpath engine/bin/godot.linuxbsd.template_release.x86_64.llvm`
|
||||
release_template_path_windows := `realpath engine/bin/godot.windows.template_release.x86_64.llvm`
|
||||
BUILD_NAME := "authority"
|
||||
|
||||
build:
|
||||
cd engine/ && scons target=editor symbols=yes optimization=debug dev_build=yes linker=mold use_llvm=yes compiledb=yes
|
||||
build: format
|
||||
# Compiling Editor
|
||||
cd engine/ && scons target=editor symbols=yes optimization=debug dev_build=yes linker=mold use_llvm=yes compiledb=yes custom_modules="../modules"
|
||||
|
||||
run: build
|
||||
# Running Editor
|
||||
engine/bin/godot.linuxbsd.editor.dev.x86_64.llvm --editor --path project
|
||||
|
||||
release-linux: build
|
||||
# Compiling Linux Release
|
||||
cd engine/ && scons platform=linuxbsd target=template_release arch=x86_64 linker=mold use_llvm=yes compiledb=yes custom_modules="../modules"
|
||||
sed -i "s!{path}!{{release_template_path_linux}}!" project/export_presets.cfg
|
||||
# Preparing Build Environment
|
||||
sed -i "s!templatepath!{{`realpath engine/bin/godot.linuxbsd.template_release.x86_64.llvm`}}!" project/export_presets.cfg
|
||||
rm -rf build && mkdir build
|
||||
engine/bin/godot.*.editor.dev.*.llvm --headless --export-release "Linux" project/project.godot && zip build.zip build/*
|
||||
# Resetting Build Environment
|
||||
touch build/.gitkeep
|
||||
sed -i "s!{{release_template_path_linux}}!{path}!" project/export_presets.cfg
|
||||
sed -i "s!{{`realpath engine/bin/godot.linuxbsd.template_release.x86_64.llvm`}}!templatepath!" project/export_presets.cfg
|
||||
# Completed Linux Release Build
|
||||
|
||||
release-windows: build
|
||||
# Compiling Windows Release
|
||||
cd engine/ && scons platform=windows target=template_release arch=x86_64 linker=mold use_llvm=yes compiledb=yes custom_modules="../modules"
|
||||
sed -i "s!{path}!{{release_template_path_windows}}!" project/export_presets.cfg
|
||||
# Preparing Build Environment
|
||||
sed -i "s!templatepath!{{`realpath engine/bin/godot.windows.template_release.x86_64.llvm`}}!" project/export_presets.cfg
|
||||
rm -rf build && mkdir build
|
||||
engine/bin/godot.*.editor.dev.*.llvm --headless --export-release "Windows" project/project.godot && zip build.zip build/*
|
||||
touch build/.gitkeep
|
||||
sed -i "s!{{release_template_path_windows}}!{path}!" project/export_presets.cfg
|
||||
# Resetting Build Environment
|
||||
touch build/.gitkeep
|
||||
sed -i "s!{{`realpath engine/bin/godot.windows.template_release.x86_64.llvm`}}!templatepath!" project/export_presets.cfg
|
||||
# Completed Windows Release Build
|
||||
|
||||
initialize-template projectname:
|
||||
# Initializing Template {{projectname}}
|
||||
sed -i -e "s/PROJECT/{{projectname}}/g" ./modules/PROJECT/register_types.h ./modules/PROJECT/register_types.cpp ./project/project.godot ./project/export_presets.cfg .gitignore
|
||||
sed "s/change_me/{{projectname}}/" ./justfile
|
||||
mv ./modules/PROJECT ./modules/{{projectname}}
|
||||
# Done Initializing, you will still have to update BUILD_NAME in your justfile
|
||||
|
||||
format:
|
||||
# Formatting Custom Modules
|
||||
clang-format -i $(find modules/ -iname '*.h' -o -iname '*.c' -o -iname '*.hpp' -o -iname '*.cpp' -o -iname '*.hxx' -o -iname '*.cxx')
|
||||
|
|
238
modules/.clang-format
Normal file
238
modules/.clang-format
Normal file
|
@ -0,0 +1,238 @@
|
|||
# Commented out parameters are those with the same value as base LLVM style.
|
||||
# We can uncomment them if we want to change their value, or enforce the
|
||||
# chosen value in case the base style changes (last sync: Clang 17.0.6).
|
||||
BasedOnStyle: LLVM
|
||||
AccessModifierOffset: -4
|
||||
AlignAfterOpenBracket: DontAlign
|
||||
# AlignArrayOfStructures: None
|
||||
# AlignConsecutiveAssignments:
|
||||
# Enabled: false
|
||||
# AcrossEmptyLines: false
|
||||
# AcrossComments: false
|
||||
# AlignCompound: false
|
||||
# PadOperators: true
|
||||
# AlignConsecutiveBitFields:
|
||||
# Enabled: false
|
||||
# AcrossEmptyLines: false
|
||||
# AcrossComments: false
|
||||
# AlignCompound: false
|
||||
# PadOperators: false
|
||||
# AlignConsecutiveDeclarations:
|
||||
# Enabled: false
|
||||
# AcrossEmptyLines: false
|
||||
# AcrossComments: false
|
||||
# AlignCompound: false
|
||||
# PadOperators: false
|
||||
# AlignConsecutiveMacros:
|
||||
# Enabled: false
|
||||
# AcrossEmptyLines: false
|
||||
# AcrossComments: false
|
||||
# AlignCompound: false
|
||||
# PadOperators: false
|
||||
# AlignConsecutiveShortCaseStatements:
|
||||
# Enabled: false
|
||||
# AcrossEmptyLines: false
|
||||
# AcrossComments: false
|
||||
# AlignCaseColons: false
|
||||
# AlignEscapedNewlines: Right
|
||||
AlignOperands: DontAlign
|
||||
AlignTrailingComments:
|
||||
Kind: Never
|
||||
OverEmptyLines: 0
|
||||
# AllowAllArgumentsOnNextLine: true
|
||||
AllowAllParametersOfDeclarationOnNextLine: false
|
||||
# AllowShortBlocksOnASingleLine: Never
|
||||
# AllowShortCaseLabelsOnASingleLine: false
|
||||
# AllowShortEnumsOnASingleLine: true
|
||||
AllowShortFunctionsOnASingleLine: Inline
|
||||
# AllowShortIfStatementsOnASingleLine: Never
|
||||
# AllowShortLambdasOnASingleLine: All
|
||||
# AllowShortLoopsOnASingleLine: false
|
||||
# AlwaysBreakAfterDefinitionReturnType: None
|
||||
# AlwaysBreakAfterReturnType: None
|
||||
# AlwaysBreakBeforeMultilineStrings: false
|
||||
# AlwaysBreakTemplateDeclarations: MultiLine
|
||||
# AttributeMacros:
|
||||
# - __capability
|
||||
# BinPackArguments: true
|
||||
# BinPackParameters: true
|
||||
# BitFieldColonSpacing: Both
|
||||
# BraceWrapping:
|
||||
# AfterCaseLabel: false
|
||||
# AfterClass: false
|
||||
# AfterControlStatement: Never
|
||||
# AfterEnum: false
|
||||
# AfterFunction: false
|
||||
# AfterNamespace: false
|
||||
# AfterObjCDeclaration: false
|
||||
# AfterStruct: false
|
||||
# AfterUnion: false
|
||||
# AfterExternBlock: false
|
||||
# BeforeCatch: false
|
||||
# BeforeElse: false
|
||||
# BeforeLambdaBody: false
|
||||
# BeforeWhile: false
|
||||
# IndentBraces: false
|
||||
# SplitEmptyFunction: true
|
||||
# SplitEmptyRecord: true
|
||||
# SplitEmptyNamespace: true
|
||||
# BreakAfterAttributes: Never
|
||||
# BreakAfterJavaFieldAnnotations: false
|
||||
# BreakArrays: true
|
||||
# BreakBeforeBinaryOperators: None
|
||||
# BreakBeforeBraces: Attach
|
||||
# BreakBeforeConceptDeclarations: Always
|
||||
# BreakBeforeInlineASMColon: OnlyMultiline
|
||||
# BreakBeforeTernaryOperators: true
|
||||
BreakConstructorInitializers: AfterColon
|
||||
# BreakInheritanceList: BeforeColon
|
||||
# BreakStringLiterals: true
|
||||
ColumnLimit: 0
|
||||
# CommentPragmas: "^ IWYU pragma:"
|
||||
# CompactNamespaces: false
|
||||
ConstructorInitializerIndentWidth: 8
|
||||
ContinuationIndentWidth: 8
|
||||
Cpp11BracedListStyle: false
|
||||
# DerivePointerAlignment: false
|
||||
# DisableFormat: false
|
||||
# EmptyLineAfterAccessModifier: Never
|
||||
# EmptyLineBeforeAccessModifier: LogicalBlock
|
||||
# ExperimentalAutoDetectBinPacking: false
|
||||
# FixNamespaceComments: true
|
||||
# ForEachMacros:
|
||||
# - foreach
|
||||
# - Q_FOREACH
|
||||
# - BOOST_FOREACH
|
||||
# IfMacros:
|
||||
# - KJ_IF_MAYBE
|
||||
# IncludeBlocks: Preserve
|
||||
IncludeCategories:
|
||||
- Regex: ^".*"$
|
||||
Priority: 1
|
||||
- Regex: ^<.*\.h>$
|
||||
Priority: 2
|
||||
- Regex: ^<.*>$
|
||||
Priority: 3
|
||||
# IncludeIsMainRegex: (Test)?$
|
||||
# IncludeIsMainSourceRegex: ""
|
||||
# IndentAccessModifiers: false
|
||||
# IndentCaseBlocks: false
|
||||
IndentCaseLabels: true
|
||||
# IndentExternBlock: AfterExternBlock
|
||||
# IndentGotoLabels: true
|
||||
# IndentPPDirectives: None
|
||||
# IndentRequiresClause: true
|
||||
IndentWidth: 4
|
||||
# IndentWrappedFunctionNames: false
|
||||
InsertBraces: true
|
||||
# InsertNewlineAtEOF: false
|
||||
# InsertTrailingCommas: None
|
||||
# IntegerLiteralSeparator:
|
||||
# Binary: 0
|
||||
# BinaryMinDigits: 0
|
||||
# Decimal: 0
|
||||
# DecimalMinDigits: 0
|
||||
# Hex: 0
|
||||
# HexMinDigits: 0
|
||||
JavaImportGroups:
|
||||
- org.godotengine
|
||||
- android
|
||||
- androidx
|
||||
- com.android
|
||||
- com.google
|
||||
- java
|
||||
- javax
|
||||
# JavaScriptQuotes: Leave
|
||||
# JavaScriptWrapImports: true
|
||||
# KeepEmptyLinesAtEOF: false
|
||||
KeepEmptyLinesAtTheStartOfBlocks: false
|
||||
# LambdaBodyIndentation: Signature
|
||||
# Language: Cpp
|
||||
# LineEnding: DeriveLF
|
||||
# MacroBlockBegin: ""
|
||||
# MacroBlockEnd: ""
|
||||
# MaxEmptyLinesToKeep: 1
|
||||
# NamespaceIndentation: None
|
||||
# ObjCBinPackProtocolList: Auto
|
||||
ObjCBlockIndentWidth: 4
|
||||
# ObjCBreakBeforeNestedBlockParam: true
|
||||
# ObjCSpaceAfterProperty: false
|
||||
# ObjCSpaceBeforeProtocolList: true
|
||||
# PPIndentWidth: -1
|
||||
PackConstructorInitializers: NextLine
|
||||
# PenaltyBreakAssignment: 2
|
||||
# PenaltyBreakBeforeFirstCallParameter: 19
|
||||
# PenaltyBreakComment: 300
|
||||
# PenaltyBreakFirstLessLess: 120
|
||||
# PenaltyBreakOpenParenthesis: 0
|
||||
# PenaltyBreakString: 1000
|
||||
# PenaltyBreakTemplateDeclaration: 10
|
||||
# PenaltyExcessCharacter: 1000000
|
||||
# PenaltyIndentedWhitespace: 0
|
||||
# PenaltyReturnTypeOnItsOwnLine: 60
|
||||
# PointerAlignment: Right
|
||||
# QualifierAlignment: Leave
|
||||
# ReferenceAlignment: Pointer
|
||||
# ReflowComments: true
|
||||
# RemoveBracesLLVM: false
|
||||
# RemoveParentheses: Leave
|
||||
RemoveSemicolon: true
|
||||
# RequiresClausePosition: OwnLine
|
||||
# RequiresExpressionIndentation: OuterScope
|
||||
# SeparateDefinitionBlocks: Leave
|
||||
# ShortNamespaceLines: 1
|
||||
# SortIncludes: CaseSensitive
|
||||
# SortJavaStaticImport: Before
|
||||
# SortUsingDeclarations: LexicographicNumeric
|
||||
# SpaceAfterCStyleCast: false
|
||||
# SpaceAfterLogicalNot: false
|
||||
# SpaceAfterTemplateKeyword: true
|
||||
# SpaceAroundPointerQualifiers: Default
|
||||
# SpaceBeforeAssignmentOperators: true
|
||||
# SpaceBeforeCaseColon: false
|
||||
# SpaceBeforeCpp11BracedList: false
|
||||
# SpaceBeforeCtorInitializerColon: true
|
||||
# SpaceBeforeInheritanceColon: true
|
||||
# SpaceBeforeJsonColon: false
|
||||
# SpaceBeforeParens: ControlStatements
|
||||
# SpaceBeforeParensOptions:
|
||||
# AfterControlStatements: true
|
||||
# AfterForeachMacros: true
|
||||
# AfterFunctionDeclarationName: false
|
||||
# AfterFunctionDefinitionName: false
|
||||
# AfterIfMacros: true
|
||||
# AfterOverloadedOperator: false
|
||||
# AfterRequiresInClause: false
|
||||
# AfterRequiresInExpression: false
|
||||
# BeforeNonEmptyParentheses: false
|
||||
# SpaceBeforeRangeBasedForLoopColon: true
|
||||
# SpaceBeforeSquareBrackets: false
|
||||
# SpaceInEmptyBlock: false
|
||||
# SpacesBeforeTrailingComments: 1
|
||||
# SpacesInAngles: Never
|
||||
# SpacesInContainerLiterals: true
|
||||
SpacesInLineCommentPrefix:
|
||||
Minimum: 0 # We want a minimum of 1 for comments, but allow 0 for disabled code.
|
||||
Maximum: -1
|
||||
# SpacesInParens: Never
|
||||
# SpacesInParensOptions:
|
||||
# InConditionalStatements: false
|
||||
# InCStyleCasts: false
|
||||
# InEmptyParentheses: false
|
||||
# Other: false
|
||||
# SpacesInSquareBrackets: false
|
||||
Standard: c++20
|
||||
# StatementAttributeLikeMacros:
|
||||
# - Q_EMIT
|
||||
# StatementMacros:
|
||||
# - Q_UNUSED
|
||||
# - QT_REQUIRE_VERSION
|
||||
TabWidth: 4
|
||||
UseTab: Always
|
||||
# VerilogBreakBetweenInstancePorts: true
|
||||
# WhitespaceSensitiveMacros:
|
||||
# - BOOST_PP_STRINGIZE
|
||||
# - CF_SWIFT_NAME
|
||||
# - NS_SWIFT_NAME
|
||||
# - PP_STRINGIZE
|
||||
# - STRINGIZE
|
|
@ -1,16 +0,0 @@
|
|||
#ifndef GODOT_EXTRA_MACROS_H
|
||||
#define GODOT_EXTRA_MACROS_H
|
||||
|
||||
#define BIND_GET_SET(m_property)\
|
||||
ClassDB::bind_method(D_METHOD("set_" #m_property, #m_property), &self_type::set_##m_property);\
|
||||
ClassDB::bind_method(D_METHOD("get_" #m_property), &self_type::get_##m_property)
|
||||
|
||||
#define BIND_HPROPERTY(m_type, m_property, ...)\
|
||||
BIND_GET_SET(m_property);\
|
||||
ADD_PROPERTY(PropertyInfo(m_type, #m_property, __VA_ARGS__), "set_" #m_property, "get_" #m_property)
|
||||
|
||||
#define BIND_PROPERTY(m_type, m_property)\
|
||||
BIND_GET_SET(m_property);\
|
||||
ADD_PROPERTY(PropertyInfo(m_type, #m_property), "set_" #m_property, "get_" #m_property)
|
||||
|
||||
#endif // !GODOT_EXTRA_MACROS_H
|
|
@ -1,15 +0,0 @@
|
|||
#include "register_types.h"
|
||||
|
||||
#include "core/object/class_db.h"
|
||||
|
||||
void initialize_PROJECT_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
void uninitialize_PROJECT_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
#ifndef PROJECT_REGISTER_TYPES_H
|
||||
#define PROJECT_REGISTER_TYPES_H
|
||||
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_PROJECT_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_PROJECT_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // !PROJECT_REGISTER_TYPES_H
|
BIN
modules/authority/__pycache__/config.cpython-313.pyc
Normal file
BIN
modules/authority/__pycache__/config.cpython-313.pyc
Normal file
Binary file not shown.
24
modules/authority/game_state.cpp
Normal file
24
modules/authority/game_state.cpp
Normal file
|
@ -0,0 +1,24 @@
|
|||
#include "game_state.h"
|
||||
#include "macros.h"
|
||||
|
||||
void GameState::_bind_methods() {
|
||||
BIND_PROPERTY(Variant::STRING, locale_uid);
|
||||
BIND_PROPERTY(Variant::STRING, locale_entrance_path);
|
||||
}
|
||||
|
||||
void GameState::set_locale_uid(String const &value) {
|
||||
this->locale_uid = value;
|
||||
}
|
||||
|
||||
String GameState::get_locale_uid() const {
|
||||
return this->locale_uid;
|
||||
}
|
||||
|
||||
void GameState::set_locale_entrance_path(String const &value) {
|
||||
this->locale_uid = value;
|
||||
}
|
||||
|
||||
String GameState::get_locale_entrance_path() const {
|
||||
return this->locale_uid;
|
||||
}
|
||||
|
21
modules/authority/game_state.h
Normal file
21
modules/authority/game_state.h
Normal file
|
@ -0,0 +1,21 @@
|
|||
#ifndef GAME_STATE_H
|
||||
#define GAME_STATE_H
|
||||
|
||||
#include "core/object/object.h"
|
||||
#include "core/object/class_db.h"
|
||||
|
||||
class GameState : public Object {
|
||||
GDCLASS(GameState, Object);
|
||||
static void _bind_methods();
|
||||
public:
|
||||
static GameState *get_singleton();
|
||||
void set_locale_uid(String const &value);
|
||||
String get_locale_uid() const;
|
||||
void set_locale_entrance_path(String const &value);
|
||||
String get_locale_entrance_path() const;
|
||||
private:
|
||||
String locale_uid{""};
|
||||
String locale_entrance_path{""};
|
||||
};
|
||||
|
||||
#endif // !GAME_STATE_H
|
49
modules/authority/locale_marker.cpp
Normal file
49
modules/authority/locale_marker.cpp
Normal file
|
@ -0,0 +1,49 @@
|
|||
#include "locale_marker.h"
|
||||
#include "authority/game_state.h"
|
||||
#include "core/config/engine.h"
|
||||
#include "core/input/input_enums.h"
|
||||
#include "macros.h"
|
||||
|
||||
void LocaleMarker::_bind_methods() {
|
||||
BIND_HPROPERTY(Variant::STRING, locale_scene, PROPERTY_HINT_FILE, "*.tscn,*.scn");
|
||||
}
|
||||
|
||||
void LocaleMarker::_notification(int what) {
|
||||
if(Engine::get_singleton()->is_editor_hint()) {
|
||||
return;
|
||||
}
|
||||
switch(what) {
|
||||
default: return;
|
||||
case NOTIFICATION_READY:
|
||||
this->ready();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
void LocaleMarker::ready() {
|
||||
this->connect(this->sig_input_event, callable_mp(this, &self_type::on_input_event));
|
||||
}
|
||||
|
||||
void LocaleMarker::on_input_event(Node *camera, Ref<InputEvent> event, Vector3 position, Vector3 normal, int shape_ind) {
|
||||
Ref<InputEventMouseButton> clicked{event};
|
||||
if(clicked.is_valid() && clicked->get_button_index() == MouseButton::LEFT) {
|
||||
GameState::get_singleton()->set_locale_entrance_path(this->entrance_path);
|
||||
GameState::get_singleton()->set_locale_uid(locale_scene);
|
||||
}
|
||||
}
|
||||
|
||||
void LocaleMarker::set_locale_scene(String const &path) {
|
||||
this->locale_scene = path;
|
||||
}
|
||||
|
||||
String LocaleMarker::get_locale_scene() const {
|
||||
return this->locale_scene;
|
||||
}
|
||||
|
||||
void LocaleMarker::set_entrance_path(String const &node_path) {
|
||||
this->entrance_path = node_path;
|
||||
}
|
||||
|
||||
String LocaleMarker::get_entrance_path() const {
|
||||
return this->entrance_path;
|
||||
}
|
25
modules/authority/locale_marker.h
Normal file
25
modules/authority/locale_marker.h
Normal file
|
@ -0,0 +1,25 @@
|
|||
#ifndef LOCALE_MARKER_H
|
||||
#define LOCALE_MARKER_H
|
||||
|
||||
#include "core/input/input_event.h"
|
||||
#include "scene/3d/physics/area_3d.h"
|
||||
#include "scene/main/node.h"
|
||||
|
||||
class LocaleMarker : public Area3D {
|
||||
GDCLASS(LocaleMarker, Area3D);
|
||||
static void _bind_methods();
|
||||
void _notification(int what);
|
||||
void ready();
|
||||
void on_input_event(Node *camera, Ref<InputEvent> event, Vector3 position, Vector3 normal, int shape_ind);
|
||||
public:
|
||||
void set_locale_scene(String const &value);
|
||||
String get_locale_scene() const;
|
||||
void set_entrance_path(String const &value);
|
||||
String get_entrance_path() const;
|
||||
private:
|
||||
String locale_scene{"res://"};
|
||||
String entrance_path{"%"};
|
||||
String const sig_input_event{"input_event"};
|
||||
};
|
||||
|
||||
#endif // !LOCALE_MARKER_H
|
20
modules/authority/macros.h
Normal file
20
modules/authority/macros.h
Normal file
|
@ -0,0 +1,20 @@
|
|||
#ifndef GODOT_EXTRA_MACROS_H
|
||||
#define GODOT_EXTRA_MACROS_H
|
||||
|
||||
#define BIND_GET_SET(m_property) \
|
||||
ClassDB::bind_method(D_METHOD("set_" #m_property, #m_property), \
|
||||
&self_type::set_##m_property); \
|
||||
ClassDB::bind_method(D_METHOD("get_" #m_property), \
|
||||
&self_type::get_##m_property)
|
||||
|
||||
#define BIND_HPROPERTY(m_type, m_property, ...) \
|
||||
BIND_GET_SET(m_property); \
|
||||
ADD_PROPERTY(PropertyInfo(m_type, #m_property, __VA_ARGS__), \
|
||||
"set_" #m_property, "get_" #m_property)
|
||||
|
||||
#define BIND_PROPERTY(m_type, m_property) \
|
||||
BIND_GET_SET(m_property); \
|
||||
ADD_PROPERTY(PropertyInfo(m_type, #m_property), "set_" #m_property, \
|
||||
"get_" #m_property)
|
||||
|
||||
#endif // !GODOT_EXTRA_MACROS_H
|
26
modules/authority/register_types.cpp
Normal file
26
modules/authority/register_types.cpp
Normal file
|
@ -0,0 +1,26 @@
|
|||
#include "register_types.h"
|
||||
|
||||
#include "authority/game_state.h"
|
||||
#include "core/config/engine.h"
|
||||
#include "core/object/class_db.h"
|
||||
|
||||
GameState *game_state{nullptr};
|
||||
|
||||
void initialize_authority_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
GDREGISTER_CLASS(GameState);
|
||||
|
||||
game_state = memnew(GameState);
|
||||
Engine::get_singleton()->add_singleton(Engine::Singleton("GameState", GameState::get_singleton()));
|
||||
}
|
||||
|
||||
void uninitialize_authority_module(ModuleInitializationLevel p_level) {
|
||||
if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) {
|
||||
return;
|
||||
}
|
||||
if(game_state) {
|
||||
memdelete(game_state);
|
||||
}
|
||||
}
|
9
modules/authority/register_types.h
Normal file
9
modules/authority/register_types.h
Normal file
|
@ -0,0 +1,9 @@
|
|||
#ifndef authority_REGISTER_TYPES_H
|
||||
#define authority_REGISTER_TYPES_H
|
||||
|
||||
#include "modules/register_module_types.h"
|
||||
|
||||
void initialize_authority_module(ModuleInitializationLevel p_level);
|
||||
void uninitialize_authority_module(ModuleInitializationLevel p_level);
|
||||
|
||||
#endif // !authority_REGISTER_TYPES_H
|
|
@ -9,7 +9,7 @@ custom_features=""
|
|||
export_filter="all_resources"
|
||||
include_filter=""
|
||||
exclude_filter=""
|
||||
export_path="../build/PROJECT.x86_64"
|
||||
export_path="../build/authority.x86_64"
|
||||
patches=PackedStringArray()
|
||||
encryption_include_filters=""
|
||||
encryption_exclude_filters=""
|
||||
|
@ -21,7 +21,7 @@ script_export_mode=2
|
|||
[preset.0.options]
|
||||
|
||||
custom_template/debug=""
|
||||
custom_template/release="{path}"
|
||||
custom_template/release="templatepath"
|
||||
debug/export_console_wrapper=1
|
||||
binary_format/embed_pck=false
|
||||
texture_format/s3tc_bptc=true
|
||||
|
@ -45,13 +45,13 @@ rm -rf \"{temp_dir}\""
|
|||
name="Windows"
|
||||
platform="Windows Desktop"
|
||||
runnable=true
|
||||
advanced_options=false
|
||||
advanced_options=true
|
||||
dedicated_server=false
|
||||
custom_features=""
|
||||
export_filter="all_resources"
|
||||
include_filter=""
|
||||
exclude_filter=""
|
||||
export_path="../build/PROJECT.exe"
|
||||
export_path="../build/authority.exe"
|
||||
patches=PackedStringArray()
|
||||
encryption_include_filters=""
|
||||
encryption_exclude_filters=""
|
||||
|
@ -63,7 +63,7 @@ script_export_mode=2
|
|||
[preset.1.options]
|
||||
|
||||
custom_template/debug=""
|
||||
custom_template/release="{path}"
|
||||
custom_template/release="templatepath"
|
||||
debug/export_console_wrapper=1
|
||||
binary_format/embed_pck=false
|
||||
texture_format/s3tc_bptc=true
|
||||
|
|
|
@ -10,6 +10,6 @@ config_version=5
|
|||
|
||||
[application]
|
||||
|
||||
config/name="PROJECT"
|
||||
config/name="authority"
|
||||
config/features=PackedStringArray("4.4", "Forward Plus")
|
||||
config/icon="res://icon.svg"
|
||||
|
|
Loading…
Reference in a new issue