Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 26f6a619cb | |||
| ce48f3b9d7 | |||
| 54796252ce |
@@ -41,8 +41,8 @@ jobs:
|
|||||||
|
|
||||||
# Test:
|
# Test:
|
||||||
# runs-on: godot
|
# runs-on: godot
|
||||||
## env:
|
# env:
|
||||||
## RUNNER_TOOL_CACHE: /toolcache # Runner Tool Cache
|
# RUNNER_TOOL_CACHE: /toolcache # Runner Tool Cache
|
||||||
# steps:
|
# steps:
|
||||||
# - name: Checkout with LFS
|
# - name: Checkout with LFS
|
||||||
# uses: https://git.game-dev.space/minimata/checkout-with-lfs.git@main
|
# uses: https://git.game-dev.space/minimata/checkout-with-lfs.git@main
|
||||||
@@ -54,6 +54,14 @@ jobs:
|
|||||||
# godot-version: ${GODOT_VERSION}
|
# godot-version: ${GODOT_VERSION}
|
||||||
# dotnet-version: ${DOTNET_VERSION}
|
# dotnet-version: ${DOTNET_VERSION}
|
||||||
#
|
#
|
||||||
|
# - name: 🔬 Verify Setup
|
||||||
|
# run: |
|
||||||
|
# dotnet --version
|
||||||
|
# ${{ steps.setup-godot.outputs.godot_bin }} --version
|
||||||
|
#
|
||||||
|
# - name: 🧑🔬 Generate .NET Bindings
|
||||||
|
# run: ${{ steps.setup-godot.outputs.godot_bin }} --headless --build-solutions --quit || exit 0
|
||||||
|
#
|
||||||
# - name: Run C# Tests
|
# - name: Run C# Tests
|
||||||
# env:
|
# env:
|
||||||
# GODOT_BIN: ${{ steps.setup-godot.outputs.godot_bin }}
|
# GODOT_BIN: ${{ steps.setup-godot.outputs.godot_bin }}
|
||||||
@@ -61,19 +69,74 @@ jobs:
|
|||||||
# run: |
|
# run: |
|
||||||
# dotnet test --no-build --settings .runsettings --results-directory ./reports --logger "console;verbosity=normal" --logger "trx;LogFileName=results.xml" -- GdUnit4.Parameters="--verbose --headless --import"
|
# dotnet test --no-build --settings .runsettings --results-directory ./reports --logger "console;verbosity=normal" --logger "trx;LogFileName=results.xml" -- GdUnit4.Parameters="--verbose --headless --import"
|
||||||
#
|
#
|
||||||
## - name: Run tests
|
# # - name: Run tests
|
||||||
## uses: godot-gdunit-labs/gdUnit4-action@v1
|
# # uses: godot-gdunit-labs/gdUnit4-action@v1
|
||||||
## with:
|
# # with:
|
||||||
## godot-version: ${GODOT_VERSION}
|
# # godot-version: ${GODOT_VERSION}
|
||||||
## godot-net: true
|
# # godot-net: true
|
||||||
## godot-force-mono: true
|
# # godot-force-mono: true
|
||||||
## dotnet-version: ${DOTNET_VERSION}
|
# # dotnet-version: ${DOTNET_VERSION}
|
||||||
## paths: |
|
# # paths: |
|
||||||
## res://tests/
|
# # res://tests/
|
||||||
## publish-report: false
|
# # publish-report: false
|
||||||
## upload-report: false
|
# # upload-report: false
|
||||||
## console-verbosity: 'normal'
|
# # console-verbosity: 'normal'
|
||||||
## arguments: "--verbose --headless --import"
|
# # arguments: "--verbose --headless --import"
|
||||||
|
#
|
||||||
|
# - name: Upload test report
|
||||||
|
# uses: actions/upload-artifact@v3-node20
|
||||||
|
# with:
|
||||||
|
# name: Test Report
|
||||||
|
# path: ${{ github.workspace }}/reports/test-result.html
|
||||||
|
#
|
||||||
|
# OtherTest:
|
||||||
|
# runs-on: godot
|
||||||
|
# env:
|
||||||
|
# RUNNER_TOOL_CACHE: /toolcache # Runner Tool Cache
|
||||||
|
# steps:
|
||||||
|
# - name: Checkout with LFS
|
||||||
|
# uses: https://git.game-dev.space/minimata/checkout-with-lfs.git@main
|
||||||
|
#
|
||||||
|
# - uses: actions/setup-dotnet@v5
|
||||||
|
# name: 💽 Setup .NET SDK
|
||||||
|
# with:
|
||||||
|
# dotnet-version: ${DOTNET_VERSION}
|
||||||
|
#
|
||||||
|
# - name: 📦 Restore Dependencies
|
||||||
|
# run: |
|
||||||
|
# dotnet --version
|
||||||
|
# dotnet restore
|
||||||
|
# dotnet build
|
||||||
|
# dotnet list package
|
||||||
|
#
|
||||||
|
# - uses: chickensoft-games/setup-godot@v2
|
||||||
|
# name: 🤖 Setup Godot
|
||||||
|
# with:
|
||||||
|
# # Version must include major, minor, and patch, and be >= 4.0.0
|
||||||
|
# # Pre-release label is optional.
|
||||||
|
# version: ${GODOT_VERSION}
|
||||||
|
# # Use .NET-enabled version of Godot (the default is also true).
|
||||||
|
# use-dotnet: true
|
||||||
|
# # Include the Godot Export Templates (the default is false).
|
||||||
|
# include-templates: true
|
||||||
|
#
|
||||||
|
# - name: 🔬 Verify Setup
|
||||||
|
# run: |
|
||||||
|
# dotnet --version
|
||||||
|
# godot --version
|
||||||
|
#
|
||||||
|
# - name: 🧑🔬 Generate .NET Bindings
|
||||||
|
# run: godot --headless --build-solutions --quit || exit 0
|
||||||
|
#
|
||||||
|
# - name: 🦺 Build Projects
|
||||||
|
# run: dotnet build --configuration Release
|
||||||
|
#
|
||||||
|
# - name: Run C# Tests
|
||||||
|
# env:
|
||||||
|
# GODOT_BIN: godot
|
||||||
|
# shell: bash
|
||||||
|
# run: |
|
||||||
|
# dotnet test --no-build --settings .runsettings --results-directory ./reports --logger "console;verbosity=normal" --logger "trx;LogFileName=results.xml" -- GdUnit4.Parameters="--verbose --headless --import"
|
||||||
#
|
#
|
||||||
# - name: Upload test report
|
# - name: Upload test report
|
||||||
# uses: actions/upload-artifact@v3-node20
|
# uses: actions/upload-artifact@v3-node20
|
||||||
|
|||||||
@@ -26,11 +26,8 @@ public partial class InventoryManager : Node
|
|||||||
|
|
||||||
public Dictionary<WeaponSystem.WeaponEvent, HashSet<Resource>> WeaponEventsInventory { get; } = [];
|
public Dictionary<WeaponSystem.WeaponEvent, HashSet<Resource>> WeaponEventsInventory { get; } = [];
|
||||||
|
|
||||||
public static InventoryManager Instance { get; private set; }
|
|
||||||
|
|
||||||
public override void _Ready()
|
public override void _Ready()
|
||||||
{
|
{
|
||||||
Instance = this;
|
|
||||||
WeaponEventsInventory[WeaponSystem.WeaponEvent.FlyingTick] = new HashSet<Resource>();
|
WeaponEventsInventory[WeaponSystem.WeaponEvent.FlyingTick] = new HashSet<Resource>();
|
||||||
WeaponEventsInventory[WeaponSystem.WeaponEvent.StartedFlying] = new HashSet<Resource>();
|
WeaponEventsInventory[WeaponSystem.WeaponEvent.StartedFlying] = new HashSet<Resource>();
|
||||||
WeaponEventsInventory[WeaponSystem.WeaponEvent.StoppedFlying] = new HashSet<Resource>();
|
WeaponEventsInventory[WeaponSystem.WeaponEvent.StoppedFlying] = new HashSet<Resource>();
|
||||||
|
|||||||
@@ -1,26 +1,37 @@
|
|||||||
using Godot;
|
using Godot;
|
||||||
using System;
|
using System;
|
||||||
using Movementtests.interfaces;
|
using Chickensoft.AutoInject;
|
||||||
|
using Chickensoft.Introspection;
|
||||||
|
using Movementtests.interfaces;using Movementtests.managers;
|
||||||
using Movementtests.systems;
|
using Movementtests.systems;
|
||||||
|
|
||||||
public partial class MainSceneTemplate : Node3D
|
[Meta(
|
||||||
|
typeof(IAutoOn),
|
||||||
|
typeof(IAutoConnect),
|
||||||
|
typeof(IProvider)
|
||||||
|
)]
|
||||||
|
public partial class MainSceneTemplate : Node3D, IProvide<InventoryManager>
|
||||||
{
|
{
|
||||||
private Marker3D? _playerRespawnMarker;
|
public override void _Notification(int what) => this.Notify(what);
|
||||||
|
|
||||||
|
[Node("PlayerFellRespawn")] private Marker3D? PlayerRespawnMarker { get; set; }
|
||||||
private AnimationPlayer? _animationPlayer;
|
private AnimationPlayer? _animationPlayer;
|
||||||
private Node3D? _respawnabble;
|
private Node3D? _respawnabble;
|
||||||
|
|
||||||
private Area3D? _playerFellPlane;
|
private Area3D? _playerFellPlane;
|
||||||
private Area3D? _deathPlane;
|
private Area3D? _deathPlane;
|
||||||
|
|
||||||
public override void _Ready()
|
public required InventoryManager InventoryManager { get; set; }
|
||||||
|
InventoryManager IProvide<InventoryManager>.Value() => InventoryManager;
|
||||||
|
|
||||||
|
public void OnReady()
|
||||||
{
|
{
|
||||||
_playerRespawnMarker = GetNode<Marker3D>("PlayerFellRespawn");
|
|
||||||
_animationPlayer = GetNode<AnimationPlayer>("AnimationPlayer");
|
_animationPlayer = GetNode<AnimationPlayer>("AnimationPlayer");
|
||||||
|
|
||||||
_playerFellPlane = GetNode<Area3D>("PlayerFellTP");
|
_playerFellPlane = GetNode<Area3D>("PlayerFellTP");
|
||||||
_deathPlane = GetNode<Area3D>("DeathPlane");
|
_deathPlane = GetNode<Area3D>("DeathPlane");
|
||||||
|
|
||||||
if (_playerRespawnMarker == null) throw new Exception("Player respawn marker is null");
|
if (PlayerRespawnMarker == null) throw new Exception("Player respawn marker is null");
|
||||||
if (_animationPlayer == null) throw new Exception("Animation player is null");
|
if (_animationPlayer == null) throw new Exception("Animation player is null");
|
||||||
if (_playerFellPlane == null) throw new Exception("Player reset plane is null");
|
if (_playerFellPlane == null) throw new Exception("Player reset plane is null");
|
||||||
if (_deathPlane == null) throw new Exception("Enemy death plane is null");
|
if (_deathPlane == null) throw new Exception("Enemy death plane is null");
|
||||||
@@ -28,20 +39,30 @@ public partial class MainSceneTemplate : Node3D
|
|||||||
_playerFellPlane.BodyEntered += StartResetPlayerAnimation;
|
_playerFellPlane.BodyEntered += StartResetPlayerAnimation;
|
||||||
_deathPlane.BodyEntered += KillEnemy;
|
_deathPlane.BodyEntered += KillEnemy;
|
||||||
|
|
||||||
|
InventoryManager = new InventoryManager();
|
||||||
|
AddChild(InventoryManager);
|
||||||
|
this.Provide();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnProvided()
|
||||||
|
{
|
||||||
|
// You can optionally implement this method. It gets called once you call
|
||||||
|
// this.Provide() to inform AutoInject that the provided values are now
|
||||||
|
// available.
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ResetPlayerPosition()
|
public void ResetPlayerPosition()
|
||||||
{
|
{
|
||||||
if (_respawnabble == null || _playerRespawnMarker == null) throw new Exception("Player or respawn marker is null");
|
if (_respawnabble == null || PlayerRespawnMarker == null) throw new Exception("Player or respawn marker is null");
|
||||||
_respawnabble.GlobalPosition = _playerRespawnMarker.GlobalPosition;
|
_respawnabble.GlobalPosition = PlayerRespawnMarker.GlobalPosition;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void StartResetPlayerAnimation(Node3D body)
|
public void StartResetPlayerAnimation(Node3D body)
|
||||||
{
|
{
|
||||||
if (body is WeaponSystem weapon)
|
if (body is WeaponSystem weapon)
|
||||||
{
|
{
|
||||||
if (_playerRespawnMarker == null) throw new Exception("Respawn marker is null");
|
if (PlayerRespawnMarker == null) throw new Exception("Respawn marker is null");
|
||||||
weapon.GlobalPosition = _playerRespawnMarker.GlobalPosition;
|
weapon.GlobalPosition = PlayerRespawnMarker.GlobalPosition;
|
||||||
weapon.SetLinearVelocity(Vector3.Down);
|
weapon.SetLinearVelocity(Vector3.Down);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,54 +1,67 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using Chickensoft.AutoInject;
|
||||||
|
using Chickensoft.Introspection;
|
||||||
using Gamesmiths.Forge.Effects;
|
using Gamesmiths.Forge.Effects;
|
||||||
using Gamesmiths.Forge.Godot.Resources.Abilities;
|
using Gamesmiths.Forge.Godot.Resources.Abilities;
|
||||||
using Godot;
|
using Godot;
|
||||||
using Movementtests.managers;
|
using Movementtests.managers;
|
||||||
using Movementtests.systems;
|
using Movementtests.systems;
|
||||||
|
|
||||||
[Tool, GlobalClass, Icon("res://assets/ui/IconGodotNode/control/icon_crate.png")]
|
|
||||||
|
[Tool, GlobalClass, Icon("res://assets/ui/IconGodotNode/control/icon_crate.png"), Meta(typeof(IAutoNode))]
|
||||||
public partial class InventoryUi : Control
|
public partial class InventoryUi : Control
|
||||||
{
|
{
|
||||||
private AbilitySelection _startedFlyingSelection;
|
public override void _Notification(int what) => this.Notify(what);
|
||||||
private AbilitySelection _whileFlyingSelection;
|
|
||||||
private AbilitySelection _stoppedFlyingSelection;
|
|
||||||
|
|
||||||
public override void _Ready()
|
#region Dependencies
|
||||||
|
[Dependency]
|
||||||
|
public InventoryManager InventoryManager => this.DependOn<InventoryManager>();
|
||||||
|
#endregion Dependencies
|
||||||
|
|
||||||
|
#region Nodes
|
||||||
|
[Node]
|
||||||
|
public required AbilitySelection StartedFlying { get; set; }
|
||||||
|
[Node]
|
||||||
|
public required AbilitySelection WhileFlying { get; set; }
|
||||||
|
[Node]
|
||||||
|
public required AbilitySelection StoppedFlying { get; set; }
|
||||||
|
#endregion Nodes
|
||||||
|
|
||||||
|
public void OnReady()
|
||||||
{
|
{
|
||||||
_startedFlyingSelection = GetNode<AbilitySelection>("%StartedFlying");
|
StartedFlying.AbilityAdded += AddAbilityForEvent;
|
||||||
_whileFlyingSelection = GetNode<AbilitySelection>("%WhileFlying");
|
WhileFlying.AbilityAdded += AddAbilityForEvent;
|
||||||
_stoppedFlyingSelection = GetNode<AbilitySelection>("%StoppedFlying");
|
StoppedFlying.AbilityAdded += AddAbilityForEvent;
|
||||||
|
|
||||||
_startedFlyingSelection.Initialize(InventoryManager.Instance.WeaponEventsInventory[WeaponSystem.WeaponEvent.StartedFlying]);
|
StartedFlying.AbilityRemoved += RemoveAbilityForEvent;
|
||||||
_whileFlyingSelection.Initialize(InventoryManager.Instance.WeaponEventsInventory[WeaponSystem.WeaponEvent.FlyingTick]);
|
WhileFlying.AbilityRemoved += RemoveAbilityForEvent;
|
||||||
_stoppedFlyingSelection.Initialize(InventoryManager.Instance.WeaponEventsInventory[WeaponSystem.WeaponEvent.StoppedFlying]);
|
StoppedFlying.AbilityRemoved += RemoveAbilityForEvent;
|
||||||
|
|
||||||
_startedFlyingSelection.AbilityAdded += AddAbilityForEvent;
|
|
||||||
_whileFlyingSelection.AbilityAdded += AddAbilityForEvent;
|
|
||||||
_stoppedFlyingSelection.AbilityAdded += AddAbilityForEvent;
|
|
||||||
|
|
||||||
_startedFlyingSelection.AbilityRemoved += RemoveAbilityForEvent;
|
|
||||||
_whileFlyingSelection.AbilityRemoved += RemoveAbilityForEvent;
|
|
||||||
_stoppedFlyingSelection.AbilityRemoved += RemoveAbilityForEvent;
|
|
||||||
|
|
||||||
InventoryManager.Instance.WeaponEventAbilityAdded += OnWeaponEventInventoryAdded;
|
|
||||||
InventoryManager.Instance.WeaponEventAbilityRemoved += OnWeaponEventInventoryRemoved;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void _ExitTree()
|
public void OnResolved()
|
||||||
{
|
{
|
||||||
InventoryManager.Instance.WeaponEventAbilityAdded -= OnWeaponEventInventoryAdded;
|
StartedFlying.Initialize(InventoryManager.WeaponEventsInventory[WeaponSystem.WeaponEvent.StartedFlying]);
|
||||||
InventoryManager.Instance.WeaponEventAbilityRemoved -= OnWeaponEventInventoryRemoved;
|
WhileFlying.Initialize(InventoryManager.WeaponEventsInventory[WeaponSystem.WeaponEvent.FlyingTick]);
|
||||||
base._ExitTree();
|
StoppedFlying.Initialize(InventoryManager.WeaponEventsInventory[WeaponSystem.WeaponEvent.StoppedFlying]);
|
||||||
|
|
||||||
|
InventoryManager.WeaponEventAbilityAdded += OnWeaponEventInventoryAdded;
|
||||||
|
InventoryManager.WeaponEventAbilityRemoved += OnWeaponEventInventoryRemoved;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnExitTree()
|
||||||
|
{
|
||||||
|
InventoryManager.WeaponEventAbilityAdded -= OnWeaponEventInventoryAdded;
|
||||||
|
InventoryManager.WeaponEventAbilityRemoved -= OnWeaponEventInventoryRemoved;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AddAbilityForEvent(WeaponSystem.WeaponEvent forEvent, ForgeAbilityBehavior abilityBehavior)
|
public void AddAbilityForEvent(WeaponSystem.WeaponEvent forEvent, ForgeAbilityBehavior abilityBehavior)
|
||||||
{
|
{
|
||||||
InventoryManager.Instance.AddAbilityForWeaponEvent(forEvent, abilityBehavior);
|
InventoryManager.AddAbilityForWeaponEvent(forEvent, abilityBehavior);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RemoveAbilityForEvent(WeaponSystem.WeaponEvent forEvent, ForgeAbilityBehavior abilityBehavior)
|
public void RemoveAbilityForEvent(WeaponSystem.WeaponEvent forEvent, ForgeAbilityBehavior abilityBehavior)
|
||||||
{
|
{
|
||||||
InventoryManager.Instance.RemoveAbilityForWeaponEvent(forEvent, abilityBehavior);
|
InventoryManager.RemoveAbilityForWeaponEvent(forEvent, abilityBehavior);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnWeaponEventInventoryAdded(WeaponEventAbilityData data)
|
public void OnWeaponEventInventoryAdded(WeaponEventAbilityData data)
|
||||||
@@ -71,9 +84,9 @@ public partial class InventoryUi : Control
|
|||||||
{
|
{
|
||||||
var abilitiesSelectionsMap = new Dictionary<WeaponSystem.WeaponEvent, AbilitySelection>
|
var abilitiesSelectionsMap = new Dictionary<WeaponSystem.WeaponEvent, AbilitySelection>
|
||||||
{
|
{
|
||||||
{ WeaponSystem.WeaponEvent.StartedFlying, _startedFlyingSelection },
|
{ WeaponSystem.WeaponEvent.StartedFlying, StartedFlying },
|
||||||
{ WeaponSystem.WeaponEvent.StoppedFlying, _stoppedFlyingSelection },
|
{ WeaponSystem.WeaponEvent.StoppedFlying, StoppedFlying },
|
||||||
{ WeaponSystem.WeaponEvent.FlyingTick, _whileFlyingSelection },
|
{ WeaponSystem.WeaponEvent.FlyingTick, WhileFlying },
|
||||||
};
|
};
|
||||||
|
|
||||||
return abilitiesSelectionsMap[forEvent];
|
return abilitiesSelectionsMap[forEvent];
|
||||||
|
|||||||
@@ -30,7 +30,6 @@ Shaker="*uid://c7flmumgr5w3u"
|
|||||||
CsgToolkitAutoload="*uid://w8ad8q4lneis"
|
CsgToolkitAutoload="*uid://w8ad8q4lneis"
|
||||||
"Forge Bootstrap"="*uid://ba8fquhtwu5mu"
|
"Forge Bootstrap"="*uid://ba8fquhtwu5mu"
|
||||||
GlobalHelpers="*uid://dqcm83o8e66a2"
|
GlobalHelpers="*uid://dqcm83o8e66a2"
|
||||||
InventoryManager="*uid://cgwhrwfqsiing"
|
|
||||||
|
|
||||||
[display]
|
[display]
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using Chickensoft.AutoInject;
|
||||||
|
using Chickensoft.Introspection;
|
||||||
using Gamesmiths.Forge.Abilities;
|
using Gamesmiths.Forge.Abilities;
|
||||||
using Gamesmiths.Forge.Attributes;
|
using Gamesmiths.Forge.Attributes;
|
||||||
using Gamesmiths.Forge.Core;
|
using Gamesmiths.Forge.Core;
|
||||||
@@ -35,7 +37,8 @@ using Node = Godot.Node;
|
|||||||
|
|
||||||
public record struct EmpoweredActionPayload;
|
public record struct EmpoweredActionPayload;
|
||||||
|
|
||||||
[GlobalClass, Icon("res://assets/ui/IconGodotNode/node_3D/icon_character.png")]
|
|
||||||
|
[GlobalClass, Icon("res://assets/ui/IconGodotNode/node_3D/icon_character.png"), Meta(typeof(IAutoNode))]
|
||||||
public partial class PlayerController : CharacterBody3D,
|
public partial class PlayerController : CharacterBody3D,
|
||||||
IDamageable,
|
IDamageable,
|
||||||
IDamageDealer,
|
IDamageDealer,
|
||||||
@@ -43,6 +46,11 @@ public partial class PlayerController : CharacterBody3D,
|
|||||||
IKnockbackable,
|
IKnockbackable,
|
||||||
IForgeEntity
|
IForgeEntity
|
||||||
{
|
{
|
||||||
|
public override void _Notification(int what) => this.Notify(what);
|
||||||
|
|
||||||
|
[Dependency]
|
||||||
|
public InventoryManager InventoryManager => this.DependOn<InventoryManager>();
|
||||||
|
|
||||||
// Enums
|
// Enums
|
||||||
public enum AllowedInputs
|
public enum AllowedInputs
|
||||||
{
|
{
|
||||||
@@ -426,7 +434,7 @@ public partial class PlayerController : CharacterBody3D,
|
|||||||
|
|
||||||
private AbilityHandle? _empoweredActionHandle;
|
private AbilityHandle? _empoweredActionHandle;
|
||||||
|
|
||||||
public override void _Ready()
|
public void OnReady()
|
||||||
{
|
{
|
||||||
LoadSettings();
|
LoadSettings();
|
||||||
|
|
||||||
@@ -716,15 +724,21 @@ public partial class PlayerController : CharacterBody3D,
|
|||||||
_parryStandard.StateEntered += OnStandardParryStarted;
|
_parryStandard.StateEntered += OnStandardParryStarted;
|
||||||
_parryDash.StateEntered += OnDashParryStarted;
|
_parryDash.StateEntered += OnDashParryStarted;
|
||||||
|
|
||||||
// Inventory Management
|
|
||||||
InventoryManager.Instance.WeaponEventAbilityAdded += OnWeaponEventAbilityAdded;
|
|
||||||
InventoryManager.Instance.WeaponEventAbilityRemoved += OnWeaponEventAbilityRemoved;
|
|
||||||
|
|
||||||
// Forge events
|
// Forge events
|
||||||
var weaponLeftToken = WeaponSystem.Events.Subscribe(WeaponSystem.WeaponStartedFlyingEventTag, OnWeaponLeft);
|
var weaponLeftToken = WeaponSystem.Events.Subscribe(WeaponSystem.WeaponStartedFlyingEventTag, OnWeaponLeft);
|
||||||
var weaponLandedToken = WeaponSystem.Events.Subscribe(WeaponSystem.WeaponStoppedFlyingEventTag, OnWeaponLanded);
|
var weaponLandedToken = WeaponSystem.Events.Subscribe(WeaponSystem.WeaponStoppedFlyingEventTag, OnWeaponLanded);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void OnResolved()
|
||||||
|
{
|
||||||
|
// All of my dependencies are now available! Do whatever you want with
|
||||||
|
// them here.
|
||||||
|
|
||||||
|
// Inventory Management
|
||||||
|
InventoryManager.WeaponEventAbilityAdded += OnWeaponEventAbilityAdded;
|
||||||
|
InventoryManager.WeaponEventAbilityRemoved += OnWeaponEventAbilityRemoved;
|
||||||
|
}
|
||||||
|
|
||||||
public void OnWeaponLeft(EventData data)
|
public void OnWeaponLeft(EventData data)
|
||||||
{
|
{
|
||||||
var target = data.Target;
|
var target = data.Target;
|
||||||
|
|||||||
Reference in New Issue
Block a user