Menu Buttons Fix

This commit is contained in:
Josef 2025-12-25 18:19:41 +01:00
parent f37b4b41c8
commit 4bfb94540f
28 changed files with 348 additions and 391169 deletions

View File

@ -0,0 +1,16 @@
using Godot;
namespace Rokojori
{
[Tool][GlobalClass]
public partial class QuitApp : Action
{
protected override void _OnTrigger()
{
this.LogInfo( "Quitting" );
GetTree().Quit();
}
}
}

View File

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

View File

@ -150,7 +150,7 @@ namespace Rokojori
}
if ( airControlGravityStrength != null && gravity != null && button.isHold &&
jumpedDuration < maxAirControlDuration
jumpedDuration < maxAirControlDuration && body.Velocity.Y > 0
)
{
var gravityStrength = airControlGravityStrength.GetGravityStrength( gravity );

View File

@ -119,14 +119,15 @@ namespace Rokojori
var vignette = new VignetteEffect();
vignette.amount = 0.5f;
var chromaticAberation = new ChromaticAberation();
// var chromaticAberation = new ChromaticAberation();
var temporalSmear = new TemporalSmearEffect();
temporalSmear.amount = 0.1f;
temporalSmear.smearingFrames = 6;
// var temporalSmear = new TemporalSmearEffect();
// temporalSmear.amount = 0.1f;
// temporalSmear.smearingFrames = 6;
var array = new Godot.Collections.Array<CompositorEffect>();
array.AddRange( [vignette, chromaticAberation, temporalSmear ]);
// array.AddRange( [vignette, chromaticAberation, temporalSmear ]);
array.AddRange( [vignette ]);
compositor.CompositorEffects = array;
}
}

View File

@ -8,7 +8,7 @@ namespace Rokojori
{
[Tool]
[GlobalClass]
public partial class AlphaGrabTestEffect:SingleShaderCompositorEffect
public abstract partial class AlphaGrabTestEffect:SingleShaderCompositorEffect
{
public static readonly string shaderPath = Path( "AlphaGrabTest/AlphaGrabTestShader.glsl" );

View File

@ -7,7 +7,7 @@ namespace Rokojori
{
[Tool]
[GlobalClass]
public partial class BlurCompositorEffect:CompositorEffect
public abstract partial class BlurCompositorEffect:CompositorEffect
{
public enum BlurType
{

View File

@ -7,7 +7,7 @@ namespace Rokojori
{
[Tool]
[GlobalClass]
public partial class ChromaticAberation:RDGraphCompositorEffect
public abstract partial class ChromaticAberation:RDGraphCompositorEffect
{
public ChromaticAberation():base()
{

View File

@ -7,7 +7,7 @@ namespace Rokojori
{
[Tool]
[GlobalClass]
public partial class DepthAOEffect:SingleShaderCompositorEffect
public abstract partial class DepthAOEffect:SingleShaderCompositorEffect
{
public static readonly string shaderPath = Path( "DepthAO/DepthAOShader.glsl" );

View File

@ -7,7 +7,7 @@ namespace Rokojori
{
[Tool]
[GlobalClass]
public partial class DepthAntiAliasingEffect:SingleShaderCompositorEffect
public abstract partial class DepthAntiAliasingEffect:SingleShaderCompositorEffect
{
public static readonly string shaderPath = Path( "DepthAntiAliasing/DepthAntiAliasingShader.glsl" );

View File

@ -17,7 +17,7 @@ namespace Rokojori
public float depthAmount = 1;
[Export( PropertyHint.Range, "0.001,3") ]
public float depthPower = 1;
public float depthPower = 0.5f;
[Export( PropertyHint.Range, "0,1") ]
public float grayAmount = 0f;
@ -26,7 +26,7 @@ namespace Rokojori
public float mappedMinValue = 0f;
[Export( PropertyHint.Range, "0,1") ]
public float mappedMaxValue = 0f;
public float mappedMaxValue = 1f;
protected override void OnConfigure()
{

View File

@ -7,7 +7,7 @@ namespace Rokojori
{
[Tool]
[GlobalClass]
public partial class RadialBlurEffect:SingleShaderCompositorEffect
public abstract partial class RadialBlurEffect:SingleShaderCompositorEffect
{
public static readonly string shaderPath = Path( "RadialBlur/RadialBlurShader.glsl" );

View File

@ -18,13 +18,13 @@ namespace Rokojori
public Vector2 center = new Vector2( 0.5f, 0.5f );
[Export]
public float radius = 0.5f;
public float radius = 0.01f;
[Export]
public float intensity = 0.5f;
public float intensity =1f;
[Export]
public float samples = 16f;
public float samples = 8f;
CEG_ScreenColorTexure screenColorTexture;

View File

@ -7,7 +7,7 @@ namespace Rokojori
{
[Tool]
[GlobalClass]
public partial class TemporalSmearEffect:SingleShaderCompositorEffect
public abstract partial class TemporalSmearEffect:SingleShaderCompositorEffect
{
public static readonly string shaderPath = Path( "TemporalSmear/TemporalSmear.glsl" );

View File

@ -7,7 +7,7 @@ namespace Rokojori
{
[Tool]
[GlobalClass]
public partial class TemporalSmearSimpleEffect:SingleShaderCompositorEffect
public abstract partial class TemporalSmearSimpleEffect:SingleShaderCompositorEffect
{
public static readonly string shaderPath = Path( "TemporalSmearSimple/TemporalSmearSimple.glsl" );

View File

@ -7,7 +7,7 @@ namespace Rokojori
{
[Tool]
[GlobalClass]
public partial class TemporalSmearWobblyEffect:SingleShaderCompositorEffect
public abstract partial class TemporalSmearWobblyEffect:SingleShaderCompositorEffect
{
public static readonly string shaderPath = Path( "TemporalSmearWobbly/TemporalSmearWobbly.glsl" );

View File

@ -1,4 +1,4 @@
[gd_resource type="Resource" script_class="InputIconsLibrary" load_steps=73 format=3 uid="uid://dq52vhnqr5m6"]
[gd_resource type="Resource" script_class="InputIconsLibrary" load_steps=79 format=3 uid="uid://dq52vhnqr5m6"]
[ext_resource type="Script" uid="uid://c3dpplc2slwd5" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Definitions/DefaultInputIconDefinition.cs" id="1_64knt"]
[ext_resource type="Script" uid="uid://bx1cm2837cuuc" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/InputIconsLibrary.cs" id="1_urlfx"]
@ -23,6 +23,8 @@
[ext_resource type="Texture2D" uid="uid://6fkkrsbdjdf" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Graphics/GamePad-Axis-Left + Right.svg" id="9_eeamd"]
[ext_resource type="Texture2D" uid="uid://bih02uuga3j2u" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Graphics/GamePad-Axis-Up + Down.svg" id="10_3i85w"]
[ext_resource type="Texture2D" uid="uid://bmtwa1p6j1tu8" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Graphics/Keyboard-EnterKey.svg" id="10_q44jo"]
[ext_resource type="Texture2D" uid="uid://di04pyrvc07nx" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Graphics/XBox-MenuButton.svg" id="11_r5lbt"]
[ext_resource type="Texture2D" uid="uid://chc22uwo4g35w" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Graphics/XBox-ViewButton.svg" id="12_db3f4"]
[ext_resource type="Texture2D" uid="uid://b73u16wm1h5gr" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Graphics/Keyboard.svg" id="12_mf3bj"]
[ext_resource type="Texture2D" uid="uid://dg52t67wh6h54" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Graphics/Keyboard-Indicator.svg" id="13_ijjqw"]
[ext_resource type="Texture2D" uid="uid://dxwnbh3a3fy8w" path="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Graphics/GamePad-Left-Shoulder-Button.svg" id="13_omll7"]
@ -155,9 +157,33 @@ texture = ExtResource("10_3i85w")
label = SubResource("Resource_4ro5i")
fontSizeScale = 0.8
[sub_resource type="Resource" id="Resource_s4tao"]
script = ExtResource("4_y5jfh")
button = 6
metadata/_custom_type_script = "uid://by5p8sjyvwowj"
[sub_resource type="Resource" id="Resource_nsdwj"]
script = ExtResource("2_g15ft")
icons = [SubResource("Resource_s4tao")]
texture = ExtResource("11_r5lbt")
fontSizeScale = 0.0
metadata/_custom_type_script = "uid://cgdr6nehf2ceb"
[sub_resource type="Resource" id="Resource_faaru"]
script = ExtResource("4_y5jfh")
button = 4
metadata/_custom_type_script = "uid://by5p8sjyvwowj"
[sub_resource type="Resource" id="Resource_02f6d"]
script = ExtResource("2_g15ft")
icons = [SubResource("Resource_faaru")]
texture = ExtResource("12_db3f4")
fontSizeScale = 0.0
metadata/_custom_type_script = "uid://cgdr6nehf2ceb"
[sub_resource type="Resource" id="Resource_udrbd"]
script = ExtResource("4_6ycsi")
combined = [SubResource("Resource_xpfqu"), SubResource("Resource_28c0y"), SubResource("Resource_oje1t"), SubResource("Resource_tqg5p"), SubResource("Resource_3oyc0"), SubResource("Resource_c6gt5"), SubResource("Resource_812y6")]
combined = [SubResource("Resource_xpfqu"), SubResource("Resource_28c0y"), SubResource("Resource_oje1t"), SubResource("Resource_tqg5p"), SubResource("Resource_3oyc0"), SubResource("Resource_c6gt5"), SubResource("Resource_812y6"), SubResource("Resource_nsdwj"), SubResource("Resource_02f6d")]
[sub_resource type="Resource" id="Resource_s3w6q"]
script = ExtResource("5_sn8hr")

View File

@ -40,6 +40,11 @@ namespace Rokojori
public override bool ContainsIcon( InputIcon icon )
{
if ( icon is CombinedIcon ci )
{
return ci.icons.Length == 1 && ContainsIcon( ci.icons[ 0 ] );
}
return ReflectionHelper.IsTypeOneOf( icon,
typeof( GamePadAxisIcon ),
typeof( GamePadButtonIcon )

View File

@ -22,6 +22,11 @@ namespace Rokojori
public override bool ContainsIcon( InputIcon icon )
{
if ( icon is CombinedIcon ci )
{
return ci.icons.Length == 1 && ContainsIcon( ci.icons[ 0 ] );
}
return ReflectionHelper.IsTypeOneOf( icon,
typeof( KeyIcon )
);

View File

@ -24,6 +24,11 @@ namespace Rokojori
public override bool ContainsIcon( InputIcon icon )
{
if ( icon is CombinedIcon ci )
{
return ci.icons.Length == 1 && ContainsIcon( ci.icons[ 0 ] );
}
return ReflectionHelper.IsTypeOneOf( icon,
typeof( MouseInputIcon )
);

View File

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="128"
height="128"
viewBox="0 0 128 128"
version="1.1"
id="svg5"
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
sodipodi:docname="XBox-MenuButton.svg"
xml:space="preserve"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview7"
pagecolor="#333333"
bordercolor="#404040"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#333333"
inkscape:document-units="px"
showgrid="false"
inkscape:zoom="1.1817453"
inkscape:cx="-71.50441"
inkscape:cy="77.004749"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" /><defs
id="defs2"><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath7940"><rect
style="fill:#333333;fill-opacity:1;stroke:none;stroke-width:10;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
id="rect7942"
width="1440"
height="810"
x="0"
y="0" /></clipPath></defs><g
inkscape:label="Content"
inkscape:groupmode="layer"
id="layer1"
style="fill:#ffffff;fill-opacity:1"><circle
style="fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:4.50488;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
id="path21654"
cx="64"
cy="64"
r="54.375854" /><rect
style="fill:#ffffff;stroke-width:10;stroke-linecap:round;stroke-linejoin:round;stroke-dashoffset:3.6;paint-order:fill markers stroke"
id="rect15666"
width="71.802963"
height="10.172087"
x="26.327753"
y="39.916092" /><rect
style="fill:#ffffff;stroke-width:10;stroke-linecap:round;stroke-linejoin:round;stroke-dashoffset:3.6;paint-order:fill markers stroke"
id="rect15668"
width="71.802963"
height="10.172087"
x="26.327753"
y="58.91396" /><rect
style="fill:#ffffff;stroke-width:10;stroke-linecap:round;stroke-linejoin:round;stroke-dashoffset:3.6;paint-order:fill markers stroke"
id="rect15670"
width="71.802963"
height="10.172087"
x="26.327753"
y="77.911819" /></g></svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://di04pyrvc07nx"
path="res://.godot/imported/XBox-MenuButton.svg-3a7cb276e878a809c6c19c857a6d1d8c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Graphics/XBox-MenuButton.svg"
dest_files=["res://.godot/imported/XBox-MenuButton.svg-3a7cb276e878a809c6c19c857a6d1d8c.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

View File

@ -0,0 +1,63 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="128"
height="128"
viewBox="0 0 128 128"
version="1.1"
id="svg5"
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
sodipodi:docname="XBox-ViewButton.svg"
xml:space="preserve"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview7"
pagecolor="#333333"
bordercolor="#404040"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#333333"
inkscape:document-units="px"
showgrid="false"
inkscape:zoom="4.7269812"
inkscape:cx="36.281084"
inkscape:cy="73.831476"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" /><defs
id="defs2"><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath7940"><rect
style="fill:#333333;fill-opacity:1;stroke:none;stroke-width:10;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers"
id="rect7942"
width="1440"
height="810"
x="0"
y="0" /></clipPath></defs><g
inkscape:label="Content"
inkscape:groupmode="layer"
id="layer1"
style="fill:#ffffff;fill-opacity:1"><circle
style="fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:4.50488;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
id="path21654"
cx="64"
cy="64"
r="54.375854" /><rect
style="fill:none;stroke:#ffffff;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-dashoffset:3.6;stroke-opacity:1;paint-order:fill markers stroke"
id="rect15682"
width="55.647297"
height="41.286705"
x="43.650066"
y="51.691605"
ry="4.7868643" /><path
id="rect16318"
style="color:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-dashoffset:3.6;-inkscape-stroke:none;paint-order:fill markers stroke"
d="m 31.512502,36.286051 c -3.993671,0 -7.287109,3.293438 -7.287109,7.28711 v 31.71289 c 0,3.993672 3.293438,7.28711 7.287109,7.28711 h 5.658203 v -5 h -5.658203 c -1.310162,0 -2.287109,-0.976946 -2.287109,-2.28711 v -31.71289 c 0,-1.310164 0.976947,-2.28711 2.287109,-2.28711 h 46.074219 c 1.310164,0 2.287109,0.976946 2.287109,2.28711 v 1.421875 h 5 v -1.421875 c 0,-3.993672 -3.293437,-7.28711 -7.287109,-7.28711 z" /></g></svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@ -0,0 +1,43 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://chc22uwo4g35w"
path="res://.godot/imported/XBox-ViewButton.svg-f7f2d34d674fc5789eaeb1a3d57ca9d6.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/rokojori_action_library/Runtime/Sensors/InputIcons/Graphics/XBox-ViewButton.svg"
dest_files=["res://.godot/imported/XBox-ViewButton.svg-f7f2d34d674fc5789eaeb1a3d57ca9d6.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

View File

@ -92,14 +92,16 @@ namespace Rokojori
{
var list = new List<InputIconDefinition>()
{
combinedInputs,
mouseInputIcon, keyboardKeys,
mainButtons, leftShouldersButtons, rightShouldersButtons,
digitalPad, leftJoystick, rightJoystick,
touchClick, touchHold, swipeGesture,
touchClick, touchHold, swipeGesture
combinedInputs
};
list = Lists.Filter( list, l => l != null );
@ -206,6 +208,7 @@ namespace Rokojori
return digitalPad;
}
return mainButtons;
}

View File

@ -29,10 +29,15 @@ namespace Rokojori
[Export]
public bool separateMouseAndKeyboardTracking = false;
[Export]
public SensorDevice initialDevice;
[Export]
public Action onActiveDeviceChange;
public readonly EventSlot<Null> _onActiveDeviceChange = new EventSlot<Null>();
[ExportGroup("Read Only")]
[Export]
public SensorDevice[] deviceList =[];
@ -215,6 +220,13 @@ namespace Rokojori
_startTime = DateTime.Now;
mouseKeyboardDevice.devices = new SensorDevice[]{ mouseDevice, keyboardDevice };
CreateRunners();
if ( initialDevice != null )
{
UpdateDevice( initialDevice );
}
}
public override void _Input( InputEvent ev )

View File

@ -30,6 +30,10 @@ namespace Rokojori
[Export]
public bool autoScanParent = true;
[ExportGroup( "Device Options" )]
[Export]
public SensorDevice initialDevice;
[ExportGroup( "Debugging Options")]
[Export]
@ -62,6 +66,8 @@ namespace Rokojori
sm.onActiveDeviceChange = onActiveDeviceChange;
sm.showRegistratedSensors = showRegistratedSensors;
sm.confineMouse = confineMouse;
sm.initialDevice = initialDevice;
if ( autoScanParent )
{

View File

@ -63,13 +63,13 @@ namespace Rokojori
var icons = iiLib.ResolveIcons( inputIcons );
// this.LogInfo( "Resolved Icons:\n", inputIcons, "\n>>\n", icons );
this.LogInfo( "Resolved Icons:\n", inputIcons, "\n>>\n", icons );
if ( deviceFilter != null )
{
var iconsBefore = Lists.From( icons );
icons = Lists.Filter( icons, i => deviceFilter.BelongsToDevice( i ) );
// this.LogInfo( "Device Filtered Icons:\n", iconsBefore, "\n>>\n", icons );
this.LogInfo( "Device Filtered Icons:\n", iconsBefore, "\n>>\n", icons );
}
icons = iiLib.ResolveIcons( icons.ToArray() );

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 53 MiB

After

Width:  |  Height:  |  Size: 53 MiB