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
|
# When configure fails, SCons outputs these
|
||||||
config.log
|
config.log
|
||||||
.sconf_temp
|
.sconf_temp
|
||||||
|
.config
|
||||||
|
|
||||||
|
# build artefacts
|
||||||
|
.cache/
|
||||||
|
*.o
|
||||||
|
compile_commands.json
|
||||||
|
|
||||||
engine/.github
|
engine/.github
|
||||||
project/.godot
|
project/.godot
|
||||||
build/PROJECT.pck
|
build/authority.pck
|
||||||
build/PROJECT.x86_64
|
build/authority.x86_64
|
||||||
build/PROJECT.exe
|
build/authority.exe
|
||||||
build.zip
|
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
|
set export
|
||||||
|
|
||||||
BUILD_NAME := "change_me"
|
BUILD_NAME := "authority"
|
||||||
|
|
||||||
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:
|
build: format
|
||||||
cd engine/ && scons target=editor symbols=yes optimization=debug dev_build=yes linker=mold use_llvm=yes compiledb=yes
|
# 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
|
run: build
|
||||||
|
# Running Editor
|
||||||
engine/bin/godot.linuxbsd.editor.dev.x86_64.llvm --editor --path project
|
engine/bin/godot.linuxbsd.editor.dev.x86_64.llvm --editor --path project
|
||||||
|
|
||||||
release-linux: build
|
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"
|
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
|
rm -rf build && mkdir build
|
||||||
engine/bin/godot.*.editor.dev.*.llvm --headless --export-release "Linux" project/project.godot && zip build.zip build/*
|
engine/bin/godot.*.editor.dev.*.llvm --headless --export-release "Linux" project/project.godot && zip build.zip build/*
|
||||||
|
# Resetting Build Environment
|
||||||
touch build/.gitkeep
|
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
|
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"
|
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
|
rm -rf build && mkdir build
|
||||||
engine/bin/godot.*.editor.dev.*.llvm --headless --export-release "Windows" project/project.godot && zip build.zip build/*
|
engine/bin/godot.*.editor.dev.*.llvm --headless --export-release "Windows" project/project.godot && zip build.zip build/*
|
||||||
touch build/.gitkeep
|
# Resetting Build Environment
|
||||||
sed -i "s!{{release_template_path_windows}}!{path}!" project/export_presets.cfg
|
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:
|
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 -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
|
sed "s/change_me/{{projectname}}/" ./justfile
|
||||||
mv ./modules/PROJECT ./modules/{{projectname}}
|
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"
|
export_filter="all_resources"
|
||||||
include_filter=""
|
include_filter=""
|
||||||
exclude_filter=""
|
exclude_filter=""
|
||||||
export_path="../build/PROJECT.x86_64"
|
export_path="../build/authority.x86_64"
|
||||||
patches=PackedStringArray()
|
patches=PackedStringArray()
|
||||||
encryption_include_filters=""
|
encryption_include_filters=""
|
||||||
encryption_exclude_filters=""
|
encryption_exclude_filters=""
|
||||||
|
@ -21,7 +21,7 @@ script_export_mode=2
|
||||||
[preset.0.options]
|
[preset.0.options]
|
||||||
|
|
||||||
custom_template/debug=""
|
custom_template/debug=""
|
||||||
custom_template/release="{path}"
|
custom_template/release="templatepath"
|
||||||
debug/export_console_wrapper=1
|
debug/export_console_wrapper=1
|
||||||
binary_format/embed_pck=false
|
binary_format/embed_pck=false
|
||||||
texture_format/s3tc_bptc=true
|
texture_format/s3tc_bptc=true
|
||||||
|
@ -45,13 +45,13 @@ rm -rf \"{temp_dir}\""
|
||||||
name="Windows"
|
name="Windows"
|
||||||
platform="Windows Desktop"
|
platform="Windows Desktop"
|
||||||
runnable=true
|
runnable=true
|
||||||
advanced_options=false
|
advanced_options=true
|
||||||
dedicated_server=false
|
dedicated_server=false
|
||||||
custom_features=""
|
custom_features=""
|
||||||
export_filter="all_resources"
|
export_filter="all_resources"
|
||||||
include_filter=""
|
include_filter=""
|
||||||
exclude_filter=""
|
exclude_filter=""
|
||||||
export_path="../build/PROJECT.exe"
|
export_path="../build/authority.exe"
|
||||||
patches=PackedStringArray()
|
patches=PackedStringArray()
|
||||||
encryption_include_filters=""
|
encryption_include_filters=""
|
||||||
encryption_exclude_filters=""
|
encryption_exclude_filters=""
|
||||||
|
@ -63,7 +63,7 @@ script_export_mode=2
|
||||||
[preset.1.options]
|
[preset.1.options]
|
||||||
|
|
||||||
custom_template/debug=""
|
custom_template/debug=""
|
||||||
custom_template/release="{path}"
|
custom_template/release="templatepath"
|
||||||
debug/export_console_wrapper=1
|
debug/export_console_wrapper=1
|
||||||
binary_format/embed_pck=false
|
binary_format/embed_pck=false
|
||||||
texture_format/s3tc_bptc=true
|
texture_format/s3tc_bptc=true
|
||||||
|
|
|
@ -10,6 +10,6 @@ config_version=5
|
||||||
|
|
||||||
[application]
|
[application]
|
||||||
|
|
||||||
config/name="PROJECT"
|
config/name="authority"
|
||||||
config/features=PackedStringArray("4.4", "Forward Plus")
|
config/features=PackedStringArray("4.4", "Forward Plus")
|
||||||
config/icon="res://icon.svg"
|
config/icon="res://icon.svg"
|
||||||
|
|
Loading…
Reference in a new issue