Compare commits

...

2 commits

Author SHA1 Message Date
Lucas Peter
300ed066fc
wip: fix map1 2024-07-31 18:04:34 +02:00
Lucas Peter
d3b3dcfea0
fix collision and hover issue 2024-07-31 18:04:21 +02:00
3 changed files with 101 additions and 43 deletions

View file

@ -46,7 +46,7 @@ func pointcast():
#region Fill hoveredColliders #region Fill hoveredColliders
for _object in CastResult: for _object in CastResult:
if(_object.collider.input_pickable == true): if(_object.collider.input_pickable == true):
hoveredColliders.append(_object.collider) #Get the object that have the collision hoveredColliders.append(_object.collider)
#endregion #endregion
if (hoveredColliders.size() > 0): if (hoveredColliders.size() > 0):
if (hoveredColliders.size() >= 2): if (hoveredColliders.size() >= 2):
@ -115,7 +115,9 @@ func grab_start():
func grab_end(): func grab_end():
if (grabbedStickerNode.has_method("on_released")): if (grabbedStickerNode.has_method("on_released")):
grabbedStickerNode.on_unhover()
grabbedStickerNode.on_released() grabbedStickerNode.on_released()
print("stopg grabbin at ",query.position ) print("stopg grabbin at ",query.position )
DebugDraw.points.append(query.position) DebugDraw.points.append(query.position)

View file

@ -15,6 +15,13 @@ class_name Sticker extends Area2D
@export_group("Material") @export_group("Material")
@export var OutlineMat:ShaderMaterial = preload("res://shaders/shaderMaterial_Outline.tres") @export var OutlineMat:ShaderMaterial = preload("res://shaders/shaderMaterial_Outline.tres")
@export var Foiled:bool #TODO: Foil material and logic @export var Foiled:bool #TODO: Foil material and logic
@export var CreateShape:bool:
set(value):
var test = CollisionShape2D.new()
test.set_name("StickerShape")
add_child(test)
test.set_owner(get_tree().get_edited_scene_root())
test = null
var meta:PackedStringArray = ["sticker"] var meta:PackedStringArray = ["sticker"]
@ -48,7 +55,7 @@ func on_released(CastResult:Array=[]):
get_parent().reparent(MapManager.current_scene.get_child(0)) get_parent().reparent(MapManager.current_scene.get_child(0))
disable_ChildNodes_collisions(false) disable_ChildNodes_collisions(false)
update_ChildNodes_visibilty(true) update_ChildNodes_visibilty(true)
#on_unhover() # When released behind another sticker, sometimes cursor cannot reach
func on_click(): func on_click():
print(self," clicked") print(self," clicked")
@ -80,6 +87,7 @@ func on_grab(_offset:Vector2=Vector2(0.0,0.0)):
get_parent().top_level = true get_parent().top_level = true
get_parent().reparent(get_tree().root) get_parent().reparent(get_tree().root)
update_ChildNodes_visibilty(false) update_ChildNodes_visibilty(false)
disable_ChildNodes_collisions(true)
func update_ChildNodes_visibilty(_visible:bool=true): func update_ChildNodes_visibilty(_visible:bool=true):
for _childNode in get_parent().get_children(): for _childNode in get_parent().get_children():
@ -88,5 +96,5 @@ func update_ChildNodes_visibilty(_visible:bool=true):
func disable_ChildNodes_collisions(_disable:bool=true): func disable_ChildNodes_collisions(_disable:bool=true):
for _childNode in get_parent().get_children(): for _childNode in get_parent().get_children():
_childNode.set_deferred("disabled",_disable) _childNode.process_mode = Node.PROCESS_MODE_DISABLED if _disable else Node.PROCESS_MODE_ALWAYS

View file

@ -1,12 +1,14 @@
[gd_scene load_steps=27 format=3 uid="uid://wlqsvbqpcbh"] [gd_scene load_steps=29 format=3 uid="uid://wlqsvbqpcbh"]
[ext_resource type="Texture2D" uid="uid://cacwy4tka88k1" path="res://maps/map1.tres" id="1_pt5vq"] [ext_resource type="Texture2D" uid="uid://cacwy4tka88k1" path="res://maps/map1.tres" id="1_pt5vq"]
[ext_resource type="Texture2D" uid="uid://dggavne4ueche" path="res://textures/sprites/Tree_Field_01_SPRT.png" id="4_74dki"]
[ext_resource type="PackedScene" uid="uid://do65rgg0p2plt" path="res://core/Door.tscn" id="4_lwk0u"] [ext_resource type="PackedScene" uid="uid://do65rgg0p2plt" path="res://core/Door.tscn" id="4_lwk0u"]
[ext_resource type="Texture2D" uid="uid://ddajgcwn5ip4c" path="res://textures/sprites/plants_bush1.tres" id="4_m2p3o"] [ext_resource type="Texture2D" uid="uid://ddajgcwn5ip4c" path="res://textures/sprites/plants_bush1.tres" id="4_m2p3o"]
[ext_resource type="PackedScene" uid="uid://bddcriwo55x8k" path="res://prefab/prefab_woddenbridge.tscn" id="4_okpsn"] [ext_resource type="PackedScene" uid="uid://bddcriwo55x8k" path="res://prefab/prefab_woddenbridge.tscn" id="4_okpsn"]
[ext_resource type="Script" path="res://core/stickernode.gd" id="5_ek34p"]
[ext_resource type="Texture2D" uid="uid://ciyh3rnoo4uk" path="res://textures/atlas/SimpleParticles_All_01_SPRT.png" id="6_0dctx"] [ext_resource type="Texture2D" uid="uid://ciyh3rnoo4uk" path="res://textures/atlas/SimpleParticles_All_01_SPRT.png" id="6_0dctx"]
[ext_resource type="Texture2D" uid="uid://1qfjbuyf5aq5" path="res://textures/sprites/props_log1.tres" id="6_8yowd"]
[ext_resource type="Texture2D" uid="uid://dcgjlblm2rpy4" path="res://textures/2d_lights_and_shadows_neutral_point_light.webp" id="7_4swoj"] [ext_resource type="Texture2D" uid="uid://dcgjlblm2rpy4" path="res://textures/2d_lights_and_shadows_neutral_point_light.webp" id="7_4swoj"]
[ext_resource type="Script" path="res://core/sticker.gd" id="8_c6p5e"]
[ext_resource type="Texture2D" uid="uid://dnomlcslicb3k" path="res://textures/sprites/props_fire1.tres" id="10_2ugv3"] [ext_resource type="Texture2D" uid="uid://dnomlcslicb3k" path="res://textures/sprites/props_fire1.tres" id="10_2ugv3"]
[sub_resource type="AtlasTexture" id="AtlasTexture_gnudx"] [sub_resource type="AtlasTexture" id="AtlasTexture_gnudx"]
@ -23,6 +25,7 @@ radius = 80.0
height = 254.0 height = 254.0
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_dqo8w"] [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_dqo8w"]
resource_name = "TreeShape"
radius = 70.0 radius = 70.0
height = 512.0 height = 512.0
@ -45,12 +48,12 @@ region = Rect2(1440, 1376, 256, 256)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_hk5e3"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_hk5e3"]
size = Vector2(201.89, 146.45) size = Vector2(201.89, 146.45)
[sub_resource type="AtlasTexture" id="AtlasTexture_w86nr"]
region = Rect2(544, 32, 160, 192)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_tss3y"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_tss3y"]
size = Vector2(127.875, 25.5) size = Vector2(127.875, 25.5)
[sub_resource type="CircleShape2D" id="CircleShape2D_8byel"]
radius = 54.91
[sub_resource type="AtlasTexture" id="AtlasTexture_4j533"] [sub_resource type="AtlasTexture" id="AtlasTexture_4j533"]
region = Rect2(1356, 1216, 192, 80) region = Rect2(1356, 1216, 192, 80)
@ -148,57 +151,73 @@ position = Vector2(-4.46976, -71.6294)
rotation = 1.6 rotation = 1.6
shape = SubResource("CapsuleShape2D_lfx7b") shape = SubResource("CapsuleShape2D_lfx7b")
[node name="Tree1" type="Sprite2D" parent="."]
position = Vector2(1592, 606)
scale = Vector2(3.80334, 3.95089)
centered = false
offset = Vector2(-251.145, -512)
metadata/tags = ["sticker"]
[node name="Area2D" type="Area2D" parent="Tree1"]
collision_layer = 2
collision_mask = 0
monitoring = false
[node name="CollisionShape2D" type="CollisionShape2D" parent="Tree1/Area2D"]
position = Vector2(0, -253.27)
rotation = 0.01
shape = SubResource("CapsuleShape2D_dqo8w")
[node name="Tree2" type="Sprite2D" parent="."] [node name="Tree2" type="Sprite2D" parent="."]
position = Vector2(-2399, -55) position = Vector2(-2399, -55)
scale = Vector2(3.80334, 3.95089) scale = Vector2(3.80334, 3.95089)
texture = ExtResource("4_74dki")
centered = false centered = false
offset = Vector2(-251.145, -512) offset = Vector2(-251.145, -512)
metadata/tags = ["sticker"] metadata/tags = ["sticker"]
[node name="Area2D" type="Area2D" parent="Tree2"] [node name="Sticker" type="Area2D" parent="Tree2" node_paths=PackedStringArray("WorldSprite")]
collision_layer = 2 collision_layer = 2
collision_mask = 0 collision_mask = 0
monitoring = false monitoring = false
script = ExtResource("5_ek34p")
WorldSprite = NodePath("..")
metadata/tags = PackedStringArray("sticker")
[node name="CollisionShape2D" type="CollisionShape2D" parent="Tree2/Area2D"] [node name="CollisionShape2D" type="CollisionShape2D" parent="Tree2/Sticker"]
position = Vector2(0, -253.27) position = Vector2(0, -253.27)
rotation = 0.01 rotation = 0.01
scale = Vector2(1, 1)
shape = SubResource("CapsuleShape2D_dqo8w") shape = SubResource("CapsuleShape2D_dqo8w")
[node name="Tree3" type="Sprite2D" parent="."] [node name="Tree5" type="Sprite2D" parent="."]
position = Vector2(-763, -2021) position = Vector2(1592, 606)
scale = Vector2(3.80334, 3.95089) scale = Vector2(3.80334, 3.95089)
texture = ExtResource("4_74dki")
centered = false centered = false
offset = Vector2(-251.145, -512) offset = Vector2(-251.145, -512)
metadata/tags = ["sticker"] metadata/tags = ["sticker"]
[node name="Area2D" type="Area2D" parent="Tree3"] [node name="Sticker" type="Area2D" parent="Tree5" node_paths=PackedStringArray("WorldSprite")]
collision_layer = 2 collision_layer = 2
collision_mask = 0 collision_mask = 0
monitoring = false monitoring = false
script = ExtResource("5_ek34p")
WorldSprite = NodePath("..")
metadata/tags = PackedStringArray("sticker")
[node name="CollisionShape2D" type="CollisionShape2D" parent="Tree3/Area2D"] [node name="CollisionShape2D" type="CollisionShape2D" parent="Tree5/Sticker"]
position = Vector2(0, -253.27) position = Vector2(0, -253.27)
rotation = 0.01 rotation = 0.01
scale = Vector2(1, 1)
shape = SubResource("CapsuleShape2D_dqo8w") shape = SubResource("CapsuleShape2D_dqo8w")
[node name="Tree6" type="Sprite2D" parent="."]
position = Vector2(-774, -2011)
scale = Vector2(3.80334, 3.95089)
texture = ExtResource("4_74dki")
centered = false
offset = Vector2(-251.145, -512)
metadata/tags = ["sticker"]
[node name="Sticker" type="Area2D" parent="Tree6" node_paths=PackedStringArray("WorldSprite")]
collision_layer = 2
collision_mask = 0
monitoring = false
script = ExtResource("5_ek34p")
WorldSprite = NodePath("..")
metadata/tags = PackedStringArray("sticker")
[node name="CollisionShape2D" type="CollisionShape2D" parent="Tree6/Sticker"]
position = Vector2(0, -253.27)
rotation = 0.01
scale = Vector2(1, 1)
shape = SubResource("CapsuleShape2D_dqo8w")
metadata/_edit_lock_ = true
[node name="Tree4" type="Sprite2D" parent="."] [node name="Tree4" type="Sprite2D" parent="."]
position = Vector2(2365, -2258) position = Vector2(2365, -2258)
scale = Vector2(3.80334, 3.95089) scale = Vector2(3.80334, 3.95089)
@ -228,7 +247,7 @@ metadata/tags = ["sticker"]
collision_layer = 2 collision_layer = 2
collision_mask = 0 collision_mask = 0
monitoring = false monitoring = false
script = ExtResource("8_c6p5e") script = ExtResource("5_ek34p")
WorldSprite = NodePath("..") WorldSprite = NodePath("..")
metadata/tags = PackedStringArray("sticker") metadata/tags = PackedStringArray("sticker")
@ -240,7 +259,7 @@ shape = SubResource("CapsuleShape2D_lfx7b")
[node name="Bush7" type="Sprite2D" parent="."] [node name="Bush7" type="Sprite2D" parent="."]
position = Vector2(712, 293) position = Vector2(712, 293)
scale = Vector2(3.80334, 3.95089) scale = Vector2(3.80334, 3.95089)
texture = SubResource("AtlasTexture_2wdar") texture = ExtResource("4_m2p3o")
centered = false centered = false
offset = Vector2(-161.055, -179.785) offset = Vector2(-161.055, -179.785)
metadata/tags = ["sticker"] metadata/tags = ["sticker"]
@ -249,7 +268,7 @@ metadata/tags = ["sticker"]
collision_layer = 2 collision_layer = 2
collision_mask = 0 collision_mask = 0
monitoring = false monitoring = false
script = ExtResource("8_c6p5e") script = ExtResource("5_ek34p")
WorldSprite = NodePath("..") WorldSprite = NodePath("..")
metadata/tags = PackedStringArray("sticker") metadata/tags = PackedStringArray("sticker")
@ -279,20 +298,24 @@ shape = SubResource("CapsuleShape2D_lfx7b")
[node name="Bush8" type="Sprite2D" parent="."] [node name="Bush8" type="Sprite2D" parent="."]
position = Vector2(-1616, -1651) position = Vector2(-1616, -1651)
scale = Vector2(3.80334, 3.95089) scale = Vector2(3.80334, 3.95089)
texture = SubResource("AtlasTexture_2wdar") texture = ExtResource("4_m2p3o")
centered = false centered = false
offset = Vector2(-137.285, -179.785) offset = Vector2(-137.285, -179.785)
flip_h = true flip_h = true
metadata/tags = ["sticker"] metadata/tags = ["sticker"]
[node name="Area2D" type="Area2D" parent="Bush8"] [node name="Sticker" type="Area2D" parent="Bush8" node_paths=PackedStringArray("WorldSprite")]
collision_layer = 2 collision_layer = 2
collision_mask = 0 collision_mask = 0
monitoring = false monitoring = false
script = ExtResource("5_ek34p")
WorldSprite = NodePath("..")
metadata/tags = PackedStringArray("sticker")
[node name="CollisionShape2D" type="CollisionShape2D" parent="Bush8/Area2D"] [node name="CollisionShape2D" type="CollisionShape2D" parent="Bush8/Sticker"]
position = Vector2(-4.46976, -71.6294) position = Vector2(29.7107, -72.6419)
rotation = 1.6 rotation = 1.6
scale = Vector2(1, 1)
shape = SubResource("CapsuleShape2D_lfx7b") shape = SubResource("CapsuleShape2D_lfx7b")
[node name="Bush10" type="Sprite2D" parent="."] [node name="Bush10" type="Sprite2D" parent="."]
@ -365,7 +388,7 @@ debug_color = Color(0.996033, 0, 0.194446, 0.42)
[node name="Log" type="Sprite2D" parent="."] [node name="Log" type="Sprite2D" parent="."]
position = Vector2(-1043, -170) position = Vector2(-1043, -170)
scale = Vector2(4, 4) scale = Vector2(4, 4)
texture = SubResource("AtlasTexture_w86nr") texture = ExtResource("6_8yowd")
centered = false centered = false
offset = Vector2(-79.665, -133.81) offset = Vector2(-79.665, -133.81)
metadata/_edit_lock_ = true metadata/_edit_lock_ = true
@ -377,6 +400,18 @@ position = Vector2(3.75, -17.5)
shape = SubResource("RectangleShape2D_tss3y") shape = SubResource("RectangleShape2D_tss3y")
debug_color = Color(0.999472, 0.00663362, 0.0810784, 0.42) debug_color = Color(0.999472, 0.00663362, 0.0810784, 0.42)
[node name="Sticker" type="Area2D" parent="Log" node_paths=PackedStringArray("WorldSprite")]
collision_layer = 2
collision_mask = 0
monitoring = false
script = ExtResource("5_ek34p")
WorldSprite = NodePath("..")
metadata/tags = PackedStringArray("sticker")
[node name="stickershape" type="CollisionShape2D" parent="Log/Sticker"]
position = Vector2(4.5, -34.75)
shape = SubResource("CircleShape2D_8byel")
[node name="WoodBarrer" type="Sprite2D" parent="."] [node name="WoodBarrer" type="Sprite2D" parent="."]
position = Vector2(1246, 2431) position = Vector2(1246, 2431)
scale = Vector2(6.5, 6.5) scale = Vector2(6.5, 6.5)
@ -395,7 +430,7 @@ debug_color = Color(0.999472, 0.00663362, 0.0810784, 0.42)
[node name="Log3" type="Sprite2D" parent="."] [node name="Log3" type="Sprite2D" parent="."]
position = Vector2(293, -810) position = Vector2(293, -810)
scale = Vector2(4, 4) scale = Vector2(4, 4)
texture = SubResource("AtlasTexture_w86nr") texture = ExtResource("6_8yowd")
centered = false centered = false
offset = Vector2(-79.665, -133.81) offset = Vector2(-79.665, -133.81)
metadata/_edit_lock_ = true metadata/_edit_lock_ = true
@ -407,6 +442,18 @@ position = Vector2(3.75, -17.5)
shape = SubResource("RectangleShape2D_tss3y") shape = SubResource("RectangleShape2D_tss3y")
debug_color = Color(0.999472, 0.00663362, 0.0810784, 0.42) debug_color = Color(0.999472, 0.00663362, 0.0810784, 0.42)
[node name="Sticker" type="Area2D" parent="Log3" node_paths=PackedStringArray("WorldSprite")]
collision_layer = 2
collision_mask = 0
monitoring = false
script = ExtResource("5_ek34p")
WorldSprite = NodePath("..")
metadata/tags = PackedStringArray("sticker")
[node name="StickerShape" type="CollisionShape2D" parent="Log3/Sticker"]
position = Vector2(4.5, -34.75)
shape = SubResource("CircleShape2D_8byel")
[node name="FirePit" type="Sprite2D" parent="."] [node name="FirePit" type="Sprite2D" parent="."]
position = Vector2(-315, -588) position = Vector2(-315, -588)
scale = Vector2(4, 4) scale = Vector2(4, 4)
@ -439,13 +486,14 @@ energy = 1.2
shadow_enabled = true shadow_enabled = true
texture = ExtResource("7_4swoj") texture = ExtResource("7_4swoj")
texture_scale = 1.9 texture_scale = 1.9
metadata/_edit_lock_ = true
[node name="Sticker" type="Area2D" parent="FirePit" node_paths=PackedStringArray("WorldSprite")] [node name="Sticker" type="Area2D" parent="FirePit" node_paths=PackedStringArray("WorldSprite")]
position = Vector2(2.75, -32) position = Vector2(2.75, -32)
collision_layer = 2 collision_layer = 2
collision_mask = 0 collision_mask = 0
monitoring = false monitoring = false
script = ExtResource("8_c6p5e") script = ExtResource("5_ek34p")
WorldSprite = NodePath("..") WorldSprite = NodePath("..")
metadata/tags = PackedStringArray("sticker") metadata/tags = PackedStringArray("sticker")
@ -453,9 +501,9 @@ metadata/tags = PackedStringArray("sticker")
shape = SubResource("CircleShape2D_wkggp") shape = SubResource("CircleShape2D_wkggp")
[connection signal="property_list_changed" from="Bush1" to="Bush1" method="_on_property_list_changed"] [connection signal="property_list_changed" from="Bush1" to="Bush1" method="_on_property_list_changed"]
[connection signal="property_list_changed" from="Tree1" to="Tree1" method="_on_property_list_changed"]
[connection signal="property_list_changed" from="Tree2" to="Tree2" method="_on_property_list_changed"] [connection signal="property_list_changed" from="Tree2" to="Tree2" method="_on_property_list_changed"]
[connection signal="property_list_changed" from="Tree3" to="Tree3" method="_on_property_list_changed"] [connection signal="property_list_changed" from="Tree5" to="Tree5" method="_on_property_list_changed"]
[connection signal="property_list_changed" from="Tree6" to="Tree6" method="_on_property_list_changed"]
[connection signal="property_list_changed" from="Tree4" to="Tree4" method="_on_property_list_changed"] [connection signal="property_list_changed" from="Tree4" to="Tree4" method="_on_property_list_changed"]
[connection signal="property_list_changed" from="Bush6" to="Bush6" method="_on_property_list_changed"] [connection signal="property_list_changed" from="Bush6" to="Bush6" method="_on_property_list_changed"]
[connection signal="property_list_changed" from="Bush7" to="Bush7" method="_on_property_list_changed"] [connection signal="property_list_changed" from="Bush7" to="Bush7" method="_on_property_list_changed"]