Directional computers

This commit is contained in:
Marco 2025-03-10 17:33:43 +01:00
commit 7ec45b56b1
13 changed files with 164 additions and 46 deletions

View file

@ -1,11 +1,13 @@
using Godot;
using System;
using System.Threading.Tasks;
using Cirno.Scripts.Components;
using Cirno.Scripts.Enums;
public partial class Chair : StaticBody2D
public partial class Chair : StaticBody2D, IIRotateable
{
[Export]
public ChairDirection Direction { get; private set; } = ChairDirection.Down;
public Direction Direction { get; set; } = Direction.Down;
private AnimatedSprite2D _animatedSprite;
@ -20,7 +22,7 @@ public partial class Chair : StaticBody2D
{
_animatedSprite = GetNode<AnimatedSprite2D>("AnimatedSprite2D");
_animatedSprite.Play(Direction.ToString());
//_animatedSprite.Play(Direction.ToString());
}
public override void _Process(double delta)
@ -44,13 +46,5 @@ public partial class Chair : StaticBody2D
_timer = 0;
}
public enum ChairDirection
{
Up,
Down,
Left,
Right,
}
}

View file

@ -0,0 +1,13 @@
using Cirno.Scripts.Components;
using Cirno.Scripts.Enums;
using Cirno.Scripts.Interactables;
using Godot;
namespace Cirno.Scripts.Actors;
public partial class Computer : Switch, IIRotateable
{
[Export]
public Direction Direction { get; set; } = Direction.Down;
}

View file

@ -0,0 +1 @@
uid://ck54glo7xbuq8

View file

@ -0,0 +1,8 @@
using Cirno.Scripts.Enums;
namespace Cirno.Scripts.Components;
public interface IIRotateable
{
public Direction Direction { get; set; }
}

View file

@ -0,0 +1,16 @@
using Cirno.Scripts.Enums;
using Godot;
namespace Cirno.Scripts.Components;
public partial class SpriteAnimationStartupRotator : AnimatedSprite2D
{
public override void _Ready()
{
var parent = GetParent<IIRotateable>();
var sprite = GetParent().GetNode<AnimatedSprite2D>("AnimatedSprite2D");
sprite.Play(parent.Direction.ToString());
}
}

View file

@ -0,0 +1 @@
uid://rlevd6krqglv

View file

@ -0,0 +1,9 @@
namespace Cirno.Scripts.Enums;
public enum Direction
{
Up,
Down,
Left,
Right,
}