Compare commits
No commits in common. "8cf677677fd7e82aa053fc9e8400e782f6ce2a4a" and "a12e4e4c0b95c5ca4aacf207024e7dc8fe73aa0e" have entirely different histories.
8cf677677f
...
a12e4e4c0b
@ -75,14 +75,7 @@ region = Rect2( 100, 20, 7, 8 )
|
||||
|
||||
[sub_resource type="StyleBoxEmpty" id=10]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id=96]
|
||||
bg_color = Color( 0.423529, 0.898039, 0.756863, 0.4 )
|
||||
border_width_left = 31
|
||||
border_width_top = 1
|
||||
border_width_right = 22
|
||||
border_width_bottom = 1
|
||||
border_color = Color( 0.0901961, 0.14902, 0.270588, 0.345098 )
|
||||
border_blend = true
|
||||
[sub_resource type="StyleBoxEmpty" id=11]
|
||||
|
||||
[sub_resource type="StyleBoxEmpty" id=12]
|
||||
|
||||
@ -336,7 +329,9 @@ margin_right = 2.0
|
||||
margin_top = 2.0
|
||||
margin_bottom = 2.0
|
||||
|
||||
[sub_resource type="StyleBoxTexture" id=97]
|
||||
[sub_resource type="StyleBoxEmpty" id=52]
|
||||
|
||||
[sub_resource type="StyleBoxTexture" id=53]
|
||||
texture = ExtResource( 2 )
|
||||
region_rect = Rect2( 17, 97, 14, 14 )
|
||||
margin_left = 2.0
|
||||
@ -352,14 +347,6 @@ margin_right = 2.0
|
||||
margin_top = 2.0
|
||||
margin_bottom = 2.0
|
||||
|
||||
[sub_resource type="StyleBoxTexture" id=53]
|
||||
texture = ExtResource( 2 )
|
||||
region_rect = Rect2( 17, 97, 14, 14 )
|
||||
margin_left = 2.0
|
||||
margin_right = 2.0
|
||||
margin_top = 2.0
|
||||
margin_bottom = 2.0
|
||||
|
||||
[sub_resource type="StyleBoxTexture" id=55]
|
||||
content_margin_left = 15.0
|
||||
content_margin_right = 16.0
|
||||
@ -668,7 +655,7 @@ CheckBox/icons/radio_checked = SubResource( 7 )
|
||||
CheckBox/icons/radio_unchecked = SubResource( 8 )
|
||||
CheckBox/icons/unchecked = SubResource( 9 )
|
||||
CheckBox/styles/disabled = SubResource( 10 )
|
||||
CheckBox/styles/focus = SubResource( 96 )
|
||||
CheckBox/styles/focus = SubResource( 11 )
|
||||
CheckBox/styles/hover = SubResource( 12 )
|
||||
CheckBox/styles/hover_pressed = SubResource( 13 )
|
||||
CheckBox/styles/normal = SubResource( 14 )
|
||||
@ -754,9 +741,8 @@ MenuButton/styles/focus = SubResource( 46 )
|
||||
MenuButton/styles/hover = SubResource( 47 )
|
||||
MenuButton/styles/normal = SubResource( 48 )
|
||||
MenuButton/styles/pressed = SubResource( 49 )
|
||||
OptionButton/colors/font_color = Color( 1, 1, 1, 1 )
|
||||
OptionButton/colors/font_color = Color( 0.88, 0.88, 0.88, 1 )
|
||||
OptionButton/colors/font_color_disabled = Color( 0.9, 0.9, 0.9, 0.2 )
|
||||
OptionButton/colors/font_color_focus = Color( 0.376471, 0.909804, 0.768627, 1 )
|
||||
OptionButton/colors/font_color_hover = Color( 0.376471, 0.909804, 0.768627, 1 )
|
||||
OptionButton/colors/font_color_pressed = Color( 1, 1, 1, 1 )
|
||||
OptionButton/constants/arrow_margin = 2
|
||||
@ -764,8 +750,8 @@ OptionButton/constants/hseparation = 2
|
||||
OptionButton/fonts/font = ExtResource( 3 )
|
||||
OptionButton/icons/arrow = SubResource( 50 )
|
||||
OptionButton/styles/disabled = SubResource( 51 )
|
||||
OptionButton/styles/focus = SubResource( 97 )
|
||||
OptionButton/styles/hover = SubResource( 97 )
|
||||
OptionButton/styles/focus = SubResource( 52 )
|
||||
OptionButton/styles/hover = SubResource( 53 )
|
||||
OptionButton/styles/normal = SubResource( 54 )
|
||||
OptionButton/styles/pressed = SubResource( 53 )
|
||||
Panel/styles/panel = SubResource( 55 )
|
||||
|
||||
@ -59,6 +59,11 @@ _global_script_classes=[ {
|
||||
"language": "GDScript",
|
||||
"path": "res://addons/controller_icons/objects/TextureRect.gd"
|
||||
}, {
|
||||
"base": "SceneTree",
|
||||
"class": "CreateIcon",
|
||||
"language": "GDScript",
|
||||
"path": "res://Neuer Ordner/CreateIcon.gd"
|
||||
}, {
|
||||
"base": "Actor",
|
||||
"class": "Enemy",
|
||||
"language": "GDScript",
|
||||
@ -84,6 +89,11 @@ _global_script_classes=[ {
|
||||
"language": "GDScript",
|
||||
"path": "res://src/RayCasters/RayCaster.gd"
|
||||
}, {
|
||||
"base": "Reference",
|
||||
"class": "ReplaceIcon",
|
||||
"language": "GDScript",
|
||||
"path": "res://Neuer Ordner/ReplaceIcon.gd"
|
||||
}, {
|
||||
"base": "Button",
|
||||
"class": "SoundButton",
|
||||
"language": "GDScript",
|
||||
@ -105,11 +115,13 @@ _global_script_class_icons={
|
||||
"ControllerSprite": "",
|
||||
"ControllerSprite3D": "",
|
||||
"ControllerTextureRect": "",
|
||||
"CreateIcon": "",
|
||||
"Enemy": "",
|
||||
"GlobalStateResource": "",
|
||||
"LevelTemplate": "",
|
||||
"RayCastDebugLines": "",
|
||||
"RayCaster": "",
|
||||
"ReplaceIcon": "",
|
||||
"SoundButton": "",
|
||||
"StateMachine": ""
|
||||
}
|
||||
@ -239,34 +251,34 @@ ui_end={
|
||||
}
|
||||
up={
|
||||
"deadzone": 0.5,
|
||||
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":87,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
"events": [ Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null)
|
||||
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null)
|
||||
]
|
||||
}
|
||||
move_left={
|
||||
"deadzone": 0.5,
|
||||
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777231,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":65,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null)
|
||||
]
|
||||
}
|
||||
move_right={
|
||||
"deadzone": 0.5,
|
||||
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777233,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":68,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":87,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
duck={
|
||||
"deadzone": 0.5,
|
||||
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777234,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":83,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
"events": [ Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null)
|
||||
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null)
|
||||
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":83,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777234,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
move_left={
|
||||
"deadzone": 0.5,
|
||||
"events": [ Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":14,"pressure":0.0,"pressed":false,"script":null)
|
||||
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":65,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777231,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
move_right={
|
||||
"deadzone": 0.5,
|
||||
"events": [ Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":15,"pressure":0.0,"pressed":false,"script":null)
|
||||
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":68,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777233,"physical_scancode":0,"unicode":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
jump={
|
||||
@ -328,6 +340,7 @@ quality/intended_usage/framebuffer_allocation.mobile=0
|
||||
threads/thread_model=2
|
||||
2d/options/use_software_skinning=false
|
||||
gles3/shaders/shader_compilation_mode=2
|
||||
gles3/shaders/shader_compilation_mode.web=2
|
||||
2d/options/culling_mode=0
|
||||
quality/depth/hdr=false
|
||||
environment/default_environment="res://default_env.tres"
|
||||
|
||||
@ -19,7 +19,6 @@ export var vision_distance := 6.0
|
||||
export var vision_angle := 180.0
|
||||
export var attack_jump_range := 6.0
|
||||
export var aggressive_to_player := false
|
||||
export var jump_into_narrow_pit := false
|
||||
export var loose_target_seconds := 3.0
|
||||
# Jump distance in blocks
|
||||
export var default_jump_distance := 4.0
|
||||
@ -345,8 +344,6 @@ func jump():
|
||||
# TODO fix that you could call jump from jumping on top
|
||||
# and let it fail if the top is dangerous for jump height or not safe
|
||||
v = consider_jumping_on_top()
|
||||
if v == zero_vector && jump_into_narrow_pit:
|
||||
v = consider_jump_landing_space(v, jump_into_narrow_pit)
|
||||
if v == zero_vector && can_reverse_facing_direction():
|
||||
reverse_facing_direction()
|
||||
|
||||
@ -401,7 +398,7 @@ func consider_jump_headspace(v: Vector2, recursive_check_count = 0, max_checks =
|
||||
# Check the block in jump distance for danger or height
|
||||
# If danger check neighboring blocks: if still danger, then jump closer (or jump over)
|
||||
# If height move to distance which allows 1 block high jump
|
||||
func consider_jump_landing_space(v: Vector2, jump_into_narrow_pit = false) -> Vector2:
|
||||
func consider_jump_landing_space(v: Vector2) -> Vector2:
|
||||
var jump_distance = calculate_jump_distance(v)
|
||||
var jump_height = calculate_jump_height(v)
|
||||
var collider = check_feeler(Vector2(jump_distance * get_facing_direction(), -jump_height / 2))
|
||||
@ -420,7 +417,7 @@ func consider_jump_landing_space(v: Vector2, jump_into_narrow_pit = false) -> Ve
|
||||
v = correct_jump_direction(v)
|
||||
collider = check_feeler(Vector2(jump_distance * get_facing_direction(), -jump_height / 2))
|
||||
if (
|
||||
(!is_jump_path_safe(v, global_position) || (collider != null && !jump_into_narrow_pit))
|
||||
(!is_jump_path_safe(v, global_position) || collider != null)
|
||||
&& can_reverse_facing_direction()
|
||||
):
|
||||
# Can be printed when frog would jump into a wall too
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=52 format=2]
|
||||
[gd_scene load_steps=50 format=2]
|
||||
|
||||
[ext_resource path="res://assets/enemy/froshler.png" type="Texture" id=1]
|
||||
[ext_resource path="res://src/Actors/Friendlies/WhatAreFrog.gd" type="Script" id=2]
|
||||
@ -8,38 +8,6 @@
|
||||
[ext_resource path="res://assets/enemy/leash-hook.png" type="Texture" id=6]
|
||||
[ext_resource path="res://src/Utilities/SceneAudio.tscn" type="PackedScene" id=7]
|
||||
|
||||
[sub_resource type="Shader" id=61]
|
||||
code = "shader_type canvas_item;
|
||||
uniform float wavelength = 10.0;
|
||||
uniform float wavespeed = 1.0;
|
||||
uniform float alpha = 0.25;
|
||||
uniform float displacement = 0.0;
|
||||
uniform float displacement_speed = 1.0;
|
||||
|
||||
uniform sampler2D noise_texture;
|
||||
uniform sampler2D noise_displacement_texture;
|
||||
uniform sampler2D gradiant;
|
||||
|
||||
void vertex()
|
||||
{
|
||||
vec3 perlin = texture(noise_displacement_texture, UV + (TIME * displacement_speed)).rgb;
|
||||
VERTEX = VERTEX + (perlin * displacement);
|
||||
}
|
||||
|
||||
|
||||
void fragment()
|
||||
{
|
||||
vec3 perlin = texture(noise_texture, UV).rgb;
|
||||
float ndotp = dot(VIEW, perlin) * wavelength;
|
||||
float waves = (1.0 + sin(ndotp + TIME * wavespeed)) / 2.0;
|
||||
vec4 color = texture(gradiant, vec2(waves, 0.5));
|
||||
ALBEDO = color.rgb;
|
||||
ALPHA = min(color.a, alpha);
|
||||
}"
|
||||
|
||||
[sub_resource type="ShaderMaterial" id=62]
|
||||
shader = SubResource( 61 )
|
||||
|
||||
[sub_resource type="Animation" id=5]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
@ -511,7 +479,6 @@ texture = ExtResource( 6 )
|
||||
|
||||
[node name="FrogSprite" type="Sprite" parent="."]
|
||||
unique_name_in_owner = true
|
||||
material = SubResource( 62 )
|
||||
position = Vector2( 0, -7 )
|
||||
texture = ExtResource( 1 )
|
||||
hframes = 2
|
||||
|
||||
@ -1146,9 +1146,6 @@ initial_wait_time = 2.0
|
||||
[node name="Button" parent="Tutorials/RightTut" index="0"]
|
||||
material = SubResource( 13 )
|
||||
|
||||
[node name="Label" parent="Tutorials/RightTut/TextureRect" index="0"]
|
||||
autowrap = false
|
||||
|
||||
[node name="AnimationPlayer" parent="Tutorials/RightTut" index="4"]
|
||||
anims/RESET = SubResource( 9 )
|
||||
anims/cease_4_exist = SubResource( 10 )
|
||||
@ -1329,7 +1326,7 @@ position = Vector2( -70, 1 )
|
||||
scale = Vector2( 0.878906, 0.936025 )
|
||||
|
||||
[node name="BlobbySprite" parent="Blobby" index="5"]
|
||||
frame = 8
|
||||
frame = 7
|
||||
|
||||
[node name="BlobbymationTree" parent="Blobby/BlobbySprite" index="0"]
|
||||
parameters/playback = SubResource( 33 )
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -41,12 +41,12 @@ resource_name = "LowPassFilter"
|
||||
cutoff_hz = 3000.0
|
||||
|
||||
[resource]
|
||||
bus/0/volume_db = inf_neg
|
||||
bus/0/volume_db = -6.93575
|
||||
bus/1/name = "Music"
|
||||
bus/1/solo = false
|
||||
bus/1/mute = false
|
||||
bus/1/bypass_fx = false
|
||||
bus/1/volume_db = 0.0
|
||||
bus/1/volume_db = -6.0206
|
||||
bus/1/send = "Master"
|
||||
bus/1/effect/0/effect = SubResource( 1 )
|
||||
bus/1/effect/0/enabled = false
|
||||
@ -68,7 +68,7 @@ bus/3/name = "UI"
|
||||
bus/3/solo = false
|
||||
bus/3/mute = false
|
||||
bus/3/bypass_fx = false
|
||||
bus/3/volume_db = 0.0
|
||||
bus/3/volume_db = -6.0206
|
||||
bus/3/send = "Master"
|
||||
bus/3/effect/0/effect = SubResource( 6 )
|
||||
bus/3/effect/0/enabled = true
|
||||
|
||||
2
src/ThirdParty/Demo/IridescenceBall.tscn
vendored
2
src/ThirdParty/Demo/IridescenceBall.tscn
vendored
@ -12,7 +12,7 @@ transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 3 )
|
||||
far = 150.0
|
||||
|
||||
[node name="MeshInstance" type="MeshInstance" parent="."]
|
||||
transform = Transform( 1, -0.00767937, 0, 0.00767937, 1, 0, 0, 0, 1, 0, 0, 0 )
|
||||
transform = Transform( 1.0, -0.00767937, 0, 0.00767937, 1.0, 0, 0, 0, 1, 0, 0, 0 )
|
||||
mesh = SubResource( 1 )
|
||||
material/0 = ExtResource( 2 )
|
||||
script = ExtResource( 1 )
|
||||
|
||||
@ -26,17 +26,7 @@ func rebuild(input_profile):
|
||||
_action_list.clear()
|
||||
var first = true
|
||||
var prev_line
|
||||
for order_action in $InputMapper.profile_order:
|
||||
|
||||
var input_action := ""
|
||||
|
||||
for action in input_profile.keys():
|
||||
if action == order_action:
|
||||
input_action = action
|
||||
|
||||
if input_action == "":
|
||||
continue
|
||||
|
||||
for input_action in input_profile.keys():
|
||||
if(input_action.ends_with("_old") || input_action.begins_with(("ui_"))):
|
||||
continue
|
||||
var line = _action_list.add_input_line(input_action, input_profile[input_action])
|
||||
@ -65,62 +55,7 @@ func _on_InputLine_change_button_pressed(action_name, line):
|
||||
var event = yield($"%KeySelectMenu", "key_selected")
|
||||
if event == null:
|
||||
return
|
||||
|
||||
#Check if events are basically the same
|
||||
#TODO Problem with different physical locations of the same key
|
||||
if "scancode" in old_event && "scancode" in event:
|
||||
if event.scancode == old_event.scancode:
|
||||
return
|
||||
elif event == old_event:
|
||||
return
|
||||
|
||||
var action_with_same_event: String = check_doubled_event(event)
|
||||
|
||||
# Routine to swap buttons
|
||||
# TODO put into function
|
||||
if action_with_same_event != "":
|
||||
# Check doubled reads from the InputMap and alternative actions are only virtual
|
||||
if action_with_same_event == action_name:
|
||||
action_with_same_event = "alt " + action_name
|
||||
$"%SwapKeysMenu".open(action_name, action_with_same_event, old_event, event)
|
||||
var swap = yield($"SwapKeysMenu", "selection_made")
|
||||
if swap:
|
||||
swap_buttons(action_name, action_with_same_event, old_event, event)
|
||||
print("bakayaroo!")
|
||||
return
|
||||
|
||||
if $InputMapper.change_action_key(action_name, event, old_event):
|
||||
if($InputMapper.change_action_key(action_name, event, old_event)):
|
||||
changes_made = true
|
||||
changes_saved = false
|
||||
line.update_key(event)
|
||||
|
||||
func check_doubled_event(event: InputEvent) -> String:
|
||||
for action in $InputMapper.get_selected_profile().keys():
|
||||
if action.begins_with("ui_") || action.ends_with("_old"):
|
||||
continue
|
||||
var assigned_event: InputEvent = $InputMapper.get_selected_profile()[action]
|
||||
if "scancode" in assigned_event && "scancode" in event:
|
||||
if event.scancode == assigned_event.scancode:
|
||||
return action
|
||||
else:
|
||||
if event == assigned_event:
|
||||
return action
|
||||
return ""
|
||||
|
||||
func swap_buttons(action1, action2, old_event, new_event) -> void:
|
||||
var input_line1 = $"%ActionKeyList".get_input_line(action1)
|
||||
var input_line2 = $"%ActionKeyList".get_input_line(action2)
|
||||
if $InputMapper.change_action_key(action1, new_event, old_event):
|
||||
changes_made = true
|
||||
changes_saved = false
|
||||
input_line1.update_key(new_event)
|
||||
else:
|
||||
return
|
||||
|
||||
# Avoid erasing the just assigned "old" event from the input map,
|
||||
# when swapping alternative button assignments in place
|
||||
if action1.trim_prefix("alt ") == action2.trim_prefix("alt "):
|
||||
new_event = old_event
|
||||
|
||||
if $InputMapper.change_action_key(action2, old_event, new_event):
|
||||
input_line2.update_key(old_event)
|
||||
|
||||
@ -10,7 +10,6 @@ onready var pause_title: Label = get_node("PauseOverlay/Title")
|
||||
var paused := false setget set_paused
|
||||
var block_ui_cancel = false
|
||||
|
||||
|
||||
func _ready():
|
||||
#signal_manager.connect("player_died", self, "_on_GlobalState_player_died")
|
||||
$ControlsMenu.visible = false
|
||||
@ -19,7 +18,6 @@ func _ready():
|
||||
signal_manager.connect("game_paused", self, "set_paused")
|
||||
pass
|
||||
|
||||
|
||||
func open_audio_menu():
|
||||
block_ui_cancel = true
|
||||
pause_overlay.visible = false
|
||||
@ -27,7 +25,6 @@ func open_audio_menu():
|
||||
$AudioMenu.set_process_input(true)
|
||||
$"%MasterSlider".grab_focus()
|
||||
|
||||
|
||||
func close_audio_menu():
|
||||
$AudioMenu.visible = false
|
||||
pause_overlay.visible = true
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=44 format=2]
|
||||
[gd_scene load_steps=39 format=2]
|
||||
|
||||
[ext_resource path="res://assets/meta/ui_theme.tres" type="Theme" id=1]
|
||||
[ext_resource path="res://assets/ui/sci-fi-godot-theme/sci-fi-theme.tres" type="Theme" id=2]
|
||||
@ -19,14 +19,11 @@
|
||||
[ext_resource path="res://src/UserInterface/Screens/MainMenu/ControlsMenu/ProfilesMenu.gd" type="Script" id=17]
|
||||
[ext_resource path="res://assets/ui/fonts/Kenney Thick.ttf" type="DynamicFontData" id=18]
|
||||
[ext_resource path="res://assets/ui/fonts/kenny_thick.tres" type="DynamicFont" id=19]
|
||||
[ext_resource path="res://addons/controller_icons/objects/Button.gd" type="Script" id=20]
|
||||
[ext_resource path="res://assets/ui/Screenshot 2023-05-23 160521.png" type="Texture" id=21]
|
||||
[ext_resource path="res://assets/meta/montserrat_extrabold.otf" type="DynamicFontData" id=22]
|
||||
[ext_resource path="res://src/UserInterface/Buttons/AudibleButton.gd" type="Script" id=23]
|
||||
[ext_resource path="res://assets/music/Shopping For The Future (LOOP).wav" type="AudioStream" id=24]
|
||||
[ext_resource path="res://src/UserInterface/Screens/MainMenu/ControlsMenu/SwapKeysMenu.gd" type="Script" id=25]
|
||||
[ext_resource path="res://src/UserInterface/Screens/MainMenu/AudioMenu.gd" type="Script" id=26]
|
||||
[ext_resource path="res://addons/controller_icons/assets/key/arrow_down.png" type="Texture" id=27]
|
||||
[ext_resource path="res://src/UserInterface/Screens/MainMenu/AudioSlider.gd" type="Script" id=28]
|
||||
[ext_resource path="res://src/UserInterface/Buttons/MenuNavigationButton.gd" type="Script" id=29]
|
||||
|
||||
@ -74,14 +71,6 @@ shader_param/transparency = 0.778
|
||||
size = 20
|
||||
font_data = ExtResource( 22 )
|
||||
|
||||
[sub_resource type="ShaderMaterial" id=18]
|
||||
shader = ExtResource( 7 )
|
||||
shader_param/transparency = 0.778
|
||||
|
||||
[sub_resource type="DynamicFont" id=19]
|
||||
size = 8
|
||||
font_data = ExtResource( 18 )
|
||||
|
||||
[sub_resource type="DynamicFont" id=16]
|
||||
size = 42
|
||||
font_data = ExtResource( 22 )
|
||||
@ -459,140 +448,6 @@ custom_fonts/font = ExtResource( 19 )
|
||||
text = "Quit Don't Save"
|
||||
script = ExtResource( 23 )
|
||||
|
||||
[node name="SwapKeysMenu" type="Panel" parent="ControlsMenu"]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
material = SubResource( 18 )
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
focus_mode = 2
|
||||
input_pass_on_modal_close_click = false
|
||||
script = ExtResource( 25 )
|
||||
|
||||
[node name="VBoxContainer2" type="VBoxContainer" parent="ControlsMenu/SwapKeysMenu"]
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
margin_left = -139.0
|
||||
margin_top = -123.0
|
||||
margin_right = 139.0
|
||||
margin_bottom = 123.0
|
||||
focus_mode = 2
|
||||
custom_constants/separation = 30
|
||||
|
||||
[node name="Prompt" type="Label" parent="ControlsMenu/SwapKeysMenu/VBoxContainer2"]
|
||||
margin_right = 278.0
|
||||
margin_bottom = 21.0
|
||||
grow_horizontal = 2
|
||||
mouse_filter = 0
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 0
|
||||
custom_fonts/font = SubResource( 19 )
|
||||
text = "selected button already assigned
|
||||
swap Button actions?"
|
||||
align = 1
|
||||
valign = 1
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="ControlsMenu/SwapKeysMenu/VBoxContainer2"]
|
||||
margin_top = 51.0
|
||||
margin_right = 278.0
|
||||
margin_bottom = 174.0
|
||||
custom_constants/separation = 20
|
||||
alignment = 1
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="ControlsMenu/SwapKeysMenu/VBoxContainer2/HBoxContainer"]
|
||||
margin_left = 15.0
|
||||
margin_right = 129.0
|
||||
margin_bottom = 123.0
|
||||
size_flags_horizontal = 0
|
||||
size_flags_vertical = 0
|
||||
|
||||
[node name="Action1" type="Label" parent="ControlsMenu/SwapKeysMenu/VBoxContainer2/HBoxContainer/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
margin_right = 114.0
|
||||
margin_bottom = 9.0
|
||||
text = "Action 1"
|
||||
align = 1
|
||||
|
||||
[node name="ControllerButton1" type="Button" parent="ControlsMenu/SwapKeysMenu/VBoxContainer2/HBoxContainer/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
margin_top = 13.0
|
||||
margin_right = 114.0
|
||||
margin_bottom = 123.0
|
||||
focus_mode = 0
|
||||
size_flags_horizontal = 0
|
||||
size_flags_vertical = 0
|
||||
shortcut_in_tooltip = false
|
||||
button_mask = 0
|
||||
enabled_focus_mode = 0
|
||||
icon = ExtResource( 27 )
|
||||
icon_align = 1
|
||||
script = ExtResource( 20 )
|
||||
path = "duck"
|
||||
|
||||
[node name="VBoxContainer2" type="VBoxContainer" parent="ControlsMenu/SwapKeysMenu/VBoxContainer2/HBoxContainer"]
|
||||
margin_left = 149.0
|
||||
margin_right = 263.0
|
||||
margin_bottom = 123.0
|
||||
size_flags_horizontal = 0
|
||||
size_flags_vertical = 0
|
||||
|
||||
[node name="Action2" type="Label" parent="ControlsMenu/SwapKeysMenu/VBoxContainer2/HBoxContainer/VBoxContainer2"]
|
||||
unique_name_in_owner = true
|
||||
margin_right = 114.0
|
||||
margin_bottom = 9.0
|
||||
text = "Action 2"
|
||||
align = 1
|
||||
|
||||
[node name="ControllerButton2" type="Button" parent="ControlsMenu/SwapKeysMenu/VBoxContainer2/HBoxContainer/VBoxContainer2"]
|
||||
unique_name_in_owner = true
|
||||
margin_top = 13.0
|
||||
margin_right = 114.0
|
||||
margin_bottom = 123.0
|
||||
focus_mode = 0
|
||||
size_flags_horizontal = 0
|
||||
size_flags_vertical = 0
|
||||
shortcut_in_tooltip = false
|
||||
button_mask = 0
|
||||
enabled_focus_mode = 0
|
||||
icon = ExtResource( 27 )
|
||||
icon_align = 1
|
||||
script = ExtResource( 20 )
|
||||
path = "duck"
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="ControlsMenu/SwapKeysMenu/VBoxContainer2"]
|
||||
margin_top = 204.0
|
||||
margin_right = 278.0
|
||||
margin_bottom = 246.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
focus_mode = 2
|
||||
mouse_filter = 0
|
||||
input_pass_on_modal_close_click = false
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 0
|
||||
alignment = 1
|
||||
|
||||
[node name="Yes" type="Button" parent="ControlsMenu/SwapKeysMenu/VBoxContainer2/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
margin_right = 278.0
|
||||
margin_bottom = 19.0
|
||||
focus_neighbour_top = NodePath("../No")
|
||||
focus_neighbour_bottom = NodePath("../No")
|
||||
text = "Yes"
|
||||
script = ExtResource( 23 )
|
||||
|
||||
[node name="No" type="Button" parent="ControlsMenu/SwapKeysMenu/VBoxContainer2/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
margin_top = 23.0
|
||||
margin_right = 278.0
|
||||
margin_bottom = 42.0
|
||||
focus_neighbour_top = NodePath("../Yes")
|
||||
focus_neighbour_bottom = NodePath("../Yes")
|
||||
text = "NO"
|
||||
script = ExtResource( 23 )
|
||||
|
||||
[node name="AudioMenu" type="Control" parent="."]
|
||||
visible = false
|
||||
anchor_right = 1.0
|
||||
@ -934,8 +789,6 @@ volume_db = -10.0
|
||||
[connection signal="button_up" from="ControlsMenu/ReallyQuitMenu/VBoxContainer/SaveNQuit" to="ControlsMenu/ReallyQuitMenu/VBoxContainer/SaveNQuit" method="_on_button_up"]
|
||||
[connection signal="button_up" from="ControlsMenu/ReallyQuitMenu/VBoxContainer/ContinueEdit" to="ControlsMenu/ReallyQuitMenu" method="close"]
|
||||
[connection signal="button_up" from="ControlsMenu/ReallyQuitMenu/VBoxContainer/QuitDontSave" to="ControlsMenu" method="close"]
|
||||
[connection signal="pressed" from="ControlsMenu/SwapKeysMenu/VBoxContainer2/VBoxContainer/Yes" to="ControlsMenu/SwapKeysMenu" method="swap"]
|
||||
[connection signal="pressed" from="ControlsMenu/SwapKeysMenu/VBoxContainer2/VBoxContainer/No" to="ControlsMenu/SwapKeysMenu" method="do_not_swap"]
|
||||
[connection signal="button_up" from="AudioMenu/Panel/Back" to="." method="close_audio_menu"]
|
||||
[connection signal="button_up" from="AudioMenu/Panel/Back" to="AudioMenu" method="save"]
|
||||
[connection signal="button_up" from="PauseOverlay/Panel/VBoxContainer/Continue" to="PauseOverlay/Panel/VBoxContainer/Continue" method="_on_button_up"]
|
||||
|
||||
@ -7,12 +7,6 @@ func clear():
|
||||
for child in get_children():
|
||||
child.free()
|
||||
|
||||
func get_input_line(action_name) -> Control:
|
||||
for child in get_children():
|
||||
if child.action == action_name:
|
||||
return child
|
||||
return null
|
||||
|
||||
func add_input_line(action_name, event) -> Control:
|
||||
var line = InputLine.instance()
|
||||
add_child(line)
|
||||
|
||||
@ -6,15 +6,13 @@ onready var changes_saved := false
|
||||
|
||||
var block_ui_cancel = false
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
$InputMapper.connect("profile_changed", self, "rebuild")
|
||||
$InputMapper.connect('profile_changed', self, 'rebuild')
|
||||
$InputMapper.initialize_profiles()
|
||||
$ProfilesMenu.initialize($InputMapper)
|
||||
$ProfilesMenu.grab_focus()
|
||||
$InputMapper.change_profile($ProfilesMenu.selected)
|
||||
|
||||
|
||||
func _input(event: InputEvent) -> void:
|
||||
# TODO Static quit button esc
|
||||
if !event.is_action("ui_cancel") || !visible:
|
||||
@ -30,17 +28,9 @@ func rebuild(input_profile) -> void:
|
||||
_action_list.clear()
|
||||
var first = true
|
||||
var prev_line
|
||||
for order_action in $InputMapper.profile_order:
|
||||
|
||||
var input_action := ""
|
||||
|
||||
for action in input_profile.keys():
|
||||
if action == order_action:
|
||||
input_action = action
|
||||
|
||||
if input_action == "":
|
||||
for input_action in input_profile.keys():
|
||||
if(input_action.ends_with("_old") || input_action.begins_with(("ui_"))):
|
||||
continue
|
||||
|
||||
var line = _action_list.add_input_line(input_action, input_profile[input_action])
|
||||
# child(2) is the actual button inside the inputline
|
||||
if first:
|
||||
@ -55,13 +45,7 @@ func rebuild(input_profile) -> void:
|
||||
line.get_child(2).focus_neighbour_left = $"%Back".get_path()
|
||||
line.get_child(2).focus_neighbour_right = $"%Save".get_path()
|
||||
prev_line = line.get_child(2)
|
||||
line.connect(
|
||||
"change_button_pressed",
|
||||
self,
|
||||
"_on_InputLine_change_button_pressed",
|
||||
[input_action, line]
|
||||
)
|
||||
|
||||
line.connect('change_button_pressed', self, '_on_InputLine_change_button_pressed', [input_action, line])
|
||||
|
||||
func _on_InputLine_change_button_pressed(action_name, line):
|
||||
var old_event = $InputMapper.get_selected_profile()[action_name]
|
||||
@ -69,62 +53,7 @@ func _on_InputLine_change_button_pressed(action_name, line):
|
||||
var event = yield($"%KeySelectMenu", "key_selected")
|
||||
if event == null:
|
||||
return
|
||||
|
||||
#Check if events are basically the same
|
||||
#TODO Problem with different physical locations of the same key
|
||||
if "scancode" in old_event && "scancode" in event:
|
||||
if event.scancode == old_event.scancode:
|
||||
return
|
||||
elif event == old_event:
|
||||
return
|
||||
|
||||
var action_with_same_event: String = check_doubled_event(event)
|
||||
|
||||
# Routine to swap buttons
|
||||
# TODO put into function
|
||||
if action_with_same_event != "":
|
||||
# Check doubled reads from the InputMap and alternative actions are only virtual
|
||||
if action_with_same_event == action_name:
|
||||
action_with_same_event = "alt " + action_name
|
||||
$"%SwapKeysMenu".open(action_name, action_with_same_event, old_event, event)
|
||||
var swap = yield($"SwapKeysMenu", "selection_made")
|
||||
if swap:
|
||||
swap_buttons(action_name, action_with_same_event, old_event, event)
|
||||
print("bakayaroo!")
|
||||
return
|
||||
|
||||
if $InputMapper.change_action_key(action_name, event, old_event):
|
||||
if($InputMapper.change_action_key(action_name, event, old_event)):
|
||||
changes_made = true
|
||||
changes_saved = false
|
||||
line.update_key(event)
|
||||
|
||||
func check_doubled_event(event: InputEvent) -> String:
|
||||
for action in $InputMapper.get_selected_profile().keys():
|
||||
if action.begins_with("ui_") || action.ends_with("_old"):
|
||||
continue
|
||||
var assigned_event: InputEvent = $InputMapper.get_selected_profile()[action]
|
||||
if "scancode" in assigned_event && "scancode" in event:
|
||||
if event.scancode == assigned_event.scancode:
|
||||
return action
|
||||
else:
|
||||
if event == assigned_event:
|
||||
return action
|
||||
return ""
|
||||
|
||||
func swap_buttons(action1, action2, old_event, new_event) -> void:
|
||||
var input_line1 = $"%ActionKeyList".get_input_line(action1)
|
||||
var input_line2 = $"%ActionKeyList".get_input_line(action2)
|
||||
if $InputMapper.change_action_key(action1, new_event, old_event):
|
||||
changes_made = true
|
||||
changes_saved = false
|
||||
input_line1.update_key(new_event)
|
||||
else:
|
||||
return
|
||||
|
||||
# Avoid erasing the just assigned "old" event from the input map,
|
||||
# when swapping alternative button assignments in place
|
||||
if action1.trim_prefix("alt ") == action2.trim_prefix("alt "):
|
||||
new_event = old_event
|
||||
|
||||
if $InputMapper.change_action_key(action2, old_event, new_event):
|
||||
input_line2.update_key(old_event)
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=31 format=2]
|
||||
[gd_scene load_steps=28 format=2]
|
||||
|
||||
[ext_resource path="res://src/UserInterface/Screens/MainMenu/ControlsMenu/SaveButton.gd" type="Script" id=1]
|
||||
[ext_resource path="res://src/UserInterface/Screens/MainMenu/ControlsMenu/SavedCheckBackButton.gd" type="Script" id=2]
|
||||
@ -10,7 +10,6 @@
|
||||
[ext_resource path="res://src/UserInterface/Buttons/AudibleButton.gd" type="Script" id=8]
|
||||
[ext_resource path="res://assets/environment/background/Spaceship-Wall-Menu.png" type="Texture" id=9]
|
||||
[ext_resource path="res://assets/environment/background/starry-space.png" type="Texture" id=10]
|
||||
[ext_resource path="res://src/UserInterface/Screens/MainMenu/ControlsMenu/SwapKeysMenu.gd" type="Script" id=11]
|
||||
[ext_resource path="res://assets/ui/Screenshot 2023-05-23 160521.png" type="Texture" id=12]
|
||||
[ext_resource path="res://src/UserInterface/Screens/MainMenu/ControlsMenu/ProfilesMenu.gd" type="Script" id=13]
|
||||
[ext_resource path="res://src/UserInterface/Screens/MainMenu/ControlsMenu/ActionKeyList.gd" type="Script" id=14]
|
||||
@ -22,8 +21,6 @@
|
||||
[ext_resource path="res://assets/ui/sci-fi-godot-theme/sci-fi-theme.tres" type="Theme" id=20]
|
||||
[ext_resource path="res://assets/ui/fonts/Kenney Thick.ttf" type="DynamicFontData" id=21]
|
||||
[ext_resource path="res://assets/ui/fonts/kenny_thick.tres" type="DynamicFont" id=22]
|
||||
[ext_resource path="res://addons/controller_icons/objects/Button.gd" type="Script" id=23]
|
||||
[ext_resource path="res://addons/controller_icons/assets/key/arrow_down.png" type="Texture" id=24]
|
||||
|
||||
[sub_resource type="DynamicFont" id=1]
|
||||
size = 42
|
||||
@ -258,8 +255,6 @@ follow_focus = true
|
||||
|
||||
[node name="ActionKeyList" type="VBoxContainer" parent="Panel/KeymapViewer/ScrollContainer"]
|
||||
unique_name_in_owner = true
|
||||
margin_right = 600.0
|
||||
margin_bottom = 189.0
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
script = ExtResource( 14 )
|
||||
@ -426,140 +421,6 @@ text = "Quit Don't Save"
|
||||
script = ExtResource( 19 )
|
||||
next_screen_path = "res://src/UserInterface/Screens/MainMenu/MainScreen.tscn"
|
||||
|
||||
[node name="SwapKeysMenu" type="Panel" parent="."]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
material = SubResource( 8 )
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
focus_mode = 2
|
||||
input_pass_on_modal_close_click = false
|
||||
script = ExtResource( 11 )
|
||||
|
||||
[node name="VBoxContainer2" type="VBoxContainer" parent="SwapKeysMenu"]
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
margin_left = -139.0
|
||||
margin_top = -123.0
|
||||
margin_right = 139.0
|
||||
margin_bottom = 123.0
|
||||
focus_mode = 2
|
||||
custom_constants/separation = 30
|
||||
|
||||
[node name="Prompt" type="Label" parent="SwapKeysMenu/VBoxContainer2"]
|
||||
margin_right = 278.0
|
||||
margin_bottom = 21.0
|
||||
grow_horizontal = 2
|
||||
mouse_filter = 0
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 0
|
||||
custom_fonts/font = SubResource( 10 )
|
||||
text = "selected button already assigned
|
||||
swap Button actions?"
|
||||
align = 1
|
||||
valign = 1
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="SwapKeysMenu/VBoxContainer2"]
|
||||
margin_top = 51.0
|
||||
margin_right = 278.0
|
||||
margin_bottom = 174.0
|
||||
custom_constants/separation = 20
|
||||
alignment = 1
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="SwapKeysMenu/VBoxContainer2/HBoxContainer"]
|
||||
margin_left = 15.0
|
||||
margin_right = 129.0
|
||||
margin_bottom = 123.0
|
||||
size_flags_horizontal = 0
|
||||
size_flags_vertical = 0
|
||||
|
||||
[node name="Action1" type="Label" parent="SwapKeysMenu/VBoxContainer2/HBoxContainer/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
margin_right = 114.0
|
||||
margin_bottom = 9.0
|
||||
text = "Action 1"
|
||||
align = 1
|
||||
|
||||
[node name="ControllerButton1" type="Button" parent="SwapKeysMenu/VBoxContainer2/HBoxContainer/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
margin_top = 13.0
|
||||
margin_right = 114.0
|
||||
margin_bottom = 123.0
|
||||
focus_mode = 0
|
||||
size_flags_horizontal = 0
|
||||
size_flags_vertical = 0
|
||||
shortcut_in_tooltip = false
|
||||
button_mask = 0
|
||||
enabled_focus_mode = 0
|
||||
icon = ExtResource( 24 )
|
||||
icon_align = 1
|
||||
script = ExtResource( 23 )
|
||||
path = "duck"
|
||||
|
||||
[node name="VBoxContainer2" type="VBoxContainer" parent="SwapKeysMenu/VBoxContainer2/HBoxContainer"]
|
||||
margin_left = 149.0
|
||||
margin_right = 263.0
|
||||
margin_bottom = 123.0
|
||||
size_flags_horizontal = 0
|
||||
size_flags_vertical = 0
|
||||
|
||||
[node name="Action2" type="Label" parent="SwapKeysMenu/VBoxContainer2/HBoxContainer/VBoxContainer2"]
|
||||
unique_name_in_owner = true
|
||||
margin_right = 114.0
|
||||
margin_bottom = 9.0
|
||||
text = "Action 2"
|
||||
align = 1
|
||||
|
||||
[node name="ControllerButton2" type="Button" parent="SwapKeysMenu/VBoxContainer2/HBoxContainer/VBoxContainer2"]
|
||||
unique_name_in_owner = true
|
||||
margin_top = 13.0
|
||||
margin_right = 114.0
|
||||
margin_bottom = 123.0
|
||||
focus_mode = 0
|
||||
size_flags_horizontal = 0
|
||||
size_flags_vertical = 0
|
||||
shortcut_in_tooltip = false
|
||||
button_mask = 0
|
||||
enabled_focus_mode = 0
|
||||
icon = ExtResource( 24 )
|
||||
icon_align = 1
|
||||
script = ExtResource( 23 )
|
||||
path = "duck"
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="SwapKeysMenu/VBoxContainer2"]
|
||||
margin_top = 204.0
|
||||
margin_right = 278.0
|
||||
margin_bottom = 246.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
focus_mode = 2
|
||||
mouse_filter = 0
|
||||
input_pass_on_modal_close_click = false
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 0
|
||||
alignment = 1
|
||||
|
||||
[node name="Yes" type="Button" parent="SwapKeysMenu/VBoxContainer2/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
margin_right = 278.0
|
||||
margin_bottom = 19.0
|
||||
focus_neighbour_top = NodePath("../No")
|
||||
focus_neighbour_bottom = NodePath("../No")
|
||||
text = "Yes"
|
||||
script = ExtResource( 8 )
|
||||
|
||||
[node name="No" type="Button" parent="SwapKeysMenu/VBoxContainer2/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
margin_top = 23.0
|
||||
margin_right = 278.0
|
||||
margin_bottom = 42.0
|
||||
focus_neighbour_top = NodePath("../Yes")
|
||||
focus_neighbour_bottom = NodePath("../Yes")
|
||||
text = "NO"
|
||||
script = ExtResource( 8 )
|
||||
|
||||
[connection signal="button_up" from="Panel/Back" to="Panel/Back" method="_on_button_up"]
|
||||
[connection signal="button_up" from="Panel/Reset" to="Panel/Reset" method="_on_button_up"]
|
||||
[connection signal="button_up" from="Panel/Save" to="Panel/Save" method="_on_button_up"]
|
||||
@ -568,5 +429,3 @@ script = ExtResource( 8 )
|
||||
[connection signal="button_up" from="ReallyQuitMenu/VBoxContainer/SaveNQuit" to="ReallyQuitMenu/VBoxContainer/SaveNQuit" method="_on_button_up"]
|
||||
[connection signal="button_up" from="ReallyQuitMenu/VBoxContainer/ContinueEdit" to="ReallyQuitMenu" method="close"]
|
||||
[connection signal="button_up" from="ReallyQuitMenu/VBoxContainer/QuitDontSave" to="ReallyQuitMenu/VBoxContainer/QuitDontSave" method="_on_button_up"]
|
||||
[connection signal="pressed" from="SwapKeysMenu/VBoxContainer2/VBoxContainer/Yes" to="SwapKeysMenu" method="swap"]
|
||||
[connection signal="pressed" from="SwapKeysMenu/VBoxContainer2/VBoxContainer/No" to="SwapKeysMenu" method="do_not_swap"]
|
||||
|
||||
@ -5,10 +5,8 @@ signal change_button_pressed
|
||||
export var button_size: Vector2 = Vector2(30, 30)
|
||||
export var interactable: bool = false
|
||||
|
||||
onready var action = ""
|
||||
|
||||
func initialize(action_name, event):
|
||||
action = action_name
|
||||
$Action.text = action_name.capitalize()
|
||||
$Key.add_child(create_controller_button(event))
|
||||
|
||||
|
||||
@ -9,23 +9,19 @@ var profiles = {
|
||||
1: 'controller'
|
||||
}
|
||||
|
||||
var profile_order = ["move_left", "alt move_left", "move_right", "alt move_right", "jump", "run", "duck",
|
||||
"alt duck", "up", "alt up", "interact", "pause"]
|
||||
|
||||
var keyboard = {}
|
||||
var controller = {}
|
||||
|
||||
func change_profile(id: int) -> Dictionary:
|
||||
func change_profile(id):
|
||||
current_profile_id = id
|
||||
var profile = get(profiles[id])
|
||||
|
||||
for action_name in profile.keys():
|
||||
change_action_key(action_name, profile[action_name])
|
||||
|
||||
emit_signal('profile_changed', profile)
|
||||
return profile
|
||||
|
||||
func commit_to_changes() -> void:
|
||||
func commit_to_changes():
|
||||
for profile_name in profiles.values():
|
||||
var profile = get(profile_name)
|
||||
for action_name in profile.keys():
|
||||
@ -33,11 +29,7 @@ func commit_to_changes() -> void:
|
||||
continue
|
||||
erase_old_action_event(action_name)
|
||||
profile[action_name + "_old"] = profile[action_name]
|
||||
var a_name = action_name
|
||||
# Assign the alternative event to the same action as the regular event
|
||||
if(action_name.begins_with("alt")):
|
||||
action_name = action_name.trim_prefix("alt ")
|
||||
InputMap.action_add_event(action_name, profile[a_name])
|
||||
InputMap.action_add_event(action_name, profile[action_name])
|
||||
|
||||
func change_action_key(action_name, event, old_event = null) -> bool:
|
||||
if(old_event != null):
|
||||
@ -47,43 +39,25 @@ func change_action_key(action_name, event, old_event = null) -> bool:
|
||||
get_selected_profile()[action_name] = event
|
||||
return true
|
||||
|
||||
func erase_old_action_event(action_name: String) -> void:
|
||||
func erase_old_action_event(action_name):
|
||||
if(get_selected_profile().has(action_name+"_old")):
|
||||
var old_event = get_selected_profile()[action_name+"_old"]
|
||||
var event = get_selected_profile()[action_name]
|
||||
if(old_event != event):
|
||||
if(action_name.begins_with("alt")):
|
||||
action_name = action_name.trim_prefix("alt ")
|
||||
InputMap.action_erase_event(action_name, old_event)
|
||||
|
||||
func initialize_profiles() -> void:
|
||||
var actions: Array = InputMap.get_actions()
|
||||
actions.sort()
|
||||
for action in actions:
|
||||
var input_events: Array = InputMap.get_action_list(action)
|
||||
var controller_events: Array = []
|
||||
var keyboard_events: Array = []
|
||||
|
||||
for input_event in input_events:
|
||||
if input_event.as_text().match("*Joypad*"):
|
||||
controller_events.append(input_event)
|
||||
if !input_event.as_text().match("*Joy*"):
|
||||
keyboard_events.append(input_event)
|
||||
|
||||
if controller_events.size() > 0:
|
||||
controller[action] = controller_events[0]
|
||||
controller[action+"_old"] = controller_events[0]
|
||||
if controller_events.size() > 1:
|
||||
controller["alt " + action] = controller_events[1]
|
||||
controller["alt " + action +"_old"] = controller_events[1]
|
||||
|
||||
if keyboard_events.size() > 0:
|
||||
keyboard[action] = keyboard_events[0]
|
||||
keyboard[action + "_old"] = keyboard_events[0]
|
||||
if keyboard_events.size() > 1:
|
||||
keyboard["alt " + action] = keyboard_events[1]
|
||||
keyboard["alt " + action + "_old"] = keyboard_events[1]
|
||||
|
||||
var input_events = InputMap.get_action_list(action)
|
||||
for event in input_events:
|
||||
if event.as_text().match("*JoypadButton*"):
|
||||
controller[action] = event
|
||||
controller[action+"_old"] = event
|
||||
elif !event.as_text().match("*Joy*"):
|
||||
keyboard[action] = event
|
||||
keyboard[action+"_old"] = event
|
||||
change_profile(current_profile_id)
|
||||
|
||||
func get_selected_profile():
|
||||
|
||||
@ -17,8 +17,8 @@ func _input(event: InputEvent) -> void:
|
||||
event = null
|
||||
accept_event()
|
||||
get_tree().set_input_as_handled()
|
||||
close()
|
||||
emit_signal("key_selected", event)
|
||||
close()
|
||||
|
||||
func open():
|
||||
show()
|
||||
|
||||
@ -1,53 +0,0 @@
|
||||
extends Panel
|
||||
|
||||
signal selection_made(result)
|
||||
|
||||
var prev_focus
|
||||
|
||||
var selected_action
|
||||
var action_with_same_event
|
||||
var new_event_for_selected_action
|
||||
var old_event_for_selected_action
|
||||
|
||||
func open(selected_action: String, action_with_same_event: String,
|
||||
old_event_for_selected_action: InputEvent, new_event_for_selected_action: InputEvent) -> void:
|
||||
prev_focus = get_focus_owner()
|
||||
self.selected_action = selected_action
|
||||
self.action_with_same_event = action_with_same_event
|
||||
self.new_event_for_selected_action = new_event_for_selected_action
|
||||
self.old_event_for_selected_action = old_event_for_selected_action
|
||||
|
||||
$"%Action1".text = selected_action
|
||||
var event_path1 = ControllerIcons._convert_event_to_path(old_event_for_selected_action)
|
||||
$"%ControllerButton1".path = event_path1
|
||||
|
||||
$"%Action2".text = action_with_same_event
|
||||
var event_path2 = ControllerIcons._convert_event_to_path(new_event_for_selected_action)
|
||||
$"%ControllerButton2".path = event_path2
|
||||
|
||||
visible = true
|
||||
mitigate_ui_navigation_spill_over(true)
|
||||
$"%Yes".grab_focus()
|
||||
|
||||
func mitigate_ui_navigation_spill_over(var value: bool):
|
||||
var mode = Control.FOCUS_NONE if value else Control.FOCUS_ALL
|
||||
var inverse_mode = Control.FOCUS_ALL if value else Control.FOCUS_NONE
|
||||
$"%No".focus_mode = inverse_mode
|
||||
$"%Yes".focus_mode = inverse_mode
|
||||
for line in $"%ActionKeyList".get_children():
|
||||
line.get_node("ChangeButton").focus_mode = mode
|
||||
|
||||
func close() -> void:
|
||||
visible = false
|
||||
mitigate_ui_navigation_spill_over(false)
|
||||
prev_focus.set_focus_mode(Control.FOCUS_ALL)
|
||||
prev_focus.grab_focus()
|
||||
|
||||
func swap() -> void:
|
||||
close()
|
||||
emit_signal("selection_made", true)
|
||||
|
||||
func do_not_swap() -> void:
|
||||
close()
|
||||
emit_signal("selection_made", false)
|
||||
|
||||
@ -11,8 +11,8 @@ func initialize_with_progress(levelFullName: String) -> void:
|
||||
|
||||
var level_time : float = GlobalState.get_level_time(levelFullName)
|
||||
if(GlobalState.get_level_completed(levelFullName)):
|
||||
$"%LevelTime".visible = true
|
||||
$"%LevelTime".text = "Time " + str(round(level_time*1000)/1000) + " sec"
|
||||
$LevelTime.visible = true
|
||||
$LevelTime.text = "Time " + str(round(level_time*1000)/1000) + " sec"
|
||||
|
||||
|
||||
func register_froggy(var count : int = 0, var freed: bool = false) -> void:
|
||||
|
||||
@ -45,9 +45,9 @@ script = ExtResource( 4 )
|
||||
[node name="FreedFroggy1" type="TextureRect" parent="."]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
margin_top = 21.0
|
||||
margin_right = 126.0
|
||||
margin_bottom = 40.0
|
||||
margin_top = 28.0
|
||||
margin_right = 119.0
|
||||
margin_bottom = 47.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
focus_mode = 2
|
||||
@ -163,12 +163,10 @@ size_flags_vertical = 3
|
||||
texture = ExtResource( 2 )
|
||||
|
||||
[node name="LevelTime" type="Label" parent="."]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
margin_top = 21.0
|
||||
margin_right = 126.0
|
||||
margin_bottom = 32.0
|
||||
focus_mode = 2
|
||||
custom_colors/font_color = Color( 0.717647, 0.717647, 0.717647, 1 )
|
||||
custom_fonts/font = SubResource( 13 )
|
||||
text = "Time: 10 sec"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user