From 0a54849e5f5e712f70014f07aea89ab3586a4418 Mon Sep 17 00:00:00 2001 From: Chris Cromer Date: Sat, 3 Sep 2022 22:46:35 -0400 Subject: [PATCH 1/6] fix bug that causes monitor's start time to be higher than 0 when entering player info --- godot/monitor/Monitor.gd | 1 + 1 file changed, 1 insertion(+) diff --git a/godot/monitor/Monitor.gd b/godot/monitor/Monitor.gd index 99404ac..c1bf442 100644 --- a/godot/monitor/Monitor.gd +++ b/godot/monitor/Monitor.gd @@ -142,6 +142,7 @@ func _on_input_validated(validated_player: Dictionary) -> void: Event.emit_signal("game_started") player = validated_player.duplicate(true) game["player"] = player + start_monitor() func _object_created(name: String, state: String, position: Vector2, velocity: Vector2) -> void: From aae40bf6e78255f5f28d809007109e5c9e103aa3 Mon Sep 17 00:00:00 2001 From: Chris Cromer Date: Thu, 22 Sep 2022 16:01:09 -0300 Subject: [PATCH 2/6] update to version 1.1.0 --- godot/Main.tscn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/godot/Main.tscn b/godot/Main.tscn index 049625d..1324688 100644 --- a/godot/Main.tscn +++ b/godot/Main.tscn @@ -8,7 +8,7 @@ [node name="Main" type="Node"] pause_mode = 2 script = ExtResource( 1 ) -game_version = "1.0.0" +game_version = "1.1.0" level = ExtResource( 2 ) [node name="Level" type="Node" parent="."] From b8146bd002a418499b9fd9ada392e61c1297591d Mon Sep 17 00:00:00 2001 From: Chris Cromer Date: Thu, 22 Sep 2022 16:42:24 -0300 Subject: [PATCH 3/6] allow anonymous player monitoring --- godot/monitor/Monitor.gd | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/godot/monitor/Monitor.gd b/godot/monitor/Monitor.gd index c1bf442..85238fd 100644 --- a/godot/monitor/Monitor.gd +++ b/godot/monitor/Monitor.gd @@ -2,6 +2,7 @@ extends Node export var monitor_enabled: bool = false +export var anonymous: bool = true export var debug: bool = false export var development_url: String = "http://localhost:4050/api/v1" var url_real: String = "https://alai.cromer.cl/api/v1" @@ -58,9 +59,10 @@ func _ready() -> void: game_version = get_parent().game_version - player["rut"] = "" - player["name"] = "" - player["email"] = "" + if not anonymous: + player["rut"] = "" + player["name"] = "" + player["email"] = "" var os_name = OS.get_name() if os_name == "Android": @@ -82,7 +84,8 @@ func _ready() -> void: else: os_id = 0 - game["player"] = player + if not anonymous: + game["player"] = player game["level_id"] = 0 game["os_id"] = os_id game["godot_version"] = godot_version @@ -108,9 +111,15 @@ func _ready() -> void: func _physics_process(_delta: float) -> void: if monitor_enabled: - if has_node("MonitorGUI") and not $MonitorGUI.visible: - $MonitorGUI.visible = true + if anonymous and has_node("MonitorGUI"): + $MonitorGUI.queue_free() Event.emit_signal("monitor_loaded") + get_tree().paused = false + start_monitor() + else: + if has_node("MonitorGUI") and not $MonitorGUI.visible: + $MonitorGUI.visible = true + Event.emit_signal("monitor_loaded") if started and not get_tree().paused: var frame = empty_frame.duplicate(true) @@ -137,12 +146,13 @@ func _physics_process(_delta: float) -> void: func _on_input_validated(validated_player: Dictionary) -> void: - $MonitorGUI.queue_free() - get_tree().paused = false - Event.emit_signal("game_started") - player = validated_player.duplicate(true) - game["player"] = player - start_monitor() + if not anonymous: + $MonitorGUI.queue_free() + get_tree().paused = false + Event.emit_signal("game_started") + player = validated_player.duplicate(true) + game["player"] = player + start_monitor() func _object_created(name: String, state: String, position: Vector2, velocity: Vector2) -> void: From 73b41dcde39df5fb7a93b4a5d33ceb6814bac538 Mon Sep 17 00:00:00 2001 From: Chris Cromer Date: Thu, 22 Sep 2022 16:47:51 -0300 Subject: [PATCH 4/6] disable monitor key if not debugging --- godot/monitor/Monitor.gd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/godot/monitor/Monitor.gd b/godot/monitor/Monitor.gd index 85238fd..b814bd8 100644 --- a/godot/monitor/Monitor.gd +++ b/godot/monitor/Monitor.gd @@ -133,11 +133,11 @@ func _physics_process(_delta: float) -> void: frames.append(frame) - if Input.is_action_just_pressed("Send"): + if debug and Input.is_action_just_pressed("Send"): stop_monitor() send_data() else: - if Input.is_action_just_pressed("Send"): + if debug and Input.is_action_just_pressed("Send"): start_monitor() else: get_tree().paused = false From 57cc75c24925a404ead2a597d9f3145c67ad8ddb Mon Sep 17 00:00:00 2001 From: Chris Cromer Date: Mon, 10 Oct 2022 21:25:56 -0300 Subject: [PATCH 5/6] add .clang-format --- .clang-format | 220 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 220 insertions(+) create mode 100644 .clang-format diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..7fd437d --- /dev/null +++ b/.clang-format @@ -0,0 +1,220 @@ +--- +AccessModifierOffset: 0 +EmptyLineAfterAccessModifier: Never +EmptyLineBeforeAccessModifier: Always +IndentAccessModifiers: true +TabWidth: 4 +UseTab: Never +UseCRLF: false +Language: Cpp +IndentWidth: 4 +AlignAfterOpenBracket: DontAlign +AlignArrayOfStructures: Left +AlignConsecutiveAssignments: AcrossComments +AlignConsecutiveBitFields: AcrossComments +AlignConsecutiveDeclarations: None +AlignConsecutiveMacros: AcrossComments +AlignEscapedNewlines: Left +AlignOperands: AlignAfterOperator +AlignTrailingComments: true +AllowAllArgumentsOnNextLine: false +AllowAllConstructorInitializersOnNextLine: false +AllowAllParametersOfDeclarationOnNextLine: false +AllowShortBlocksOnASingleLine: Never +AllowShortCaseLabelsOnASingleLine: false +AllowShortEnumsOnASingleLine: false +AllowShortFunctionsOnASingleLine: None +AllowShortIfStatementsOnASingleLine: Never +AllowShortLambdasOnASingleLine: None +AllowShortLoopsOnASingleLine: false +AlwaysBreakAfterDefinitionReturnType: None +AlwaysBreakAfterReturnType: None +AlwaysBreakBeforeMultilineStrings: false +AlwaysBreakTemplateDeclarations: No +BinPackArguments: false +BinPackParameters: false +AttributeMacros: + - __capability +BitFieldColonSpacing: Both +BraceWrapping: + AfterCaseLabel: true + AfterClass: true + AfterControlStatement: Always + AfterEnum: true + AfterFunction: true + AfterNamespace: true + AfterObjCDeclaration: true + AfterStruct: true + AfterUnion: true + AfterExternBlock: true + BeforeCatch: true + BeforeElse: true + BeforeLambdaBody: true + BeforeWhile: true + IndentBraces: false + SplitEmptyFunction: true + SplitEmptyRecord: true + SplitEmptyNamespace: true +BreakBeforeBraces: Custom +BreakAfterJavaFieldAnnotations: false +BreakBeforeBinaryOperators: All +BreakBeforeConceptDeclarations: false +BreakBeforeTernaryOperators: true +BreakConstructorInitializers: AfterColon +BreakInheritanceList: AfterColon +BreakStringLiterals: false +ColumnLimit: 0 +CommentPragmas: "^ IWYU pragma:" +CompactNamespaces: false +ConstructorInitializerAllOnOneLineOrOnePerLine: true +ConstructorInitializerIndentWidth: 4 +ContinuationIndentWidth: 4 +Cpp11BracedListStyle: true +DeriveLineEnding: true +DerivePointerAlignment: true +DisableFormat: false +ExperimentalAutoDetectBinPacking: false +FixNamespaceComments: true +ForEachMacros: + - foreach + - Q_FOREACH + - BOOST_FOREACH +IfMacros: + - KJ_IF_MAYBE +IncludeBlocks: Regroup +IncludeCategories: + - Regex: ^ + Priority: 2 + CaseSensitive: false + SortPriority: 0 + - Regex: ^<.*\.h> + Priority: 1 + CaseSensitive: false + SortPriority: 0 + - Regex: ^<.* + Priority: 2 + CaseSensitive: false + SortPriority: 0 + - Regex: .* + Priority: 0 + CaseSensitive: false + SortPriority: 0 +IncludeIsMainRegex: ([-_](test|unittest))?$ +IncludeIsMainSourceRegex: "" +IndentCaseBlocks: true +IndentCaseLabels: true +IndentExternBlock: Indent +IndentGotoLabels: false +IndentPPDirectives: BeforeHash +IndentRequires: true +IndentWrappedFunctionNames: true +InsertTrailingCommas: None +JavaScriptQuotes: Double +JavaScriptWrapImports: true +KeepEmptyLinesAtTheStartOfBlocks: false +LambdaBodyIndentation: OuterScope +MacroBlockBegin: "" +MacroBlockEnd: "" +MaxEmptyLinesToKeep: 1 +NamespaceIndentation: All +ObjCBinPackProtocolList: Never +ObjCBlockIndentWidth: 4 +ObjCBreakBeforeNestedBlockParam: false +ObjCSpaceAfterProperty: true +ObjCSpaceBeforeProtocolList: true +PPIndentWidth: 4 +PackConstructorInitializers: Never +PenaltyBreakAssignment: 2 +PenaltyBreakBeforeFirstCallParameter: 1 +PenaltyBreakComment: 300 +PenaltyBreakFirstLessLess: 120 +PenaltyBreakOpenParenthesis: 0 +PenaltyBreakString: 1000 +PenaltyBreakTemplateDeclaration: 10 +PenaltyExcessCharacter: 1000000 +PenaltyIndentedWhitespace: 0 +PenaltyReturnTypeOnItsOwnLine: 200 +PointerAlignment: Left +QualifierAlignment: Left +RawStringFormats: + - Language: Cpp + BasedOnStyle: google + Delimiters: + - cc + - CC + - cpp + - Cpp + - CPP + - c++ + - C++ + CanonicalDelimiter: "" + - Language: TextProto + EnclosingFunctions: + - EqualsProto + - EquivToProto + - PARSE_PARTIAL_TEXT_PROTO + - PARSE_TEST_PROTO + - PARSE_TEXT_PROTO + - ParseTextOrDie + - ParseTextProtoOrDie + - ParseTestProto + - ParsePartialTestProto + BasedOnStyle: google + Delimiters: + - pb + - PB + - proto + - PROTO + CanonicalDelimiter: pb +ReferenceAlignment: Left +ReflowComments: false +RemoveBracesLLVM: false +SeparateDefinitionBlocks: Always +ShortNamespaceLines: 0 +SortIncludes: CaseSensitive +SortJavaStaticImport: Before +SortUsingDeclarations: true +SpaceAfterCStyleCast: true +SpaceAfterLogicalNot: false +SpaceAfterTemplateKeyword: false +SpaceAroundPointerQualifiers: Default +SpaceBeforeAssignmentOperators: true +SpaceBeforeCaseColon: true +SpaceBeforeCpp11BracedList: true +SpaceBeforeCtorInitializerColon: true +SpaceBeforeInheritanceColon: true +SpaceBeforeParens: Custom +SpaceBeforeParensOptions: + AfterControlStatements: true + AfterForeachMacros: false + AfterFunctionDeclarationName: false + AfterFunctionDefinitionName: false + AfterIfMacros: false + AfterOverloadedOperator: true + BeforeNonEmptyParentheses: false +SpaceBeforeRangeBasedForLoopColon: true +SpaceBeforeSquareBrackets: false +SpaceInEmptyBlock: false +SpaceInEmptyParentheses: false +SpacesBeforeTrailingComments: 1 +SpacesInAngles: Never +SpacesInCStyleCastParentheses: false +SpacesInConditionalStatement: false +SpacesInContainerLiterals: false +SpacesInLineCommentPrefix: + Minimum: 1 + Maximum: 1 +SpacesInParentheses: false +SpacesInSquareBrackets: false +Standard: Auto +StatementAttributeLikeMacros: + - Q_EMIT +StatementMacros: + - Q_UNUSED + - QT_REQUIRE_VERSION +WhitespaceSensitiveMacros: + - STRINGIZE + - PP_STRINGIZE + - BOOST_PP_STRINGIZE + - NS_SWIFT_NAME + - CF_SWIFT_NAME From 3b533fb03dd468d77f7063d1cfc109997a31bfe8 Mon Sep 17 00:00:00 2001 From: Chris Cromer Date: Mon, 10 Oct 2022 21:54:12 -0300 Subject: [PATCH 6/6] used clang-format to format the code --- src/CameraLimit.cpp | 8 ++++---- src/CameraLimit.h | 6 +++--- src/Event.cpp | 1 - src/Event.h | 5 +++-- src/Main.cpp | 18 ++++++++---------- src/Main.h | 12 ++++++------ src/coin/CoinCollected.cpp | 5 ++--- src/coin/CoinCollected.h | 4 ++-- src/coin/CoinCounter.cpp | 10 +++++----- src/coin/CoinCounter.h | 7 +++---- src/coin/CoinNotCollected.cpp | 2 +- src/coin/CoinNotCollected.h | 4 ++-- src/goal/GoalNotReached.h | 4 ++-- src/goal/GoalReached.cpp | 3 +-- src/goal/GoalReached.h | 4 ++-- src/godot.cpp | 28 ++++++++++++++-------------- src/gui/game_over/GameOverScreen.cpp | 15 +++++++-------- src/gui/game_over/GameOverScreen.h | 5 ++--- src/gui/game_won/GameWonScreen.cpp | 11 +++++------ src/gui/game_won/GameWonScreen.h | 4 ++-- src/player/Player.cpp | 27 +++++++++++++++------------ src/player/Player.h | 18 +++++++++--------- src/player/states/PlayerFall.cpp | 7 +++---- src/player/states/PlayerFall.h | 6 +++--- src/player/states/PlayerIdle.cpp | 3 +-- src/player/states/PlayerIdle.h | 6 +++--- src/player/states/PlayerJump.cpp | 15 +++++++-------- src/player/states/PlayerJump.h | 6 +++--- src/player/states/PlayerMove.cpp | 7 +++---- src/player/states/PlayerMove.h | 8 ++++---- src/state_machine/State.h | 4 ++-- src/state_machine/StateMachine.cpp | 22 +++++++++++----------- src/state_machine/StateMachine.h | 14 +++++++------- 33 files changed, 145 insertions(+), 154 deletions(-) diff --git a/src/CameraLimit.cpp b/src/CameraLimit.cpp index e981127..e48acc6 100644 --- a/src/CameraLimit.cpp +++ b/src/CameraLimit.cpp @@ -24,14 +24,14 @@ void alai::CameraLimit::_init() void alai::CameraLimit::_ready() { - auto node = find_node("Middleground"); + auto node = find_node("Middleground"); auto middle_ground = cast_to(node); if (middle_ground != NULL) { auto used_rect = middle_ground->get_used_rect(); - auto bounds = godot::Vector2(used_rect.position.x + used_rect.size.x, used_rect.position.y + used_rect.size.y); - node = get_tree()->get_root()->find_node("Camera2D", true, false); - auto camera = cast_to(node); + auto bounds = godot::Vector2(used_rect.position.x + used_rect.size.x, used_rect.position.y + used_rect.size.y); + node = get_tree()->get_root()->find_node("Camera2D", true, false); + auto camera = cast_to(node); if (camera != NULL) { camera->set_limit(2, bounds.x * middle_ground->get_cell_size().x); diff --git a/src/CameraLimit.h b/src/CameraLimit.h index d9f86b5..ef053d7 100644 --- a/src/CameraLimit.h +++ b/src/CameraLimit.h @@ -11,9 +11,9 @@ namespace alai * * @details The camera will be limited based on the used width and height of the Middleground tilemap. */ - class CameraLimit: public godot::Node2D + class CameraLimit : public godot::Node2D { - GODOT_CLASS(CameraLimit, godot::Node2D) + GODOT_CLASS(CameraLimit, godot::Node2D) public: /** @@ -49,5 +49,5 @@ namespace alai */ void _ready(); }; -} +} // namespace alai #endif diff --git a/src/Event.cpp b/src/Event.cpp index 9605468..cd762b0 100644 --- a/src/Event.cpp +++ b/src/Event.cpp @@ -12,7 +12,6 @@ void alai::Event::_register_methods() godot::register_signal("player_died"); godot::register_signal("player_won"); godot::register_signal("player_touched", "damage", GODOT_VARIANT_TYPE_INT); - } alai::Event::Event() diff --git a/src/Event.h b/src/Event.h index 87607c6..3d50274 100644 --- a/src/Event.h +++ b/src/Event.h @@ -14,7 +14,8 @@ namespace alai */ class Event : public godot::Node { - GODOT_CLASS(Event, godot::Node) + GODOT_CLASS(Event, godot::Node) + public: /** * @brief This method registers classes with Godot. @@ -42,6 +43,6 @@ namespace alai */ void _init(); }; -} +} // namespace alai #endif diff --git a/src/Main.cpp b/src/Main.cpp index 353882b..f6f1341 100644 --- a/src/Main.cpp +++ b/src/Main.cpp @@ -1,6 +1,5 @@ -#include "Main.h" - #include "Event.h" +#include "Main.h" #include @@ -27,10 +26,10 @@ alai::Main::~Main() void alai::Main::_init() { - _os = godot::OS::get_singleton(); - _input = godot::Input::get_singleton(); + _os = godot::OS::get_singleton(); + _input = godot::Input::get_singleton(); _project_settings = godot::ProjectSettings::get_singleton(); - _resource_loader = godot::ResourceLoader::get_singleton(); + _resource_loader = godot::ResourceLoader::get_singleton(); set_game_version(godot::String(default_game_version.c_str())); set_full_screen(default_full_screen); @@ -66,8 +65,7 @@ void alai::Main::_ready() { _os->set_window_size(window_size); _os->set_window_position( - _os->get_screen_position(get_launch_screen()) + _os->get_screen_size() * 0.5 - _os->get_window_size() * 0.5 - ); + _os->get_screen_position(get_launch_screen()) + _os->get_screen_size() * 0.5 - _os->get_window_size() * 0.5); } success = _project_settings->load_resource_pack("crt.pck"); @@ -106,9 +104,9 @@ void alai::Main::load_level() { if (level != nullptr) { - auto path = level->get_path(); + auto path = level->get_path(); auto loaded_level = level->instance(); - auto level_node = get_node("Level"); + auto level_node = get_node("Level"); level_node->add_child(loaded_level); } } @@ -153,7 +151,7 @@ bool alai::Main::get_full_screen() void alai::Main::set_window_size(godot::Vector2 window_size) { - this-> window_size = window_size; + this->window_size = window_size; } godot::Vector2 alai::Main::get_window_size() diff --git a/src/Main.h b/src/Main.h index a3cb313..fac4d95 100644 --- a/src/Main.h +++ b/src/Main.h @@ -1,7 +1,6 @@ #ifndef ALAI_MAIN_H #define ALAI_MAIN_H -#include #include #include #include @@ -10,6 +9,7 @@ #include #include #include +#include /** * @brief This is the alai namespace for all the code included in the game. @@ -25,7 +25,7 @@ namespace alai */ class Main : public godot::Node { - GODOT_CLASS(Main, godot::Node) + GODOT_CLASS(Main, godot::Node) private: /** @@ -52,12 +52,12 @@ namespace alai * @brief The default value for the game version. * */ - inline static const std::string default_game_version = "0.1.0"; + inline static const std::string default_game_version = "0.1.0"; /** * @brief The default value for if the game should start in full screen. * */ - inline static const bool default_full_screen = false; + inline static const bool default_full_screen = false; /** * @brief The default resolution for the game window. * @@ -68,7 +68,7 @@ namespace alai * * @details -1 opens it on the currently active screen. And 0 and above are the screens to use. */ - inline static const int8_t default_launch_screen = -1; + inline static const int8_t default_launch_screen = -1; /** * @brief The first level to load * @@ -227,6 +227,6 @@ namespace alai */ void load_level(); }; -} +} // namespace alai #endif diff --git a/src/coin/CoinCollected.cpp b/src/coin/CoinCollected.cpp index 0e9921f..92d8acc 100644 --- a/src/coin/CoinCollected.cpp +++ b/src/coin/CoinCollected.cpp @@ -1,9 +1,8 @@ +#include "Event.h" #include "coin/CoinCollected.h" -#include "Event.h" - -#include #include +#include void alai::CoinCollected::_register_methods() { diff --git a/src/coin/CoinCollected.h b/src/coin/CoinCollected.h index 119acae..d28a87f 100644 --- a/src/coin/CoinCollected.h +++ b/src/coin/CoinCollected.h @@ -14,7 +14,7 @@ namespace alai */ class CoinCollected : public alai::State { - GODOT_CLASS(CoinCollected, alai::State) + GODOT_CLASS(CoinCollected, alai::State) private: /** @@ -68,6 +68,6 @@ namespace alai */ void _on_animation_finished(godot::String anim_name); }; -} +} // namespace alai #endif diff --git a/src/coin/CoinCounter.cpp b/src/coin/CoinCounter.cpp index e29280b..b2e057c 100644 --- a/src/coin/CoinCounter.cpp +++ b/src/coin/CoinCounter.cpp @@ -1,6 +1,5 @@ -#include "coin/CoinCounter.h" - #include "Event.h" +#include "coin/CoinCounter.h" #include @@ -36,14 +35,15 @@ void alai::CoinCounter::_on_coin_collected(int amount) if (coins >= 100) { auto extra = coins - 100; - coins = extra; - } + coins = extra; + } godot::String coin_string = godot::String(); if (coins <= 9) { coin_string = "0" + godot::String::num(coins); } - else{ + else + { coin_string = godot::String::num(coins); } set_text(coin_string); diff --git a/src/coin/CoinCounter.h b/src/coin/CoinCounter.h index e04f5fa..efc3e25 100644 --- a/src/coin/CoinCounter.h +++ b/src/coin/CoinCounter.h @@ -12,7 +12,7 @@ namespace alai */ class CoinCounter : public godot::Label { - GODOT_CLASS(CoinCounter, godot::Label) + GODOT_CLASS(CoinCounter, godot::Label) private: uint8_t coins; @@ -52,9 +52,8 @@ namespace alai void _on_CoinHUD_ready(); void _on_coin_collected(int amount); void _ready(); - }; - -} + +} // namespace alai #endif diff --git a/src/coin/CoinNotCollected.cpp b/src/coin/CoinNotCollected.cpp index b1c84ee..13f422a 100644 --- a/src/coin/CoinNotCollected.cpp +++ b/src/coin/CoinNotCollected.cpp @@ -41,6 +41,6 @@ void alai::CoinNotCollected::_on_body_entered(Node *node) auto coin = Object::cast_to(parent_node); coin->set_collision_mask_bit(0, false); } - + get_state_machine()->change("CoinCollected"); } diff --git a/src/coin/CoinNotCollected.h b/src/coin/CoinNotCollected.h index 1b3c5ff..bebd27d 100644 --- a/src/coin/CoinNotCollected.h +++ b/src/coin/CoinNotCollected.h @@ -14,7 +14,7 @@ namespace alai */ class CoinNotCollected : public alai::State { - GODOT_CLASS(CoinNotCollected, alai::State) + GODOT_CLASS(CoinNotCollected, alai::State) private: /** @@ -69,6 +69,6 @@ namespace alai */ void _on_body_entered(Node *node); }; -} +} // namespace alai #endif diff --git a/src/goal/GoalNotReached.h b/src/goal/GoalNotReached.h index e858261..0b167bc 100644 --- a/src/goal/GoalNotReached.h +++ b/src/goal/GoalNotReached.h @@ -14,7 +14,7 @@ namespace alai */ class GoalNotReached : public alai::State { - GODOT_CLASS(GoalNotReached, alai::State) + GODOT_CLASS(GoalNotReached, alai::State) private: /** @@ -69,6 +69,6 @@ namespace alai */ void _on_Goal_body_entered(Node *node); }; -} +} // namespace alai #endif diff --git a/src/goal/GoalReached.cpp b/src/goal/GoalReached.cpp index 6afb5f0..420ced9 100644 --- a/src/goal/GoalReached.cpp +++ b/src/goal/GoalReached.cpp @@ -1,6 +1,5 @@ -#include "goal/GoalReached.h" - #include "Event.h" +#include "goal/GoalReached.h" #include diff --git a/src/goal/GoalReached.h b/src/goal/GoalReached.h index c86677d..4dde05c 100644 --- a/src/goal/GoalReached.h +++ b/src/goal/GoalReached.h @@ -14,7 +14,7 @@ namespace alai */ class GoalReached : public alai::State { - GODOT_CLASS(GoalReached, alai::State) + GODOT_CLASS(GoalReached, alai::State) private: /** @@ -67,6 +67,6 @@ namespace alai * */ }; -} +} // namespace alai #endif diff --git a/src/godot.cpp b/src/godot.cpp index 5793fee..d0835f3 100644 --- a/src/godot.cpp +++ b/src/godot.cpp @@ -1,22 +1,22 @@ -#include - -#include "Event.h" -#include "state_machine/StateMachine.h" -#include "state_machine/State.h" -#include "Main.h" #include "CameraLimit.h" -#include "player/Player.h" -#include "player/states/PlayerIdle.h" -#include "player/states/PlayerMove.h" -#include "player/states/PlayerJump.h" -#include "player/states/PlayerFall.h" -#include "coin/CoinNotCollected.h" +#include "Event.h" +#include "Main.h" #include "coin/CoinCollected.h" #include "coin/CoinCounter.h" -#include "goal/GoalReached.h" +#include "coin/CoinNotCollected.h" #include "goal/GoalNotReached.h" +#include "goal/GoalReached.h" #include "gui/game_over/GameOverScreen.h" #include "gui/game_won/GameWonScreen.h" +#include "player/Player.h" +#include "player/states/PlayerFall.h" +#include "player/states/PlayerIdle.h" +#include "player/states/PlayerJump.h" +#include "player/states/PlayerMove.h" +#include "state_machine/State.h" +#include "state_machine/StateMachine.h" + +#include /** * @brief This function connects the gdnative init function. @@ -47,7 +47,7 @@ extern "C" void GDN_EXPORT godot_nativescript_init(void *handle) { godot::Godot::nativescript_init(handle); - godot::register_class(); + godot::register_class(); godot::register_class(); godot::register_class(); godot::register_class(); diff --git a/src/gui/game_over/GameOverScreen.cpp b/src/gui/game_over/GameOverScreen.cpp index 9dcdf47..667bb2c 100644 --- a/src/gui/game_over/GameOverScreen.cpp +++ b/src/gui/game_over/GameOverScreen.cpp @@ -1,6 +1,5 @@ -#include "gui/game_over/GameOverScreen.h" - #include "Event.h" +#include "gui/game_over/GameOverScreen.h" #include #include @@ -16,7 +15,7 @@ void alai::GameOverScreen::_register_methods() godot::register_method("restart_game", &GameOverScreen::restart_game); godot::register_method("connect_signal", &GameOverScreen::connect_signal); godot::register_method("_on_player_died", &GameOverScreen::_on_player_died); - godot::register_method("_on_visibility_changed", &GameOverScreen::_on_visibility_changed); + godot::register_method("_on_visibility_changed", &GameOverScreen::_on_visibility_changed); } alai::GameOverScreen::GameOverScreen() @@ -42,8 +41,8 @@ void alai::GameOverScreen::_on_restart_button_pressed() if (_resource_loader->exists("res://levels/PrototypeR.tscn")) { godot::Ref level_scene = _resource_loader->load("res://levels/PrototypeR.tscn"); - auto level = level_scene->instance(); - auto level_node = get_tree()->get_root()->get_node("Main")->find_node("Level"); + auto level = level_scene->instance(); + auto level_node = get_tree()->get_root()->get_node("Main")->find_node("Level"); if (level_node != nullptr) { @@ -66,7 +65,7 @@ void alai::GameOverScreen::_on_player_died() auto level_node = get_tree()->get_root()->get_node("Main")->find_node("Level"); if (level_node != nullptr) { - auto child = level_node->get_child(0); + auto child = level_node->get_child(0); if (child != nullptr) { // Delete the currently active level from the tree. @@ -99,8 +98,8 @@ void alai::GameOverScreen::connect_signal() void alai::GameOverScreen::_on_visibility_changed() { auto gameoversound = get_node("GameOverMusic"); - if (is_visible()) - { + if (is_visible()) + { gameoversound->play(); } else diff --git a/src/gui/game_over/GameOverScreen.h b/src/gui/game_over/GameOverScreen.h index 0dc7226..2f36c73 100644 --- a/src/gui/game_over/GameOverScreen.h +++ b/src/gui/game_over/GameOverScreen.h @@ -5,7 +5,6 @@ #include #include - namespace alai { /** @@ -14,7 +13,7 @@ namespace alai */ class GameOverScreen : public godot::CanvasLayer { - GODOT_CLASS(GameOverScreen, godot::CanvasLayer) + GODOT_CLASS(GameOverScreen, godot::CanvasLayer) private: godot::ResourceLoader *_resource_loader; @@ -57,6 +56,6 @@ namespace alai void connect_signal(); void _on_visibility_changed(); }; -} +} // namespace alai #endif diff --git a/src/gui/game_won/GameWonScreen.cpp b/src/gui/game_won/GameWonScreen.cpp index 81ddc6d..9dfd3e5 100644 --- a/src/gui/game_won/GameWonScreen.cpp +++ b/src/gui/game_won/GameWonScreen.cpp @@ -1,13 +1,12 @@ -#include "gui/game_won/GameWonScreen.h" - #include "Event.h" +#include "gui/game_won/GameWonScreen.h" #include #include #include void alai::GameWonScreen::_register_methods() -{ +{ godot::register_method("_ready", &GameWonScreen::_ready); godot::register_method("connect_signal", &GameWonScreen::connect_signal); godot::register_method("_on_player_won", &GameWonScreen::_on_player_won); @@ -45,7 +44,7 @@ void alai::GameWonScreen::_on_player_won() auto level_node = get_tree()->get_root()->get_node("Main")->find_node("Level"); if (level_node != nullptr) { - auto child = level_node->get_child(0); + auto child = level_node->get_child(0); if (child != nullptr) { child->queue_free(); @@ -70,8 +69,8 @@ void alai::GameWonScreen::connect_signal() void alai::GameWonScreen::_on_visibility_changed() { auto victorysound = get_node("VictorySound"); - if (is_visible()) - { + if (is_visible()) + { victorysound->play(); } else diff --git a/src/gui/game_won/GameWonScreen.h b/src/gui/game_won/GameWonScreen.h index 683e554..b06bd18 100644 --- a/src/gui/game_won/GameWonScreen.h +++ b/src/gui/game_won/GameWonScreen.h @@ -12,7 +12,7 @@ namespace alai */ class GameWonScreen : public godot::CanvasLayer { - GODOT_CLASS(GameWonScreen, godot::CanvasLayer) + GODOT_CLASS(GameWonScreen, godot::CanvasLayer) public: /** @@ -47,6 +47,6 @@ namespace alai void connect_signal(); void _on_visibility_changed(); }; -} +} // namespace alai #endif diff --git a/src/player/Player.cpp b/src/player/Player.cpp index 43dce2e..740d98a 100644 --- a/src/player/Player.cpp +++ b/src/player/Player.cpp @@ -1,6 +1,5 @@ -#include "player/Player.h" - #include "Event.h" +#include "player/Player.h" #include #include @@ -83,7 +82,8 @@ void alai::player::Player::_ready() } } -void alai::player::Player::_on_level_loaded() { +void alai::player::Player::_on_level_loaded() +{ auto state = get_node("StateMachine")->get_child(0); if (state != nullptr) { @@ -106,27 +106,27 @@ void alai::player::Player::_physics_process(float delta) snap_vector = godot::Vector2::DOWN * 20.0; } - auto is_on_platform = false; + auto is_on_platform = false; auto platform_detector = get_node("PlatformDetector"); if (platform_detector != nullptr) { - is_on_platform = platform_detector->is_colliding(); + is_on_platform = platform_detector->is_colliding(); } else { WARN_PRINT("PlatformDetector not found!"); } - velocity = move_and_slide_with_snap(velocity, snap_vector, godot::Vector2::UP, !is_on_platform, 4, 0.9, false); + velocity = move_and_slide_with_snap(velocity, snap_vector, godot::Vector2::UP, !is_on_platform, 4, 0.9, false); //velocity = move_and_slide(velocity, Vector2::UP, !is_on_platform); velocity.x = godot::Math::lerp((float) velocity.x, (float) 0, (float) 0.2); auto count = get_slide_count(); for (int64_t i = 0; i < count; i++) { - auto collision = get_slide_collision(i); + auto collision = get_slide_collision(i); auto collision_object = collision->get_collider(); - auto collider = Object::cast_to(collision_object); + auto collider = Object::cast_to(collision_object); if (collider->is_in_group("squashable") && godot::Vector2::UP.dot(collision->get_normal()) > 0.1) { collider->call_deferred("squash"); @@ -169,14 +169,15 @@ void alai::player::Player::_physics_process(float delta) auto camera = get_node("Camera2D"); if (camera != nullptr) { - auto position = get_global_position(); + auto position = get_global_position(); auto sprite_node = get_node("AnimatedSprite"); if (sprite_node != nullptr) { position.x = godot::Math::clamp((float) position.x, (float) camera->get_limit(0), (float) camera->get_limit(2) - sprite_node->get_sprite_frames()->get_frame("idle", 0)->get_size().x); position.y = godot::Math::clamp((float) position.y, (float) camera->get_limit(1), (float) camera->get_limit(3) + sprite_node->get_sprite_frames()->get_frame("idle", 0)->get_size().y); } - else { + else + { WARN_PRINT("Could not clamp player based on sprite frame size!"); position.x = godot::Math::clamp((float) position.x, (float) camera->get_limit(0), (float) camera->get_limit(2)); position.y = godot::Math::clamp((float) position.y, (float) camera->get_limit(1), (float) camera->get_limit(3)); @@ -196,11 +197,13 @@ void alai::player::Player::_physics_process(float delta) { // The first time the notifier is checked always returns false in the first frame // So skip the check from the first frame - if (notifier_initialized) { + if (notifier_initialized) + { auto event = get_node("/root/Event"); event->emit_signal("player_died"); } - else { + else + { notifier_initialized = true; } } diff --git a/src/player/Player.h b/src/player/Player.h index 9510e09..48d5252 100644 --- a/src/player/Player.h +++ b/src/player/Player.h @@ -24,32 +24,32 @@ namespace alai * @brief The default speed of the player. * */ - const float speed = 60.0; + const float speed = 60.0; /** * @brief The default jump force applied when jumping. * */ - const float jump_force = 300.0; + const float jump_force = 300.0; /** * @brief The default bounce force applied when bouncing on something. * */ - const float bounce_force = 200.0; + const float bounce_force = 200.0; /** * @brief The default gravity applied to the player. * */ - const float gravity = 9.81; + const float gravity = 9.81; /** * @brief The default run speed multiplier. * */ - const float run_speed = 2.0; + const float run_speed = 2.0; /** * @brief The default double jump activation state. * */ - const bool double_jump = true; + const bool double_jump = true; /** * @brief This class is used to control the player. @@ -58,7 +58,7 @@ namespace alai */ class Player : public godot::KinematicBody2D { - GODOT_CLASS(Player, godot::KinematicBody2D) + GODOT_CLASS(Player, godot::KinematicBody2D) private: /** @@ -291,7 +291,7 @@ namespace alai */ void _on_level_loaded(); }; - } -} + } // namespace player +} // namespace alai #endif diff --git a/src/player/states/PlayerFall.cpp b/src/player/states/PlayerFall.cpp index adc9671..d4530d9 100644 --- a/src/player/states/PlayerFall.cpp +++ b/src/player/states/PlayerFall.cpp @@ -1,6 +1,5 @@ -#include "player/states/PlayerFall.h" - #include "player/Player.h" +#include "player/states/PlayerFall.h" void alai::player::PlayerFall::_register_methods() { @@ -46,8 +45,8 @@ void alai::player::PlayerFall::_physics_process(float delta) } auto current_speed = parent->get_speed(); - auto velocity = parent->get_velocity(); - velocity.x = 0; + auto velocity = parent->get_velocity(); + velocity.x = 0; if (_input->is_action_pressed("run")) { current_speed *= parent->get_run_speed(); diff --git a/src/player/states/PlayerFall.h b/src/player/states/PlayerFall.h index 5fbd54a..d67fcd2 100644 --- a/src/player/states/PlayerFall.h +++ b/src/player/states/PlayerFall.h @@ -17,7 +17,7 @@ namespace alai */ class PlayerFall : public State { - GODOT_CLASS(PlayerFall, State) + GODOT_CLASS(PlayerFall, State) private: /** @@ -78,7 +78,7 @@ namespace alai */ void _physics_process(float delta); }; - } -} + } // namespace player +} // namespace alai #endif diff --git a/src/player/states/PlayerIdle.cpp b/src/player/states/PlayerIdle.cpp index 1043f52..1e74b36 100644 --- a/src/player/states/PlayerIdle.cpp +++ b/src/player/states/PlayerIdle.cpp @@ -1,6 +1,5 @@ -#include "player/states/PlayerIdle.h" - #include "player/Player.h" +#include "player/states/PlayerIdle.h" void alai::player::PlayerIdle::_register_methods() { diff --git a/src/player/states/PlayerIdle.h b/src/player/states/PlayerIdle.h index 8a458b4..c0a7358 100644 --- a/src/player/states/PlayerIdle.h +++ b/src/player/states/PlayerIdle.h @@ -17,7 +17,7 @@ namespace alai */ class PlayerIdle : public State { - GODOT_CLASS(PlayerIdle, State) + GODOT_CLASS(PlayerIdle, State) private: /** @@ -77,7 +77,7 @@ namespace alai */ void _physics_process(float delta); }; - } -} + } // namespace player +} // namespace alai #endif diff --git a/src/player/states/PlayerJump.cpp b/src/player/states/PlayerJump.cpp index b5417ac..83f4aa4 100644 --- a/src/player/states/PlayerJump.cpp +++ b/src/player/states/PlayerJump.cpp @@ -1,6 +1,5 @@ -#include "player/states/PlayerJump.h" - #include "player/Player.h" +#include "player/states/PlayerJump.h" #include @@ -42,16 +41,16 @@ void alai::player::PlayerJump::_state_enter(const godot::String state) double_jumped = false; } - auto parent = Object::cast_to(get_parent()); + auto parent = Object::cast_to(get_parent()); auto velocity = parent->get_velocity(); - velocity.y = -parent->get_jump_force(); + velocity.y = -parent->get_jump_force(); parent->set_velocity(velocity); } void alai::player::PlayerJump::_state_exit() { - animated_sprite->set_animation("move"); - animated_sprite->set_frame(1); + animated_sprite->set_animation("move"); + animated_sprite->set_frame(1); } void alai::player::PlayerJump::_physics_process(float delta) @@ -64,8 +63,8 @@ void alai::player::PlayerJump::_physics_process(float delta) } auto current_speed = parent->get_speed(); - auto velocity = parent->get_velocity(); - velocity.x = 0; + auto velocity = parent->get_velocity(); + velocity.x = 0; if (_input->is_action_pressed("run")) { current_speed *= parent->get_run_speed(); diff --git a/src/player/states/PlayerJump.h b/src/player/states/PlayerJump.h index b3c67ed..bfc88a9 100644 --- a/src/player/states/PlayerJump.h +++ b/src/player/states/PlayerJump.h @@ -17,7 +17,7 @@ namespace alai */ class PlayerJump : public State { - GODOT_CLASS(PlayerJump, State) + GODOT_CLASS(PlayerJump, State) private: /** @@ -85,7 +85,7 @@ namespace alai */ void _physics_process(float delta); }; - } -} + } // namespace player +} // namespace alai #endif diff --git a/src/player/states/PlayerMove.cpp b/src/player/states/PlayerMove.cpp index 23014db..34de896 100644 --- a/src/player/states/PlayerMove.cpp +++ b/src/player/states/PlayerMove.cpp @@ -1,6 +1,5 @@ -#include "player/states/PlayerMove.h" - #include "player/Player.h" +#include "player/states/PlayerMove.h" void alai::player::PlayerMove::_register_methods() { @@ -40,8 +39,8 @@ void alai::player::PlayerMove::_physics_process(float delta) auto direction_pressed = false; auto current_speed = parent->get_speed(); - auto velocity = parent->get_velocity(); - velocity.x = 0; + auto velocity = parent->get_velocity(); + velocity.x = 0; if (_input->is_action_pressed("run")) { current_speed *= parent->get_run_speed(); diff --git a/src/player/states/PlayerMove.h b/src/player/states/PlayerMove.h index a436a95..42d9025 100644 --- a/src/player/states/PlayerMove.h +++ b/src/player/states/PlayerMove.h @@ -3,9 +3,9 @@ #include "state_machine/State.h" +#include #include #include -#include namespace alai { @@ -17,7 +17,7 @@ namespace alai */ class PlayerMove : public State { - GODOT_CLASS(PlayerMove, State) + GODOT_CLASS(PlayerMove, State) private: /** @@ -77,7 +77,7 @@ namespace alai */ void _physics_process(float delta); }; - } -} + } // namespace player +} // namespace alai #endif diff --git a/src/state_machine/State.h b/src/state_machine/State.h index f8f04b4..53e516f 100644 --- a/src/state_machine/State.h +++ b/src/state_machine/State.h @@ -13,7 +13,7 @@ namespace alai */ class State : public StateMachine { - GODOT_CLASS(State, Node) + GODOT_CLASS(State, Node) private: /** @@ -98,6 +98,6 @@ namespace alai */ virtual StateMachine *get_state_machine() final; }; -} +} // namespace alai #endif diff --git a/src/state_machine/StateMachine.cpp b/src/state_machine/StateMachine.cpp index 803972f..9415caa 100644 --- a/src/state_machine/StateMachine.cpp +++ b/src/state_machine/StateMachine.cpp @@ -1,6 +1,5 @@ -#include "state_machine/StateMachine.h" - #include "state_machine/State.h" +#include "state_machine/StateMachine.h" void alai::StateMachine::_register_methods() { @@ -54,7 +53,7 @@ void alai::StateMachine::setup() if (children.size() > 0) { WARN_PRINT("The state machine doesn't have a default state set, using first child!"); - auto child = Object::cast_to(children[0].operator Object*()); + auto child = Object::cast_to(children[0].operator Object * ()); set_current_state(child->get_name()); } else @@ -66,7 +65,7 @@ void alai::StateMachine::setup() for (uint8_t i = 0; i < children.size(); i++) { - auto child = Object::cast_to(children[i].operator Object*()); + auto child = Object::cast_to(children[i].operator Object * ()); child->call("set_state_machine", this); @@ -83,7 +82,8 @@ void alai::StateMachine::setup() { this->call("_state_enter", get_current_state()); } - else { + else + { WARN_PRINT("The state " + get_current_state() + " doesn't have a _state_enter method!"); } } @@ -93,7 +93,7 @@ void alai::StateMachine::add_states() auto children = get_children(); for (uint8_t i = 0; i < children.size(); i++) { - auto child = Object::cast_to(children[i].operator Object*()); + auto child = Object::cast_to(children[i].operator Object * ()); add_state(child->get_name(), child); } } @@ -120,7 +120,7 @@ bool alai::StateMachine::has(const godot::String state) return states.has(state); } -void alai::StateMachine::restart(const godot::String state, const godot::Array& args) +void alai::StateMachine::restart(const godot::String state, const godot::Array &args) { this->call("_state_exit", state, args); this->call("_state_enter", state, args); @@ -162,7 +162,7 @@ void alai::StateMachine::change(const godot::String state, const godot::Array &a if (get_current_state() != "") { - auto child = Object::cast_to(states[get_current_state()].operator Object*()); + auto child = Object::cast_to(states[get_current_state()].operator Object * ()); if (child != nullptr) { this->remove_child(child); @@ -175,7 +175,7 @@ void alai::StateMachine::change(const godot::String state, const godot::Array &a } set_current_state(state); - auto child = Object::cast_to(states[get_current_state()].operator Object*()); + auto child = Object::cast_to(states[get_current_state()].operator Object * ()); this->add_child(child); state_node = Object::cast_to(this->states[get_current_state()]); @@ -204,7 +204,7 @@ void alai::StateMachine::change(const godot::String state, const godot::Array &a godot::Variant alai::StateMachine::call(const godot::String method, const godot::Array &args) { - auto node = Object::cast_to(states[get_current_state()].operator Object*()); + auto node = Object::cast_to(states[get_current_state()].operator Object * ()); if (node) { if (node->has_method(method)) @@ -269,7 +269,7 @@ void alai::StateMachine::_on_StateMachine_tree_exiting() auto keys = states.keys(); for (uint8_t i = 0; i < keys.size(); i++) { - auto child = Object::cast_to(states[keys[i]].operator Object*()); + auto child = Object::cast_to(states[keys[i]].operator Object * ()); if (child) { auto children = get_children(); diff --git a/src/state_machine/StateMachine.h b/src/state_machine/StateMachine.h index 36e3e4f..84be9a5 100644 --- a/src/state_machine/StateMachine.h +++ b/src/state_machine/StateMachine.h @@ -12,7 +12,7 @@ namespace alai */ class StateMachine : public godot::Node { - GODOT_CLASS(StateMachine, godot::Node) + GODOT_CLASS(StateMachine, godot::Node) private: /** @@ -126,7 +126,7 @@ namespace alai * @param[in] state The state that is being restarted. * @param[in] args The arguments to pass to the state on exit and enter. */ - void restart(const godot::String state, const godot::Array& args = godot::Array()); + void restart(const godot::String state, const godot::Array &args = godot::Array()); /** * @brief Change to a different state. @@ -214,7 +214,7 @@ namespace alai * @param[in] state The state being restarted. * @param[in] args The arguments to pass when restarting. */ - template void restart(const godot::String state, Args ...args) + template void restart(const godot::String state, Args... args) { return restart(state, godot::Array::make(args...)); } @@ -226,7 +226,7 @@ namespace alai * @param[in] state The state to change to. * @param[in] args The arguments to pass to the new state. */ - template void change(const godot::String state, Args ...args) + template void change(const godot::String state, Args... args) { return change(state, godot::Array::make(args...)); } @@ -239,7 +239,7 @@ namespace alai * @param[in] args The arguments to pass to it. * @return Variant The Variant object returned by the method called. */ - template godot::Variant call(const godot::String method, Args ...args) + template godot::Variant call(const godot::String method, Args... args) { return call(method, godot::Array::make(args...)); } @@ -252,11 +252,11 @@ namespace alai * @param[in] args The arguments to pass. * @return Variant The Variant object returned by the method called. */ - template godot::Variant _call(const godot::String method, Args ...args) + template godot::Variant _call(const godot::String method, Args... args) { return _call(method, godot::Array::make(args...)); } }; -} +} // namespace alai #endif