Compare commits

...

19 commits

Author SHA1 Message Date
bcfc55b452 runner test
All checks were successful
/ Godot (linux) (push) Successful in 1m10s
/ Godot (windows) (push) Successful in 31s
2024-07-28 14:30:29 +02:00
2eef87c163 Cursor look state machine 2024-07-28 14:15:04 +02:00
bf0ddce8a5 Clean 2024-07-28 14:04:58 +02:00
17ea850cce Better handling of ressources 2024-07-28 14:04:20 +02:00
06184afcb8 Sticker shader on detecxtion 2024-07-27 17:04:27 +02:00
e4e21741c1 add Debug draw + grab logic 2024-07-27 16:30:15 +02:00
0d315e3f90 fix cursor code 2024-07-26 23:21:09 +02:00
Lucas Peter
454c15f146
update cursor detection 2024-07-26 16:23:27 +02:00
Lucas Peter
fa1870bb3c
Update map1 2024-07-26 16:22:33 +02:00
Lucas Peter
49c3ea4076
update exports presets 2024-07-26 12:22:08 +02:00
Lucas Peter
91d6c7855e
made 2 sticker presets 2024-07-26 12:21:57 +02:00
Lucas Peter
5b6edfa836
Merge branch 'feature/sticker'
# Conflicts:
#	export_presets.cfg
2024-07-26 11:52:27 +02:00
Lucas Peter
359da7b3a3
add player to the scene level 2024-07-26 11:51:34 +02:00
Lucas Peter
cf08e821bc
sticker system preparation 2024-07-26 11:50:52 +02:00
Lucas Peter
f60105d56a
cursor state machine 2024-07-25 18:26:18 +02:00
Lucas Peter
ba06aacff2
Merge branch 'master' into feature/sticker 2024-07-25 16:40:16 +02:00
Lucas Peter
2d87d3beab
Cursor work 2024-07-25 16:36:40 +02:00
Lucas Peter
7064af0707
cursor code 2024-07-25 14:08:44 +02:00
Lucas Peter
0f6f75e8c5
Sticker init 2024-07-25 12:02:35 +02:00
35 changed files with 1099 additions and 131 deletions

View file

@ -0,0 +1,29 @@
on:
push:
branches:
- main
- release
jobs:
Godot:
runs-on: linux_amd64
strategy:
matrix:
platform: [linux, windows]
steps:
- uses: actions/checkout@v3
with:
lfs: true
- run: |
ls ${{ github.workspace }}
# - name: Build
# id: build
# uses: https://github.com/yeslayla/build-godot-action@v1.5.0
# with:
# name: StickerClone
# preset: ${{ matrix.platform }}
# debugMode: "false"
# - name: Upload Artifact
# uses: actions/upload-artifact@v2
# with:
# name: Client - ${{ matrix.platform }}
# path: ${{ github.workspace }}/${{ steps.build.outputs.build }}

121
core/Cur6C3A.tmp Normal file
View file

@ -0,0 +1,121 @@
[gd_scene load_steps=8 format=3 uid="uid://524sv8spw6go"]
[ext_resource type="Texture2D" uid="uid://q1rdbr8uh78r" path="res://textures/cursor_default.tres" id="1_50ts1"]
[ext_resource type="Texture2D" uid="uid://bdstohvc7pvot" path="res://textures/cursor_click.tres" id="1_h0do2"]
[ext_resource type="Texture2D" uid="uid://buxws7r3kn0d7" path="res://textures/cursor_grab_01.tres" id="3_fj3w4"]
[ext_resource type="Texture2D" uid="uid://pbahcjllgjjq" path="res://textures/cursor_grab_02.tres" id="4_153q8"]
[ext_resource type="Texture2D" uid="uid://6fajq480n7se" path="res://textures/cursor_grab_03.tres" id="5_tsejy"]
[sub_resource type="GDScript" id="GDScript_h2l04"]
script/source = "extends Node2D
const Speed:float = 900
var spaceState
var query
var CastResult
var old_result
var selectedSticker
# Called when the node enters the scene tree for the first time.
func _ready():
if not OS.is_debug_build():
Input.set_mouse_mode(Input.MOUSE_MODE_CONFINED_HIDDEN)
query = PhysicsPointQueryParameters2D.new()
spaceState = get_world_2d()
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
#region Mouse Position
position = get_global_mouse_position()
#endregion
pointcast()
cursor_look()
func pointcast():
query.collide_with_areas = true
query.position = get_global_mouse_position()
CastResult = spaceState.direct_space_state.intersect_point(query)
if ( (CastResult.size() > 0) and (old_result != CastResult) ):
old_result = CastResult
for _result in CastResult:
if (_result.collider.input_pickable == true):
selectedSticker = _result.collider.get_parent()
print(\"selected sticker %\",selectedSticker)
if (CastResult.size() == 0):
CastResult.clear()
old_result = null
selectedSticker = null
func cursor_look():
$AnimatedSprite2D.play(\"default\")
if (Input.is_action_pressed(\"select\")):
if (selectedSticker):
$AnimatedSprite2D.play(\"grab\")
else:
$AnimatedSprite2D.play(\"click\")
else:
if (selectedSticker):
$AnimatedSprite2D.play(\"grab_intro\")
"
[sub_resource type="SpriteFrames" id="SpriteFrames_u3xkr"]
resource_local_to_scene = true
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("1_h0do2")
}],
"loop": true,
"name": &"click",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("1_50ts1")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("3_fj3w4")
}, {
"duration": 1.0,
"texture": ExtResource("4_153q8")
}, {
"duration": 1.0,
"texture": ExtResource("5_tsejy")
}],
"loop": true,
"name": &"grab",
"speed": 7.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("3_fj3w4")
}],
"loop": true,
"name": &"grab_intro",
"speed": 5.0
}]
[node name="Cursor" type="Node2D"]
top_level = true
script = SubResource("GDScript_h2l04")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
scale = Vector2(1.5, 1.5)
sprite_frames = SubResource("SpriteFrames_u3xkr")
animation = &"grab"
centered = false
offset = Vector2(-80, -190)

121
core/Cur9BFD.tmp Normal file
View file

@ -0,0 +1,121 @@
[gd_scene load_steps=8 format=3 uid="uid://524sv8spw6go"]
[ext_resource type="Texture2D" uid="uid://q1rdbr8uh78r" path="res://textures/cursor_default.tres" id="1_50ts1"]
[ext_resource type="Texture2D" uid="uid://bdstohvc7pvot" path="res://textures/cursor_click.tres" id="1_h0do2"]
[ext_resource type="Texture2D" uid="uid://buxws7r3kn0d7" path="res://textures/cursor_grab_01.tres" id="3_fj3w4"]
[ext_resource type="Texture2D" uid="uid://pbahcjllgjjq" path="res://textures/cursor_grab_02.tres" id="4_153q8"]
[ext_resource type="Texture2D" uid="uid://6fajq480n7se" path="res://textures/cursor_grab_03.tres" id="5_tsejy"]
[sub_resource type="GDScript" id="GDScript_h2l04"]
script/source = "extends Node2D
const Speed:float = 900
var spaceState
var query
var CastResult
var old_result
var selectedSticker
# Called when the node enters the scene tree for the first time.
func _ready():
if not OS.is_debug_build():
Input.set_mouse_mode(Input.MOUSE_MODE_CONFINED_HIDDEN)
query = PhysicsPointQueryParameters2D.new()
spaceState = get_world_2d()
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
#region Mouse Position
position = get_global_mouse_position()
#endregion
pointcast()
cursor_look()
func pointcast():
query.collide_with_areas = true
query.position = get_global_mouse_position()
CastResult = spaceState.direct_space_state.intersect_point(query)
if ( (CastResult.size() > 0) and (old_result != CastResult) ):
old_result = CastResult
for _result in CastResult:
if (_result.collider.input_pickable == true):
selectedSticker = _result.collider.get_parent()
print(\"selected sticker %\",selectedSticker)
if (CastResult.size() == 0):
CastResult.clear()
old_result = null
selectedSticker = null
func cursor_look():
$AnimatedSprite2D.play(\"default\")
if (Input.is_action_pressed(\"select\")):
if (selectedSticker):
$AnimatedSprite2D.play(\"grab\")
else:
$AnimatedSprite2D.play(\"click\")
if (selectedSticker):
$AnimatedSprite2D.play(\"grab_intro\")
"
[sub_resource type="SpriteFrames" id="SpriteFrames_u3xkr"]
resource_local_to_scene = true
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("1_h0do2")
}],
"loop": true,
"name": &"click",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("1_50ts1")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("3_fj3w4")
}, {
"duration": 1.0,
"texture": ExtResource("4_153q8")
}, {
"duration": 1.0,
"texture": ExtResource("5_tsejy")
}],
"loop": true,
"name": &"grab",
"speed": 7.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("3_fj3w4")
}],
"loop": true,
"name": &"grab_intro",
"speed": 5.0
}]
[node name="Cursor" type="Node2D"]
top_level = true
script = SubResource("GDScript_h2l04")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
scale = Vector2(1.5, 1.5)
sprite_frames = SubResource("SpriteFrames_u3xkr")
animation = &"grab"
autoplay = "grab"
centered = false
offset = Vector2(-80, -190)

173
core/Cursor.gd Normal file
View file

@ -0,0 +1,173 @@
extends Node2D
var spaceState
var query : PhysicsPointQueryParameters2D
var CastResult : Array
var hoveredObjects : Array
var hoveredObject
var hoveredSticker
var grabbedSticker
enum CURSOR_STATE {DEFAULT, CLICK, GRAB, GRABBED}
var currentCursorState:CURSOR_STATE = CURSOR_STATE.DEFAULT
var oldCursorState:CURSOR_STATE = CURSOR_STATE.DEFAULT
var cursorPlaying:bool
# Called when the node enters the scene tree for the first time.
func _ready():
if not OS.is_debug_build():
Input.set_mouse_mode(Input.MOUSE_MODE_CONFINED_HIDDEN)
query = PhysicsPointQueryParameters2D.new()
spaceState = get_world_2d()
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(_delta):
#region Cursor Position
position = get_global_mouse_position()
#endregion
pointcast()
cursor_look()
func isSticker(selectedObject:Node):
var _isSticker:bool = false
var _tags = getTags(selectedObject)
if (_tags.size() > 0):
if (_tags.find("sticker") != -1):
_isSticker = true
return _isSticker
func getTags(selectedObject:Node):
var _tags: Array
if (selectedObject.has_meta("tags")):
_tags = selectedObject.get_meta("tags")
return _tags
else:
printerr("no tags inside %",selectedObject)
return _tags
func pointcast():
resetCast()
query.collide_with_areas = true
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
# so we need to filter/sort the trace result
if ( CastResult.size() > 0 and (grabbedSticker == null)):
#region Fill HoveredObjects
for _object in CastResult:
if(_object.collider.input_pickable == true):
hoveredObjects.append(_object.collider.get_parent())
#endregion
if (hoveredObjects.size() > 0):
if (hoveredObjects.size() >= 2):
sortByPosY(hoveredObjects,false)
if (hoveredObjects[0] != hoveredObject):
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 (isSticker(hoveredObject)):
hoveredSticker = hoveredObject
print("Current hovered sticker :", hoveredSticker)
else:
hoveredSticker = null
else:
resetCast(true)
else:
resetCast(true)
func resetCast(bFull = false):
CastResult.clear()
hoveredObjects.clear()
if bFull:
if (hoveredObject and hoveredObject.has_method("on_unhover")):
hoveredObject.on_unhover()
hoveredObject = null
hoveredSticker = null
func sortByPosY(objects: Array, ascending_order: bool = true):
var _tempArray :Array
_tempArray = objects
# Inline comparison function
_tempArray.sort_custom(comparePosY)
# Reverse if descending order is required
if not ascending_order:
_tempArray.reverse()
objects = _tempArray
func comparePosY(a, b):
#print("Compare ",a," at ",a.position.y, " and ",b," at ",b.position.y )
return a.position.y < b.position.y
func _input(rawInputEvent:InputEvent):
if (rawInputEvent.is_action_pressed("select")):
cursorClick()
$GrabTimer.start()
if (rawInputEvent.is_action_released("select")):
$GrabTimer.stop()
if (grabbedSticker):
grab_end()
func grab_start():
if (hoveredSticker):
grabbedSticker = hoveredSticker
print("Grabbed ", grabbedSticker)
func grab_end():
grabbedSticker.on_released()
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
func cursorClick():
if (hoveredObject and hoveredObject.has_method("on_click")):
hoveredObject.on_click()
func cursor_look():
if (grabbedSticker ):
currentCursorState = CURSOR_STATE.GRABBED
elif (hoveredSticker):
if (!($GrabTimer.is_stopped())):
currentCursorState = CURSOR_STATE.GRABBED
else:
currentCursorState = CURSOR_STATE.GRAB
elif (!($GrabTimer.is_stopped())):
currentCursorState = CURSOR_STATE.CLICK
else:
currentCursorState = CURSOR_STATE.DEFAULT
if (currentCursorState != oldCursorState):
oldCursorState = currentCursorState
match oldCursorState:
CURSOR_STATE.DEFAULT:
$AnimatedSprite2D.play("default")
CURSOR_STATE.CLICK:
$AnimatedSprite2D.play("click")
CURSOR_STATE.GRAB:
$AnimatedSprite2D.play("grab_intro")
CURSOR_STATE.GRABBED:
$AnimatedSprite2D.play("grab")
func _on_grab_timer_timeout():
grab_start()
func _on_animated_sprite_2d_animation_changed():
cursorPlaying = true
func _on_animated_sprite_2d_animation_finished():
cursorPlaying = false

68
core/Cursor.tscn Normal file
View file

@ -0,0 +1,68 @@
[gd_scene load_steps=8 format=3 uid="uid://524sv8spw6go"]
[ext_resource type="Texture2D" uid="uid://q1rdbr8uh78r" path="res://textures/cursor_default.tres" id="1_50ts1"]
[ext_resource type="Script" path="res://core/Cursor.gd" id="1_b5uuj"]
[ext_resource type="Texture2D" uid="uid://bdstohvc7pvot" path="res://textures/cursor_click.tres" id="1_h0do2"]
[ext_resource type="Texture2D" uid="uid://buxws7r3kn0d7" path="res://textures/cursor_grab_01.tres" id="3_fj3w4"]
[ext_resource type="Texture2D" uid="uid://pbahcjllgjjq" path="res://textures/cursor_grab_02.tres" id="4_153q8"]
[ext_resource type="Texture2D" uid="uid://6fajq480n7se" path="res://textures/cursor_grab_03.tres" id="5_tsejy"]
[sub_resource type="SpriteFrames" id="SpriteFrames_u3xkr"]
resource_local_to_scene = true
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("1_h0do2")
}],
"loop": false,
"name": &"click",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("1_50ts1")
}],
"loop": false,
"name": &"default",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("3_fj3w4")
}, {
"duration": 1.0,
"texture": ExtResource("4_153q8")
}, {
"duration": 1.0,
"texture": ExtResource("5_tsejy")
}],
"loop": false,
"name": &"grab",
"speed": 7.0
}, {
"frames": [{
"duration": 1.0,
"texture": ExtResource("3_fj3w4")
}],
"loop": false,
"name": &"grab_intro",
"speed": 5.0
}]
[node name="Cursor" type="Node2D"]
top_level = true
script = ExtResource("1_b5uuj")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
scale = Vector2(1.5, 1.5)
sprite_frames = SubResource("SpriteFrames_u3xkr")
centered = false
offset = Vector2(-80, -190)
[node name="GrabTimer" type="Timer" parent="."]
wait_time = 0.5
one_shot = true
[connection signal="animation_changed" from="AnimatedSprite2D" to="." method="_on_animated_sprite_2d_animation_changed"]
[connection signal="animation_finished" from="AnimatedSprite2D" to="." method="_on_animated_sprite_2d_animation_finished"]
[connection signal="timeout" from="GrabTimer" to="." method="_on_grab_timer_timeout"]

23
core/Sticker.gd Normal file
View file

@ -0,0 +1,23 @@
extends Node
# 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_area_2d_mouse_entered():
pass # Replace with function body.
func _on_area_2d_mouse_exited():
pass # Replace with function body.
func _on_tree_entered():
pass # Replace with function body.

30
core/Sticker.tscn Normal file
View file

@ -0,0 +1,30 @@
[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"]

42
core/debugDraw.tscn Normal file
View file

@ -0,0 +1,42 @@
[gd_scene load_steps=2 format=3 uid="uid://c8ncblufqk10x"]
[sub_resource type="GDScript" id="GDScript_t63le"]
script/source = "extends Node2D
@export var points:Array
@export var duration:float = 1
var radius
var color
func _draw():
for _point in points:
draw_circle(_point,radius,color)
func drawPoints(_points:Array = points,_radius:float = 50.0,_color:Color = Color.CRIMSON,_duration:float = 1):
if(_points):
points = _points
duration = _duration
radius = _radius
color = _color
$Timer.wait_time = duration
$Timer.start()
queue_redraw()
func _on_timer_timeout():
points.clear()
queue_redraw()
func _on_draw():
pass # Replace with function body.
"
[node name="DebugDraw" type="Node2D"]
script = SubResource("GDScript_t63le")
[node name="Timer" type="Timer" parent="."]
one_shot = true
[connection signal="draw" from="." to="." method="_on_draw"]
[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"]

View file

@ -5,7 +5,7 @@ extends CharacterBody2D
@export var CurrentHat: CanvasTexture @export var CurrentHat: CanvasTexture
const SPEED = 1000.0 const SPEED = 1000.0
const MOUSESPEED = 10.0
func teleport(location:Transform2D , direction:float = 1): func teleport(location:Transform2D , direction:float = 1):
transform = location transform = location
scale = Vector2(direction,1) scale = Vector2(direction,1)
@ -25,6 +25,8 @@ func changeSkin(NewSkin:CanvasTexture,_NewHat:CanvasTexture = null):
func get_input(): func get_input():
var directionX = Input.get_axis("move_left", "move_right") var directionX = Input.get_axis("move_left", "move_right")
var directionY = Input.get_axis("move_up", "move_down") var directionY = Input.get_axis("move_up", "move_down")
var mouseDirectionX = Input.get_axis("mouse_left", "mouse_right")
var mouseDirectionY = Input.get_axis("mouse_up", "mouse_down")
#region Movement #region Movement
## Get the input direction and handle the movement/deceleration. ## Get the input direction and handle the movement/deceleration.
if directionX : if directionX :
@ -36,6 +38,8 @@ func get_input():
else: else:
velocity.y = move_toward(velocity.y, 0, SPEED) velocity.y = move_toward(velocity.y, 0, SPEED)
#endregion #endregion
var wantedMousePosition = get_viewport().get_mouse_position()+(Vector2(mouseDirectionX,mouseDirectionY)*MOUSESPEED)
get_viewport().warp_mouse(wantedMousePosition)
#region Animation #region Animation
if (directionX < 0): if (directionX < 0):
$Skeleton2D/root/Hips.set_scale(Vector2(1, 1)) $Skeleton2D/root/Hips.set_scale(Vector2(1, 1))

View file

@ -1,5 +1,7 @@
extends Node2D extends Node2D
@export var InitialPlayer :PackedScene @export var InitialPlayer :PackedScene
@export var InitialMap :PackedScene @export var InitialMap :PackedScene
@ -20,14 +22,15 @@ func transition_to_scene(new_scene: PackedScene, spawn_location = Vector2(0,0),
player = $CurrentScene.find_child("player",true) player = $CurrentScene.find_child("player",true)
if (player): if (player):
player.teleport(spawn_location, spawn_direction) player.teleport(spawn_location, spawn_direction)
else: else: #Spawn the player if there is none
if (InitialPlayer): if (InitialPlayer):
player = InitialPlayer.instantiate() player = InitialPlayer.instantiate()
player.set_name("player") player.set_name("player")
add_child(player) current_scene.get_child(0).add_child(player)
else: else:
printerr("No Initial player found") printerr("No Initial player found")
#endregion #endregion
func _on_ready(): func _on_ready():
transition_to_scene(InitialMap,Vector2(0,0),1) transition_to_scene(InitialMap,Vector2(0,0),1)

View file

@ -5,8 +5,8 @@ platform="Windows Desktop"
runnable=true runnable=true
dedicated_server=false dedicated_server=false
custom_features="" custom_features=""
export_filter="scenes" export_filter="resources"
export_files=PackedStringArray("res://maps/mainMenu.tscn", "res://maps/map1.tscn", "res://maps/mapManager.tscn") export_files=PackedStringArray("res://maps/mainMenu.tscn", "res://maps/map1.tscn", "res://maps/mapManager.tscn", "res://shaders/shaderMaterial_Outline.tres", "res://shaders/shader_outline3.gdshader", "res://shaders/shader_outline2.gdshader", "res://shaders/shader_outline.gdshader", "res://core/bridgeNode.tscn", "res://core/Cursor.gd", "res://core/Cursor.tscn", "res://core/debugDraw.tscn", "res://core/player.gd", "res://core/player.tscn", "res://core/sceneInstance.gd", "res://core/Sticker.gd", "res://core/Sticker.tscn")
include_filter="" include_filter=""
exclude_filter="" exclude_filter=""
export_path="builds/stickerClone.exe" export_path="builds/stickerClone.exe"
@ -32,7 +32,7 @@ codesign/timestamp_server_url=""
codesign/digest_algorithm=1 codesign/digest_algorithm=1
codesign/description="" codesign/description=""
codesign/custom_options=PackedStringArray() codesign/custom_options=PackedStringArray()
application/modify_resources=true application/modify_resources=false
application/icon="" application/icon=""
application/console_wrapper_icon="" application/console_wrapper_icon=""
application/icon_interpolation=4 application/icon_interpolation=4
@ -69,7 +69,8 @@ platform="Linux/X11"
runnable=true runnable=true
dedicated_server=false dedicated_server=false
custom_features="" custom_features=""
export_filter="all_resources" export_filter="scenes"
export_files=PackedStringArray("res://maps/mapManager.tscn", "res://maps/map1.tscn", "res://maps/mainMenu.tscn")
include_filter="" include_filter=""
exclude_filter="" exclude_filter=""
export_path="builds/StickerClone.x86_64" export_path="builds/StickerClone.x86_64"

BIN
extracted/Sprite/Tree_Field_01_SPRT.png (Stored with Git LFS)

Binary file not shown.

BIN
extracted/Sprite/Tree_Field_02_SPRT.png (Stored with Git LFS)

Binary file not shown.

View file

@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bliv5pwjnmsja"
path="res://.godot/imported/Tree_Field_02_SPRT.png-e8a50b6e1fe5334b80ff094a374b3521.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://extracted/Sprite/Tree_Field_02_SPRT.png"
dest_files=["res://.godot/imported/Tree_Field_02_SPRT.png-e8a50b6e1fe5334b80ff094a374b3521.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.

View file

@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c00o46q3iyg6b"
path="res://.godot/imported/TreeLarge1_Sticker #62431.png-301805e3beb3b1cf0e118ec36f3dcef3.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://extracted/Texture2D/TreeLarge1_Sticker #62431.png"
dest_files=["res://.godot/imported/TreeLarge1_Sticker #62431.png-301805e3beb3b1cf0e118ec36f3dcef3.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.

View file

@ -1,34 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c46ncjf0ii7uq"
path="res://.godot/imported/Tree_Field_01_SPRT #62459.png-ebc8fc76929b8668f4ab97911404147d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://extracted/Texture2D/Tree_Field_01_SPRT #62459.png"
dest_files=["res://.godot/imported/Tree_Field_01_SPRT #62459.png-ebc8fc76929b8668f4ab97911404147d.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

@ -1,10 +1,19 @@
[gd_scene load_steps=9 format=3 uid="uid://wlqsvbqpcbh"] [gd_scene load_steps=33 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://cxharyv0ajr37" path="res://textures/atlas/DioramaEntrance_All_01_SPRT.png" id="2_n7y5f"] [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="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://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="Texture2D" uid="uid://dx8jpmxtm2cdx" path="res://textures/pattern/Pattern_Forest.png" id="5_i137q"] [ext_resource type="Texture2D" uid="uid://dx8jpmxtm2cdx" path="res://textures/pattern/Pattern_Forest.png" id="5_i137q"]
[ext_resource type="Texture2D" uid="uid://cun14l52f477p" path="res://textures/atlas/Bushes_All_01_SPRT.png" id="5_xmosd"]
[ext_resource type="PackedScene" uid="uid://domcpxdf6lqpb" path="res://prefab/free_sticker.tscn" id="6_3fkbm"]
[ext_resource type="Texture2D" uid="uid://dggavne4ueche" path="res://extracted/Texture2D/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="PackedScene" uid="uid://6ww1g2enfdx3" path="res://prefab/solid_sticker.tscn" id="9_nxjul"]
[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://bwcex0o7obtg5" path="res://textures/atlas/Props_All_01_SPRT.png" id="11_0efxk"]
[ext_resource type="Texture2D" uid="uid://ciyh3rnoo4uk" path="res://extracted/Texture2D/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="ShaderMaterial" id="ShaderMaterial_js06g"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_js06g"]
@ -16,7 +25,71 @@ region = Rect2(252, 16, 108, 256)
atlas = ExtResource("2_n7y5f") atlas = ExtResource("2_n7y5f")
region = Rect2(12, 96, 216, 112) region = Rect2(12, 96, 216, 112)
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_lfx7b"]
radius = 80.0
height = 254.0
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_dqo8w"]
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"]
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="CapsuleShape2D" id="CapsuleShape2D_bkpsv"]
radius = 115.4
height = 230.8
[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(90.375, 25.5)
[sub_resource type="AtlasTexture" id="AtlasTexture_2qdgk"]
atlas = ExtResource("11_0efxk")
region = Rect2(1824, 480, 192, 160)
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_jw3i8"]
lifetime_randomness = 0.2
particle_flag_disable_z = true
emission_shape_scale = Vector3(0.5, 1, 1)
emission_shape = 1
emission_sphere_radius = 60.0
angle_min = -12.5
angle_max = 12.5
gravity = Vector3(0, -20, 0)
[sub_resource type="AtlasTexture" id="AtlasTexture_c24s7"]
atlas = ExtResource("12_ro7fd")
region = Rect2(0, 0, 128, 160)
[sub_resource type="CircleShape2D" id="CircleShape2D_5wedp"]
radius = 42.25
[node name="Map1" type="Node2D"] [node name="Map1" type="Node2D"]
z_as_relative = false
y_sort_enabled = true
material = SubResource("ShaderMaterial_js06g") material = SubResource("ShaderMaterial_js06g")
[node name="Container" type="Control" parent="."] [node name="Container" type="Control" parent="."]
@ -33,6 +106,7 @@ offset_bottom = 6527.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
auto_translate = false auto_translate = false
metadata/_edit_lock_ = true
[node name="TextureRect" type="TextureRect" parent="Container"] [node name="TextureRect" type="TextureRect" parent="Container"]
modulate = Color(0.49519, 0.69, 0.1587, 1) modulate = Color(0.49519, 0.69, 0.1587, 1)
@ -54,13 +128,18 @@ scale = Vector2(15, 15)
auto_translate = false auto_translate = false
texture = ExtResource("5_i137q") texture = ExtResource("5_i137q")
stretch_mode = 1 stretch_mode = 1
metadata/_edit_lock_ = true
[node name="Floors05Sprt" type="Sprite2D" parent="."] [node name="Floors05Sprt" type="Sprite2D" parent="."]
z_index = -10
z_as_relative = false
scale = Vector2(6, 6) scale = Vector2(6, 6)
texture = ExtResource("1_pt5vq") texture = ExtResource("1_pt5vq")
region_rect = Rect2(0, 0, 1024, 992) region_rect = Rect2(0, 0, 1024, 992)
metadata/_edit_lock_ = true
[node name="StaticBody2D" type="StaticBody2D" parent="Floors05Sprt"] [node name="StaticBody2D" type="StaticBody2D" parent="Floors05Sprt"]
metadata/_edit_lock_ = true
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Floors05Sprt/StaticBody2D"] [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Floors05Sprt/StaticBody2D"]
polygon = PackedVector2Array(-450, 68.3333, -446.167, 162.667, 194.833, 162.667, 211.833, 162.667, 208.167, -35.3333, 462.667, -31.5, 458.833, -131.5, 191.167, -129.667, 191.167, 66.5) polygon = PackedVector2Array(-450, 68.3333, -446.167, 162.667, 194.833, 162.667, 211.833, 162.667, 208.167, -35.3333, 462.667, -31.5, 458.833, -131.5, 191.167, -129.667, 191.167, 66.5)
@ -96,3 +175,164 @@ top_level = true
position = Vector2(78, -148) position = Vector2(78, -148)
scale = Vector2(6.15, 6.15) scale = Vector2(6.15, 6.15)
texture = ExtResource("3_yh2wy") texture = ExtResource("3_yh2wy")
[node name="Bush1" parent="." instance=ExtResource("6_3fkbm")]
position = Vector2(-2161, 1140)
Shape = SubResource("CapsuleShape2D_lfx7b")
Rotation = 1.6
[node name="Tree1" parent="." instance=ExtResource("6_3fkbm")]
position = Vector2(1592, 606)
texture = ExtResource("7_gygvy")
offset = Vector2(-251.145, -512)
Shape = SubResource("CapsuleShape2D_dqo8w")
Position = Vector2(0, -253.27)
Rotation = 0.01
[node name="Tree2" parent="." instance=ExtResource("6_3fkbm")]
position = Vector2(-2399, -55)
texture = ExtResource("7_gygvy")
offset = Vector2(-251.145, -512)
Shape = SubResource("CapsuleShape2D_dqo8w")
Position = Vector2(0, -253.27)
Rotation = 0.01
[node name="Tree3" parent="." instance=ExtResource("6_3fkbm")]
position = Vector2(-763, -2021)
texture = ExtResource("7_gygvy")
offset = Vector2(-251.145, -512)
Shape = SubResource("CapsuleShape2D_dqo8w")
Position = Vector2(0, -253.27)
Rotation = 0.01
[node name="Tree4" parent="." instance=ExtResource("6_3fkbm")]
position = Vector2(2365, -2258)
texture = ExtResource("7_gygvy")
offset = Vector2(-251.145, -512)
Shape = SubResource("CapsuleShape2D_dqo8w")
Position = Vector2(0, -253.27)
Rotation = 0.01
[node name="Bush6" parent="." instance=ExtResource("6_3fkbm")]
position = Vector2(-1556, 293)
Shape = SubResource("CapsuleShape2D_lfx7b")
Rotation = 1.6
[node name="Bush7" parent="." instance=ExtResource("6_3fkbm")]
position = Vector2(712, 293)
Shape = SubResource("CapsuleShape2D_lfx7b")
Rotation = 1.6
[node name="Bush9" parent="." instance=ExtResource("6_3fkbm")]
position = Vector2(1004, -2257)
Shape = SubResource("CapsuleShape2D_lfx7b")
Rotation = 1.6
[node name="Bush8" parent="." instance=ExtResource("6_3fkbm")]
position = Vector2(-1616, -1651)
offset = Vector2(-137.285, -179.785)
flip_h = true
Shape = SubResource("CapsuleShape2D_lfx7b")
Rotation = 1.6
[node name="Bush10" parent="." instance=ExtResource("6_3fkbm")]
position = Vector2(-2063, -2116)
texture = SubResource("AtlasTexture_rn40i")
offset = Vector2(-108.615, -141.38)
flip_h = true
Shape = SubResource("CapsuleShape2D_b3366")
Position = Vector2(0, -48.95)
Rotation = 1.5
[node name="Bush11" parent="." instance=ExtResource("6_3fkbm")]
position = Vector2(2208, 2337)
texture = SubResource("AtlasTexture_rn40i")
offset = Vector2(-108.615, -141.38)
Shape = SubResource("CapsuleShape2D_b3366")
Position = Vector2(0, -48.95)
Rotation = 1.5
[node name="Rock1" parent="." instance=ExtResource("9_nxjul")]
position = Vector2(-1807, 2030)
texture = SubResource("AtlasTexture_vun1v")
offset = Vector2(-78.385, -130.2)
StickerShape = SubResource("CapsuleShape2D_b3366")
Position = Vector2(8.56, -52.395)
CollisionShape = SubResource("RectangleShape2D_4cdlc")
CollisionPosition = Vector2(7.915, -31.39)
[node name="Rock2" parent="." instance=ExtResource("9_nxjul")]
position = Vector2(-2248, 1895)
texture = SubResource("AtlasTexture_wpoj4")
offset = Vector2(-126.11, -220.56)
StickerShape = SubResource("CapsuleShape2D_bkpsv")
Position = Vector2(0, -89.75)
CollisionShape = SubResource("RectangleShape2D_hk5e3")
CollisionPosition = Vector2(0, -66.02)
[node name="Log" type="Sprite2D" parent="."]
position = Vector2(-1043, -170)
scale = Vector2(4, 4)
texture = SubResource("AtlasTexture_w86nr")
centered = false
offset = Vector2(-79.665, -133.81)
metadata/_edit_lock_ = true
[node name="StaticBody2D" type="StaticBody2D" parent="Log"]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Log/StaticBody2D"]
position = Vector2(3.75, -17.5)
shape = SubResource("RectangleShape2D_tss3y")
debug_color = Color(0.999472, 0.00663362, 0.0810784, 0.42)
[node name="Log3" type="Sprite2D" parent="."]
position = Vector2(293, -810)
scale = Vector2(4, 4)
texture = SubResource("AtlasTexture_w86nr")
centered = false
offset = Vector2(-79.665, -133.81)
metadata/_edit_lock_ = true
[node name="StaticBody2D" type="StaticBody2D" parent="Log3"]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Log3/StaticBody2D"]
position = Vector2(3.75, -17.5)
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)
scale = Vector2(4, 4)
texture = SubResource("AtlasTexture_2qdgk")
[node name="GPUParticles2D" type="GPUParticles2D" parent="FirePit"]
position = Vector2(-5.25, -17.75)
scale = Vector2(0.5, 0.5)
amount = 4
process_material = SubResource("ParticleProcessMaterial_jw3i8")
texture = SubResource("AtlasTexture_c24s7")
lifetime = 2.0
collision_base_size = 0.0
visibility_rect = Rect2(-160, -160, 320, 320)
local_coords = true
[node name="Sprite2D" type="Sprite2D" parent="FirePit"]
position = Vector2(4.75, -2)
scale = Vector2(0.7, 0.7)
texture = SubResource("AtlasTexture_c24s7")
centered = false
offset = Vector2(-71.215, -125.04)
[node name="PointLight2D" type="PointLight2D" parent="FirePit/Sprite2D"]
color = Color(1, 0.54902, 0.270588, 1)
energy = 1.2
shadow_enabled = true
texture = ExtResource("13_sm1ou")
texture_scale = 1.9
[node name="StaticBody2D" type="StaticBody2D" parent="FirePit"]
[node name="CollisionShape2D" type="CollisionShape2D" parent="FirePit/StaticBody2D"]
shape = SubResource("CircleShape2D_5wedp")
debug_color = Color(0.937527, 0.247798, 0.087146, 0.42)

View file

@ -1,8 +1,9 @@
[gd_scene load_steps=4 format=3 uid="uid://d382cexpr4075"] [gd_scene load_steps=5 format=3 uid="uid://d382cexpr4075"]
[ext_resource type="Script" path="res://core/sceneInstance.gd" id="1_p0vo1"] [ext_resource type="Script" path="res://core/sceneInstance.gd" id="1_p0vo1"]
[ext_resource type="PackedScene" uid="uid://0m1hk2nu4bps" path="res://core/player.tscn" id="2_fyjh8"] [ext_resource type="PackedScene" uid="uid://0m1hk2nu4bps" path="res://core/player.tscn" id="2_fyjh8"]
[ext_resource type="PackedScene" uid="uid://wlqsvbqpcbh" path="res://maps/map1.tscn" id="2_qgqfi"] [ext_resource type="PackedScene" uid="uid://wlqsvbqpcbh" path="res://maps/map1.tscn" id="2_qgqfi"]
[ext_resource type="PackedScene" uid="uid://524sv8spw6go" path="res://core/Cursor.tscn" id="4_uwedi"]
[node name="MapManager" type="Node2D"] [node name="MapManager" type="Node2D"]
script = ExtResource("1_p0vo1") script = ExtResource("1_p0vo1")
@ -11,4 +12,6 @@ InitialMap = ExtResource("2_qgqfi")
[node name="CurrentScene" type="Node2D" parent="."] [node name="CurrentScene" type="Node2D" parent="."]
[node name="Cursor" parent="." instance=ExtResource("4_uwedi")]
[connection signal="ready" from="." to="." method="_on_ready"] [connection signal="ready" from="." to="." method="_on_ready"]

65
prefab/free_sticker.tscn Normal file
View file

@ -0,0 +1,65 @@
[gd_scene load_steps=4 format=3 uid="uid://domcpxdf6lqpb"]
[ext_resource type="Texture2D" uid="uid://cun14l52f477p" path="res://textures/atlas/Bushes_All_01_SPRT.png" id="1_1wk1p"]
[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()
"
[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
[connection signal="property_list_changed" from="." to="." method="_on_property_list_changed"]

View file

@ -10,6 +10,7 @@ region = Rect2(72, 1392, 216, 272)
[node name="WoodenBridge" type="Sprite2D"] [node name="WoodenBridge" type="Sprite2D"]
scale = Vector2(5.71296, 5.71296) scale = Vector2(5.71296, 5.71296)
texture = SubResource("AtlasTexture_nkyhf") texture = SubResource("AtlasTexture_nkyhf")
metadata/tags = ["sticker"]
[node name="BridgeNode" parent="." instance=ExtResource("2_te8ug")] [node name="BridgeNode" parent="." instance=ExtResource("2_te8ug")]
position = Vector2(1788, 788) position = Vector2(1788, 788)

76
prefab/solid_sticker.tscn Normal file
View file

@ -0,0 +1,76 @@
[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
@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 :Vector2:
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()
"
[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

@ -17,6 +17,10 @@ config/features=PackedStringArray("4.2", "Mobile")
config/icon="res://extracted/Texture2D/Map.png" config/icon="res://extracted/Texture2D/Map.png"
config/windows_native_icon="res://extracted/Texture2D/Map.png" config/windows_native_icon="res://extracted/Texture2D/Map.png"
[autoload]
DebugDraw="*res://core/debugDraw.tscn"
[editor_plugins] [editor_plugins]
enabled=PackedStringArray("res://addons/Todo_Manager/plugin.cfg") enabled=PackedStringArray("res://addons/Todo_Manager/plugin.cfg")
@ -60,7 +64,7 @@ sticker_mode={
select={ select={
"deadzone": 0.5, "deadzone": 0.5,
"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":0,"pressure":0.0,"pressed":true,"script":null) "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":0,"pressure":0.0,"pressed":true,"script":null)
, Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":1,"position":Vector2(143, 14),"global_position":Vector2(147, 55),"factor":1.0,"button_index":1,"canceled":false,"pressed":true,"double_click":false,"script":null) , Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":1,"position":Vector2(111, 16),"global_position":Vector2(115, 57),"factor":1.0,"button_index":1,"canceled":false,"pressed":true,"double_click":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194309,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194309,"key_label":0,"unicode":0,"echo":false,"script":null)
] ]
} }
@ -76,6 +80,26 @@ menu={
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0,"echo":false,"script":null)
] ]
} }
mouse_up={
"deadzone": 0.5,
"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":3,"axis_value":-1.0,"script":null)
]
}
mouse_down={
"deadzone": 0.5,
"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":3,"axis_value":1.0,"script":null)
]
}
mouse_left={
"deadzone": 0.5,
"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":2,"axis_value":-1.0,"script":null)
]
}
mouse_right={
"deadzone": 0.5,
"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":2,"axis_value":1.0,"script":null)
]
}
[layer_names] [layer_names]

BIN
textures/2d_FE44.tmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View file

@ -2,16 +2,16 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://ca1mrresx618t" uid="uid://dcgjlblm2rpy4"
path="res://.godot/imported/Tree_Field_01_SPRT.png-02a529b82fadd4687fe05464ba8bf06c.ctex" path="res://.godot/imported/2d_lights_and_shadows_neutral_point_light.webp-086f9c4fa9cb6d024434559510c1a988.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://extracted/Sprite/Tree_Field_01_SPRT.png" source_file="res://textures/2d_lights_and_shadows_neutral_point_light.webp"
dest_files=["res://.godot/imported/Tree_Field_01_SPRT.png-02a529b82fadd4687fe05464ba8bf06c.ctex"] dest_files=["res://.godot/imported/2d_lights_and_shadows_neutral_point_light.webp-086f9c4fa9cb6d024434559510c1a988.ctex"]
[params] [params]

View file

@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://docoki1q4vvfh" uid="uid://docoki1q4vvfh"
path="res://.godot/imported/SPRT_Hand.png-10f10cc13ae4b0331523734719309ebe.ctex" path="res://.godot/imported/SPRT_Hand.png-f682339cd646a6350ee80c8d3fc09b3b.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://extracted/Texture2D/SPRT_Hand.png" source_file="res://textures/atlas/SPRT_Hand.png"
dest_files=["res://.godot/imported/SPRT_Hand.png-10f10cc13ae4b0331523734719309ebe.ctex"] dest_files=["res://.godot/imported/SPRT_Hand.png-f682339cd646a6350ee80c8d3fc09b3b.ctex"]
[params] [params]

View file

@ -0,0 +1,9 @@
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://bdstohvc7pvot"]
[ext_resource type="Texture2D" uid="uid://docoki1q4vvfh" path="res://textures/atlas/SPRT_Hand.png" id="1_2ch11"]
[resource]
atlas = ExtResource("1_2ch11")
region = Rect2(0, 0, 256, 256)
margin = Rect2(-5, 5, 5, 5)
filter_clip = true

View file

@ -0,0 +1,7 @@
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://q1rdbr8uh78r"]
[ext_resource type="Texture2D" uid="uid://docoki1q4vvfh" path="res://textures/atlas/SPRT_Hand.png" id="1_n6y0a"]
[resource]
atlas = ExtResource("1_n6y0a")
region = Rect2(0, 0, 256, 256)

21
textures/cursor_grab.tres Normal file
View file

@ -0,0 +1,21 @@
[gd_resource type="AnimatedTexture" load_steps=5 format=3 uid="uid://sgwck5ca17s1"]
[ext_resource type="Texture2D" uid="uid://q1rdbr8uh78r" path="res://textures/cursor_default.tres" id="1_k7xih"]
[ext_resource type="Texture2D" uid="uid://docoki1q4vvfh" path="res://textures/atlas/SPRT_Hand.png" id="1_ltia2"]
[sub_resource type="AtlasTexture" id="AtlasTexture_gpt2k"]
atlas = ExtResource("1_ltia2")
region = Rect2(0, 256, 256, 256)
[sub_resource type="AtlasTexture" id="AtlasTexture_hq7jx"]
atlas = ExtResource("1_ltia2")
region = Rect2(256, 256, 256, 256)
[resource]
frames = 3
frame_0/texture = ExtResource("1_k7xih")
frame_0/duration = 0.5
frame_1/texture = SubResource("AtlasTexture_gpt2k")
frame_1/duration = 0.5
frame_2/texture = SubResource("AtlasTexture_hq7jx")
frame_2/duration = 0.5

View file

@ -0,0 +1,7 @@
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://buxws7r3kn0d7"]
[ext_resource type="Texture2D" uid="uid://docoki1q4vvfh" path="res://textures/atlas/SPRT_Hand.png" id="1_xhy8h"]
[resource]
atlas = ExtResource("1_xhy8h")
region = Rect2(256, 0, 256, 256)

View file

@ -0,0 +1,7 @@
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://pbahcjllgjjq"]
[ext_resource type="Texture2D" uid="uid://docoki1q4vvfh" path="res://textures/atlas/SPRT_Hand.png" id="1_it2wc"]
[resource]
atlas = ExtResource("1_it2wc")
region = Rect2(0, 256, 256, 256)

View file

@ -0,0 +1,7 @@
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://6fajq480n7se"]
[ext_resource type="Texture2D" uid="uid://docoki1q4vvfh" path="res://textures/atlas/SPRT_Hand.png" id="1_r8woc"]
[resource]
atlas = ExtResource("1_r8woc")
region = Rect2(256, 256, 256, 256)