49 lines
1.0 KiB
C#
49 lines
1.0 KiB
C#
|
|
using Godot;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
|
|
namespace Rokojori
|
|
{
|
|
[Tool]
|
|
[GlobalClass,Icon("res://addons/rokojori_action_library/Icons/SensorGroup.svg")]
|
|
public partial class MultiSensorDevice: SensorDevice
|
|
{
|
|
[Export]
|
|
public SensorDevice[] devices = new SensorDevice[ 0 ];
|
|
|
|
public override string GetInfo()
|
|
{
|
|
return GetType().Name + devices.Map( d => d.GetInfo() ).Join( ", " );
|
|
}
|
|
|
|
[Export]
|
|
public Sensor[] sensors = new Sensor[ 0 ];
|
|
|
|
public override bool ContainsSensor( Sensor sensor )
|
|
{
|
|
for ( int i = 0; i < devices.Length; i++ )
|
|
{
|
|
if ( devices[ i ].ContainsSensor( sensor ) )
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return Arrays.Contains( sensors, sensor );
|
|
}
|
|
|
|
public override bool ContainsIcon( InputIcon icon )
|
|
{
|
|
for ( int i = 0; i < devices.Length; i++ )
|
|
{
|
|
if ( devices[ i ].ContainsIcon( icon ) )
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
}
|
|
} |