fix collision and hover issue
This commit is contained in:
parent
d520cd58b9
commit
d3b3dcfea0
2 changed files with 13 additions and 3 deletions
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue