Compare commits

..

7 commits

Author SHA1 Message Date
Lucas Peter
25994d0b98
Update code and ref 2024-07-30 18:14:01 +02:00
Lucas Peter
f54aa28f8e
rework sticker
Now sticker works by being placed under any Node2D that serve as root/transform. Sticker node handle the visual aspect of the sticker.
This should be changed soon (view TODO)
2024-07-30 18:12:30 +02:00
Lucas Peter
4e658d2ff1
update stickers location 2024-07-30 18:12:11 +02:00
Lucas Peter
de2678f43d
global function update 2024-07-30 12:21:15 +02:00
Lucas Peter
750f138ee2
make cursor top level 2024-07-30 12:20:08 +02:00
Lucas Peter
ecdc0da046
change ressources handling (again) 2024-07-30 10:36:53 +02:00
Lucas Peter
e8a647c49f
fix null object 2024-07-30 10:14:56 +02:00
28 changed files with 252 additions and 150 deletions

View file

@ -1,14 +1,14 @@
extends Node2D
var spaceState
var spaceState:World2D
var query : PhysicsPointQueryParameters2D
var CastResult : Array
var hoveredObjects : Array
var hoveredObject
var hoveredSticker
var grabbedSticker
var grabbedStickerOffset
var hoveredObject:CollisionObject2D
var hoveredSticker:Area2D
var grabbedSticker:Area2D
var grabbedStickerOffset:Vector2
enum CURSOR_STATE {DEFAULT, CLICK, GRAB, GRABBED}
var currentCursorState:CURSOR_STATE = CURSOR_STATE.DEFAULT
@ -30,21 +30,13 @@ func _process(_delta):
pointcast()
cursor_look()
if (grabbedSticker != null):
grabbedSticker.position = grabbedStickerOffset+get_global_mouse_position()
grabbedSticker.get_parent().position = grabbedStickerOffset+get_global_mouse_position()
func isSticker(selectedObject:Node):
var _isSticker:bool = false
var _tags = Global.getTags(selectedObject)
if (_tags.size() > 0):
if (_tags.find("sticker") != -1):
_isSticker = true
return _isSticker
func pointcast():
resetCast()
query.collide_with_areas = true
query.collide_with_bodies = false
query.position = get_global_mouse_position()
CastResult = spaceState.direct_space_state.intersect_point(query)
# CastResult is not reliable. Objects are added randomly in the array
@ -54,7 +46,7 @@ func pointcast():
#region Fill HoveredObjects
for _object in CastResult:
if(_object.collider.input_pickable == true):
hoveredObjects.append(_object.collider.get_parent())
hoveredObjects.append(_object.collider) #Get the object that have the collision
#endregion
if (hoveredObjects.size() > 0):
if (hoveredObjects.size() >= 2):
@ -67,7 +59,7 @@ func pointcast():
if (hoveredObject and hoveredObject.has_method("on_hover")):
hoveredObject.on_hover()
print("Current hovered object :", hoveredObject)
if (isSticker(hoveredObject)):
if (Global.isSticker(hoveredObject)):
hoveredSticker = hoveredObject
print("Current hovered sticker :", hoveredSticker)
else:
@ -81,7 +73,7 @@ func resetCast(bFull = false):
CastResult.clear()
hoveredObjects.clear()
if bFull:
if (hoveredObject != null and hoveredObject.has_method("on_unhover")):
if (hoveredObject != null and hoveredObject.has_method("on_unhover") and (hoveredObject != grabbedSticker)):
hoveredObject.on_unhover()
hoveredObject = null
hoveredSticker = null
@ -98,7 +90,7 @@ func sortByPosY(objects: Array, ascending_order: bool = true):
func comparePosY(a, b):
#print("Compare ",a," at ",a.position.y, " and ",b," at ",b.position.y )
return a.position.y < b.position.y
return a.get_parent().position.y < b.get_parent().position.y #Sticker are always at 0, so we need parent position
func _input(rawInputEvent:InputEvent):
@ -115,8 +107,8 @@ func grab_start():
grabbedSticker = hoveredSticker
print("Grabbed ", grabbedSticker)
grabbedStickerOffset = grabbedSticker.position - get_global_mouse_position()
print("offset =", grabbedStickerOffset, " Stickpos:",grabbedSticker.position,"-",get_global_mouse_position() )
grabbedStickerOffset = grabbedSticker.get_parent().position - get_global_mouse_position()
print("offset =", grabbedStickerOffset, " Stickpos:",grabbedSticker.get_parent().position,"-",get_global_mouse_position() )
if (grabbedSticker.has_method("on_grab")):
grabbedSticker.on_grab(grabbedStickerOffset)
@ -126,7 +118,6 @@ func grab_end():
print("stopg grabbin at ",query.position )
DebugDraw.points.append(query.position)
DebugDraw.drawPoints()
#TODO: Drop the sticker or maybe he will auto-drop ?
grabbedSticker = null

View file

@ -51,6 +51,7 @@ animations = [{
[node name="Cursor" type="Node2D"]
top_level = true
z_index = 100
script = ExtResource("1_b5uuj")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
@ -60,7 +61,7 @@ centered = false
offset = Vector2(-80, -190)
[node name="GrabTimer" type="Timer" parent="."]
wait_time = 0.5
wait_time = 0.3
one_shot = true
[connection signal="animation_changed" from="AnimatedSprite2D" to="." method="_on_animated_sprite_2d_animation_changed"]

View file

@ -3,8 +3,7 @@ extends Sprite2D
@export_group("Travel settings")
@export_file("*.tscn") var NextScene:String
@export_enum("LEFT","RIGHT","UP","DOWN") var Travel :int
@export var Spawn_Position:Vector2 = Vector2(0,0
)
@export var Spawn_Position:Vector2 = Vector2(0,0) #TODO: Extrapoler la position suivante en fonction de l'enum Travel
var NextSceneLoaded
func _on_area_2d_area_entered(area):

View file

@ -1,23 +1,106 @@
extends Node
@tool
extends Area2D
#TODO: I need to remake stickers by exporting node directly instead of customizing all the thing in export tab.
@export_group("Sticker Detection Shape")
@export var Shape :Shape2D:
set(new_shape):
Shape = new_shape
$StickerDetectionShape.shape = Shape
$StickerDetectionShape.queue_redraw()
@export var Position :Vector2:
set(new_position):
Position = new_position
$StickerDetectionShape.position = Position
$StickerDetectionShape.queue_redraw()
@export var Rotation :float:
set(new_rotation):
Rotation = new_rotation
$StickerDetectionShape.rotation = Rotation
$StickerDetectionShape.queue_redraw()
@export_group("Sticker Sprites")
@export var WorldSprite:Texture2D:
set(new_texture):
WorldSprite = new_texture
$StickerSprite.texture = WorldSprite
$StickerSprite.queue_redraw()
@export var StickerSprite:Texture2D
@export var Offset:Vector2:
set(new_offset):
Offset = new_offset
$StickerSprite.offset = Offset
$StickerSprite.queue_redraw()
@export var FlipH:bool:
set(flip):
FlipH = flip
$StickerSprite.flip_h = FlipH
$StickerSprite.queue_redraw()
@export var OutlineMat:ShaderMaterial = preload("res://shaders/shaderMaterial_Outline.tres")
@export var PreviewSticker:bool:
set(set_preview):
PreviewSticker = set_preview
if (PreviewSticker):
$StickerSprite.texture = StickerSprite
else:
$StickerSprite.texture = WorldSprite
$StickerSprite.queue_redraw()
@export var Foiled:bool #TODO: Foil material and logic
# Called when the node enters the scene tree for the first time.
func _ready():
pass # Replace with function body.
if (position != Vector2(0,0)):
position == Vector2(0,0)
printerr(self," should not have transform, resetting")
if (get_parent() == get_tree().root):
printerr("stickers should always have a parent")
breakpoint
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass
func on_released():
print(self," released")
get_parent().top_level = false
get_parent().reparent(MapManager.current_scene.get_child(0))
for _childNode in get_parent().get_children():
_childNode.set_deferred("disabled",false)
if(_childNode != self):
_childNode.visible = true
func _on_area_2d_mouse_entered():
pass # Replace with function body.
func on_click():
print(self," clicked")
func on_hover():
if (StickerSprite != null):
$StickerSprite.texture = StickerSprite
else:
$StickerSprite.texture = WorldSprite
$StickerSprite.material = OutlineMat
queue_redraw()
func on_unhover():
$StickerSprite.texture = WorldSprite
$StickerSprite.material = null
queue_redraw()
func on_grab(_offset:Vector2=Vector2(0.0,0.0)):
get_parent().top_level = true
get_parent().reparent(get_tree().root)
for _childNode in get_parent().get_children():
_childNode.set_deferred("disabled",true)
if(_childNode != self):
_childNode.visible = false
func _on_area_2d_mouse_exited():
pass # Replace with function body.
#func _on_tree_entered():
#if(ParentSprite != null):
#var StickerTag:Array
#StickerTag.append("sticker")
#Global.add_tags(ParentSprite,StickerTag)
func _on_tree_entered():
pass # Replace with function body.
#func _on_tree_exited():
#if(ParentSprite != null):
#var StickerTag:Array
#StickerTag.append("sticker")
#Global.remove_tags(ParentSprite,StickerTag)

View file

@ -1,30 +0,0 @@
[gd_scene load_steps=2 format=3 uid="uid://kbso0l2uk2n7"]
[sub_resource type="GDScript" id="GDScript_4kxk0"]
script/source = "extends Area2D
# Called when the node enters the scene tree for the first time.
func _ready():
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass
func _on_mouse_entered():
pass # Replace with function body.
func _on_mouse_exited():
pass # Replace with function body.
"
[node name="StickerDetection" type="Area2D"]
monitoring = false
script = SubResource("GDScript_4kxk0")
[connection signal="mouse_entered" from="." to="." method="_on_mouse_entered"]
[connection signal="mouse_exited" from="." to="." method="_on_mouse_exited"]

19
core/StickerArea.tscn Normal file
View file

@ -0,0 +1,19 @@
[gd_scene load_steps=2 format=3 uid="uid://kbso0l2uk2n7"]
[ext_resource type="Script" path="res://core/Sticker.gd" id="1_7yoct"]
[node name="Sticker" type="Area2D"]
collision_layer = 2
collision_mask = 255
monitoring = false
script = ExtResource("1_7yoct")
metadata/tags = PackedStringArray("sticker")
[node name="StickerDetectionShape" type="CollisionShape2D" parent="."]
[node name="StickerSprite" type="Sprite2D" parent="."]
[connection signal="mouse_entered" from="." to="." method="_on_mouse_entered"]
[connection signal="mouse_exited" from="." to="." method="_on_mouse_exited"]
[connection signal="tree_entered" from="." to="." method="_on_tree_entered"]
[connection signal="tree_exited" from="." to="." method="_on_tree_exited"]

View file

@ -4,7 +4,7 @@
resource_name = "bridge"
script/source = "extends Area2D
var wallObject : Array
var wallObjects : Array
# Called when the node enters the scene tree for the first time.
func _ready():
@ -18,17 +18,19 @@ func _process(_delta):
func _on_body_entered(object):
print(\"Entered %d\",object)
if (object.has_meta(\"Type\") and object.get_meta(\"Type\") == \"Player\" ):
for _object in wallObject:
_object.process_mode = Node.PROCESS_MODE_DISABLED
if (object.has_meta(\"Type\") and object.get_meta(\"Type\") == \"Player\" and wallObjects != null ):
for _object in wallObjects:
if (_object != null):
_object.process_mode = Node.PROCESS_MODE_DISABLED
else:
wallObject.append(object)
wallObjects.append(object)
func _on_body_exited(object):
if (object.has_meta(\"Type\") and object.get_meta(\"Type\") == \"Player\" ):
for _object in wallObject:
_object.process_mode = Node.PROCESS_MODE_INHERIT
if (object.has_meta(\"Type\") and object.get_meta(\"Type\") == \"Player\" and wallObjects != null ):
for _object in wallObjects:
if (_object != null):
_object.process_mode = Node.PROCESS_MODE_INHERIT
"
[node name="BridgeNode" type="Area2D"]

View file

@ -10,8 +10,8 @@ func _ready():
func _process(_delta):
pass
func getTags(selectedObject:Node):
var _tags: Array
func get_tags(selectedObject:Node):
var _tags: PackedStringArray
if (selectedObject.has_meta("tags")):
_tags = selectedObject.get_meta("tags")
return _tags
@ -19,3 +19,27 @@ func getTags(selectedObject:Node):
printerr("no tags inside %",selectedObject)
return _tags
func add_tags(selectedObject:Node,tags:PackedStringArray):
var _all_tags:PackedStringArray
if (selectedObject.has_meta("tags")):
_all_tags = selectedObject.get_meta("tags")
_all_tags.append_array(tags)
selectedObject.set_meta("tags",_all_tags)
func remove_tags(selectedObject:Node,tags:PackedStringArray):
if (selectedObject.has_meta("tags")):
var _all_tags:PackedStringArray
_all_tags = selectedObject.get_meta("tags")
for _tag:String in tags:
if(_all_tags.find(_tag) !=-1):
_all_tags.remove_at(_all_tags.find(_tag))
selectedObject.set_meta("tags",_all_tags)
func isSticker(selectedObject:Node):
var _isSticker:bool = false
var _tags = get_tags(selectedObject)
if (_tags.size() > 0):
if (_tags.find("sticker") != -1):
_isSticker = true
return _isSticker

View file

@ -26,6 +26,7 @@ func changeSkin(NewSkin:CanvasTexture,_NewHat:CanvasTexture = null):
Sprite.texture = CurrentHat
func get_input():
#TODO: Need to freeze the player while he is traveling
var directionX = Input.get_axis("move_left", "move_right")
var directionY = Input.get_axis("move_up", "move_down")
var mouseDirectionX = Input.get_axis("mouse_left", "mouse_right")

View file

@ -5,7 +5,8 @@ platform="Windows Desktop"
runnable=true
dedicated_server=false
custom_features=""
export_filter="all_resources"
export_filter="resources"
export_files=PackedStringArray("res://animations/player/idle.res", "res://animations/player/Walk.res", "res://core/Background.tscn", "res://core/bridgeNode.tscn", "res://core/Cursor.gd", "res://core/Cursor.tscn", "res://core/debugDraw.tscn", "res://core/Door.gd", "res://core/Door.tscn", "res://core/global.gd", "res://core/player.gd", "res://core/player.tscn", "res://core/sceneInstance.gd", "res://core/Sticker.gd", "res://core/Sticker.tscn", "res://maps/gym.tscn", "res://maps/mainMenu.tscn", "res://maps/map1.tres", "res://maps/map1.tscn", "res://maps/map2.tres", "res://maps/map2.tscn", "res://maps/mapManager.tscn", "res://prefab/free_sticker.tscn", "res://prefab/prefab_woddenbridge.tscn", "res://prefab/solid_sticker.tscn", "res://shaders/shaderMaterial_Outline.tres", "res://shaders/shaders_glitch.gdshader", "res://shaders/shader_color_replacer.gdshader", "res://shaders/shader_outline2.gdshader", "res://shaders/shader_outline3.gdshader", "res://shaders/shader_outline.gdshader", "res://textures/atlas/Atlas_Buildings_01.png", "res://textures/atlas/Atlas_Builds_01.png", "res://textures/atlas/Atlas_Builds_02.png", "res://textures/atlas/Atlas_New_items.png", "res://textures/atlas/Bushes_All_01_SPRT.png", "res://textures/atlas/DioramaEntrance_All_01_SPRT.png", "res://textures/atlas/Floors_01_SPRT.png", "res://textures/atlas/Floors_02_SPRT.png", "res://textures/atlas/Floors_03_SPRT.png", "res://textures/atlas/Floors_04_SPRT.png", "res://textures/atlas/Floors_05_SPRT.png", "res://textures/atlas/Floors_06_SPRT.png", "res://textures/atlas/Floors_07_SPRT.png", "res://textures/atlas/Floors_08_SPRT.png", "res://textures/atlas/Floors_09_SPRT.png", "res://textures/atlas/Floors_10_SPRT.png", "res://textures/atlas/Floors_11_SPRT.png", "res://textures/atlas/Floors_12_SPRT.png", "res://textures/atlas/Floors_13_SPRT.png", "res://textures/atlas/Floors_14_SPRT.png", "res://textures/atlas/Floors_15_SPRT.png", "res://textures/atlas/Floors_MountBack_SPRT.png", "res://textures/atlas/GroundExtensions_All_01_SPRT.png", "res://textures/atlas/LogsAndWood_All_01_SPRT.png", "res://textures/atlas/Plants_All_01_SPRT.png", "res://textures/atlas/Props_All_01_SPRT.png", "res://textures/atlas/Rocks_All_01_SPRT.png", "res://textures/atlas/SPRT_Hand.png", "res://textures/pattern/Pattern_Desert.png", "res://textures/pattern/Pattern_Forest.png", "res://textures/pattern/Pattern_Mountains.png", "res://textures/pattern/Pattern_swamp.png", "res://textures/player/archer.png", "res://textures/player/currentCloth.tres", "res://textures/player/currentHat.tres", "res://textures/player/hat-layout.jpg", "res://textures/player/hermandad-beige.png", "res://textures/player/hermandad-black.png", "res://textures/player/hermandad-brown.png", "res://textures/player/player-layout.jpg", "res://textures/player/playerSkin_ref.png", "res://textures/player/witch.png", "res://textures/2d_lights_and_shadows_neutral_point_light.webp", "res://textures/cursor_click.tres", "res://textures/cursor_default.tres", "res://textures/cursor_grab.tres", "res://textures/cursor_grab_01.tres", "res://textures/cursor_grab_02.tres", "res://textures/cursor_grab_03.tres", "res://icon.svg")
include_filter=""
exclude_filter=""
export_path="builds/stickerClone.exe"
@ -68,7 +69,8 @@ platform="Linux/X11"
runnable=true
dedicated_server=false
custom_features=""
export_filter="all_resources"
export_filter="resources"
export_files=PackedStringArray("res://animations/player/idle.res", "res://animations/player/Walk.res", "res://core/Background.tscn", "res://core/bridgeNode.tscn", "res://core/Cursor.gd", "res://core/Cursor.tscn", "res://core/debugDraw.tscn", "res://core/Door.gd", "res://core/Door.tscn", "res://core/global.gd", "res://core/player.gd", "res://core/player.tscn", "res://core/sceneInstance.gd", "res://core/Sticker.gd", "res://core/Sticker.tscn", "res://maps/gym.tscn", "res://maps/mainMenu.tscn", "res://maps/map1.tres", "res://maps/map1.tscn", "res://maps/map2.tres", "res://maps/map2.tscn", "res://maps/mapManager.tscn", "res://prefab/free_sticker.tscn", "res://prefab/prefab_woddenbridge.tscn", "res://prefab/solid_sticker.tscn", "res://shaders/shaderMaterial_Outline.tres", "res://shaders/shaders_glitch.gdshader", "res://shaders/shader_color_replacer.gdshader", "res://shaders/shader_outline2.gdshader", "res://shaders/shader_outline3.gdshader", "res://shaders/shader_outline.gdshader", "res://textures/atlas/Atlas_Buildings_01.png", "res://textures/atlas/Atlas_Builds_01.png", "res://textures/atlas/Atlas_Builds_02.png", "res://textures/atlas/Atlas_New_items.png", "res://textures/atlas/Bushes_All_01_SPRT.png", "res://textures/atlas/DioramaEntrance_All_01_SPRT.png", "res://textures/atlas/Floors_01_SPRT.png", "res://textures/atlas/Floors_02_SPRT.png", "res://textures/atlas/Floors_03_SPRT.png", "res://textures/atlas/Floors_04_SPRT.png", "res://textures/atlas/Floors_05_SPRT.png", "res://textures/atlas/Floors_06_SPRT.png", "res://textures/atlas/Floors_07_SPRT.png", "res://textures/atlas/Floors_08_SPRT.png", "res://textures/atlas/Floors_09_SPRT.png", "res://textures/atlas/Floors_10_SPRT.png", "res://textures/atlas/Floors_11_SPRT.png", "res://textures/atlas/Floors_12_SPRT.png", "res://textures/atlas/Floors_13_SPRT.png", "res://textures/atlas/Floors_14_SPRT.png", "res://textures/atlas/Floors_15_SPRT.png", "res://textures/atlas/Floors_MountBack_SPRT.png", "res://textures/atlas/GroundExtensions_All_01_SPRT.png", "res://textures/atlas/LogsAndWood_All_01_SPRT.png", "res://textures/atlas/Plants_All_01_SPRT.png", "res://textures/atlas/Props_All_01_SPRT.png", "res://textures/atlas/Rocks_All_01_SPRT.png", "res://textures/atlas/SPRT_Hand.png", "res://textures/pattern/Pattern_Desert.png", "res://textures/pattern/Pattern_Forest.png", "res://textures/pattern/Pattern_Mountains.png", "res://textures/pattern/Pattern_swamp.png", "res://textures/player/archer.png", "res://textures/player/currentCloth.tres", "res://textures/player/currentHat.tres", "res://textures/player/hat-layout.jpg", "res://textures/player/hermandad-beige.png", "res://textures/player/hermandad-black.png", "res://textures/player/hermandad-brown.png", "res://textures/player/player-layout.jpg", "res://textures/player/playerSkin_ref.png", "res://textures/player/witch.png", "res://textures/2d_lights_and_shadows_neutral_point_light.webp", "res://textures/cursor_click.tres", "res://textures/cursor_default.tres", "res://textures/cursor_grab.tres", "res://textures/cursor_grab_01.tres", "res://textures/cursor_grab_02.tres", "res://textures/cursor_grab_03.tres", "res://icon.svg")
include_filter=""
exclude_filter=""
export_path="builds/StickerClone.x86_64"

View file

@ -6,7 +6,7 @@
[ext_resource type="PackedScene" uid="uid://domcpxdf6lqpb" path="res://prefab/free_sticker.tscn" id="4_2tdya"]
[ext_resource type="Texture2D" uid="uid://cxharyv0ajr37" path="res://textures/atlas/DioramaEntrance_All_01_SPRT.png" id="4_lgnnp"]
[ext_resource type="PackedScene" uid="uid://do65rgg0p2plt" path="res://core/Door.tscn" id="4_yvr3q"]
[ext_resource type="Texture2D" uid="uid://dggavne4ueche" path="res://extracted/Texture2D/Tree_Field_01_SPRT.png" id="5_lwnej"]
[ext_resource type="Texture2D" uid="uid://dggavne4ueche" path="res://textures/sprites/Tree_Field_01_SPRT.png" id="5_lwnej"]
[ext_resource type="PackedScene" uid="uid://6ww1g2enfdx3" path="res://prefab/solid_sticker.tscn" id="6_k22qa"]
[ext_resource type="Texture2D" uid="uid://chuv25pm2vqen" path="res://textures/atlas/Rocks_All_01_SPRT.png" id="7_pykf8"]
[ext_resource type="Texture2D" uid="uid://b366mcexlko72" path="res://textures/atlas/LogsAndWood_All_01_SPRT.png" id="8_ugxkt"]

View file

@ -1,68 +1,17 @@
[gd_scene load_steps=4 format=3 uid="uid://domcpxdf6lqpb"]
[gd_scene load_steps=3 format=3 uid="uid://domcpxdf6lqpb"]
[ext_resource type="Texture2D" uid="uid://cun14l52f477p" path="res://textures/atlas/Bushes_All_01_SPRT.png" id="1_1wk1p"]
[ext_resource type="PackedScene" uid="uid://kbso0l2uk2n7" path="res://core/StickerArea.tscn" id="2_84v7t"]
[sub_resource type="AtlasTexture" id="AtlasTexture_2wdar"]
atlas = ExtResource("1_1wk1p")
region = Rect2(384, 64, 288, 224)
[sub_resource type="GDScript" id="GDScript_uqtu8"]
script/source = "@tool
extends Sprite2D
var OutlineMat:ShaderMaterial = preload(\"res://shaders/shaderMaterial_Outline.tres\")
@export_group(\"Sticker Detection Shape\")
@export var Shape :Shape2D:
set(new_shape):
Shape = new_shape
$Area2D/CollisionShape2D.shape = Shape
$Area2D/CollisionShape2D.queue_redraw()
@export var Position :Vector2:
set(new_position):
Position = new_position
$Area2D/CollisionShape2D.position = Position
$Area2D/CollisionShape2D.queue_redraw()
@export var Rotation :float:
set(new_rotation):
Rotation = new_rotation
$Area2D/CollisionShape2D.rotation = Rotation
$Area2D/CollisionShape2D.queue_redraw()
func on_released():
print(self,\" released\")
func on_click():
print(self,\" clicked\")
func on_hover():
material = OutlineMat
queue_redraw()
func on_unhover():
material = null
queue_redraw()
func on_grab(_offset:Vector2=Vector2(0.0,0.0)):
pass
"
[node name="FreeSticker1" type="Sprite2D"]
scale = Vector2(3.80334, 3.95089)
texture = SubResource("AtlasTexture_2wdar")
centered = false
offset = Vector2(-161.055, -179.785)
script = SubResource("GDScript_uqtu8")
metadata/tags = ["sticker"]
[node name="Area2D" type="Area2D" parent="."]
collision_layer = 2
collision_mask = 0
monitoring = false
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
position = Vector2(-4.46976, -71.6294)
rotation = 1.5708
[node name="StickerDetection" parent="." instance=ExtResource("2_84v7t")]
[connection signal="property_list_changed" from="." to="." method="_on_property_list_changed"]

View file

@ -1,10 +1,8 @@
[gd_scene load_steps=4 format=3 uid="uid://bddcriwo55x8k"]
[gd_scene load_steps=3 format=3 uid="uid://bddcriwo55x8k"]
[ext_resource type="Texture2D" uid="uid://b366mcexlko72" path="res://textures/atlas/LogsAndWood_All_01_SPRT.png" id="1_lvitw"]
[ext_resource type="PackedScene" uid="uid://clqvgh6qmglue" path="res://core/bridgeNode.tscn" id="2_te8ug"]
[sub_resource type="AtlasTexture" id="AtlasTexture_nkyhf"]
atlas = ExtResource("1_lvitw")
region = Rect2(72, 1392, 216, 272)
[node name="WoodenBridge" type="Sprite2D"]

View file

@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://ciyh3rnoo4uk"
path="res://.godot/imported/SimpleParticles_All_01_SPRT.png-6334fcb848493621387efb6556c81e19.ctex"
path="res://.godot/imported/SimpleParticles_All_01_SPRT.png-7694919abde183df9e6646702e07bee1.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://extracted/Texture2D/SimpleParticles_All_01_SPRT.png"
dest_files=["res://.godot/imported/SimpleParticles_All_01_SPRT.png-6334fcb848493621387efb6556c81e19.ctex"]
source_file="res://textures/atlas/SimpleParticles_All_01_SPRT.png"
dest_files=["res://.godot/imported/SimpleParticles_All_01_SPRT.png-7694919abde183df9e6646702e07bee1.ctex"]
[params]

View file

@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://xx3dwpwk467v"
path="res://.godot/imported/FireStickers.png-259d039f52ae610545db7b1f9c72e648.ctex"
path="res://.godot/imported/FireStickers.png-b1f6454cf2d8ec7c882729598eb9bead.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://extracted/Texture2D/FireStickers.png"
dest_files=["res://.godot/imported/FireStickers.png-259d039f52ae610545db7b1f9c72e648.ctex"]
source_file="res://textures/sprites/FireStickers.png"
dest_files=["res://.godot/imported/FireStickers.png-b1f6454cf2d8ec7c882729598eb9bead.ctex"]
[params]

View file

@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://dggavne4ueche"
path="res://.godot/imported/Tree_Field_01_SPRT.png-cf2a7d71334800fb9c2ea7c429535d5c.ctex"
path="res://.godot/imported/Tree_Field_01_SPRT.png-2a31f32b148af262ecdd14c661e63993.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://extracted/Texture2D/Tree_Field_01_SPRT.png"
dest_files=["res://.godot/imported/Tree_Field_01_SPRT.png-cf2a7d71334800fb9c2ea7c429535d5c.ctex"]
source_file="res://textures/sprites/Tree_Field_01_SPRT.png"
dest_files=["res://.godot/imported/Tree_Field_01_SPRT.png-2a31f32b148af262ecdd14c661e63993.ctex"]
[params]

View file

@ -0,0 +1,7 @@
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://dkeu83h43pw1o"]
[ext_resource type="Texture2D" uid="uid://cxharyv0ajr37" path="res://textures/atlas/DioramaEntrance_All_01_SPRT.png" id="1_mxci2"]
[resource]
atlas = ExtResource("1_mxci2")
region = Rect2(7, 98, 220, 114)

View file

@ -0,0 +1,7 @@
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://bm2nsrfle5nsd"]
[ext_resource type="Texture2D" uid="uid://cxharyv0ajr37" path="res://textures/atlas/DioramaEntrance_All_01_SPRT.png" id="1_8pcct"]
[resource]
atlas = ExtResource("1_8pcct")
region = Rect2(252, 16, 108, 256)

View file

@ -0,0 +1,7 @@
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://b2nhenx3l2uww"]
[ext_resource type="Texture2D" uid="uid://cxharyv0ajr37" path="res://textures/atlas/DioramaEntrance_All_01_SPRT.png" id="1_bsuil"]
[resource]
atlas = ExtResource("1_bsuil")
region = Rect2(0, 16, 228, 80)

View file

@ -0,0 +1,7 @@
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://ddajgcwn5ip4c"]
[ext_resource type="Texture2D" uid="uid://cun14l52f477p" path="res://textures/atlas/Bushes_All_01_SPRT.png" id="1_o3c46"]
[resource]
atlas = ExtResource("1_o3c46")
region = Rect2(384, 64, 320, 224)

View file

@ -0,0 +1,7 @@
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://1qfjbuyf5aq5"]
[ext_resource type="Texture2D" uid="uid://b366mcexlko72" path="res://textures/atlas/LogsAndWood_All_01_SPRT.png" id="1_0edjn"]
[resource]
atlas = ExtResource("1_0edjn")
region = Rect2(544, 32, 160, 192)

View file

@ -0,0 +1,7 @@
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://bfnbnuclg8ab0"]
[ext_resource type="Texture2D" uid="uid://b366mcexlko72" path="res://textures/atlas/LogsAndWood_All_01_SPRT.png" id="1_686v7"]
[resource]
atlas = ExtResource("1_686v7")
region = Rect2(72, 1392, 216, 272)

View file

@ -0,0 +1,7 @@
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://51ntd0qmjw5j"]
[ext_resource type="Texture2D" uid="uid://b366mcexlko72" path="res://textures/atlas/LogsAndWood_All_01_SPRT.png" id="1_tl1y6"]
[resource]
atlas = ExtResource("1_tl1y6")
region = Rect2(1356, 1216, 192, 80)

View file

@ -0,0 +1,7 @@
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://c6acjgu8jnrkl"]
[ext_resource type="Texture2D" uid="uid://chuv25pm2vqen" path="res://textures/atlas/Rocks_All_01_SPRT.png" id="1_epk7g"]
[resource]
atlas = ExtResource("1_epk7g")
region = Rect2(1440, 1376, 256, 256)

View file

@ -0,0 +1,7 @@
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://cup0xru4j84wj"]
[ext_resource type="Texture2D" uid="uid://chuv25pm2vqen" path="res://textures/atlas/Rocks_All_01_SPRT.png" id="1_jaqtq"]
[resource]
atlas = ExtResource("1_jaqtq")
region = Rect2(288, 256, 192, 160)