Add lever and jump pad components with activation logic

This commit is contained in:
2025-04-25 22:41:35 +02:00
parent 9b2ca61163
commit 8959fd4b9f
323 changed files with 12844 additions and 18 deletions

View File

@@ -0,0 +1,16 @@
shader_type canvas_item;
/**
* This shader fixes normal textures looking wrong when used with SmartShape2D.
* See: https://github.com/SirRamEsq/SmartShape2D/blob/master/addons/rmsmartshape/documentation/Normals.md
*/
varying mat2 NORMAL_MATRIX;
void vertex() {
NORMAL_MATRIX = mat2(COLOR.rg, COLOR.ba) * 2.0 - mat2(vec2(1.0), vec2(1.0));
}
void fragment() {
NORMAL.xy = NORMAL_MATRIX * NORMAL.xy;
COLOR = texture(TEXTURE, UV);
}

View File

@@ -0,0 +1,6 @@
[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://dpec5hjpflmri"]
[ext_resource type="Shader" path="res://examples/edge_shader/edge_shader.gdshader" id="1_akl0v"]
[resource]
shader = ExtResource("1_akl0v")

View File

@@ -0,0 +1,22 @@
[gd_resource type="Resource" script_class="SS2D_Material_Edge" load_steps=7 format=3 uid="uid://c8q2nrxnbopbb"]
[ext_resource type="Script" path="res://addons/rmsmartshape/materials/edge_material.gd" id="1_lbfns"]
[ext_resource type="Texture2D" uid="uid://b3aqa3bj1osvp" path="res://examples/sharp_corner_tapering/assets/tex_metal_edge.png" id="2_bmjh3"]
[ext_resource type="Texture2D" uid="uid://bobwi3r6aiiqg" path="res://examples/sharp_corner_tapering/assets/tex_metal_corner_inner.png" id="3_n1i1s"]
[ext_resource type="Texture2D" uid="uid://bc34cuc50as8f" path="res://examples/sharp_corner_tapering/assets/tex_metal_corner_outer.png" id="4_ml2u7"]
[ext_resource type="Texture2D" uid="uid://jc3g5qsmnpdd" path="res://examples/sharp_corner_tapering/assets/tex_metal_taper_corner_left.png" id="5_244mn"]
[ext_resource type="Texture2D" uid="uid://cdnfaf3bslk38" path="res://examples/sharp_corner_tapering/assets/tex_metal_taper_corner_right.png" id="6_1c2na"]
[resource]
script = ExtResource("1_lbfns")
textures = Array[Texture2D]([ExtResource("2_bmjh3")])
textures_corner_outer = Array[Texture2D]([ExtResource("4_ml2u7")])
textures_corner_inner = Array[Texture2D]([ExtResource("3_n1i1s")])
textures_taper_left = Array[Texture2D]([])
textures_taper_right = Array[Texture2D]([])
textures_taper_corner_left = Array[Texture2D]([ExtResource("5_244mn")])
textures_taper_corner_right = Array[Texture2D]([ExtResource("6_1c2na")])
randomize_texture = false
use_corner_texture = true
use_taper_texture = false
fit_mode = 0

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bobwi3r6aiiqg"
path="res://.godot/imported/tex_metal_corner_inner.png-cdfd7b81c523bc5bb5c7863d7307007e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://examples/sharp_corner_tapering/assets/tex_metal_corner_inner.png"
dest_files=["res://.godot/imported/tex_metal_corner_inner.png-cdfd7b81c523bc5bb5c7863d7307007e.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://bc34cuc50as8f"
path="res://.godot/imported/tex_metal_corner_outer.png-6ea6aecab21ef2cdfa9c20ae8389ee06.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://examples/sharp_corner_tapering/assets/tex_metal_corner_outer.png"
dest_files=["res://.godot/imported/tex_metal_corner_outer.png-6ea6aecab21ef2cdfa9c20ae8389ee06.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: 8.6 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b3aqa3bj1osvp"
path="res://.godot/imported/tex_metal_edge.png-5aaf6e458197a953a7afeee0e270fea4.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://examples/sharp_corner_tapering/assets/tex_metal_edge.png"
dest_files=["res://.godot/imported/tex_metal_edge.png-5aaf6e458197a953a7afeee0e270fea4.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: 14 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bj658oli0klj3"
path="res://.godot/imported/tex_metal_fill.png-307d5ebcedc9e8c4f154a2c09687cb41.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://examples/sharp_corner_tapering/assets/tex_metal_fill.png"
dest_files=["res://.godot/imported/tex_metal_fill.png-307d5ebcedc9e8c4f154a2c09687cb41.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.8 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://jc3g5qsmnpdd"
path="res://.godot/imported/tex_metal_taper_corner_left.png-735fbf01b6fc0725b32a91fb24aae5d5.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://examples/sharp_corner_tapering/assets/tex_metal_taper_corner_left.png"
dest_files=["res://.godot/imported/tex_metal_taper_corner_left.png-735fbf01b6fc0725b32a91fb24aae5d5.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://cdnfaf3bslk38"
path="res://.godot/imported/tex_metal_taper_corner_right.png-75d13fe99bb8e540489390ee64c63ea5.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://examples/sharp_corner_tapering/assets/tex_metal_taper_corner_right.png"
dest_files=["res://.godot/imported/tex_metal_taper_corner_right.png-75d13fe99bb8e540489390ee64c63ea5.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,315 @@
[gd_scene load_steps=46 format=3 uid="uid://cl71flny1scun"]
[ext_resource type="Script" path="res://addons/rmsmartshape/shapes/shape.gd" id="1_5hlge"]
[ext_resource type="Script" path="res://addons/rmsmartshape/vertex_properties.gd" id="2_yp1d2"]
[ext_resource type="Script" path="res://addons/rmsmartshape/shapes/point.gd" id="3_edpr6"]
[ext_resource type="Script" path="res://addons/rmsmartshape/shapes/point_array.gd" id="4_udfgv"]
[ext_resource type="Texture2D" uid="uid://bj658oli0klj3" path="res://examples/sharp_corner_tapering/assets/tex_metal_fill.png" id="6_ry0x0"]
[ext_resource type="Script" path="res://addons/rmsmartshape/materials/shape_material.gd" id="7_ncdby"]
[ext_resource type="Resource" uid="uid://c8q2nrxnbopbb" path="res://examples/sharp_corner_tapering/assets/mat_edge_metal.tres" id="8_uwntg"]
[ext_resource type="Script" path="res://addons/rmsmartshape/normal_range.gd" id="9_tqu3h"]
[ext_resource type="Script" path="res://addons/rmsmartshape/materials/edge_material.gd" id="10_55l7o"]
[ext_resource type="Script" path="res://addons/rmsmartshape/materials/edge_material_metadata.gd" id="10_umoay"]
[ext_resource type="Texture2D" uid="uid://b3aqa3bj1osvp" path="res://examples/sharp_corner_tapering/assets/tex_metal_edge.png" id="11_jc4po"]
[ext_resource type="Texture2D" uid="uid://bobwi3r6aiiqg" path="res://examples/sharp_corner_tapering/assets/tex_metal_corner_inner.png" id="12_va43u"]
[ext_resource type="Texture2D" uid="uid://bc34cuc50as8f" path="res://examples/sharp_corner_tapering/assets/tex_metal_corner_outer.png" id="13_f7yxr"]
[sub_resource type="Resource" id="Resource_2r7x3"]
script = ExtResource("2_yp1d2")
texture_idx = 0
flip = false
width = 1.0
[sub_resource type="Resource" id="Resource_vpbfx"]
script = ExtResource("3_edpr6")
position = Vector2(83.365, 45.3257)
point_in = Vector2(0, 0)
point_out = Vector2(0, 0)
properties = SubResource("Resource_2r7x3")
[sub_resource type="Resource" id="Resource_a0g7n"]
script = ExtResource("2_yp1d2")
texture_idx = 0
flip = false
width = 1.0
[sub_resource type="Resource" id="Resource_w5cbt"]
script = ExtResource("3_edpr6")
position = Vector2(263.601, 615.758)
point_in = Vector2(0, 0)
point_out = Vector2(0, 0)
properties = SubResource("Resource_a0g7n")
[sub_resource type="Resource" id="Resource_h14mo"]
script = ExtResource("2_yp1d2")
texture_idx = -4
flip = false
width = 1.0
[sub_resource type="Resource" id="Resource_j5l1j"]
script = ExtResource("3_edpr6")
position = Vector2(1026.77, 577.75)
point_in = Vector2(0, 0)
point_out = Vector2(0, 0)
properties = SubResource("Resource_h14mo")
[sub_resource type="Resource" id="Resource_ukuig"]
script = ExtResource("2_yp1d2")
texture_idx = 0
flip = false
width = 1.0
[sub_resource type="Resource" id="Resource_324cb"]
script = ExtResource("3_edpr6")
position = Vector2(731.167, 13.1754)
point_in = Vector2(0, 0)
point_out = Vector2(0, 0)
properties = SubResource("Resource_ukuig")
[sub_resource type="Resource" id="Resource_wasbm"]
script = ExtResource("2_yp1d2")
texture_idx = 0
flip = false
width = 1.0
[sub_resource type="Resource" id="Resource_p3ja8"]
script = ExtResource("3_edpr6")
position = Vector2(83.365, 45.3257)
point_in = Vector2(0, 0)
point_out = Vector2(0, 0)
properties = SubResource("Resource_wasbm")
[sub_resource type="Resource" id="Resource_1fh62"]
script = ExtResource("2_yp1d2")
texture_idx = 0
flip = false
width = 1.0
[sub_resource type="Resource" id="Resource_qjb65"]
script = ExtResource("3_edpr6")
position = Vector2(742.381, 447.381)
point_in = Vector2(0, 0)
point_out = Vector2(0, 0)
properties = SubResource("Resource_1fh62")
[sub_resource type="Resource" id="Resource_o8bfq"]
script = ExtResource("2_yp1d2")
texture_idx = 0
flip = false
width = 1.0
[sub_resource type="Resource" id="Resource_w1ohc"]
script = ExtResource("3_edpr6")
position = Vector2(641.411, 322.256)
point_in = Vector2(0, 0)
point_out = Vector2(0, 0)
properties = SubResource("Resource_o8bfq")
[sub_resource type="Resource" id="Resource_tp3up"]
script = ExtResource("2_yp1d2")
texture_idx = 0
flip = false
width = 1.0
[sub_resource type="Resource" id="Resource_tlf23"]
script = ExtResource("3_edpr6")
position = Vector2(1133.09, 291.15)
point_in = Vector2(0, 0)
point_out = Vector2(0, 0)
properties = SubResource("Resource_tp3up")
[sub_resource type="Resource" id="Resource_6u83i"]
script = ExtResource("2_yp1d2")
texture_idx = 0
flip = false
width = 1.0
[sub_resource type="Resource" id="Resource_86kx1"]
script = ExtResource("3_edpr6")
position = Vector2(546.956, 94.6283)
point_in = Vector2(0, 0)
point_out = Vector2(0, 0)
properties = SubResource("Resource_6u83i")
[sub_resource type="Resource" id="Resource_kysxg"]
script = ExtResource("2_yp1d2")
texture_idx = 0
flip = false
width = 1.0
[sub_resource type="Resource" id="Resource_eqyck"]
script = ExtResource("3_edpr6")
position = Vector2(293.278, 51.6277)
point_in = Vector2(0, 0)
point_out = Vector2(0, 0)
properties = SubResource("Resource_kysxg")
[sub_resource type="Resource" id="Resource_egpc8"]
script = ExtResource("2_yp1d2")
texture_idx = 0
flip = false
width = 1.0
[sub_resource type="Resource" id="Resource_1wyqg"]
script = ExtResource("3_edpr6")
position = Vector2(871.022, 351.231)
point_in = Vector2(0, 0)
point_out = Vector2(0, 0)
properties = SubResource("Resource_egpc8")
[sub_resource type="Resource" id="Resource_baip5"]
script = ExtResource("2_yp1d2")
texture_idx = 0
flip = false
width = 1.0
[sub_resource type="Resource" id="Resource_2owaw"]
script = ExtResource("3_edpr6")
position = Vector2(239.115, 334.66)
point_in = Vector2(0, 0)
point_out = Vector2(0, 0)
properties = SubResource("Resource_baip5")
[sub_resource type="Resource" id="Resource_o2w6y"]
script = ExtResource("4_udfgv")
_points = {
0: SubResource("Resource_vpbfx"),
1: SubResource("Resource_w5cbt"),
2: SubResource("Resource_j5l1j"),
3: SubResource("Resource_324cb"),
4: SubResource("Resource_p3ja8"),
6: SubResource("Resource_qjb65"),
8: SubResource("Resource_w1ohc"),
9: SubResource("Resource_tlf23"),
10: SubResource("Resource_86kx1"),
11: SubResource("Resource_eqyck"),
12: SubResource("Resource_1wyqg"),
13: SubResource("Resource_2owaw")
}
_point_order = PackedInt32Array(4, 11, 8, 10, 3, 12, 9, 2, 6, 1, 13, 0)
_constraints = {
Vector2i(0, 4): 15
}
_next_key = 14
_material_overrides = {}
tessellation_stages = 5
tessellation_tolerance = 4.0
curve_bake_interval = 20.0
[sub_resource type="Resource" id="Resource_42qh7"]
script = ExtResource("9_tqu3h")
begin = 0.0
distance = 360.0
edgeRendering = Vector2(0, 0)
[sub_resource type="Resource" id="Resource_t7ed3"]
script = ExtResource("10_umoay")
edge_material = ExtResource("8_uwntg")
normal_range = SubResource("Resource_42qh7")
weld = true
taper_sharp_corners = true
render = true
z_index = 0
z_as_relative = true
offset = 0.0
[sub_resource type="Resource" id="Resource_07ymf"]
script = ExtResource("7_ncdby")
_edge_meta_materials = Array[ExtResource("10_umoay")]([SubResource("Resource_t7ed3")])
fill_textures = Array[Texture2D]([ExtResource("6_ry0x0")])
fill_texture_z_index = -10
fill_texture_show_behind_parent = false
fill_texture_scale = 1.0
fill_texture_absolute_position = false
fill_texture_absolute_rotation = false
fill_texture_offset = Vector2(0, 0)
fill_texture_angle_offset = 0.0
fill_mesh_offset = 0.0
render_offset = 0.0
[sub_resource type="Resource" id="Resource_ma2v2"]
script = ExtResource("10_55l7o")
textures = Array[Texture2D]([ExtResource("11_jc4po")])
textures_corner_outer = Array[Texture2D]([ExtResource("13_f7yxr")])
textures_corner_inner = Array[Texture2D]([ExtResource("12_va43u")])
textures_taper_left = Array[Texture2D]([])
textures_taper_right = Array[Texture2D]([])
textures_taper_corner_left = Array[Texture2D]([])
textures_taper_corner_right = Array[Texture2D]([])
randomize_texture = false
use_corner_texture = true
use_taper_texture = true
fit_mode = 0
[sub_resource type="Resource" id="Resource_atqmo"]
script = ExtResource("9_tqu3h")
begin = 0.0
distance = 360.0
edgeRendering = Vector2(0, 0)
[sub_resource type="Resource" id="Resource_vboqn"]
script = ExtResource("10_umoay")
edge_material = SubResource("Resource_ma2v2")
normal_range = SubResource("Resource_atqmo")
weld = true
taper_sharp_corners = false
render = true
z_index = 0
z_as_relative = true
offset = 0.0
[sub_resource type="Resource" id="Resource_xsfev"]
script = ExtResource("7_ncdby")
_edge_meta_materials = Array[ExtResource("10_umoay")]([SubResource("Resource_vboqn")])
fill_textures = Array[Texture2D]([ExtResource("6_ry0x0")])
fill_texture_z_index = -10
fill_texture_show_behind_parent = false
fill_texture_scale = 1.0
fill_texture_absolute_position = false
fill_texture_absolute_rotation = false
fill_texture_offset = Vector2(0, 0)
fill_texture_angle_offset = 0.0
fill_mesh_offset = 0.0
render_offset = 0.0
[node name="Node2D" type="Node2D"]
[node name="WithTapering" type="Node2D" parent="."]
texture_repeat = 2
position = Vector2(-30, 228)
scale = Vector2(0.65, 0.65)
script = ExtResource("1_5hlge")
_points = SubResource("Resource_o2w6y")
shape_material = SubResource("Resource_07ymf")
[node name="WithoutTapering" type="Node2D" parent="."]
texture_repeat = 2
position = Vector2(400, 10)
scale = Vector2(0.65, 0.65)
script = ExtResource("1_5hlge")
_points = SubResource("Resource_o2w6y")
shape_material = SubResource("Resource_xsfev")
[node name="Message" type="Label" parent="."]
offset_left = 33.0
offset_top = 82.0
offset_right = 434.0
offset_bottom = 190.0
theme_override_font_sizes/font_size = 24
text = "NOTE: Sharp corner tapering can
cause issues when used on shapes
with curved geometry"
[node name="With" type="Label" parent="."]
offset_left = 275.0
offset_top = 454.0
offset_right = 503.0
offset_bottom = 477.0
text = "Sharp Corner Tapering"
[node name="Without" type="Label" parent="."]
offset_left = 666.0
offset_top = 237.0
offset_right = 907.0
offset_bottom = 260.0
text = "No Sharp Corner Tapering"