From 58690660c4aa8ad2592bfa97799c14af59cc9061 Mon Sep 17 00:00:00 2001 From: Jan van der Weide Date: Sun, 13 Apr 2025 22:15:59 +0200 Subject: [PATCH 1/9] fix: export_preset path not resetting propperly --- justfile | 11 ++++------- project/export_presets.cfg | 6 +++--- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/justfile b/justfile index f13b11e1..06982115 100644 --- a/justfile +++ b/justfile @@ -2,9 +2,6 @@ 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: cd engine/ && scons target=editor symbols=yes optimization=debug dev_build=yes linker=mold use_llvm=yes compiledb=yes @@ -13,19 +10,19 @@ run: build release-linux: build 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 + 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/* 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 release-windows: build 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 + 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 + sed -i "s!{{`realpath engine/bin/godot.windows.template_release.x86_64.llvm`}}!templatepath!" project/export_presets.cfg initialize-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 diff --git a/project/export_presets.cfg b/project/export_presets.cfg index c7ac7659..a04762ac 100644 --- a/project/export_presets.cfg +++ b/project/export_presets.cfg @@ -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,7 +45,7 @@ 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" @@ -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 From 0e78ce50313239fda9caba21682493ea43a24686 Mon Sep 17 00:00:00 2001 From: Sara Date: Mon, 14 Apr 2025 11:17:09 +0200 Subject: [PATCH 2/9] fix: engine sourcecode module --- .gitmodules | 3 +++ engine | 1 + 2 files changed, 4 insertions(+) create mode 160000 engine diff --git a/.gitmodules b/.gitmodules index e69de29b..1b15f551 100644 --- a/.gitmodules +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "engine"] + path = engine + url = https://github.com/godotengine/godot.git diff --git a/engine b/engine new file mode 160000 index 00000000..215acd52 --- /dev/null +++ b/engine @@ -0,0 +1 @@ +Subproject commit 215acd52e82f4c575abb715e25e54558deeef998 From 49689745dbe2e80e8a652677b4d6a4e30ebda1e0 Mon Sep 17 00:00:00 2001 From: Jan van der Weide Date: Mon, 14 Apr 2025 13:04:03 +0200 Subject: [PATCH 3/9] added custom modules to build command --- justfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/justfile b/justfile index 06982115..ad237ea9 100644 --- a/justfile +++ b/justfile @@ -3,7 +3,7 @@ set export BUILD_NAME := "change_me" build: - cd engine/ && scons target=editor symbols=yes optimization=debug dev_build=yes linker=mold use_llvm=yes compiledb=yes + cd engine/ && scons target=editor symbols=yes optimization=debug dev_build=yes linker=mold use_llvm=yes compiledb=yes custom_modules="../modules" run: build engine/bin/godot.linuxbsd.editor.dev.x86_64.llvm --editor --path project From 384cfcbec6e01fe5dc673766ba9dba00d8f08e3e Mon Sep 17 00:00:00 2001 From: Sara Date: Fri, 20 Jun 2025 21:27:01 +0200 Subject: [PATCH 4/9] feat: added clang-format and formatted existing files --- modules/.clang-format | 238 +++++++++++++++++++++++++++++++++++++++ modules/PROJECT/macros.h | 22 ++-- 2 files changed, 251 insertions(+), 9 deletions(-) create mode 100644 modules/.clang-format diff --git a/modules/.clang-format b/modules/.clang-format new file mode 100644 index 00000000..6a547cf6 --- /dev/null +++ b/modules/.clang-format @@ -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 diff --git a/modules/PROJECT/macros.h b/modules/PROJECT/macros.h index c1c26d61..53be3185 100644 --- a/modules/PROJECT/macros.h +++ b/modules/PROJECT/macros.h @@ -1,16 +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_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_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) +#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 From 684fcbf3c92ec2ce3ab4c04cc981add4fd8bc4ca Mon Sep 17 00:00:00 2001 From: Sara Date: Fri, 20 Jun 2025 21:28:01 +0200 Subject: [PATCH 5/9] feat: added `just format` command --- justfile | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/justfile b/justfile index ad237ea9..f5db7774 100644 --- a/justfile +++ b/justfile @@ -1,8 +1,8 @@ set export BUILD_NAME := "change_me" - -build: + +build: format cd engine/ && scons target=editor symbols=yes optimization=debug dev_build=yes linker=mold use_llvm=yes compiledb=yes custom_modules="../modules" run: build @@ -29,3 +29,6 @@ initialize-template projectname: sed "s/change_me/{{projectname}}/" ./justfile mv ./modules/PROJECT ./modules/{{projectname}} +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') From 79048bc28ed58c415232f3f1e573b128a3efc036 Mon Sep 17 00:00:00 2001 From: Sara Date: Fri, 20 Jun 2025 21:28:26 +0200 Subject: [PATCH 6/9] feat: added comments to justfile for clarity and debugging ease --- justfile | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/justfile b/justfile index f5db7774..ad0c5d09 100644 --- a/justfile +++ b/justfile @@ -3,31 +3,43 @@ set export BUILD_NAME := "change_me" 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" + # 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!{{`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" + # 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 + # 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 From 37b3a63ae609b76e7a228d20aaa149dd11fdeb7b Mon Sep 17 00:00:00 2001 From: Sara Date: Mon, 23 Jun 2025 19:48:13 +0200 Subject: [PATCH 7/9] feat: initialized template --- .gitignore | 12 ++++++-- justfile | 2 +- modules/PROJECT/register_types.cpp | 15 ---------- modules/PROJECT/register_types.h | 9 ------ modules/{PROJECT => authority}/SCsub | 0 .../__pycache__/config.cpython-313.pyc | Bin 0 -> 390 bytes modules/{PROJECT => authority}/config.py | 0 modules/{PROJECT => authority}/macros.h | 0 modules/authority/register_types.cpp | 26 ++++++++++++++++++ modules/authority/register_types.h | 9 ++++++ project/export_presets.cfg | 4 +-- project/project.godot | 2 +- 12 files changed, 48 insertions(+), 31 deletions(-) delete mode 100644 modules/PROJECT/register_types.cpp delete mode 100644 modules/PROJECT/register_types.h rename modules/{PROJECT => authority}/SCsub (100%) create mode 100644 modules/authority/__pycache__/config.cpython-313.pyc rename modules/{PROJECT => authority}/config.py (100%) rename modules/{PROJECT => authority}/macros.h (100%) create mode 100644 modules/authority/register_types.cpp create mode 100644 modules/authority/register_types.h diff --git a/.gitignore b/.gitignore index b8680775..3f82628a 100644 --- a/.gitignore +++ b/.gitignore @@ -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 diff --git a/justfile b/justfile index ad0c5d09..48c61a88 100644 --- a/justfile +++ b/justfile @@ -1,6 +1,6 @@ set export -BUILD_NAME := "change_me" +BUILD_NAME := "authority" build: format # Compiling Editor diff --git a/modules/PROJECT/register_types.cpp b/modules/PROJECT/register_types.cpp deleted file mode 100644 index a367b16d..00000000 --- a/modules/PROJECT/register_types.cpp +++ /dev/null @@ -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; - } -} diff --git a/modules/PROJECT/register_types.h b/modules/PROJECT/register_types.h deleted file mode 100644 index 2a1d0257..00000000 --- a/modules/PROJECT/register_types.h +++ /dev/null @@ -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 diff --git a/modules/PROJECT/SCsub b/modules/authority/SCsub similarity index 100% rename from modules/PROJECT/SCsub rename to modules/authority/SCsub diff --git a/modules/authority/__pycache__/config.cpython-313.pyc b/modules/authority/__pycache__/config.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8d3597edc0190babb3bd28785427ea2442f0faea GIT binary patch literal 390 zcmey&%ge>Uz`*b)C^Ey3fq~&Mhy%lnP{wBg1_p+y48aUi3`GpVj8Y6mjOk38%*jkp zc@PCs%gn&Q@R~wiuDsqOEU6{GD|A;bMsS5b5fB-lJoP@GSl@6 zDsOQnC+5W`m1gFo6tOcfFo2v<%*w#P(7-BH#?QdO@PV0;k?|7~BctGFHbzD+um%A0-A^|F literal 0 HcmV?d00001 diff --git a/modules/PROJECT/config.py b/modules/authority/config.py similarity index 100% rename from modules/PROJECT/config.py rename to modules/authority/config.py diff --git a/modules/PROJECT/macros.h b/modules/authority/macros.h similarity index 100% rename from modules/PROJECT/macros.h rename to modules/authority/macros.h diff --git a/modules/authority/register_types.cpp b/modules/authority/register_types.cpp new file mode 100644 index 00000000..4a3fe411 --- /dev/null +++ b/modules/authority/register_types.cpp @@ -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); + } +} diff --git a/modules/authority/register_types.h b/modules/authority/register_types.h new file mode 100644 index 00000000..d55a194f --- /dev/null +++ b/modules/authority/register_types.h @@ -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 diff --git a/project/export_presets.cfg b/project/export_presets.cfg index a04762ac..fae5030f 100644 --- a/project/export_presets.cfg +++ b/project/export_presets.cfg @@ -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="" @@ -51,7 +51,7 @@ 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="" diff --git a/project/project.godot b/project/project.godot index bd5ab3b0..8cd51d29 100644 --- a/project/project.godot +++ b/project/project.godot @@ -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" From f6e6cf9e55f07ca4a942085d9fa2af7f636363a6 Mon Sep 17 00:00:00 2001 From: Sara Date: Mon, 23 Jun 2025 19:48:33 +0200 Subject: [PATCH 8/9] feat: set engine version to latest 4.4 --- engine | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engine b/engine index 215acd52..e531f3eb 160000 --- a/engine +++ b/engine @@ -1 +1 @@ -Subproject commit 215acd52e82f4c575abb715e25e54558deeef998 +Subproject commit e531f3eb7b13a9adaaf5b15ac9b3aebc4c2030cd From 1828ebbe21514400c682e4e70d1624da79daa2d8 Mon Sep 17 00:00:00 2001 From: Sara Date: Mon, 23 Jun 2025 19:48:52 +0200 Subject: [PATCH 9/9] feat: first game code --- modules/authority/game_state.cpp | 24 ++++++++++++++ modules/authority/game_state.h | 21 +++++++++++++ modules/authority/locale_marker.cpp | 49 +++++++++++++++++++++++++++++ modules/authority/locale_marker.h | 25 +++++++++++++++ 4 files changed, 119 insertions(+) create mode 100644 modules/authority/game_state.cpp create mode 100644 modules/authority/game_state.h create mode 100644 modules/authority/locale_marker.cpp create mode 100644 modules/authority/locale_marker.h diff --git a/modules/authority/game_state.cpp b/modules/authority/game_state.cpp new file mode 100644 index 00000000..8f0a1c5c --- /dev/null +++ b/modules/authority/game_state.cpp @@ -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; +} + diff --git a/modules/authority/game_state.h b/modules/authority/game_state.h new file mode 100644 index 00000000..f1bac503 --- /dev/null +++ b/modules/authority/game_state.h @@ -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 diff --git a/modules/authority/locale_marker.cpp b/modules/authority/locale_marker.cpp new file mode 100644 index 00000000..9cd169b8 --- /dev/null +++ b/modules/authority/locale_marker.cpp @@ -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 event, Vector3 position, Vector3 normal, int shape_ind) { + Ref 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; +} diff --git a/modules/authority/locale_marker.h b/modules/authority/locale_marker.h new file mode 100644 index 00000000..1020df96 --- /dev/null +++ b/modules/authority/locale_marker.h @@ -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 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