39 lines
1 KiB
C#
39 lines
1 KiB
C#
using Godot;
|
|
using System;
|
|
|
|
public partial class ShovelButton : TextureButton
|
|
{
|
|
private RayCast2D _shovelCast;
|
|
public override void _Ready()
|
|
{
|
|
_shovelCast = GetNode<RayCast2D>("RayCast2D");
|
|
_shovelCast.CallDeferred("reparent", GetTree().CurrentScene);
|
|
}
|
|
private void OnFocusExited()
|
|
{
|
|
ButtonPressed = false;
|
|
}
|
|
public override void _Process(double delta)
|
|
{
|
|
_shovelCast.GlobalPosition = _shovelCast.GetGlobalMousePosition();
|
|
}
|
|
public override void _Toggled(bool toggledOn)
|
|
{
|
|
_shovelCast.Enabled = toggledOn;
|
|
|
|
Cursor.Instance.shovel = toggledOn;
|
|
Cursor.Instance.UpdateCursor();
|
|
}
|
|
|
|
public override void _Input(InputEvent @event)
|
|
{
|
|
if (@event.IsActionPressed("primary_action"))
|
|
{
|
|
if (_shovelCast.IsColliding() && (_shovelCast.GetCollider() as CollisionObject2D).GetParent() is RuntimePlantData plant)
|
|
{
|
|
plant.Kill();
|
|
}
|
|
ButtonPressed = false;
|
|
}
|
|
}
|
|
}
|