105 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			105 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C#
		
	
	
	
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								using Godot;
							 | 
						||
| 
								 | 
							
								using System.Collections.Generic;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace Rokojori
							 | 
						||
| 
								 | 
							
								{  
							 | 
						||
| 
								 | 
							
								  [Tool]
							 | 
						||
| 
								 | 
							
								  [GlobalClass, Icon("res://addons/rokojori_action_library/Icons/Sensor.svg")]
							 | 
						||
| 
								 | 
							
								  public partial class MouseInputIconDefinition: InputIconDefinition
							 | 
						||
| 
								 | 
							
								  {  
							 | 
						||
| 
								 | 
							
								    [Export]
							 | 
						||
| 
								 | 
							
								    public Texture2D leftButtonTexture;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    [Export]
							 | 
						||
| 
								 | 
							
								    public Texture2D middleButtonTexture;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    [Export]
							 | 
						||
| 
								 | 
							
								    public Texture2D rightButtonTexture;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    [Export]
							 | 
						||
| 
								 | 
							
								    public Texture2D wheelUpTexture;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    [Export]
							 | 
						||
| 
								 | 
							
								    public Texture2D wheelDownTexture;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    [Export]
							 | 
						||
| 
								 | 
							
								    public Texture2D wheelLeftTexture;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    [Export]
							 | 
						||
| 
								 | 
							
								    public Texture2D wheelRightTexture;
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public override List<IconElement> GetIconElementsForIcon( InputIcon icon )
							 | 
						||
| 
								 | 
							
								    { 
							 | 
						||
| 
								 | 
							
								      var mouseIcon = icon as MouseInputIcon;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      if ( mouseIcon == null )
							 | 
						||
| 
								 | 
							
								      {
							 | 
						||
| 
								 | 
							
								        return null;
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      var list = new List<IconElement>();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      var button = mouseIcon.button;
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								      Texture2D texture = null;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      if ( MouseButton.Left == button )
							 | 
						||
| 
								 | 
							
								      {
							 | 
						||
| 
								 | 
							
								        texture = leftButtonTexture;
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								      else if ( MouseButton.Middle == button )
							 | 
						||
| 
								 | 
							
								      {
							 | 
						||
| 
								 | 
							
								        texture = middleButtonTexture;
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								      else if ( MouseButton.Right == button )
							 | 
						||
| 
								 | 
							
								      {
							 | 
						||
| 
								 | 
							
								        texture = rightButtonTexture;
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								      else if ( MouseButton.WheelUp == button )
							 | 
						||
| 
								 | 
							
								      {
							 | 
						||
| 
								 | 
							
								        texture = wheelUpTexture;
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								      else if ( MouseButton.WheelDown == button )
							 | 
						||
| 
								 | 
							
								      {
							 | 
						||
| 
								 | 
							
								        texture = wheelDownTexture;
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								      else if ( MouseButton.WheelLeft == button )
							 | 
						||
| 
								 | 
							
								      {
							 | 
						||
| 
								 | 
							
								        texture = wheelLeftTexture;
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								      else if ( MouseButton.WheelRight == button )
							 | 
						||
| 
								 | 
							
								      {
							 | 
						||
| 
								 | 
							
								        texture = wheelRightTexture;
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      if ( texture == null )
							 | 
						||
| 
								 | 
							
								      {
							 | 
						||
| 
								 | 
							
								        list.Add( new MissingIconElement() );
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								      else
							 | 
						||
| 
								 | 
							
								      {
							 | 
						||
| 
								 | 
							
								        list.Add( TextureIconElement.Create( texture ) );
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      return list;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public override bool HasIconFor( InputIcon icon )
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								      var mouseIcon = icon as MouseInputIcon;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      if ( mouseIcon == null )
							 | 
						||
| 
								 | 
							
								      {
							 | 
						||
| 
								 | 
							
								        return false;
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      var list = GetIconElementsForIcon( icon );
							 | 
						||
| 
								 | 
							
								      return list != null && list.Count == 1 && ! ( list[ 0 ] is MissingIconElement );
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 |