From 6fb1eb6a6fe0f3f4c2f4e9d7fc476566168eba5d Mon Sep 17 00:00:00 2001 From: Matheus Date: Sun, 17 Aug 2025 20:03:46 -0300 Subject: Refactor --- scripts/actors/Actor.cs | 10 ++++++++++ scripts/actors/ActorDefinition.cs | 14 ++++++++++++++ scripts/actors/ActorDefinition.cs.uid | 1 + scripts/actors/actions/MovementAction.cs | 4 +--- 4 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 scripts/actors/ActorDefinition.cs create mode 100644 scripts/actors/ActorDefinition.cs.uid (limited to 'scripts/actors') diff --git a/scripts/actors/Actor.cs b/scripts/actors/Actor.cs index 8e33b02..f35939a 100644 --- a/scripts/actors/Actor.cs +++ b/scripts/actors/Actor.cs @@ -2,6 +2,8 @@ using Godot; [GlobalClass] public abstract partial class Actor : Sprite2D { + [Export] + private ActorDefinition definition; private Vector2I gridPosition = Vector2I.Zero; public Vector2I GridPosition { set { @@ -11,6 +13,14 @@ public abstract partial class Actor : Sprite2D { get => gridPosition; } + public bool BlocksMovement { + get => definition.blocksMovement; + } + + public string ActorName { + get => definition.name; + } + public override void _Ready() { base._Ready(); diff --git a/scripts/actors/ActorDefinition.cs b/scripts/actors/ActorDefinition.cs new file mode 100644 index 0000000..58a749c --- /dev/null +++ b/scripts/actors/ActorDefinition.cs @@ -0,0 +1,14 @@ +using Godot; +using System; + +[GlobalClass] +public partial class ActorDefinition : Resource +{ + [ExportCategory("Visuals")] + [Export] + public string name = "unnamed"; + + [ExportCategory("Mechanics")] + [Export] + public bool blocksMovement = true; +} diff --git a/scripts/actors/ActorDefinition.cs.uid b/scripts/actors/ActorDefinition.cs.uid new file mode 100644 index 0000000..ddcfe02 --- /dev/null +++ b/scripts/actors/ActorDefinition.cs.uid @@ -0,0 +1 @@ +uid://crxw1e37xlrrt diff --git a/scripts/actors/actions/MovementAction.cs b/scripts/actors/actions/MovementAction.cs index f29e2e8..8d864bd 100644 --- a/scripts/actors/actions/MovementAction.cs +++ b/scripts/actors/actions/MovementAction.cs @@ -13,9 +13,7 @@ public partial class MovementAction : Action { Vector2I finalDestination = actor.GridPosition + Offset; - TileData tile = game.Dungeon.GetCellTileData(finalDestination); - - if (tile == null || !(bool) tile.GetCustomData("isWalkable")) return; + if (!game.Map.IsTileWalkable(finalDestination)) return; actor.Walk(Offset); } -- cgit v1.2.3