using Godot; using System.Collections.Generic; namespace Rokojori { [Tool] [GlobalClass,Icon("res://addons/rokojori_action_library/Icons/Sensor.svg")] public partial class InputMapActionSensor: Sensor { [Export] public string inputActionName = ""; public enum PollMode { Button, Half_Axis, Release_Only_Button } [Export] public PollMode pollMode = PollMode.Button; public override string ToString() { return RJLog.GetInfo( this, inputActionName, pollMode ); } protected override void UpdateValue() { if ( PollMode.Button == pollMode ) { SetBoolValue( Input.IsActionPressed( inputActionName ) ); } else if ( PollMode.Release_Only_Button == pollMode ) { SetBoolValue( Input.IsActionJustReleased( inputActionName ) ); } else if ( PollMode.Half_Axis == pollMode ) { SetFloatValue( Input.GetActionRawStrength( inputActionName ) ); } } [Export] public InputIcon[] inputIcons = new InputIcon[ 0 ]; public override List GetInputIcons() { return Lists.From( inputIcons ); } } }