gd: added input addon

This commit is contained in:
2025-05-27 19:20:46 +02:00
parent d8a1604af9
commit c8d8c7ec25
683 changed files with 21608 additions and 2 deletions

View File

@ -0,0 +1,30 @@
## Base class for icon renderers. Note that all icon renderers must be tool
## scripts.
@tool
class_name GUIDEIconRenderer
extends Control
## The priority of this icon renderer. Built-in renderers use priority 0. Built-in
## fallback renderer uses priority 100. The smaller the number the higher the priority.
@export var priority:int = 0
## Whether or not this renderer can render an icon for this input.
func supports(input:GUIDEInput) -> bool:
return false
## Set up the scene so that the given input can be rendered. This will
## only be called for input where `supports` has returned true.
func render(input:GUIDEInput) -> void:
pass
## A cache key for the given input. This should be unique for this renderer
## and the given input. The same input should yield the same cache key for
## each renderer.
func cache_key(input:GUIDEInput) -> String:
push_error("Custom renderers must override the cache_key function to ensure proper caching.")
return "i-forgot-the-cache-key"
func _ready():
process_mode = Node.PROCESS_MODE_ALWAYS

View File

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

View File

@ -0,0 +1,358 @@
@tool
## Helper class for formatting GUIDE input for the UI.
class_name GUIDEInputFormatter
const IconMaker = preload("icon_maker/icon_maker.gd")
const KeyRenderer = preload("renderers/keyboard/key_renderer.tscn")
const MouseRenderer = preload("renderers/mouse/mouse_renderer.tscn")
const TouchRenderer = preload("renderers/touch/touch_renderer.tscn")
const JoyRenderer = preload("renderers/joy/joy_renderer.tscn")
const XboxRenderer = preload("renderers/controllers/xbox/xbox_controller_renderer.tscn")
const PlayStationRenderer = preload("renderers/controllers/playstation/playstation_controller_renderer.tscn")
const SwitchRenderer = preload("renderers/controllers/switch/switch_controller_renderer.tscn")
const ActionRenderer = preload("renderers/misc/action_renderer.tscn")
const FallbackRenderer = preload("renderers/misc/fallback_renderer.tscn")
const DefaultTextProvider = preload("text_providers/default_text_provider.gd")
const XboxTextProvider = preload("text_providers/controllers/xbox/xbox_controller_text_provider.gd")
const PlayStationTextProvider = preload("text_providers/controllers/playstation/playstation_controller_text_provider.gd")
const SwitchTextProvider = preload("text_providers/controllers/switch/switch_controller_text_provider.gd")
# These are shared across all instances
static var _icon_maker:IconMaker
static var _icon_renderers:Array[GUIDEIconRenderer] = []
static var _text_providers:Array[GUIDETextProvider] = []
static var _is_ready:bool = false
## Separator to separate mixed input.
static var mixed_input_separator:String = ", "
## Separator to separate chorded input.
static var chorded_input_separator:String = " + "
## Separator to separate combo input.
static var combo_input_separator:String = " > "
# These are per-instance
var _action_resolver:Callable
var _icon_size:int
static func _ensure_readiness():
if _is_ready:
return
# reconnect to an icon maker that might be there
var root = Engine.get_main_loop().root
for child in root.get_children():
if child is IconMaker:
_icon_maker = child
if _icon_maker == null:
_icon_maker = preload("icon_maker/icon_maker.tscn").instantiate()
root.add_child.call_deferred(_icon_maker)
add_icon_renderer(KeyRenderer.instantiate())
add_icon_renderer(MouseRenderer.instantiate())
add_icon_renderer(TouchRenderer.instantiate())
add_icon_renderer(ActionRenderer.instantiate())
add_icon_renderer(JoyRenderer.instantiate())
add_icon_renderer(XboxRenderer.instantiate())
add_icon_renderer(PlayStationRenderer.instantiate())
add_icon_renderer(SwitchRenderer.instantiate())
add_icon_renderer(FallbackRenderer.instantiate())
add_text_provider(DefaultTextProvider.new())
add_text_provider(XboxTextProvider.new())
add_text_provider(PlayStationTextProvider.new())
add_text_provider(SwitchTextProvider.new())
_is_ready = true
## This will clean up the rendering infrastructure used for generating
## icons. Note that in a normal game you will have no need to call this
## as the infrastructure is needed throughout the run of your game.
## It might be useful in tests though, to get rid of spurious warnings
## about orphaned nodes.
static func cleanup():
_is_ready = false
# free all the nodes to avoid memory leaks
for renderer in _icon_renderers:
renderer.queue_free()
_icon_renderers.clear()
_text_providers.clear()
if is_instance_valid(_icon_maker):
_icon_maker.queue_free()
func _init(icon_size:int = 32, resolver:Callable = func(action) -> GUIDEActionMapping: return null ):
_icon_size = icon_size
_action_resolver = resolver
## Adds an icon renderer for rendering icons.
static func add_icon_renderer(renderer:GUIDEIconRenderer) -> void:
_icon_renderers.append(renderer)
_icon_renderers.sort_custom(func(r1, r2): return r1.priority < r2.priority)
## Removes an icon renderer.
static func remove_icon_renderer(renderer:GUIDEIconRenderer) -> void:
_icon_renderers.erase(renderer)
## Adds a text provider for rendering text.
static func add_text_provider(provider:GUIDETextProvider) -> void:
_text_providers.append(provider)
_text_providers.sort_custom(func(r1, r2): return r1.priority < r2.priority)
## Removes a text provider
static func remove_text_provider(provider:GUIDETextProvider) -> void:
_text_providers.erase(provider)
## Returns an input formatter that can format actions using the currently active inputs.
static func for_active_contexts(icon_size:int = 32) -> GUIDEInputFormatter:
var resolver = func(action:GUIDEAction) -> GUIDEActionMapping:
for mapping in GUIDE._active_action_mappings:
if mapping.action == action:
return mapping
return null
return GUIDEInputFormatter.new(icon_size, resolver)
## Returns an input formatter that can format actions using the given context.
static func for_context(context:GUIDEMappingContext, icon_size:int = 32) -> GUIDEInputFormatter:
var resolver:Callable = func(action:GUIDEAction) -> GUIDEActionMapping:
for mapping in context.mappings:
if mapping.action == action:
return mapping
return null
return GUIDEInputFormatter.new(icon_size, resolver)
## Formats the action input as richtext with icons suitable for a RichTextLabel. This function
## is async as icons may need to be rendered in the background which can take a few frames, so
## you will need to await on it.
func action_as_richtext_async(action:GUIDEAction) -> String:
return await _materialized_as_richtext_async(_materialize_action_input(action))
## Formats the action input as plain text which can be used in any UI component. This is a bit
## more light-weight than formatting as icons and returns immediately.
func action_as_text(action:GUIDEAction) -> String:
return _materialized_as_text(_materialize_action_input(action))
## Formats the input as richtext with icons suitable for a RichTextLabel. This function
## is async as icons may need to be rendered in the background which can take a few frames, so
## you will need to await on it.
func input_as_richtext_async(input:GUIDEInput, materialize_actions:bool = true) -> String:
return await _materialized_as_richtext_async(_materialize_input(input, materialize_actions))
## Formats the input as plain text which can be used in any UI component. This is a bit
## more light-weight than formatting as icons and returns immediately.
func input_as_text(input:GUIDEInput, materialize_actions:bool = true) -> String:
return _materialized_as_text(_materialize_input(input, materialize_actions))
## Renders materialized input as text.
func _materialized_as_text(input:MaterializedInput) -> String:
_ensure_readiness()
if input is MaterializedSimpleInput:
var text:String = ""
for provider in _text_providers:
if provider.supports(input.input):
text = provider.get_text(input.input)
# first provider wins
break
if text == "":
pass
## push_warning("No formatter found for input ", input)
return text
var separator = _separator_for_input(input)
if separator == "" or input.parts.is_empty():
return ""
var parts:Array[String] = []
for part in input.parts:
parts.append(_materialized_as_text(part))
return separator.join(parts)
## Renders materialized input as rich text.
func _materialized_as_richtext_async(input:MaterializedInput) -> String:
_ensure_readiness()
if input is MaterializedSimpleInput:
var icon:Texture2D = null
for renderer in _icon_renderers:
if renderer.supports(input.input):
icon = await _icon_maker.make_icon(input.input, renderer, _icon_size)
# first renderer wins
break
if icon == null:
push_warning("No renderer found for input ", input)
return ""
return "[img]%s[/img]" % [icon.resource_path]
var separator = _separator_for_input(input)
if separator == "" or input.parts.is_empty():
return ""
var parts:Array[String] = []
for part in input.parts:
parts.append(await _materialized_as_richtext_async(part))
return separator.join(parts)
func _separator_for_input(input:MaterializedInput) -> String:
if input is MaterializedMixedInput:
return mixed_input_separator
elif input is MaterializedComboInput:
return combo_input_separator
elif input is MaterializedChordedInput:
return chorded_input_separator
push_error("Unknown materialized input type")
return ""
## Materializes action input.
func _materialize_action_input(action:GUIDEAction) -> MaterializedInput:
var result := MaterializedMixedInput.new()
if action == null:
push_warning("Trying to get inputs for a null action.")
return result
# get the mapping for this action
var mapping:GUIDEActionMapping = _action_resolver.call(action)
# if we have no mapping, well that's it, return an empty mixed input
if mapping == null:
return result
# collect input mappings
for input_mapping in mapping.input_mappings:
var chorded_actions:Array[MaterializedInput] = []
var combos:Array[MaterializedInput] = []
for trigger in input_mapping.triggers:
# if we have a combo trigger, materialize its input.
if trigger is GUIDETriggerCombo:
var combo := MaterializedComboInput.new()
for step:GUIDETriggerComboStep in trigger.steps:
combo.parts.append(_materialize_action_input(step.action))
combos.append(combo)
# if we have a chorded action, materialize its input
if trigger is GUIDETriggerChordedAction:
chorded_actions.append(_materialize_action_input(trigger.action))
if not chorded_actions.is_empty():
# if we have chorded action then the whole mapping is chorded.
var chord := MaterializedChordedInput.new()
for chorded_action in chorded_actions:
chord.parts.append(chorded_action)
for combo in combos:
chord.parts.append(combo)
if combos.is_empty():
if input_mapping.input != null:
chord.parts.append(_materialize_input(input_mapping.input))
result.parts.append(chord)
else:
for combo in combos:
result.parts.append(combo)
if combos.is_empty():
if input_mapping.input != null:
result.parts.append(_materialize_input(input_mapping.input))
return result
## Materializes direct input.
func _materialize_input(input:GUIDEInput, materialize_actions:bool = true) -> MaterializedInput:
if input == null:
push_warning("Trying to materialize a null input.")
return MaterializedMixedInput.new()
# if its an action input, get its parts
if input is GUIDEInputAction:
if materialize_actions:
return _materialize_action_input(input.action)
else:
return MaterializedSimpleInput.new(input)
# if its a key input, split out the modifiers
if input is GUIDEInputKey:
var chord := MaterializedChordedInput.new()
if input.control:
var ctrl = GUIDEInputKey.new()
ctrl.key = KEY_CTRL
chord.parts.append(MaterializedSimpleInput.new(ctrl))
if input.alt:
var alt = GUIDEInputKey.new()
alt.key = KEY_ALT
chord.parts.append(MaterializedSimpleInput.new(alt))
if input.shift:
var shift = GUIDEInputKey.new()
shift.key = KEY_SHIFT
chord.parts.append(MaterializedSimpleInput.new(shift))
if input.meta:
var meta = GUIDEInputKey.new()
meta.key = KEY_META
chord.parts.append(MaterializedSimpleInput.new(meta))
# got no modifiers?
if chord.parts.is_empty():
return MaterializedSimpleInput.new(input)
chord.parts.append(MaterializedSimpleInput.new(input))
return chord
# everything else is just a simple input
return MaterializedSimpleInput.new(input)
class MaterializedInput:
pass
class MaterializedSimpleInput:
extends MaterializedInput
var input:GUIDEInput
func _init(input:GUIDEInput):
self.input = input
class MaterializedMixedInput:
extends MaterializedInput
var parts:Array[MaterializedInput] = []
class MaterializedChordedInput:
extends MaterializedInput
var parts:Array[MaterializedInput] = []
class MaterializedComboInput:
extends MaterializedInput
var parts:Array[MaterializedInput] = []
## Returns the name of the associated joystick/pad of the given input.
## If the input is no joy input or the device name cannot be determined
## returns an empty string.
static func _joy_name_for_input(input:GUIDEInput) -> String:
if not input is GUIDEInputJoyBase:
return ""
var joypads:Array[int] = Input.get_connected_joypads()
var joy_index = input.joy_index
if joy_index < 0:
# pick the first one
joy_index = 0
# We don't have such a controller, so bail out.
if joypads.size() <= joy_index:
return ""
var id = joypads[joy_index]
return Input.get_joy_name(id)

View File

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

View File

@ -0,0 +1,22 @@
## Base class for text providers. A text provider provides a textual representation
## of an input which is displayed to the user.
## scripts.
@tool
class_name GUIDETextProvider
## The priority of this text provider. The built-in text provider uses priority 0.
## The smaller the number the higher the priority.
@export var priority:int = 0
## Whether or not this provider can provide a text for this input.
func supports(input:GUIDEInput) -> bool:
return false
## Provides the text for the given input. Will only be called when the
## input is supported by this text provider. Note that for key input
## this is not supposed to look at the modifiers. This function will
## be called separately for each modifier.
func get_text(input:GUIDEInput) -> String:
return "not implemented"

View File

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

View File

@ -0,0 +1,103 @@
@tool
extends Node
const CACHE_DIR:String = "user://_guide_cache"
@onready var _sub_viewport:SubViewport = %SubViewport
@onready var _root:Node2D = %Root
@onready var _scene_holder = %SceneHolder
var _pending_requests:Array[Job] = []
var _current_request:Job = null
var _fetch_image:bool = false
func _ready():
# keep working when game is paused
process_mode = Node.PROCESS_MODE_ALWAYS
# don't needlessly eat performance
if _pending_requests.is_empty():
set_process(false)
func clear_cache():
var files = DirAccess.get_files_at(CACHE_DIR)
for file in files:
DirAccess.remove_absolute(CACHE_DIR + "/" + file)
## Makes an icon for the given input and returns a Texture2D with the icon. Icons
## are cached on disk so subsequent calls for the same input will be faster.
func make_icon(input:GUIDEInput, renderer:GUIDEIconRenderer, height_px:int) -> Texture2D:
DirAccess.make_dir_recursive_absolute(CACHE_DIR)
var cache_key = (str(height_px) + renderer.cache_key(input)).sha256_text()
var cache_path = "user://_guide_cache/" + cache_key + ".res"
if ResourceLoader.exists(cache_path):
return ResourceLoader.load(cache_path, "Texture2D")
var job = Job.new()
job.height = height_px
job.input = input
job.renderer = renderer
_pending_requests.append(job)
set_process(true)
await job.done
var image_texture = ImageTexture.create_from_image(job.result)
ResourceSaver.save(image_texture, cache_path)
image_texture.take_over_path(cache_path)
return image_texture
func _process(delta):
if _current_request == null and _pending_requests.is_empty():
# nothing more to do..
set_process(false)
return
# nothing in progress, so pick the next request
if _current_request == null:
_current_request = _pending_requests.pop_front()
var renderer = _current_request.renderer
_root.add_child(renderer)
renderer.render(_current_request.input)
await get_tree().process_frame
var actual_size = renderer.get_rect().size
var scale = float(_current_request.height) / float(actual_size.y)
_root.scale = Vector2.ONE * scale
_sub_viewport.size = actual_size * scale
_sub_viewport.render_target_update_mode = SubViewport.UPDATE_ALWAYS
# give the renderer some time to update itself. 3 frames seem
# to work nicely and keep things speedy.
await get_tree().process_frame
await get_tree().process_frame
await get_tree().process_frame
_fetch_image = true
return
# fetch the image after the renderer is done
if _fetch_image:
# we're done. make a copy of the viewport texture
var image:Image = _scene_holder.texture.get_image()
_current_request.result = image
_current_request.done.emit()
_current_request = null
# remove the renderer
_root.remove_child(_root.get_child(0))
_sub_viewport.render_target_update_mode = SubViewport.UPDATE_DISABLED
_fetch_image = false
class Job:
signal done()
var height:int
var input:GUIDEInput
var renderer:GUIDEIconRenderer
var result:Image

View File

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

View File

@ -0,0 +1,24 @@
[gd_scene load_steps=3 format=3 uid="uid://8thurteeibtu"]
[ext_resource type="Script" path="res://addons/guide/ui/icon_maker/icon_maker.gd" id="1_hdbjk"]
[sub_resource type="ViewportTexture" id="ViewportTexture_kra7t"]
viewport_path = NodePath("SubViewport")
[node name="GUIDEIconMaker" type="Node2D"]
script = ExtResource("1_hdbjk")
[node name="SubViewport" type="SubViewport" parent="."]
unique_name_in_owner = true
transparent_bg = true
gui_disable_input = true
gui_snap_controls_to_pixels = false
[node name="Root" type="Node2D" parent="SubViewport"]
unique_name_in_owner = true
scale = Vector2(0.1, 0.1)
[node name="SceneHolder" type="Sprite2D" parent="."]
unique_name_in_owner = true
visible = false
texture = SubResource("ViewportTexture_kra7t")

View File

@ -0,0 +1,171 @@
@tool
extends GUIDEIconRenderer
@export var controller_name_matches:Array[String] = []
@export var a_button:Texture2D
@export var b_button:Texture2D
@export var x_button:Texture2D
@export var y_button:Texture2D
@export var left_stick:Texture2D
@export var left_stick_click:Texture2D
@export var right_stick:Texture2D
@export var right_stick_click:Texture2D
@export var left_bumper:Texture2D
@export var right_bumper:Texture2D
@export var left_trigger:Texture2D
@export var right_trigger:Texture2D
@export var dpad_up:Texture2D
@export var dpad_left:Texture2D
@export var dpad_right:Texture2D
@export var dpad_down:Texture2D
@export var start:Texture2D
@export var misc1:Texture2D
@export var back:Texture2D
@onready var _a_button:TextureRect = %AButton
@onready var _b_button:TextureRect = %BButton
@onready var _x_button:TextureRect = %XButton
@onready var _y_button:TextureRect = %YButton
@onready var _left_stick:TextureRect = %LeftStick
@onready var _left_stick_click:TextureRect = %LeftStickClick
@onready var _right_stick:TextureRect = %RightStick
@onready var _right_stick_click:TextureRect = %RightStickClick
@onready var _left_bumper:Control = %LeftBumper
@onready var _right_bumper:Control = %RightBumper
@onready var _left_trigger:Control = %LeftTrigger
@onready var _right_trigger:TextureRect = %RightTrigger
@onready var _dpad_up:TextureRect = %DpadUp
@onready var _dpad_left:TextureRect = %DpadLeft
@onready var _dpad_right:TextureRect = %DpadRight
@onready var _dpad_down:TextureRect = %DpadDown
@onready var _start:TextureRect = %Start
@onready var _misc1:TextureRect = %Misc1
@onready var _back:TextureRect = %Back
@onready var _left_right:Control = %LeftRight
@onready var _up_down:Control = %UpDown
@onready var _controls:Control = %Controls
@onready var _directions:Control = %Directions
func _ready():
super()
_a_button.texture = a_button
_b_button.texture = b_button
_x_button.texture = x_button
_y_button.texture = y_button
_left_stick.texture = left_stick
_left_stick_click.texture = left_stick_click
_right_stick.texture = right_stick
_right_stick_click.texture = right_stick_click
_left_bumper.texture = left_bumper
_right_bumper.texture = right_bumper
_left_trigger.texture = left_trigger
_right_trigger.texture = right_trigger
_dpad_up.texture = dpad_up
_dpad_left.texture = dpad_left
_dpad_right.texture = dpad_right
_dpad_down.texture = dpad_down
_start.texture = start
_misc1.texture = misc1
_back.texture = back
func supports(input:GUIDEInput) -> bool:
var joy_name = GUIDEInputFormatter._joy_name_for_input(input)
if joy_name == "":
return false
# Look if the controller name matches one of the supported ones
var haystack = joy_name.to_lower()
for needle in controller_name_matches:
if haystack.contains(needle.to_lower()):
return true
return false
func render(input:GUIDEInput) -> void:
for control in _controls.get_children():
control.visible = false
for direction in _directions.get_children():
direction.visible = false
_directions.visible = false
if input is GUIDEInputJoyAxis1D:
match input.axis:
JOY_AXIS_LEFT_X:
_left_stick.visible = true
_show_left_right()
JOY_AXIS_LEFT_Y:
_left_stick.visible = true
_show_up_down()
JOY_AXIS_RIGHT_X:
_right_stick.visible = true
_show_left_right()
JOY_AXIS_RIGHT_Y:
_right_stick.visible = true
_show_up_down()
JOY_AXIS_TRIGGER_LEFT:
_left_trigger.visible = true
JOY_AXIS_TRIGGER_RIGHT:
_right_trigger.visible = true
if input is GUIDEInputJoyAxis2D:
# We assume that there is no input mixing horizontal and vertical
# from different sticks into a 2D axis as this would confuse the
# players.
match input.x:
JOY_AXIS_LEFT_X, JOY_AXIS_LEFT_Y:
_left_stick.visible = true
JOY_AXIS_RIGHT_X, JOY_AXIS_RIGHT_Y:
_right_stick.visible = true
if input is GUIDEInputJoyButton:
match input.button:
JOY_BUTTON_A:
_a_button.visible = true
JOY_BUTTON_B:
_b_button.visible = true
JOY_BUTTON_X:
_x_button.visible = true
JOY_BUTTON_Y:
_y_button.visible = true
JOY_BUTTON_DPAD_LEFT:
_dpad_left.visible = true
JOY_BUTTON_DPAD_RIGHT:
_dpad_right.visible = true
JOY_BUTTON_DPAD_UP:
_dpad_up.visible = true
JOY_BUTTON_DPAD_DOWN:
_dpad_down.visible = true
JOY_BUTTON_LEFT_SHOULDER:
_left_bumper.visible = true
JOY_BUTTON_RIGHT_SHOULDER:
_right_bumper.visible = true
JOY_BUTTON_LEFT_STICK:
_left_stick_click.visible = true
JOY_BUTTON_RIGHT_STICK:
_right_stick_click.visible = true
JOY_BUTTON_RIGHT_STICK:
_right_stick_click.visible = true
JOY_BUTTON_START:
_start.visible = true
JOY_BUTTON_BACK:
_back.visible = true
JOY_BUTTON_MISC1:
_misc1.visible = true
call("queue_sort")
func _show_left_right():
_directions.visible = true
_left_right.visible = true
func _show_up_down():
_directions.visible = true
_up_down.visible = true
func cache_key(input:GUIDEInput) -> String:
return "7581f483-bc68-411f-98ad-dc246fd2593a" + input.to_string() + GUIDEInputFormatter._joy_name_for_input(input)

View File

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

View File

@ -0,0 +1,135 @@
[gd_scene load_steps=4 format=3 uid="uid://bsaylcb5ixjxk"]
[ext_resource type="Script" path="res://addons/guide/ui/renderers/controllers/controller_renderer.gd" id="1_yt13e"]
[ext_resource type="Texture2D" uid="uid://bmgxqbypegjxh" path="res://addons/guide/ui/renderers/textures/arrow_horizontal.svg" id="2_nv2ob"]
[ext_resource type="Texture2D" uid="uid://bu5nlug6uf03w" path="res://addons/guide/ui/renderers/textures/arrow_vertical.svg" id="3_ejti1"]
[node name="ControllerRenderer" type="MarginContainer"]
offset_right = 100.0
offset_bottom = 100.0
size_flags_horizontal = 0
script = ExtResource("1_yt13e")
priority = -1
[node name="HBoxContainer" type="HBoxContainer" parent="."]
layout_mode = 2
size_flags_horizontal = 0
[node name="Controls" type="MarginContainer" parent="HBoxContainer"]
unique_name_in_owner = true
custom_minimum_size = Vector2(100, 100)
layout_mode = 2
size_flags_horizontal = 3
[node name="AButton" type="TextureRect" parent="HBoxContainer/Controls"]
unique_name_in_owner = true
layout_mode = 2
stretch_mode = 5
[node name="BButton" type="TextureRect" parent="HBoxContainer/Controls"]
unique_name_in_owner = true
layout_mode = 2
stretch_mode = 5
[node name="XButton" type="TextureRect" parent="HBoxContainer/Controls"]
unique_name_in_owner = true
layout_mode = 2
stretch_mode = 5
[node name="YButton" type="TextureRect" parent="HBoxContainer/Controls"]
unique_name_in_owner = true
layout_mode = 2
stretch_mode = 5
[node name="LeftStick" type="TextureRect" parent="HBoxContainer/Controls"]
unique_name_in_owner = true
layout_mode = 2
stretch_mode = 5
[node name="LeftStickClick" type="TextureRect" parent="HBoxContainer/Controls"]
unique_name_in_owner = true
layout_mode = 2
stretch_mode = 5
[node name="RightStick" type="TextureRect" parent="HBoxContainer/Controls"]
unique_name_in_owner = true
layout_mode = 2
stretch_mode = 5
[node name="RightStickClick" type="TextureRect" parent="HBoxContainer/Controls"]
unique_name_in_owner = true
layout_mode = 2
stretch_mode = 5
[node name="LeftBumper" type="TextureRect" parent="HBoxContainer/Controls"]
unique_name_in_owner = true
layout_mode = 2
stretch_mode = 5
[node name="RightBumper" type="TextureRect" parent="HBoxContainer/Controls"]
unique_name_in_owner = true
layout_mode = 2
stretch_mode = 5
[node name="LeftTrigger" type="TextureRect" parent="HBoxContainer/Controls"]
unique_name_in_owner = true
layout_mode = 2
stretch_mode = 5
[node name="RightTrigger" type="TextureRect" parent="HBoxContainer/Controls"]
unique_name_in_owner = true
layout_mode = 2
stretch_mode = 5
[node name="DpadUp" type="TextureRect" parent="HBoxContainer/Controls"]
unique_name_in_owner = true
layout_mode = 2
stretch_mode = 5
[node name="DpadLeft" type="TextureRect" parent="HBoxContainer/Controls"]
unique_name_in_owner = true
layout_mode = 2
stretch_mode = 5
[node name="DpadRight" type="TextureRect" parent="HBoxContainer/Controls"]
unique_name_in_owner = true
layout_mode = 2
stretch_mode = 5
[node name="DpadDown" type="TextureRect" parent="HBoxContainer/Controls"]
unique_name_in_owner = true
layout_mode = 2
stretch_mode = 5
[node name="Start" type="TextureRect" parent="HBoxContainer/Controls"]
unique_name_in_owner = true
layout_mode = 2
stretch_mode = 5
[node name="Misc1" type="TextureRect" parent="HBoxContainer/Controls"]
unique_name_in_owner = true
layout_mode = 2
stretch_mode = 5
[node name="Back" type="TextureRect" parent="HBoxContainer/Controls"]
unique_name_in_owner = true
layout_mode = 2
stretch_mode = 5
[node name="Directions" type="MarginContainer" parent="HBoxContainer"]
unique_name_in_owner = true
visible = false
custom_minimum_size = Vector2(100, 100)
layout_mode = 2
[node name="LeftRight" type="TextureRect" parent="HBoxContainer/Directions"]
unique_name_in_owner = true
layout_mode = 2
texture = ExtResource("2_nv2ob")
stretch_mode = 5
[node name="UpDown" type="TextureRect" parent="HBoxContainer/Directions"]
unique_name_in_owner = true
layout_mode = 2
texture = ExtResource("3_ejti1")
stretch_mode = 5

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://civpcnwgbu5ky"
path="res://.godot/imported/PS5_Circle.png-991ec3d8ff387e8a1997f29928333c68.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_Circle.png"
dest_files=["res://.godot/imported/PS5_Circle.png-991ec3d8ff387e8a1997f29928333c68.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cfy1rx4d4wjdh"
path="res://.godot/imported/PS5_Cross.png-94e7143faf483eb3d6ca6505fc615cd3.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_Cross.png"
dest_files=["res://.godot/imported/PS5_Cross.png-94e7143faf483eb3d6ca6505fc615cd3.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ubnurptd6ee2"
path="res://.godot/imported/PS5_Dpad.png-ef26d9f78f150d4ab2b9e6bbe325f986.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_Dpad.png"
dest_files=["res://.godot/imported/PS5_Dpad.png-ef26d9f78f150d4ab2b9e6bbe325f986.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://vk1vje3280tk"
path="res://.godot/imported/PS5_Dpad_Down.png-ba21ca6e311100c142d2b003152ea1d2.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_Dpad_Down.png"
dest_files=["res://.godot/imported/PS5_Dpad_Down.png-ba21ca6e311100c142d2b003152ea1d2.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bkpw61ctv0fbg"
path="res://.godot/imported/PS5_Dpad_Left.png-bd78cf7c0092facc48bbf8fd7816f7a2.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_Dpad_Left.png"
dest_files=["res://.godot/imported/PS5_Dpad_Left.png-bd78cf7c0092facc48bbf8fd7816f7a2.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dybnayy8y7rxe"
path="res://.godot/imported/PS5_Dpad_Right.png-064b9c5c42d22a9c2be3902ca2e33638.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_Dpad_Right.png"
dest_files=["res://.godot/imported/PS5_Dpad_Right.png-064b9c5c42d22a9c2be3902ca2e33638.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bvbd876sy2430"
path="res://.godot/imported/PS5_Dpad_Up.png-b8fc9319fe2231915e5e8e21174b1c1c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_Dpad_Up.png"
dest_files=["res://.godot/imported/PS5_Dpad_Up.png-b8fc9319fe2231915e5e8e21174b1c1c.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cqgpumb0tf5xr"
path="res://.godot/imported/PS5_L1.png-daedbc1549c79d92cbcf68661193a3b8.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_L1.png"
dest_files=["res://.godot/imported/PS5_L1.png-daedbc1549c79d92cbcf68661193a3b8.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bhoi6nfung5ye"
path="res://.godot/imported/PS5_L2.png-2ad86a3ad9afd70333db64063ae812ae.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_L2.png"
dest_files=["res://.godot/imported/PS5_L2.png-2ad86a3ad9afd70333db64063ae812ae.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c3qet180o0dn6"
path="res://.godot/imported/PS5_Left_Stick.png-472622a0a1752a811747d3e6c02f5438.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_Left_Stick.png"
dest_files=["res://.godot/imported/PS5_Left_Stick.png-472622a0a1752a811747d3e6c02f5438.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c0b1sdadfcnbk"
path="res://.godot/imported/PS5_Left_Stick_Click.png-f837f37222a7c945cd4b672d0d7e3ba1.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_Left_Stick_Click.png"
dest_files=["res://.godot/imported/PS5_Left_Stick_Click.png-f837f37222a7c945cd4b672d0d7e3ba1.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://eljpu2rrb3k4"
path="res://.godot/imported/PS5_Microphone.png-3a2db423599523aa5c1b828df7d224bc.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_Microphone.png"
dest_files=["res://.godot/imported/PS5_Microphone.png-3a2db423599523aa5c1b828df7d224bc.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bkttgyeuecjw"
path="res://.godot/imported/PS5_Options.png-4bd9928e2e3aca6fb17663799d26e7a5.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_Options.png"
dest_files=["res://.godot/imported/PS5_Options.png-4bd9928e2e3aca6fb17663799d26e7a5.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://byed3fsjbp82u"
path="res://.godot/imported/PS5_Options_Alt.png-4b64997ac577d658c383b1e727319cf5.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_Options_Alt.png"
dest_files=["res://.godot/imported/PS5_Options_Alt.png-4b64997ac577d658c383b1e727319cf5.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://rwgkfm18pk3l"
path="res://.godot/imported/PS5_R1.png-2f57506c67c952763f228117ce37754b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_R1.png"
dest_files=["res://.godot/imported/PS5_R1.png-2f57506c67c952763f228117ce37754b.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://u6ba23igjbj5"
path="res://.godot/imported/PS5_R2.png-9671164f26e8ed5c0f2352c255960e7c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_R2.png"
dest_files=["res://.godot/imported/PS5_R2.png-9671164f26e8ed5c0f2352c255960e7c.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bukgaq1m26bw3"
path="res://.godot/imported/PS5_Right_Stick.png-884107fa82c161e8696ba874c711b8d7.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_Right_Stick.png"
dest_files=["res://.godot/imported/PS5_Right_Stick.png-884107fa82c161e8696ba874c711b8d7.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c4krmros0va1i"
path="res://.godot/imported/PS5_Right_Stick_Click.png-b097f7eaaf3fdd2f3db31ab4d9ef06b4.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_Right_Stick_Click.png"
dest_files=["res://.godot/imported/PS5_Right_Stick_Click.png-b097f7eaaf3fdd2f3db31ab4d9ef06b4.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bw2h7xxdtp31i"
path="res://.godot/imported/PS5_Share.png-ecf2ad701cb784ee9e69b7052bffc94f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_Share.png"
dest_files=["res://.godot/imported/PS5_Share.png-ecf2ad701cb784ee9e69b7052bffc94f.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bwje5248woygn"
path="res://.godot/imported/PS5_Share_Alt.png-f38d2e9e85009e094eb2254e0d890a1d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_Share_Alt.png"
dest_files=["res://.godot/imported/PS5_Share_Alt.png-f38d2e9e85009e094eb2254e0d890a1d.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dm6vfcwtodame"
path="res://.godot/imported/PS5_Square.png-c0fff0babe3326f24867d317d430c13a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_Square.png"
dest_files=["res://.godot/imported/PS5_Square.png-c0fff0babe3326f24867d317d430c13a.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bxxkjsl2u83mp"
path="res://.godot/imported/PS5_Touch_Pad.png-b3baca99700ac1cd505b545f684de924.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_Touch_Pad.png"
dest_files=["res://.godot/imported/PS5_Touch_Pad.png-b3baca99700ac1cd505b545f684de924.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bjjj12v4g82g4"
path="res://.godot/imported/PS5_Triangle.png-6cfcb99a3dd2daba1763b52afa5e6f91.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_Triangle.png"
dest_files=["res://.godot/imported/PS5_Triangle.png-6cfcb99a3dd2daba1763b52afa5e6f91.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

View File

@ -0,0 +1,101 @@
[gd_scene load_steps=21 format=3 uid="uid://bwv1638hcrfni"]
[ext_resource type="PackedScene" uid="uid://bsaylcb5ixjxk" path="res://addons/guide/ui/renderers/controllers/controller_renderer.tscn" id="1_bq6gh"]
[ext_resource type="Texture2D" uid="uid://cfy1rx4d4wjdh" path="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_Cross.png" id="2_oqi6t"]
[ext_resource type="Texture2D" uid="uid://civpcnwgbu5ky" path="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_Circle.png" id="3_m332j"]
[ext_resource type="Texture2D" uid="uid://dm6vfcwtodame" path="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_Square.png" id="4_dqhg4"]
[ext_resource type="Texture2D" uid="uid://bjjj12v4g82g4" path="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_Triangle.png" id="5_42ocy"]
[ext_resource type="Texture2D" uid="uid://c3qet180o0dn6" path="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_Left_Stick.png" id="6_wwoxb"]
[ext_resource type="Texture2D" uid="uid://c0b1sdadfcnbk" path="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_Left_Stick_Click.png" id="7_gethe"]
[ext_resource type="Texture2D" uid="uid://bukgaq1m26bw3" path="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_Right_Stick.png" id="8_u2725"]
[ext_resource type="Texture2D" uid="uid://c4krmros0va1i" path="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_Right_Stick_Click.png" id="9_wfckm"]
[ext_resource type="Texture2D" uid="uid://cqgpumb0tf5xr" path="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_L1.png" id="10_34ib6"]
[ext_resource type="Texture2D" uid="uid://rwgkfm18pk3l" path="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_R1.png" id="11_53ury"]
[ext_resource type="Texture2D" uid="uid://bhoi6nfung5ye" path="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_L2.png" id="12_tyubh"]
[ext_resource type="Texture2D" uid="uid://u6ba23igjbj5" path="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_R2.png" id="13_pr5lk"]
[ext_resource type="Texture2D" uid="uid://bvbd876sy2430" path="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_Dpad_Up.png" id="14_h0miw"]
[ext_resource type="Texture2D" uid="uid://bkpw61ctv0fbg" path="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_Dpad_Left.png" id="15_q5yu5"]
[ext_resource type="Texture2D" uid="uid://dybnayy8y7rxe" path="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_Dpad_Right.png" id="16_ulk14"]
[ext_resource type="Texture2D" uid="uid://vk1vje3280tk" path="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_Dpad_Down.png" id="17_wm4fj"]
[ext_resource type="Texture2D" uid="uid://bkttgyeuecjw" path="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_Options.png" id="18_eabm3"]
[ext_resource type="Texture2D" uid="uid://eljpu2rrb3k4" path="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_Microphone.png" id="19_oj5w7"]
[ext_resource type="Texture2D" uid="uid://bw2h7xxdtp31i" path="res://addons/guide/ui/renderers/controllers/playstation/icons/PS5_Share.png" id="20_p3s2m"]
[node name="ControllerRenderer" instance=ExtResource("1_bq6gh")]
controller_name_matches = Array[String](["DualSense", "DualShock", "PlayStation", "PS3", "PS4", "PS5"])
a_button = ExtResource("2_oqi6t")
b_button = ExtResource("3_m332j")
x_button = ExtResource("4_dqhg4")
y_button = ExtResource("5_42ocy")
left_stick = ExtResource("6_wwoxb")
left_stick_click = ExtResource("7_gethe")
right_stick = ExtResource("8_u2725")
right_stick_click = ExtResource("9_wfckm")
left_bumper = ExtResource("10_34ib6")
right_bumper = ExtResource("11_53ury")
left_trigger = ExtResource("12_tyubh")
right_trigger = ExtResource("13_pr5lk")
dpad_up = ExtResource("14_h0miw")
dpad_left = ExtResource("15_q5yu5")
dpad_right = ExtResource("16_ulk14")
dpad_down = ExtResource("17_wm4fj")
start = ExtResource("18_eabm3")
misc1 = ExtResource("19_oj5w7")
back = ExtResource("20_p3s2m")
[node name="AButton" parent="HBoxContainer/Controls" index="0"]
texture = ExtResource("2_oqi6t")
[node name="BButton" parent="HBoxContainer/Controls" index="1"]
texture = ExtResource("3_m332j")
[node name="XButton" parent="HBoxContainer/Controls" index="2"]
texture = ExtResource("4_dqhg4")
[node name="YButton" parent="HBoxContainer/Controls" index="3"]
texture = ExtResource("5_42ocy")
[node name="LeftStick" parent="HBoxContainer/Controls" index="4"]
texture = ExtResource("6_wwoxb")
[node name="LeftStickClick" parent="HBoxContainer/Controls" index="5"]
texture = ExtResource("7_gethe")
[node name="RightStick" parent="HBoxContainer/Controls" index="6"]
texture = ExtResource("8_u2725")
[node name="RightStickClick" parent="HBoxContainer/Controls" index="7"]
texture = ExtResource("9_wfckm")
[node name="LeftBumper" parent="HBoxContainer/Controls" index="8"]
texture = ExtResource("10_34ib6")
[node name="RightBumper" parent="HBoxContainer/Controls" index="9"]
texture = ExtResource("11_53ury")
[node name="LeftTrigger" parent="HBoxContainer/Controls" index="10"]
texture = ExtResource("12_tyubh")
[node name="RightTrigger" parent="HBoxContainer/Controls" index="11"]
texture = ExtResource("13_pr5lk")
[node name="DpadUp" parent="HBoxContainer/Controls" index="12"]
texture = ExtResource("14_h0miw")
[node name="DpadLeft" parent="HBoxContainer/Controls" index="13"]
texture = ExtResource("15_q5yu5")
[node name="DpadRight" parent="HBoxContainer/Controls" index="14"]
texture = ExtResource("16_ulk14")
[node name="DpadDown" parent="HBoxContainer/Controls" index="15"]
texture = ExtResource("17_wm4fj")
[node name="Start" parent="HBoxContainer/Controls" index="16"]
texture = ExtResource("18_eabm3")
[node name="Misc1" parent="HBoxContainer/Controls" index="17"]
texture = ExtResource("19_oj5w7")
[node name="Back" parent="HBoxContainer/Controls" index="18"]
texture = ExtResource("20_p3s2m")

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cl75ptbm7sfi5"
path="res://.godot/imported/Switch_A.png-f1d58b04f27891568073a11e43627862.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/switch/icons/Switch_A.png"
dest_files=["res://.godot/imported/Switch_A.png-f1d58b04f27891568073a11e43627862.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bptn4jygg3p8q"
path="res://.godot/imported/Switch_B.png-fbb8f305e166298807aa18fab0c22a62.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/switch/icons/Switch_B.png"
dest_files=["res://.godot/imported/Switch_B.png-fbb8f305e166298807aa18fab0c22a62.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b0ha1pv08n3fn"
path="res://.godot/imported/Switch_Controller_Left.png-832f94a111c828ab506576e8c22b3c3a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/switch/icons/Switch_Controller_Left.png"
dest_files=["res://.godot/imported/Switch_Controller_Left.png-832f94a111c828ab506576e8c22b3c3a.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://qv33ijfxtj1x"
path="res://.godot/imported/Switch_Controller_Right.png-0738167dcf8a308918a4e0351ec370a7.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/switch/icons/Switch_Controller_Right.png"
dest_files=["res://.godot/imported/Switch_Controller_Right.png-0738167dcf8a308918a4e0351ec370a7.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dqfhfnjqwcjpk"
path="res://.godot/imported/Switch_Controllers.png-0ab7b7957a575a33aec8f6138ec1b468.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/switch/icons/Switch_Controllers.png"
dest_files=["res://.godot/imported/Switch_Controllers.png-0ab7b7957a575a33aec8f6138ec1b468.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://8lsr71y25n8q"
path="res://.godot/imported/Switch_Controllers_Separate.png-8b202bd393de46b2f97712ac19581121.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/switch/icons/Switch_Controllers_Separate.png"
dest_files=["res://.godot/imported/Switch_Controllers_Separate.png-8b202bd393de46b2f97712ac19581121.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://qt8r1byskjmu"
path="res://.godot/imported/Switch_Down.png-a8bebe4deb11df0456c90115a2306f62.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/switch/icons/Switch_Down.png"
dest_files=["res://.godot/imported/Switch_Down.png-a8bebe4deb11df0456c90115a2306f62.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bxvp4elmagomg"
path="res://.godot/imported/Switch_Dpad.png-9f1893107a829bf94f95a8bcfa879f1c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/switch/icons/Switch_Dpad.png"
dest_files=["res://.godot/imported/Switch_Dpad.png-9f1893107a829bf94f95a8bcfa879f1c.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dq2ypo4cx3ucs"
path="res://.godot/imported/Switch_Dpad_Down.png-fda4a0d96c9c1d604adf4addc863361f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/switch/icons/Switch_Dpad_Down.png"
dest_files=["res://.godot/imported/Switch_Dpad_Down.png-fda4a0d96c9c1d604adf4addc863361f.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://rcrsxqeu6mns"
path="res://.godot/imported/Switch_Dpad_Left.png-7d4e2c9108e5188065fbd9645e1af97e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/switch/icons/Switch_Dpad_Left.png"
dest_files=["res://.godot/imported/Switch_Dpad_Left.png-7d4e2c9108e5188065fbd9645e1af97e.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dubah62ttpnc0"
path="res://.godot/imported/Switch_Dpad_Right.png-74599bcfe029ca89e967999e956aa664.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/switch/icons/Switch_Dpad_Right.png"
dest_files=["res://.godot/imported/Switch_Dpad_Right.png-74599bcfe029ca89e967999e956aa664.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://u6uclokrrbaq"
path="res://.godot/imported/Switch_Dpad_Up.png-38cc365cd950cad00eb7342f63b614a5.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/switch/icons/Switch_Dpad_Up.png"
dest_files=["res://.godot/imported/Switch_Dpad_Up.png-38cc365cd950cad00eb7342f63b614a5.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://uf6oq3wbq11f"
path="res://.godot/imported/Switch_Home.png-31680591ab356324906bfaaeace20e43.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/switch/icons/Switch_Home.png"
dest_files=["res://.godot/imported/Switch_Home.png-31680591ab356324906bfaaeace20e43.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cb6gvej03avm3"
path="res://.godot/imported/Switch_LB.png-fc77289764fd409ac6c0408486b0c16b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/switch/icons/Switch_LB.png"
dest_files=["res://.godot/imported/Switch_LB.png-fc77289764fd409ac6c0408486b0c16b.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://savy2mhybmun"
path="res://.godot/imported/Switch_LT.png-b154a02af7bcd266253a208d8d610852.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/switch/icons/Switch_LT.png"
dest_files=["res://.godot/imported/Switch_LT.png-b154a02af7bcd266253a208d8d610852.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cyjwul8mif4s2"
path="res://.godot/imported/Switch_Left.png-cc76cc1aa00b43ca3e312439715d169a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/switch/icons/Switch_Left.png"
dest_files=["res://.godot/imported/Switch_Left.png-cc76cc1aa00b43ca3e312439715d169a.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cha2jimmsyrsg"
path="res://.godot/imported/Switch_Left_Stick.png-1cc52d3c1e1f259e0115217e02740b99.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/switch/icons/Switch_Left_Stick.png"
dest_files=["res://.godot/imported/Switch_Left_Stick.png-1cc52d3c1e1f259e0115217e02740b99.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://by1vmleujtq1i"
path="res://.godot/imported/Switch_Left_Stick_Click.png-7992de9526c87e19b6a04a21954e96af.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/switch/icons/Switch_Left_Stick_Click.png"
dest_files=["res://.godot/imported/Switch_Left_Stick_Click.png-7992de9526c87e19b6a04a21954e96af.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 356 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bdydqv6vi48ix"
path="res://.godot/imported/Switch_Minus.png-b6cd3147393308196e49ab3a608d1c8a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/switch/icons/Switch_Minus.png"
dest_files=["res://.godot/imported/Switch_Minus.png-b6cd3147393308196e49ab3a608d1c8a.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 764 B

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://j3wpcxyxsy2r"
path="res://.godot/imported/Switch_Plus.png-75c2cf5b7056a47425c210b1f60dcdc2.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/guide/ui/renderers/controllers/switch/icons/Switch_Plus.png"
dest_files=["res://.godot/imported/Switch_Plus.png-75c2cf5b7056a47425c210b1f60dcdc2.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Some files were not shown because too many files have changed in this diff Show More