Compare commits

...

5 commits

Author SHA1 Message Date
Lucas Peter
d520cd58b9
Merge branch 'feature/sticker' into develop
# Conflicts:
#	textures/sprites/props_fire1.tres
2024-07-31 12:23:20 +02:00
Lucas Peter
9bfdaf3d0b
misc editor settings
# Conflicts:
#	project.godot
#	textures/sprites/props_fire1.tres
2024-07-31 12:22:34 +02:00
Lucas Peter
209af3e7e7
delete old code 2024-07-31 12:21:29 +02:00
Lucas Peter
79a577272a
update sticker code
Rework code, make sticker a Area2D Node that handle all sticker logic
2024-07-31 12:21:17 +02:00
Lucas Peter
462bc799c3
update code editor window size 2024-07-30 18:19:54 +02:00
12 changed files with 209 additions and 289 deletions

View file

@ -4,10 +4,10 @@ var spaceState:World2D
var query : PhysicsPointQueryParameters2D
var CastResult : Array
var hoveredObjects : Array
var hoveredObject:CollisionObject2D
var hoveredSticker:Area2D
var grabbedSticker:Area2D
var hoveredColliders : Array
var hoveredCollider:CollisionObject2D
var hoveredStickerNode:Sticker
var grabbedStickerNode:Sticker
var grabbedStickerOffset:Vector2
enum CURSOR_STATE {DEFAULT, CLICK, GRAB, GRABBED}
@ -29,8 +29,8 @@ func _process(_delta):
#endregion
pointcast()
cursor_look()
if (grabbedSticker != null):
grabbedSticker.get_parent().position = grabbedStickerOffset+get_global_mouse_position()
if (grabbedStickerNode != null):
grabbedStickerNode.get_parent().position = grabbedStickerOffset+get_global_mouse_position()
func pointcast():
@ -41,29 +41,29 @@ func pointcast():
CastResult = spaceState.direct_space_state.intersect_point(query)
# CastResult is not reliable. Objects are added randomly in the array
# so we need to filter/sort the trace result
if ( CastResult.size() > 0 and (grabbedSticker == null)):
if ( CastResult.size() > 0 and (grabbedStickerNode == null)):
#region Fill HoveredObjects
#region Fill hoveredColliders
for _object in CastResult:
if(_object.collider.input_pickable == true):
hoveredObjects.append(_object.collider) #Get the object that have the collision
hoveredColliders.append(_object.collider) #Get the object that have the collision
#endregion
if (hoveredObjects.size() > 0):
if (hoveredObjects.size() >= 2):
sortByPosY(hoveredObjects,false)
if (hoveredObjects[0] != hoveredObject):
if (hoveredColliders.size() > 0):
if (hoveredColliders.size() >= 2):
sortByPosY(hoveredColliders,false)
if (hoveredColliders[0] != hoveredCollider):
$GrabTimer.stop()
if (hoveredObject and hoveredObject.has_method("on_unhover")):
hoveredObject.on_unhover()
hoveredObject = hoveredObjects[0]
if (hoveredObject and hoveredObject.has_method("on_hover")):
hoveredObject.on_hover()
print("Current hovered object :", hoveredObject)
if (Global.isSticker(hoveredObject)):
hoveredSticker = hoveredObject
print("Current hovered sticker :", hoveredSticker)
if (hoveredCollider and hoveredCollider.has_method("on_unhover")):
hoveredCollider.on_unhover()
hoveredCollider = hoveredColliders[0]
if (hoveredCollider and hoveredCollider.has_method("on_hover")):
hoveredCollider.on_hover()
print("Current hovered object :", hoveredCollider)
if (Global.isSticker(hoveredCollider)):
hoveredStickerNode = hoveredCollider
print("Current hovered sticker :", hoveredStickerNode)
else:
hoveredSticker = null
hoveredStickerNode = null
else:
resetCast(true)
else:
@ -71,13 +71,14 @@ func pointcast():
func resetCast(bFull = false):
CastResult.clear()
hoveredObjects.clear()
hoveredColliders.clear()
if bFull:
if (hoveredObject != null and hoveredObject.has_method("on_unhover") and (hoveredObject != grabbedSticker)):
hoveredObject.on_unhover()
hoveredObject = null
hoveredSticker = null
if (hoveredCollider != null and hoveredCollider.has_method("on_unhover") and (hoveredCollider != grabbedStickerNode)):
hoveredCollider.on_unhover()
hoveredCollider = null
hoveredStickerNode = null
## Sort objects by parent's Y position
func sortByPosY(objects: Array, ascending_order: bool = true):
var _tempArray :Array
_tempArray = objects
@ -99,36 +100,37 @@ func _input(rawInputEvent:InputEvent):
$GrabTimer.start()
if (rawInputEvent.is_action_released("select")):
$GrabTimer.stop()
if (grabbedSticker != null):
if (grabbedStickerNode != null):
grab_end()
func grab_start():
if (hoveredSticker and grabbedSticker == null):
grabbedSticker = hoveredSticker
if (hoveredStickerNode and grabbedStickerNode == null):
grabbedStickerNode = hoveredStickerNode
print("Grabbed ", grabbedSticker)
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)
print("Grabbed ", grabbedStickerNode)
grabbedStickerOffset = grabbedStickerNode.get_parent().position - get_global_mouse_position()
print("offset =", grabbedStickerOffset, " Stickpos:",grabbedStickerNode.get_parent().position,"-",get_global_mouse_position() )
if (grabbedStickerNode.has_method("on_grab")):
grabbedStickerNode.on_grab(grabbedStickerOffset)
func grab_end():
grabbedSticker.on_released()
if (grabbedStickerNode.has_method("on_released")):
grabbedStickerNode.on_released()
print("stopg grabbin at ",query.position )
DebugDraw.points.append(query.position)
DebugDraw.drawPoints()
grabbedSticker = null
grabbedStickerNode = null
func cursorClick():
if (hoveredObject and hoveredObject.has_method("on_click")):
hoveredObject.on_click()
if (hoveredCollider and hoveredCollider.has_method("on_click")):
hoveredCollider.on_click()
func cursor_look():
if (grabbedSticker ):
if (grabbedStickerNode ):
currentCursorState = CURSOR_STATE.GRABBED
elif (hoveredSticker):
elif (hoveredStickerNode):
if ($GrabTimer and !($GrabTimer.is_stopped())):
currentCursorState = CURSOR_STATE.GRABBED
else:

View file

@ -1,106 +1,92 @@
@tool
extends Area2D
@icon("res://textures/stickers/icon_sticker2.svg")
class_name Sticker extends Area2D
## Handle all the sticker-relative gameplay.
##
## Sticker node expect to be a child of a Node2D, who serve as a root for
## all the fonctionnalities. You need to assign nodes for the stickerdetection
## and for the sprites.
#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_group("Nodes")
## The look of the object. If it's multiple sprites, they should be under one main sprite
@export var WorldSprite:Sprite2D
## Optional - The look of the object when grabbed. If empty, OutlineMat will be applied to WorldSprite
@export var StickerSprite:Sprite2D
@export_group("Material")
@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
var meta:PackedStringArray = ["sticker"]
func _init():
collision_layer = 2
collision_mask = 0
set_meta("tags",meta)
monitoring = false
func _enter_tree():
set_meta("tags",meta)
if (get_parent() is Sprite2D and WorldSprite == null):
WorldSprite = get_parent()
func _ready():
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
func on_released():
func _process(delta):
pass
## When the sticker is released
func on_released(CastResult:Array=[]):
print(self," released")
#TODO: Need a traceresult to know if it should stay in the stickerstate or be released in the world
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
disable_ChildNodes_collisions(false)
update_ChildNodes_visibilty(true)
func on_click():
print(self," clicked")
func redraw():
if (StickerSprite != null):
StickerSprite.queue_redraw()
if (WorldSprite != null):
WorldSprite.queue_redraw()
func on_hover():
if (StickerSprite != null):
$StickerSprite.texture = StickerSprite
else:
$StickerSprite.texture = WorldSprite
$StickerSprite.material = OutlineMat
queue_redraw()
WorldSprite.visible = false
StickerSprite.visible = true
elif (WorldSprite != null):
WorldSprite.material = OutlineMat
redraw()
func on_unhover():
$StickerSprite.texture = WorldSprite
$StickerSprite.material = null
queue_redraw()
if (StickerSprite != null):
StickerSprite.visible = false
if (WorldSprite != null):
WorldSprite.material = null
WorldSprite.visible = true
redraw()
func on_grab(_offset:Vector2=Vector2(0.0,0.0)):
get_parent().top_level = true
get_parent().reparent(get_tree().root)
update_ChildNodes_visibilty(false)
func update_ChildNodes_visibilty(_visible:bool=true):
for _childNode in get_parent().get_children():
_childNode.set_deferred("disabled",true)
if(_childNode != self):
_childNode.visible = false
#func _on_tree_entered():
#if(ParentSprite != null):
#var StickerTag:Array
#StickerTag.append("sticker")
#Global.add_tags(ParentSprite,StickerTag)
#func _on_tree_exited():
#if(ParentSprite != null):
#var StickerTag:Array
#StickerTag.append("sticker")
#Global.remove_tags(ParentSprite,StickerTag)
if(_childNode != WorldSprite):
_childNode.visible = _visible
func disable_ChildNodes_collisions(_disable:bool=true):
for _childNode in get_parent().get_children():
_childNode.set_deferred("disabled",_disable)

View file

@ -1,19 +0,0 @@
[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

@ -1,3 +1,4 @@
@tool
extends Node
@ -19,6 +20,17 @@ func get_tags(selectedObject:Node):
printerr("no tags inside %",selectedObject)
return _tags
## Add tag on selected object by adding metadata
func add_tag(selectedObject:Node,tag:String):
var _all_tags:PackedStringArray
if (selectedObject.has_meta("tags")):
_all_tags = selectedObject.get_meta("tags")
if (_all_tags.find(tag) == -1):
_all_tags.append(tag)
else:
_all_tags.append(tag)
selectedObject.set_meta("tags",_all_tags)
func add_tags(selectedObject:Node,tags:PackedStringArray):
var _all_tags:PackedStringArray
if (selectedObject.has_meta("tags")):

View file

@ -1,8 +1,9 @@
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://cacwy4tka88k1"]
[ext_resource type="Texture2D" uid="uid://bk87x1lpjog5j" path="res://textures/atlas/Floors_05_SPRT.png" id="1_vellv"]
[ext_resource type="Texture2D" uid="uid://bk87x1lpjog5j" path="res://textures/atlas/Floors_05_SPRT.png" id="1_gaubw"]
[resource]
atlas = ExtResource("1_vellv")
resource_name = "map1"
atlas = ExtResource("1_gaubw")
region = Rect2(0, 0, 1024, 992)
filter_clip = true

View file

@ -1,28 +1,21 @@
[gd_scene load_steps=30 format=3 uid="uid://wlqsvbqpcbh"]
[gd_scene load_steps=27 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://cxharyv0ajr37" path="res://textures/atlas/DioramaEntrance_All_01_SPRT.png" id="2_n7y5f"]
[ext_resource type="Texture2D" uid="uid://c5bd2ta3esnib" path="res://extracted/4010-A Tiny Sticker Tale review pic 1.jpg" id="3_yh2wy"]
[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="PackedScene" uid="uid://bddcriwo55x8k" path="res://prefab/prefab_woddenbridge.tscn" id="4_okpsn"]
[ext_resource type="Texture2D" uid="uid://cun14l52f477p" path="res://textures/atlas/Bushes_All_01_SPRT.png" id="5_xmosd"]
[ext_resource type="Texture2D" uid="uid://dggavne4ueche" path="res://textures/sprites/Tree_Field_01_SPRT.png" id="7_gygvy"]
[ext_resource type="Texture2D" uid="uid://chuv25pm2vqen" path="res://textures/atlas/Rocks_All_01_SPRT.png" id="8_itp05"]
[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://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://b366mcexlko72" path="res://textures/atlas/LogsAndWood_All_01_SPRT.png" id="10_jr64r"]
[ext_resource type="Texture2D" uid="uid://ciyh3rnoo4uk" path="res://textures/atlas/SimpleParticles_All_01_SPRT.png" id="12_ro7fd"]
[ext_resource type="Texture2D" uid="uid://dcgjlblm2rpy4" path="res://textures/2d_lights_and_shadows_neutral_point_light.webp" id="13_sm1ou"]
[sub_resource type="AtlasTexture" id="AtlasTexture_gnudx"]
atlas = ExtResource("2_n7y5f")
region = Rect2(252, 16, 108, 256)
[sub_resource type="AtlasTexture" id="AtlasTexture_ex6vq"]
atlas = ExtResource("2_n7y5f")
region = Rect2(0, 16, 228, 80)
[sub_resource type="AtlasTexture" id="AtlasTexture_2wdar"]
atlas = ExtResource("5_xmosd")
region = Rect2(384, 64, 288, 224)
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_lfx7b"]
@ -34,7 +27,6 @@ radius = 70.0
height = 512.0
[sub_resource type="AtlasTexture" id="AtlasTexture_rn40i"]
atlas = ExtResource("5_xmosd")
region = Rect2(736, 96, 224, 160)
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_b3366"]
@ -42,28 +34,24 @@ radius = 65.0
height = 184.05
[sub_resource type="AtlasTexture" id="AtlasTexture_vun1v"]
atlas = ExtResource("8_itp05")
region = Rect2(288, 256, 192, 160)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_4cdlc"]
size = Vector2(133.06, 62.73)
[sub_resource type="AtlasTexture" id="AtlasTexture_wpoj4"]
atlas = ExtResource("8_itp05")
region = Rect2(1440, 1376, 256, 256)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_hk5e3"]
size = Vector2(201.89, 146.45)
[sub_resource type="AtlasTexture" id="AtlasTexture_w86nr"]
atlas = ExtResource("10_jr64r")
region = Rect2(544, 32, 160, 192)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_tss3y"]
size = Vector2(127.875, 25.5)
[sub_resource type="AtlasTexture" id="AtlasTexture_4j533"]
atlas = ExtResource("10_jr64r")
region = Rect2(1356, 1216, 192, 80)
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_jw3i8"]
@ -77,12 +65,15 @@ angle_max = 12.5
gravity = Vector3(0, -20, 0)
[sub_resource type="AtlasTexture" id="AtlasTexture_c24s7"]
atlas = ExtResource("12_ro7fd")
atlas = ExtResource("6_0dctx")
region = Rect2(0, 0, 128, 160)
[sub_resource type="CircleShape2D" id="CircleShape2D_5wedp"]
radius = 42.25
[sub_resource type="CircleShape2D" id="CircleShape2D_wkggp"]
radius = 72.88
[node name="Map1" type="Node2D"]
z_as_relative = false
y_sort_enabled = true
@ -138,7 +129,6 @@ visible = false
top_level = true
position = Vector2(78, -148)
scale = Vector2(6.15, 6.15)
texture = ExtResource("3_yh2wy")
[node name="Bush1" type="Sprite2D" parent="."]
position = Vector2(-2161, 1140)
@ -161,7 +151,6 @@ shape = SubResource("CapsuleShape2D_lfx7b")
[node name="Tree1" type="Sprite2D" parent="."]
position = Vector2(1592, 606)
scale = Vector2(3.80334, 3.95089)
texture = ExtResource("7_gygvy")
centered = false
offset = Vector2(-251.145, -512)
metadata/tags = ["sticker"]
@ -179,7 +168,6 @@ shape = SubResource("CapsuleShape2D_dqo8w")
[node name="Tree2" type="Sprite2D" parent="."]
position = Vector2(-2399, -55)
scale = Vector2(3.80334, 3.95089)
texture = ExtResource("7_gygvy")
centered = false
offset = Vector2(-251.145, -512)
metadata/tags = ["sticker"]
@ -197,7 +185,6 @@ shape = SubResource("CapsuleShape2D_dqo8w")
[node name="Tree3" type="Sprite2D" parent="."]
position = Vector2(-763, -2021)
scale = Vector2(3.80334, 3.95089)
texture = ExtResource("7_gygvy")
centered = false
offset = Vector2(-251.145, -512)
metadata/tags = ["sticker"]
@ -215,7 +202,6 @@ shape = SubResource("CapsuleShape2D_dqo8w")
[node name="Tree4" type="Sprite2D" parent="."]
position = Vector2(2365, -2258)
scale = Vector2(3.80334, 3.95089)
texture = ExtResource("7_gygvy")
centered = false
offset = Vector2(-251.145, -512)
metadata/tags = ["sticker"]
@ -233,17 +219,20 @@ shape = SubResource("CapsuleShape2D_dqo8w")
[node name="Bush6" type="Sprite2D" parent="."]
position = Vector2(-1556, 293)
scale = Vector2(3.80334, 3.95089)
texture = SubResource("AtlasTexture_2wdar")
texture = ExtResource("4_m2p3o")
centered = false
offset = Vector2(-161.055, -179.785)
metadata/tags = ["sticker"]
[node name="Area2D" type="Area2D" parent="Bush6"]
[node name="Sticker" type="Area2D" parent="Bush6" node_paths=PackedStringArray("WorldSprite")]
collision_layer = 2
collision_mask = 0
monitoring = false
script = ExtResource("8_c6p5e")
WorldSprite = NodePath("..")
metadata/tags = PackedStringArray("sticker")
[node name="CollisionShape2D" type="CollisionShape2D" parent="Bush6/Area2D"]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Bush6/Sticker"]
position = Vector2(-4.46976, -71.6294)
rotation = 1.6
shape = SubResource("CapsuleShape2D_lfx7b")
@ -256,12 +245,15 @@ centered = false
offset = Vector2(-161.055, -179.785)
metadata/tags = ["sticker"]
[node name="Area2D" type="Area2D" parent="Bush7"]
[node name="Sticker" type="Area2D" parent="Bush7" node_paths=PackedStringArray("WorldSprite")]
collision_layer = 2
collision_mask = 0
monitoring = false
script = ExtResource("8_c6p5e")
WorldSprite = NodePath("..")
metadata/tags = PackedStringArray("sticker")
[node name="CollisionShape2D" type="CollisionShape2D" parent="Bush7/Area2D"]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Bush7/Sticker"]
position = Vector2(-4.46976, -71.6294)
rotation = 1.6
shape = SubResource("CapsuleShape2D_lfx7b")
@ -416,13 +408,13 @@ shape = SubResource("RectangleShape2D_tss3y")
debug_color = Color(0.999472, 0.00663362, 0.0810784, 0.42)
[node name="FirePit" type="Sprite2D" parent="."]
z_index = -1
position = Vector2(-294, -641)
position = Vector2(-315, -588)
scale = Vector2(4, 4)
texture = ExtResource("10_2ugv3")
offset = Vector2(0, -26.64)
[node name="GPUParticles2D" type="GPUParticles2D" parent="FirePit"]
position = Vector2(-1.5, -18.25)
position = Vector2(1.25, -45.75)
scale = Vector2(0.5, 0.5)
amount = 4
process_material = SubResource("ParticleProcessMaterial_jw3i8")
@ -433,20 +425,33 @@ visibility_rect = Rect2(-160, -160, 320, 320)
local_coords = true
[node name="StaticBody2D" type="StaticBody2D" parent="FirePit"]
position = Vector2(5.25, -32)
[node name="CollisionShape2D" type="CollisionShape2D" parent="FirePit/StaticBody2D"]
shape = SubResource("CircleShape2D_5wedp")
debug_color = Color(0.937527, 0.247798, 0.087146, 0.42)
[node name="PointLight2D" type="PointLight2D" parent="FirePit"]
position = Vector2(4.75, -2)
position = Vector2(8.25, -43)
scale = Vector2(0.7, 0.7)
color = Color(1, 0.54902, 0.270588, 1)
energy = 1.2
shadow_enabled = true
texture = ExtResource("13_sm1ou")
texture = ExtResource("7_4swoj")
texture_scale = 1.9
[node name="Sticker" type="Area2D" parent="FirePit" node_paths=PackedStringArray("WorldSprite")]
position = Vector2(2.75, -32)
collision_layer = 2
collision_mask = 0
monitoring = false
script = ExtResource("8_c6p5e")
WorldSprite = NodePath("..")
metadata/tags = PackedStringArray("sticker")
[node name="CollisionShape2D" type="CollisionShape2D" parent="FirePit/Sticker"]
shape = SubResource("CircleShape2D_wkggp")
[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"]

View file

@ -1,17 +0,0 @@
[gd_scene load_steps=3 format=3 uid="uid://domcpxdf6lqpb"]
[ext_resource type="PackedScene" uid="uid://kbso0l2uk2n7" path="res://core/StickerArea.tscn" id="2_84v7t"]
[sub_resource type="AtlasTexture" id="AtlasTexture_2wdar"]
region = Rect2(384, 64, 288, 224)
[node name="FreeSticker1" type="Sprite2D"]
scale = Vector2(3.80334, 3.95089)
texture = SubResource("AtlasTexture_2wdar")
centered = false
offset = Vector2(-161.055, -179.785)
metadata/tags = ["sticker"]
[node name="StickerDetection" parent="." instance=ExtResource("2_84v7t")]
[connection signal="property_list_changed" from="." to="." method="_on_property_list_changed"]

View file

@ -1,93 +0,0 @@
[gd_scene load_steps=5 format=3 uid="uid://6ww1g2enfdx3"]
[ext_resource type="Texture2D" uid="uid://cun14l52f477p" path="res://textures/atlas/Bushes_All_01_SPRT.png" id="1_ssqve"]
[sub_resource type="AtlasTexture" id="AtlasTexture_2wdar"]
atlas = ExtResource("1_ssqve")
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 StickerShape :Shape2D:
set(new_shape):
StickerShape = new_shape
$Area2D/StickerShape2D.shape = StickerShape
$Area2D/StickerShape2D.queue_redraw()
@export var Position :Vector2:
set(new_position):
Position = new_position
$Area2D/StickerShape2D.position = Position
$Area2D/StickerShape2D.queue_redraw()
@export var Rotation :float:
set(new_rotation):
Rotation = new_rotation
$Area2D/StickerShape2D.rotation = Rotation
$Area2D/StickerShape2D.queue_redraw()
@export_group(\"Collision Shape\")
@export var CollisionShape :Shape2D:
set(new_CollisionShape):
CollisionShape = new_CollisionShape
$StaticBody2D/CollisionShape2D.shape = CollisionShape
$StaticBody2D/CollisionShape2D.queue_redraw()
@export var CollisionPosition :Vector2:
set(new_CollisionPosition):
CollisionPosition = new_CollisionPosition
$StaticBody2D/CollisionShape2D.position = CollisionPosition
$StaticBody2D/CollisionShape2D.queue_redraw()
@export var CollisionRotation :float:
set(new_ColissionRotation):
CollisionRotation = new_ColissionRotation
$StaticBody2D/CollisionShape2D.rotation = CollisionRotation
$StaticBody2D/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
"
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ep5ck"]
size = Vector2(104.391, 20.3774)
[node name="SolidSticker1" 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="StickerShape2D" type="CollisionShape2D" parent="Area2D"]
position = Vector2(-4.46976, -71.6294)
rotation = 1.5708
[node name="StaticBody2D" type="StaticBody2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"]
position = Vector2(2.10341, -10.8836)
shape = SubResource("RectangleShape2D_ep5ck")
debug_color = Color(0.996033, 0, 0.194446, 0.42)
[connection signal="property_list_changed" from="." to="." method="_on_property_list_changed"]

View file

@ -27,6 +27,11 @@ Cursor="*res://core/Cursor.tscn"
window/size/viewport_width=1920
window/size/viewport_height=1080
window/size/initial_position_type=2
window/size/initial_screen=2
window/size/extend_to_title=true
window/stretch/mode="canvas_items"
window/size/viewport_width.editor=1152
window/size/viewport_height.editor=648
[editor_plugins]

View file

@ -1,7 +1,7 @@
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://dnomlcslicb3k"]
[ext_resource type="Texture2D" uid="uid://bwcex0o7obtg5" path="res://textures/atlas/Props_All_01_SPRT.png" id="1_a4h13"]
[ext_resource type="Texture2D" uid="uid://bwcex0o7obtg5" path="res://textures/atlas/Props_All_01_SPRT.png" id="1_12s0p"]
[resource]
atlas = ExtResource("1_a4h13")
atlas = ExtResource("1_12s0p")
region = Rect2(1824, 480, 192, 160)

View file

@ -0,0 +1 @@
<svg version="1.2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="16" height="16"><style>.a{fill:#8da5f3}.b{fill:#515d88}</style><path fill-rule="evenodd" class="a" d="m44 4c2.1 0 4.2 0.4 6.1 1.2 2 0.8 3.7 2 5.2 3.5 1.5 1.5 2.7 3.2 3.5 5.2 0.8 1.9 1.2 4 1.2 6.1v9l-8.8 9.4c0.5-0.7 0.8-1.5 0.8-2.4v-8c0-1.1-0.4-2.1-1.2-2.8-0.7-0.8-1.7-1.2-2.8-1.2-1.1 0-2.1 0.4-2.8 1.2-0.8 0.7-1.2 1.7-1.2 2.8v8c0 1.1 0.4 2.1 1.2 2.8 0.7 0.8 1.7 1.2 2.8 1.2 1 0 1.9-0.4 2.6-1l-19.6 21h-11c-2.1 0-4.2-0.4-6.1-1.2-2-0.8-3.7-2-5.2-3.5-1.5-1.5-2.7-3.2-3.5-5.2-0.8-1.9-1.2-4-1.2-6.1v-24c0-2.1 0.4-4.2 1.2-6.1 0.8-2 2-3.7 3.5-5.2 1.5-1.5 3.2-2.7 5.2-3.5 1.9-0.8 4-1.2 6.1-1.2zm-32 32c0 1.1 0.4 2.1 1.2 2.8 0.7 0.8 1.7 1.2 2.8 1.2 1.1 0 2.1-0.4 2.8-1.2 0.8-0.7 1.2-1.7 1.2-2.8v-8c0-1.1-0.4-2.1-1.2-2.8-0.7-0.8-1.7-1.2-2.8-1.2-1.1 0-2.1 0.4-2.8 1.2-0.8 0.7-1.2 1.7-1.2 2.8zm38.6 3l0.6-0.6q-0.2 0.2-0.4 0.4-0.1 0.1-0.2 0.2zm-7.3 6.7c-0.8-0.7-1.8-1.2-2.8-1.2-1.1 0-2.1 0.4-2.8 1.2q-1.2 1.1-2.6 1.7-1.5 0.6-3.1 0.6-1.6 0-3.1-0.6-1.4-0.6-2.6-1.7c-0.7-0.8-1.7-1.2-2.8-1.2-1 0-2 0.5-2.8 1.2-0.7 0.7-1.1 1.7-1.1 2.8 0 1 0.4 2.1 1.1 2.8 1.5 1.5 3.2 2.7 5.2 3.5 1.9 0.8 4 1.2 6.1 1.2 2.1 0 12-9.6 11.3-10.3z"/><path class="b" d="m60.1 26.4c0 0-26.2-6.4-32.1 0.8-5.5 6.5-5.2 33.1-5.2 33.1l8.6-0.6 27.4-29z"/></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View file

@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bc22tbocdun87"
path="res://.godot/imported/icon_sticker2.svg-a942a9bf0ad4999d3046be6cf284193c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://textures/stickers/icon_sticker2.svg"
dest_files=["res://.godot/imported/icon_sticker2.svg-a942a9bf0ad4999d3046be6cf284193c.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
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false