Compare commits

2 Commits

Author SHA1 Message Date
8264533cf5 Version 2026-03-15 13:06:38 -05:00
8bcf406576 Refactor signal logic 2026-03-15 13:06:21 -05:00
191 changed files with 218 additions and 1065 deletions

3
.gitignore vendored
View File

@@ -17,6 +17,3 @@ mono_crash.*.json
# Android build files
/android/
# Rider files
.idea

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

View File

@@ -1,40 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bo1utikr0r2q1"
path="res://.godot/imported/64x64.png-129f36e07b18bd0408477af73ef87a83.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/Spritesheets/Icons/UI/64x64.png"
dest_files=["res://.godot/imported/64x64.png-129f36e07b18bd0408477af73ef87a83.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
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/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
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,28 +0,0 @@
extends Node
class_name BaseTestRunner
func _ready() -> void:
var methods := self.get_method_list()
for method in methods:
var method_name: String = method["name"]
if method_name.left(5).to_lower() != "test_":
continue
var return_dict: Dictionary = method["return"]
var return_type: int = return_dict["type"]
if return_type != 1:
print_rich("[color=yellow]Skipping Unit Test Method '%s'. Reason: Return type is not bool[/color]" % method_name)
continue
var args: Array = method["args"]
if not args.is_empty():
print_rich("[color=yellow]Skipping Unit Test Method '%s', Reason: Method requires arguments.[/color]" % method_name)
continue
var result: bool = call(method_name)
if result:
print_rich("[color=green]%s: Success![/color]" % method_name)
else:
print_rich("[color=red]%s: Failure...[/color]" % method_name)

View File

@@ -1 +0,0 @@
uid://bsewsmjxlup47

View File

@@ -1,3 +0,0 @@
[gd_scene format=3 uid="uid://rl2o7alqg7w4"]
[node name="BaseTestRunner" type="Node" unique_id=1916529975]

View File

@@ -1,14 +0,0 @@
extends BaseTestRunner
func Test_1() -> bool:
var json_string = "{\"Key\": false}"
var json = JSON.new()
var parse_result := json.parse(json_string)
if parse_result != OK:
return false
return true
func Test_2() -> String:
return ''

View File

@@ -1 +0,0 @@
uid://xrexdmk7d1qx

View File

@@ -1,6 +0,0 @@
[gd_scene format=3 uid="uid://c23ct3b1nmih7"]
[ext_resource type="Script" uid="uid://xrexdmk7d1qx" path="res://Debug/Unit Testing/Scripts/json_parsing_tests.gd" id="1_beu12"]
[node name="JsonParsingTests" type="Node" unique_id=2014332517]
script = ExtResource("1_beu12")

View File

@@ -1,6 +0,0 @@
[gd_scene format=3 uid="uid://nbkisxm2oekn"]
[ext_resource type="Script" uid="uid://dwclkwbig1uii" path="res://Entities/Characters/Player/Scripts/movement_component.gd" id="1_b2nib"]
[node name="Movement Component" type="Node" unique_id=737644583]
script = ExtResource("1_b2nib")

View File

@@ -1 +0,0 @@
uid://ba0nsd76er3xa

View File

@@ -1 +0,0 @@
uid://ckfuj0lm6jv3i

View File

@@ -1 +0,0 @@
uid://csspyy43sohfl

View File

@@ -1 +0,0 @@
uid://bvl1vdqd5cjkc

View File

@@ -1,7 +0,0 @@
[gd_scene format=3 uid="uid://dpwm1tn0mbr3l"]
[ext_resource type="Script" uid="uid://vmyfl4obus88" path="res://Entities/Map Objects/Trees/Effects/Scripts/leaf_spawner.gd" id="1_l7yxv"]
[node name="Leaf Spawner" type="Node2D" unique_id=986945632]
y_sort_enabled = true
script = ExtResource("1_l7yxv")

View File

@@ -1,102 +0,0 @@
[gd_scene format=3 uid="uid://cc3qat6un2323"]
[ext_resource type="Texture2D" uid="uid://xygpf7c886pj" path="res://Assets/Spritesheets/Trees/Medium_Oak_Tree.png" id="1_i2ia5"]
[ext_resource type="PackedScene" uid="uid://d24gcv3umq60k" path="res://Entities/Characters/Utility/Occlusion/occlusion_culler.tscn" id="1_jbed0"]
[sub_resource type="CircleShape2D" id="CircleShape2D_jbed0"]
radius = 12.0
[sub_resource type="Shader" id="Shader_jbed0"]
code = "shader_type canvas_item;
uniform bool render_noise = false;
uniform sampler2D noise_texture : repeat_enable; // set in inspector
uniform float amplitude : hint_range(0.0, 0.5, 0.01) = 0.2;
uniform float time_scale : hint_range(0.0, 5.0, 0.01) = 0.04;
uniform float noise_scale : hint_range(0.0, 2.0, 0.0001) = 0.001;
uniform float rotation_strength : hint_range(0.0, 5.0, 0.1) = 1;
uniform vec2 rotation_pivot = vec2(0.5, 1);
varying vec2 world_position;
void vertex(){
world_position = (MODEL_MATRIX * vec4(VERTEX, 0.0, 1.0)).xy;
}
vec2 get_sample_pos(vec2 pos, float scale, float offset) {
pos *= scale;
pos += offset;
return pos;
}
vec2 rotate_vec(vec2 vec, vec2 pivot, float rotation) {
float cosa = cos(rotation);
float sina = sin(rotation);
vec -= pivot;
return vec2(
cosa * vec.x - sina * vec.y,
cosa * vec.y + sina * vec.x
) + pivot;
}
void fragment() {
// get noise from texture
vec2 noise_sample_pos = get_sample_pos(world_position, noise_scale, TIME * time_scale);
float noise_amount = texture(noise_texture, noise_sample_pos).r - 0.5f;
// get rotation position around a pivot
float rotation = amplitude * noise_amount;
vec2 rotated_uvs = rotate_vec(UV, rotation_pivot, rotation);
// blend original uvs and rotated uvs based on distance to pivot
float dist = distance(UV, rotation_pivot) * rotation_strength;
vec2 result_uvs = mix(UV, rotated_uvs, dist);
// output color
COLOR = texture(TEXTURE, result_uvs);
// optional, preview noise texture for debugging
if (render_noise) {
vec4 noise_color = texture(noise_texture, noise_sample_pos);
COLOR = noise_color;
}
}"
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_o0u4i"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_b23hf"]
shader = SubResource("Shader_jbed0")
shader_parameter/render_noise = false
shader_parameter/noise_texture = SubResource("NoiseTexture2D_o0u4i")
shader_parameter/amplitude = 0.05999999865888
shader_parameter/time_scale = 0.04
shader_parameter/noise_scale = 0.001
shader_parameter/rotation_strength = 1.0
shader_parameter/rotation_pivot = Vector2(0.5, 1)
[sub_resource type="AtlasTexture" id="AtlasTexture_5otsd"]
atlas = ExtResource("1_i2ia5")
region = Rect2(32, 0, 32, 48)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_0srx6"]
size = Vector2(6, 3)
[node name="Tree 01" type="StaticBody2D" unique_id=2046930104]
y_sort_enabled = true
[node name="Occlusion Culler" parent="." unique_id=1362480066 node_paths=PackedStringArray("nodes_to_occlude") instance=ExtResource("1_jbed0")]
nodes_to_occlude = [NodePath("../Sprite2D")]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Occlusion Culler" unique_id=731605527]
position = Vector2(0, -10)
shape = SubResource("CircleShape2D_jbed0")
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=1420512565]
y_sort_enabled = true
material = SubResource("ShaderMaterial_b23hf")
position = Vector2(0, 8)
texture = SubResource("AtlasTexture_5otsd")
offset = Vector2(0, -8)
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=870152657]
position = Vector2(0, 6.5)
shape = SubResource("RectangleShape2D_0srx6")

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -1,40 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ckbsqf4p5xu44"
path="res://.godot/imported/Game Icon.png-1ecac6caff9b7691e845293f1a955d2a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Game Icon.png"
dest_files=["res://.godot/imported/Game Icon.png-1ecac6caff9b7691e845293f1a955d2a.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
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/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
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,8 +0,0 @@
extends Node
# Public Methods
func GetMovementComponent(container: Node) -> MovementComponent:
for node in container.get_children():
if node is MovementComponent:
return node
return null

View File

@@ -1 +0,0 @@
uid://cf5j2r4gpceng

View File

@@ -1,3 +0,0 @@
extends CanvasLayer
const MAP_UI = preload("uid://ce6ix6ca6js5f")

View File

@@ -1,26 +0,0 @@
extends Node2D
enum StartOptions {
TitleScreen,
InitialMap
}
@export var starting_scene := StartOptions.TitleScreen
@onready var map_transitioner: Node = $"Map Transitioner"
@onready var map_ui: Control = $"Gui/Map UI"
# Private Methods
func _ready() -> void:
match starting_scene:
StartOptions.TitleScreen:
map_transitioner.call_deferred("InstantiateTitleScreen")
StartOptions.InitialMap:
map_transitioner.call_deferred("InstantiateInitialMap")
func _on_map_changed(map_id: Enums.MapIds) -> void:
if map_id != Enums.MapIds.TITLE_SCREEN:
map_ui.set_deferred("visible", true)
else:
map_ui.set_deferred("visible", false)

View File

@@ -1,6 +0,0 @@
extends Node
# Public Methods
func OnGameStarted() -> void:
print("Loading from disk")
PersistenceManager.LoadFromDisk(PersistenceManager.DEFAULT_SAVE_FILE_PATH)

View File

@@ -1 +0,0 @@
uid://bkvsdwn7swt1p

File diff suppressed because one or more lines are too long

View File

@@ -1,7 +0,0 @@
extends Node2D
signal GameStarted
# Private Methods
func _on_start_game_button_pressed() -> void:
GameStarted.emit()

View File

@@ -1 +0,0 @@
uid://qv5i4xr6pldc

File diff suppressed because one or more lines are too long

View File

@@ -1,20 +0,0 @@
extends Node
@export var chests: Array[NodePath]
# Private Methods
func _ready() -> void:
for relative_node_path in chests:
var chest: BaseChest = get_node(relative_node_path)
var node_path := chest.get_path()
chest.ChestOpened.connect(func(): _on_chest_opened(chest))
if PersistenceManager.HasData(node_path):
var chest_opened: bool = PersistenceManager.GetData(node_path)
if chest_opened:
chest.call_deferred("SetOpenedFromLoad")
func _on_chest_opened(chest: BaseChest) -> void:
var node_path := chest.get_path()
PersistenceManager.UpdateData(node_path, true)

View File

@@ -1 +0,0 @@
uid://75g2fysjrqji

View File

@@ -1,39 +0,0 @@
extends Node
@export var gates: Array[NodePath]
# Private Methods
func _ready() -> void:
for node_path in gates:
_handle_spike_gate(node_path)
func _handle_spike_gate(node_path: NodePath) -> bool:
var node := get_node(node_path)
node_path = node.get_path()
if not node.name.begins_with("Spike Gate"):
return false
# Connect Signal
node.connect("Opened", func(): _on_spike_gate_opened(node))
if not PersistenceManager.HasData(node_path):
return true
var is_open: bool = PersistenceManager.GetData(node_path)
if not is_open:
return true
var collision_shape: CollisionShape2D = node.get_node("CollisionShape2D")
var animated_sprite: AnimatedSprite2D = node.get_node("AnimatedSprite2D")
node.set_deferred("is_open", true)
collision_shape.set_deferred("disabled", true)
animated_sprite.call_deferred("play", "open")
return true
func _on_spike_gate_opened(node: Node) -> void:
var path := node.get_path()
PersistenceManager.UpdateData(path, true)

View File

@@ -1 +0,0 @@
uid://brsiegtrne15y

View File

@@ -1,6 +0,0 @@
[gd_scene format=3 uid="uid://w4mh31se58f4"]
[ext_resource type="Script" uid="uid://75g2fysjrqji" path="res://Persistence/Connectors/Scripts/chest_persistence_connector.gd" id="1_hytou"]
[node name="Chest Persistence Connector" type="Node" unique_id=281805027]
script = ExtResource("1_hytou")

View File

@@ -1,6 +0,0 @@
[gd_scene format=3 uid="uid://c5ymu08jotbfp"]
[ext_resource type="Script" uid="uid://brsiegtrne15y" path="res://Persistence/Connectors/Scripts/gate_persistence_connector.gd" id="1_0smsr"]
[node name="GatePersistenceConnector" type="Node" unique_id=1082904286]
script = ExtResource("1_0smsr")

View File

@@ -1,66 +0,0 @@
extends Node
const DEFAULT_SAVE_FILE_PATH = "user://savegame.save"
var _save_file_path: String
var _save_dictionary: Dictionary = {}
# Public Methods
func UpdateData(key: String, value: Variant) -> void:
_save_dictionary[key] = value
func UpdateNode(node_path: NodePath, value: Variant) -> void:
UpdateData(str(node_path), value)
func GetData(key: String) -> Variant:
if not _save_dictionary.has(key):
return null
return _save_dictionary[key]
func GetNode(node_path: NodePath) -> Variant:
var key := str(node_path)
return GetData(key)
func HasData(node_path: NodePath) -> bool:
return _save_dictionary.has(node_path)
func SaveToDisk() -> void:
if !_save_file_path:
return
var save_file := FileAccess.open(_save_file_path, FileAccess.WRITE)
var json := JSON.stringify(_save_dictionary)
save_file.store_line(json)
func LoadFromDisk(save_file_path: String) -> void:
_save_file_path = save_file_path
if not FileAccess.file_exists(save_file_path):
print_rich("[color=yellow]Save file at path %s does not exist, creating new save file...[/color]" % save_file_path)
return
var save_file := FileAccess.open(save_file_path, FileAccess.READ)
print("Loading save file from path: %s" % save_file.get_path_absolute())
if save_file.get_position() >= save_file.get_length():
print("Save file was empty...")
return
var line := save_file.get_line()
var json = JSON.new()
var parse_result := json.parse(line)
if parse_result != OK:
print("Parsing result when loading file: [%s] in %s at line %d" % [json.get_error_message(), line, json.get_error_line()])
return
print("JSON data parsed: [%d]" % typeof(json.data))
var data_dict: Dictionary = json.data
_save_dictionary = data_dict

View File

@@ -1 +0,0 @@
uid://dl2kg1qu0ymi7

View File

@@ -1,6 +1,6 @@
[gd_resource type="ShaderMaterial" format=3 uid="uid://1shsptwu7rdt"]
[ext_resource type="Shader" uid="uid://me4246fesuy5" path="res://Resources/Shaders/Objects/Trees/tree.gdshader" id="1_bv5u3"]
[ext_resource type="Shader" uid="uid://me4246fesuy5" path="res://Resources/Shaders/Objects/Trees/tree_01_code.gdshader" id="1_bv5u3"]
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_pv2vp"]

View File

@@ -782,72 +782,6 @@ texture = ExtResource("8_8d5h8")
1:1/animation_frame_6/duration = 0.3
1:1/animation_frame_7/duration = 0.3
1:1/0 = 0
0:3/animation_columns = 8
0:3/animation_separation = Vector2i(2, 0)
0:3/animation_frame_0/duration = 0.3
0:3/animation_frame_1/duration = 0.3
0:3/animation_frame_2/duration = 0.3
0:3/animation_frame_3/duration = 0.3
0:3/animation_frame_4/duration = 0.3
0:3/animation_frame_5/duration = 0.3
0:3/animation_frame_6/duration = 0.3
0:3/animation_frame_7/duration = 0.3
0:3/0 = 0
0:4/animation_columns = 8
0:4/animation_separation = Vector2i(2, 0)
0:4/animation_frame_0/duration = 0.3
0:4/animation_frame_1/duration = 0.3
0:4/animation_frame_2/duration = 0.3
0:4/animation_frame_3/duration = 0.3
0:4/animation_frame_4/duration = 0.3
0:4/animation_frame_5/duration = 0.3
0:4/animation_frame_6/duration = 0.3
0:4/animation_frame_7/duration = 0.3
0:4/0 = 0
1:4/animation_columns = 8
1:4/animation_separation = Vector2i(2, 0)
1:4/animation_frame_0/duration = 0.3
1:4/animation_frame_1/duration = 0.3
1:4/animation_frame_2/duration = 0.3
1:4/animation_frame_3/duration = 0.3
1:4/animation_frame_4/duration = 0.3
1:4/animation_frame_5/duration = 0.3
1:4/animation_frame_6/duration = 0.3
1:4/animation_frame_7/duration = 0.3
1:4/0 = 0
1:3/animation_columns = 8
1:3/animation_separation = Vector2i(2, 0)
1:3/animation_frame_0/duration = 0.3
1:3/animation_frame_1/duration = 0.3
1:3/animation_frame_2/duration = 0.3
1:3/animation_frame_3/duration = 0.3
1:3/animation_frame_4/duration = 0.3
1:3/animation_frame_5/duration = 0.3
1:3/animation_frame_6/duration = 0.3
1:3/animation_frame_7/duration = 0.3
1:3/0 = 0
2:3/animation_columns = 8
2:3/animation_separation = Vector2i(2, 0)
2:3/animation_frame_0/duration = 0.3
2:3/animation_frame_1/duration = 0.3
2:3/animation_frame_2/duration = 0.3
2:3/animation_frame_3/duration = 0.3
2:3/animation_frame_4/duration = 0.3
2:3/animation_frame_5/duration = 0.3
2:3/animation_frame_6/duration = 0.3
2:3/animation_frame_7/duration = 0.3
2:3/0 = 0
2:4/animation_columns = 8
2:4/animation_separation = Vector2i(2, 0)
2:4/animation_frame_0/duration = 0.3
2:4/animation_frame_1/duration = 0.3
2:4/animation_frame_2/duration = 0.3
2:4/animation_frame_3/duration = 0.3
2:4/animation_frame_4/duration = 0.3
2:4/animation_frame_5/duration = 0.3
2:4/animation_frame_6/duration = 0.3
2:4/animation_frame_7/duration = 0.3
2:4/0 = 0
[resource]
physics_layer_0/collision_layer = 1

View File

@@ -1,6 +1,6 @@
[gd_scene format=3 uid="uid://clqfyxjtn67m"]
[ext_resource type="Script" uid="uid://c5pt6iroi01si" path="res://Entities/Characters/Animals/Chicken/Scripts/npc_chicken.gd" id="1_etrql"]
[ext_resource type="Script" uid="uid://c5pt6iroi01si" path="res://Scripts/Characters/Chicken/npc_chicken.gd" id="1_etrql"]
[ext_resource type="Texture2D" uid="uid://d4lf74neoqf4p" path="res://Assets/Spritesheets/Animals/Chickens/Chicken_01.png" id="1_hjr72"]
[sub_resource type="AtlasTexture" id="AtlasTexture_etrql"]

View File

@@ -1,18 +1,19 @@
[gd_scene format=3 uid="uid://6athlweutl2g"]
[ext_resource type="PackedScene" uid="uid://uyl0s1e67x6s" path="res://Entities/Characters/Player/sprite.tscn" id="1_27cb7"]
[ext_resource type="PackedScene" uid="uid://c2ydbmmvnfca6" path="res://Entities/Characters/Player/state_machine.tscn" id="1_lyjr2"]
[ext_resource type="Script" uid="uid://dacvayqstkvws" path="res://Entities/Characters/Player/Scripts/player.gd" id="1_qqvsf"]
[ext_resource type="PackedScene" uid="uid://uyl0s1e67x6s" path="res://Scenes/Characters/Player/sprite.tscn" id="1_27cb7"]
[ext_resource type="PackedScene" uid="uid://c2ydbmmvnfca6" path="res://Scenes/Characters/Player/state_machine.tscn" id="1_lyjr2"]
[ext_resource type="Script" uid="uid://dacvayqstkvws" path="res://Scripts/Characters/Player/player.gd" id="1_qqvsf"]
[ext_resource type="Script" uid="uid://b0l02v61if6k8" path="res://Scripts/Components/facing_direction_component.gd" id="1_siygm"]
[ext_resource type="Script" uid="uid://dkmc1t43gomdb" path="res://Entities/Characters/Player/Scripts/States/idle_state.gd" id="4_dxcao"]
[ext_resource type="Script" uid="uid://ckn7gmtc23b8l" path="res://Entities/Characters/Player/Scripts/States/using_item_a_state.gd" id="5_1mdwi"]
[ext_resource type="Script" uid="uid://bwmmah30t3m0u" path="res://Entities/Characters/Player/Scripts/States/walking_state.gd" id="5_cscr0"]
[ext_resource type="Script" uid="uid://brlisuoocwehh" path="res://Entities/Characters/Player/Scripts/interact_scanner.gd" id="6_fu1fx"]
[ext_resource type="Script" uid="uid://bnp1vowmu15lg" path="res://Entities/Characters/Player/Scripts/States/drawing_bow_state.gd" id="7_cscr0"]
[ext_resource type="Script" uid="uid://cd2ewadcm8oi5" path="res://Entities/Characters/Player/Scripts/States/firing_arrow_state.gd" id="8_plevq"]
[ext_resource type="Script" uid="uid://bx1a35al4yiej" path="res://Entities/Characters/Player/Scripts/States/sitting_state.gd" id="9_sdxbo"]
[ext_resource type="Script" uid="uid://bnontuqj3cnom" path="res://Entities/Characters/Player/Scripts/States/cutscene_state.gd" id="10_p06rw"]
[ext_resource type="Script" uid="uid://wfdtd3xlgrvm" path="res://Entities/Characters/Player/Scripts/States/play_animation_state.gd" id="12_aencf"]
[ext_resource type="Script" uid="uid://dwclkwbig1uii" path="res://Scripts/Characters/Player/movement_component.gd" id="4_apx8m"]
[ext_resource type="Script" uid="uid://dkmc1t43gomdb" path="res://Scripts/Characters/Player/States/idle_state.gd" id="4_dxcao"]
[ext_resource type="Script" uid="uid://ckn7gmtc23b8l" path="res://Scripts/Characters/Player/States/using_item_a_state.gd" id="5_1mdwi"]
[ext_resource type="Script" uid="uid://bwmmah30t3m0u" path="res://Scripts/Characters/Player/States/walking_state.gd" id="5_cscr0"]
[ext_resource type="Script" uid="uid://brlisuoocwehh" path="res://Scripts/Characters/Player/interact_scanner.gd" id="6_fu1fx"]
[ext_resource type="Script" uid="uid://bnp1vowmu15lg" path="res://Scripts/Characters/Player/States/drawing_bow_state.gd" id="7_cscr0"]
[ext_resource type="Script" uid="uid://cd2ewadcm8oi5" path="res://Scripts/Characters/Player/States/firing_arrow_state.gd" id="8_plevq"]
[ext_resource type="Script" uid="uid://bx1a35al4yiej" path="res://Scripts/Characters/Player/States/sitting_state.gd" id="9_sdxbo"]
[ext_resource type="Script" uid="uid://bnontuqj3cnom" path="res://Scripts/Characters/Player/States/cutscene_state.gd" id="10_p06rw"]
[ext_resource type="Script" uid="uid://wfdtd3xlgrvm" path="res://Scripts/Characters/Player/States/play_animation_state.gd" id="12_aencf"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_apx8m"]
size = Vector2(10, 5)
@@ -39,19 +40,24 @@ shape = SubResource("RectangleShape2D_apx8m")
[node name="FacingDirectionComponent" type="Node" parent="Components" unique_id=408127032]
script = ExtResource("1_siygm")
[node name="MovementComponent" type="Node" parent="Components" unique_id=1773880772 node_paths=PackedStringArray("body")]
script = ExtResource("4_apx8m")
body = NodePath("../..")
[node name="State Machine" parent="." unique_id=732559774 node_paths=PackedStringArray("states_container", "current_state") instance=ExtResource("1_lyjr2")]
states_container = NodePath("States")
current_state = NodePath("States/Idle State")
[node name="States" type="Node" parent="State Machine" unique_id=1171587216]
[node name="Idle State" type="Node" parent="State Machine/States" unique_id=2017409248 node_paths=PackedStringArray("player", "state_machine")]
[node name="Idle State" type="Node" parent="State Machine/States" unique_id=2017409248 node_paths=PackedStringArray("movement_component", "state_machine")]
script = ExtResource("4_dxcao")
player = NodePath("../../..")
movement_component = NodePath("../../../Components/MovementComponent")
state_machine = NodePath("../..")
[node name="Walking State" type="Node" parent="State Machine/States" unique_id=1661048365 node_paths=PackedStringArray("direction_component", "body", "state_machine")]
[node name="Walking State" type="Node" parent="State Machine/States" unique_id=1661048365 node_paths=PackedStringArray("movement_component", "direction_component", "body", "state_machine")]
script = ExtResource("5_cscr0")
movement_component = NodePath("../../../Components/MovementComponent")
direction_component = NodePath("../../../Components/FacingDirectionComponent")
body = NodePath("../../..")
state_machine = NodePath("../..")
@@ -62,8 +68,9 @@ body = NodePath("../../..")
direction_component = NodePath("../../../Components/FacingDirectionComponent")
state_machine = NodePath("../..")
[node name="Drawing Bow State" type="Node" parent="State Machine/States" unique_id=317681716 node_paths=PackedStringArray("body", "state_machine")]
[node name="Drawing Bow State" type="Node" parent="State Machine/States" unique_id=317681716 node_paths=PackedStringArray("movement_componenent", "body", "state_machine")]
script = ExtResource("7_cscr0")
movement_componenent = NodePath("../../../Components/MovementComponent")
body = NodePath("../../..")
state_machine = NodePath("../..")

View File

@@ -1,7 +1,7 @@
[gd_scene format=3 uid="uid://uyl0s1e67x6s"]
[ext_resource type="Texture2D" uid="uid://de0ihg453ruyi" path="res://Assets/Spritesheets/Player/Player_Base_animations.png" id="1_45g06"]
[ext_resource type="Script" uid="uid://cuar23q48cbja" path="res://Entities/Characters/Player/Scripts/sprite.gd" id="1_jqxwg"]
[ext_resource type="Script" uid="uid://cuar23q48cbja" path="res://Scripts/Characters/Player/sprite.gd" id="1_jqxwg"]
[ext_resource type="Texture2D" uid="uid://1g5dx0dbupwk" path="res://Assets/Spritesheets/Player/Hair_1_Blonde.png" id="2_jqxwg"]
[ext_resource type="Texture2D" uid="uid://d1mourl3rq437" path="res://Assets/Spritesheets/Player/player-full-01.png" id="2_ndjja"]
[ext_resource type="Texture2D" uid="uid://4mpha6wuvyfy" path="res://Assets/Spritesheets/Player/Farmer_Shirt_1_Black.png" id="3_ndjja"]

View File

@@ -1,6 +1,6 @@
[gd_scene format=3 uid="uid://c2ydbmmvnfca6"]
[ext_resource type="Script" uid="uid://c74mhfemxuuco" path="res://Entities/Characters/Player/Scripts/state_machine.gd" id="1_clu2m"]
[ext_resource type="Script" uid="uid://c74mhfemxuuco" path="res://Scripts/Characters/Player/state_machine.gd" id="1_clu2m"]
[node name="StateMachine" type="Node" unique_id=732559774]
script = ExtResource("1_clu2m")

View File

@@ -1,6 +1,6 @@
[gd_scene format=3 uid="uid://303hbhqetdhy"]
[ext_resource type="Script" uid="uid://dvgd5ejerauqm" path="res://Entities/Map Objects/Entity Spawners/arrow_spawner.gd" id="1_dsltu"]
[ext_resource type="Script" uid="uid://dvgd5ejerauqm" path="res://Scripts/Entity Spawners/arrow_spawner.gd" id="1_dsltu"]
[node name="Arrow Spawner" type="Node" unique_id=627092886 node_paths=PackedStringArray("arrow_parent")]
script = ExtResource("1_dsltu")

View File

@@ -1,6 +1,6 @@
[gd_scene format=3 uid="uid://divmfeqf10ri1"]
[ext_resource type="Script" uid="uid://c5yjcjk51l4bd" path="res://Maps/Connectors/Scripts/bench_interaction_connector.gd" id="1_34r4h"]
[ext_resource type="Script" uid="uid://c5yjcjk51l4bd" path="res://Scripts/Maps/Connectors/bench_interaction_connector.gd" id="1_34r4h"]
[node name="Bench Interaction Connector" type="Node" unique_id=541204437]
script = ExtResource("1_34r4h")

View File

@@ -1,6 +1,6 @@
[gd_scene format=3 uid="uid://dl2jpjtbiju34"]
[ext_resource type="Script" uid="uid://dw76slp457s1v" path="res://Maps/Connectors/Scripts/chest_interaction_connector.gd" id="1_aitih"]
[ext_resource type="Script" uid="uid://dw76slp457s1v" path="res://Scripts/Maps/Connectors/chest_interaction_connector.gd" id="1_aitih"]
[node name="Chest Interaction Connector" type="Node" unique_id=625804018]
script = ExtResource("1_aitih")

View File

@@ -1,6 +1,6 @@
[gd_scene format=3 uid="uid://b03s7fw8bxdxs"]
[ext_resource type="Script" uid="uid://d3hhbegfxdnqq" path="res://Maps/Connectors/Scripts/interactive_loading_zone_connector.gd" id="1_2sjeq"]
[ext_resource type="Script" uid="uid://d3hhbegfxdnqq" path="res://Scripts/Maps/Connectors/interactive_loading_zone_connector.gd" id="1_2sjeq"]
[node name="Interactive Loading Zone Connector" type="Node" unique_id=833475826]
script = ExtResource("1_2sjeq")

View File

@@ -1,6 +1,6 @@
[gd_scene format=3 uid="uid://did853bh5xeic"]
[ext_resource type="Script" uid="uid://dkcsftcdqtmg" path="res://Maps/Connectors/Scripts/spawn_marker_connector.gd" id="1_kb3a7"]
[ext_resource type="Script" uid="uid://dkcsftcdqtmg" path="res://Scripts/Maps/Connectors/spawn_marker_connector.gd" id="1_kb3a7"]
[node name="Spawn Marker Connector" type="Node" unique_id=807187299 node_paths=PackedStringArray("player", "markers")]
script = ExtResource("1_kb3a7")

View File

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://bqvnkdyhfa1yq"
path="res://.godot/imported/Home_01_Overlay_01.png-26fde7ad2be3b256e0075725eafecc1c.ctex"
path="res://.godot/imported/Home_01_Overlay_01.png-5522c04136136f6c0c2aaf9e86a5116f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Maps/Forest Dungeon Entrance/Interiors/Home_01_Overlay_01.png"
dest_files=["res://.godot/imported/Home_01_Overlay_01.png-26fde7ad2be3b256e0075725eafecc1c.ctex"]
source_file="res://Scenes/Maps/Forest Dungeon Entrance/Interiors/Home_01_Overlay_01.png"
dest_files=["res://.godot/imported/Home_01_Overlay_01.png-5522c04136136f6c0c2aaf9e86a5116f.ctex"]
[params]

View File

@@ -1,17 +1,16 @@
[gd_scene format=4 uid="uid://laxewy7irxno"]
[ext_resource type="Script" uid="uid://dbscr0b7k3rtp" path="res://Maps/Connectors/Scripts/collision_loading_zone_connector.gd" id="1_18bbf"]
[ext_resource type="Script" uid="uid://dbscr0b7k3rtp" path="res://Scripts/Maps/Connectors/collision_loading_zone_connector.gd" id="1_18bbf"]
[ext_resource type="TileSet" uid="uid://df0lg5vkqwbbt" path="res://Resources/Tilesets/home_interior.tres" id="1_rf04x"]
[ext_resource type="Script" uid="uid://dkcsftcdqtmg" path="res://Maps/Connectors/Scripts/spawn_marker_connector.gd" id="2_16uj4"]
[ext_resource type="PackedScene" uid="uid://ca75b65eh7vv8" path="res://Entities/Map Objects/Loading Zone/collision_loading_zone.tscn" id="2_fdso5"]
[ext_resource type="PackedScene" uid="uid://6athlweutl2g" path="res://Entities/Characters/Player/player.tscn" id="2_lky26"]
[ext_resource type="PackedScene" uid="uid://bbules4o3xayc" path="res://Entities/Map Objects/Loading Zone/loading_zone_transporter.tscn" id="3_7kg22"]
[ext_resource type="PackedScene" uid="uid://dl2jpjtbiju34" path="res://Maps/Connectors/chest_interaction_connector.tscn" id="3_ec540"]
[ext_resource type="PackedScene" uid="uid://b7u4hlvuqiefn" path="res://Entities/Map Objects/Chests/Item Chests/item_chest_02 (Metal).tscn" id="4_a58cd"]
[ext_resource type="PackedScene" uid="uid://b60nr4wfvijpf" path="res://Entities/Map Objects/Dialogue/dialogue_trigger.tscn" id="5_msu6a"]
[ext_resource type="Script" uid="uid://dkcsftcdqtmg" path="res://Scripts/Maps/Connectors/spawn_marker_connector.gd" id="2_16uj4"]
[ext_resource type="PackedScene" uid="uid://ca75b65eh7vv8" path="res://Scenes/Objects/Loading Zone/collision_loading_zone.tscn" id="2_fdso5"]
[ext_resource type="PackedScene" uid="uid://6athlweutl2g" path="res://Scenes/Characters/Player/player.tscn" id="2_lky26"]
[ext_resource type="PackedScene" uid="uid://bbules4o3xayc" path="res://Scenes/Objects/Loading Zone/loading_zone_transporter.tscn" id="3_7kg22"]
[ext_resource type="PackedScene" uid="uid://dl2jpjtbiju34" path="res://Scenes/Maps/Connectors/chest_interaction_connector.tscn" id="3_ec540"]
[ext_resource type="PackedScene" uid="uid://b7u4hlvuqiefn" path="res://Scenes/Objects/Chests/Item Chests/item_chest_02 (Metal).tscn" id="4_a58cd"]
[ext_resource type="PackedScene" uid="uid://b60nr4wfvijpf" path="res://Scenes/Objects/Dialogue/dialogue_trigger.tscn" id="5_msu6a"]
[ext_resource type="Texture2D" uid="uid://bm5ewxv51potl" path="res://Assets/Spritesheets/NPCs/Miner_Mike.png" id="6_x3y8m"]
[ext_resource type="Texture2D" uid="uid://bqvnkdyhfa1yq" path="res://Maps/Forest Dungeon Entrance/Interiors/Home_01_Overlay_01.png" id="11_6xfm6"]
[ext_resource type="PackedScene" uid="uid://nbkisxm2oekn" path="res://Entities/Characters/Utility/Components/movement_component.tscn" id="11_fqvwb"]
[ext_resource type="Texture2D" uid="uid://bqvnkdyhfa1yq" path="res://Scenes/Maps/Forest Dungeon Entrance/Interiors/Home_01_Overlay_01.png" id="11_6xfm6"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_7kg22"]
size = Vector2(32, 8)
@@ -126,7 +125,6 @@ position = Vector2(80, 188)
shape = SubResource("RectangleShape2D_7kg22")
[node name="Loading Zone Transporter" parent="Loading Zones/Collision Loading Zone" unique_id=1690817663 instance=ExtResource("3_7kg22")]
destination_map_id = 2
destination_marker_name = "Home 01 Entrance"
[node name="Spawn Markers" type="Node2D" parent="." unique_id=1756787676]
@@ -162,8 +160,6 @@ zoom = Vector2(3, 3)
[node name="Player" parent="." unique_id=1502234578 instance=ExtResource("2_lky26")]
position = Vector2(108, 139)
[node name="Movement Component" parent="Player" unique_id=737644583 instance=ExtResource("11_fqvwb")]
[node name="Overlay" type="Sprite2D" parent="." unique_id=455840170]
position = Vector2(124, 217)
scale = Vector2(0.25, 0.25)

View File

@@ -1,34 +1,31 @@
[gd_scene format=4 uid="uid://b07m0k40dh042"]
[ext_resource type="PackedScene" uid="uid://dl2jpjtbiju34" path="res://Maps/Connectors/chest_interaction_connector.tscn" id="1_jtncl"]
[ext_resource type="PackedScene" uid="uid://dl2jpjtbiju34" path="res://Scenes/Maps/Connectors/chest_interaction_connector.tscn" id="1_jtncl"]
[ext_resource type="TileSet" uid="uid://cds2lapr3niap" path="res://Resources/Tilesets/forest_exterior.tres" id="1_qup1q"]
[ext_resource type="PackedScene" uid="uid://b8m08wroe1qu2" path="res://Entities/Map Objects/Mechanisms/arrow_target.tscn" id="2_8tx2j"]
[ext_resource type="PackedScene" uid="uid://303hbhqetdhy" path="res://Maps/Connectors/arrow_spawner.tscn" id="2_jtncl"]
[ext_resource type="PackedScene" uid="uid://divmfeqf10ri1" path="res://Maps/Connectors/bench_interaction_connector.tscn" id="3_x6da4"]
[ext_resource type="Script" uid="uid://kfupww4frb1r" path="res://Maps/Connectors/Scripts/camera_limit_connector.gd" id="3_ycf72"]
[ext_resource type="PackedScene" uid="uid://6athlweutl2g" path="res://Entities/Characters/Player/player.tscn" id="4_4igim"]
[ext_resource type="PackedScene" uid="uid://b03s7fw8bxdxs" path="res://Maps/Connectors/interactive_loading_zone_connector.tscn" id="4_4lnhp"]
[ext_resource type="PackedScene" uid="uid://byp273amg5ji8" path="res://Entities/Map Objects/Chests/Item Chests/item_chest_01 (Wooden).tscn" id="5_bnsbe"]
[ext_resource type="PackedScene" uid="uid://b8m08wroe1qu2" path="res://Scenes/Objects/Mechanisms/arrow_target.tscn" id="2_8tx2j"]
[ext_resource type="PackedScene" uid="uid://303hbhqetdhy" path="res://Scenes/Maps/Connectors/arrow_spawner.tscn" id="2_jtncl"]
[ext_resource type="PackedScene" uid="uid://divmfeqf10ri1" path="res://Scenes/Maps/Connectors/bench_interaction_connector.tscn" id="3_x6da4"]
[ext_resource type="Script" uid="uid://kfupww4frb1r" path="res://Scripts/Maps/Connectors/camera_limit_connector.gd" id="3_ycf72"]
[ext_resource type="PackedScene" uid="uid://6athlweutl2g" path="res://Scenes/Characters/Player/player.tscn" id="4_4igim"]
[ext_resource type="PackedScene" uid="uid://b03s7fw8bxdxs" path="res://Scenes/Maps/Connectors/interactive_loading_zone_connector.tscn" id="4_4lnhp"]
[ext_resource type="PackedScene" uid="uid://byp273amg5ji8" path="res://Scenes/Objects/Chests/Item Chests/item_chest_01 (Wooden).tscn" id="5_bnsbe"]
[ext_resource type="Texture2D" uid="uid://bf6llktwqhs8l" path="res://Assets/Sprites/Door Fade.png" id="5_jett5"]
[ext_resource type="PackedScene" uid="uid://did853bh5xeic" path="res://Maps/Connectors/spawn_marker_connector.tscn" id="5_lphfo"]
[ext_resource type="PackedScene" uid="uid://w4mh31se58f4" path="res://Persistence/Connectors/chest_persistence_connector.tscn" id="6_l5trr"]
[ext_resource type="PackedScene" uid="uid://c5ymu08jotbfp" path="res://Persistence/Connectors/gate_persistence_connector.tscn" id="7_0w1de"]
[ext_resource type="PackedScene" uid="uid://be6xfndyj4ckx" path="res://Entities/Map Objects/Trees/tree_02.tscn" id="7_ycf72"]
[ext_resource type="PackedScene" uid="uid://cc3qat6un2323" path="res://Entities/Map Objects/Trees/tree_01.tscn" id="8_yab5j"]
[ext_resource type="PackedScene" uid="uid://bcx1d8kvp7o0h" path="res://Entities/Map Objects/Trees/tree_03.tscn" id="9_lwurn"]
[ext_resource type="PackedScene" uid="uid://da4qqruhldc6b" path="res://Entities/Map Objects/Gates/Spike Gate/spike_gate.tscn" id="11_bscbg"]
[ext_resource type="PackedScene" uid="uid://bjufxlsrlcuas" path="res://Entities/Buildings/home_01.tscn" id="11_pbyx1"]
[ext_resource type="PackedScene" uid="uid://clqfyxjtn67m" path="res://Entities/Characters/Animals/Chicken/npc_chicken.tscn" id="13_gtagr"]
[ext_resource type="PackedScene" uid="uid://b5t4h63xhuods" path="res://Entities/Map Objects/Mechanisms/pressure_plate.tscn" id="13_j80dg"]
[ext_resource type="PackedScene" uid="uid://23tpba4r6ucg" path="res://Entities/Map Objects/Decorative/Outdoor/wooden_bench.tscn" id="14_kgsic"]
[ext_resource type="PackedScene" uid="uid://dwbg6wca6yl5j" path="res://Entities/Map Objects/Decorative/Signs/wooden_sign_01.tscn" id="16_dc5v0"]
[ext_resource type="PackedScene" uid="uid://c2p8fteeqyikf" path="res://Entities/Characters/Animals/Frog/npc_frog.tscn" id="18_tfw55"]
[ext_resource type="PackedScene" uid="uid://bbules4o3xayc" path="res://Entities/Map Objects/Loading Zone/loading_zone_transporter.tscn" id="19_c5vrl"]
[ext_resource type="PackedScene" uid="uid://coaf2ndwb6h61" path="res://Entities/Map Objects/Decorative/Signs/wooden_sign_02.tscn" id="19_jtncl"]
[ext_resource type="PackedScene" uid="uid://cla2d3gii8qda" path="res://Entities/Map Objects/Loading Zone/interactive_loading_zone.tscn" id="20_c5vrl"]
[ext_resource type="PackedScene" uid="uid://b60nr4wfvijpf" path="res://Entities/Map Objects/Dialogue/dialogue_trigger.tscn" id="20_x6da4"]
[ext_resource type="PackedScene" uid="uid://c7rjjlamkqhnw" path="res://Debug/Utility Objects/under_construction_block.tscn" id="26_4lnhp"]
[ext_resource type="PackedScene" uid="uid://nbkisxm2oekn" path="res://Entities/Characters/Utility/Components/movement_component.tscn" id="28_mf3dv"]
[ext_resource type="PackedScene" uid="uid://did853bh5xeic" path="res://Scenes/Maps/Connectors/spawn_marker_connector.tscn" id="5_lphfo"]
[ext_resource type="PackedScene" uid="uid://be6xfndyj4ckx" path="res://Scenes/Objects/Trees/tree_02.tscn" id="7_ycf72"]
[ext_resource type="PackedScene" uid="uid://cc3qat6un2323" path="res://Scenes/Objects/Trees/tree_01.tscn" id="8_yab5j"]
[ext_resource type="PackedScene" uid="uid://bcx1d8kvp7o0h" path="res://Scenes/Objects/Trees/tree_03.tscn" id="9_lwurn"]
[ext_resource type="PackedScene" uid="uid://da4qqruhldc6b" path="res://Scenes/Objects/Gates/Spike Gate/spike_gate.tscn" id="11_bscbg"]
[ext_resource type="PackedScene" uid="uid://bjufxlsrlcuas" path="res://Scenes/Objects/Buildings/home_01.tscn" id="11_pbyx1"]
[ext_resource type="PackedScene" uid="uid://clqfyxjtn67m" path="res://Scenes/Characters/Chicken/npc_chicken.tscn" id="13_gtagr"]
[ext_resource type="PackedScene" uid="uid://b5t4h63xhuods" path="res://Scenes/Objects/Mechanisms/pressure_plate.tscn" id="13_j80dg"]
[ext_resource type="PackedScene" uid="uid://23tpba4r6ucg" path="res://Scenes/Objects/Decorative/Outdoor/wooden_bench.tscn" id="14_kgsic"]
[ext_resource type="PackedScene" uid="uid://dwbg6wca6yl5j" path="res://Scenes/Objects/Decorative/Signs/wooden_sign_01.tscn" id="16_dc5v0"]
[ext_resource type="PackedScene" uid="uid://c2p8fteeqyikf" path="res://Scenes/Characters/Frog/npc_frog.tscn" id="18_tfw55"]
[ext_resource type="PackedScene" uid="uid://bbules4o3xayc" path="res://Scenes/Objects/Loading Zone/loading_zone_transporter.tscn" id="19_c5vrl"]
[ext_resource type="PackedScene" uid="uid://coaf2ndwb6h61" path="res://Scenes/Objects/Decorative/Signs/wooden_sign_02.tscn" id="19_jtncl"]
[ext_resource type="PackedScene" uid="uid://cla2d3gii8qda" path="res://Scenes/Objects/Loading Zone/interactive_loading_zone.tscn" id="20_c5vrl"]
[ext_resource type="PackedScene" uid="uid://b60nr4wfvijpf" path="res://Scenes/Objects/Dialogue/dialogue_trigger.tscn" id="20_x6da4"]
[ext_resource type="PackedScene" uid="uid://c7rjjlamkqhnw" path="res://Scenes/Debug/under_construction_block.tscn" id="26_4lnhp"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_lwurn"]
size = Vector2(768, 494)
@@ -66,33 +63,25 @@ size = Vector2(10, 7)
[node name="Map 01" type="Node2D" unique_id=411453136]
y_sort_enabled = true
[node name="Map Connectors" type="Node" parent="." unique_id=1365901208]
[node name="Connectors" type="Node" parent="." unique_id=1365901208]
[node name="Chest Interaction Connector" parent="Map Connectors" unique_id=625804018 node_paths=PackedStringArray("player") instance=ExtResource("1_jtncl")]
[node name="Chest Interaction Connector" parent="Connectors" unique_id=625804018 node_paths=PackedStringArray("player") instance=ExtResource("1_jtncl")]
player = NodePath("../../Player")
[node name="Arrow Spawner" parent="Map Connectors" unique_id=627092886 node_paths=PackedStringArray("player", "arrow_parent") instance=ExtResource("2_jtncl")]
[node name="Arrow Spawner" parent="Connectors" unique_id=627092886 node_paths=PackedStringArray("player", "arrow_parent") instance=ExtResource("2_jtncl")]
player = NodePath("../../Player")
arrow_parent = NodePath("../../Objects/Projectiles")
[node name="Bench Interaction Connector" parent="Map Connectors" unique_id=541204437 node_paths=PackedStringArray("player") instance=ExtResource("3_x6da4")]
[node name="Bench Interaction Connector" parent="Connectors" unique_id=541204437 node_paths=PackedStringArray("player") instance=ExtResource("3_x6da4")]
player = NodePath("../../Player")
[node name="Interactive Loading Zone Connector" parent="Map Connectors" unique_id=833475826 node_paths=PackedStringArray("player") instance=ExtResource("4_4lnhp")]
[node name="Interactive Loading Zone Connector" parent="Connectors" unique_id=833475826 node_paths=PackedStringArray("player") instance=ExtResource("4_4lnhp")]
player = NodePath("../../Player")
[node name="Spawn Marker Connector" parent="Map Connectors" unique_id=807187299 node_paths=PackedStringArray("player", "markers") instance=ExtResource("5_lphfo")]
[node name="Spawn Marker Connector" parent="Connectors" unique_id=807187299 node_paths=PackedStringArray("player", "markers") instance=ExtResource("5_lphfo")]
player = NodePath("../../Player")
markers = NodePath("../../Spawn Markers")
[node name="Persistence Connectors" type="Node" parent="." unique_id=1245900932]
[node name="Chest Persistence Connector" parent="Persistence Connectors" unique_id=281805027 instance=ExtResource("6_l5trr")]
chests = Array[NodePath]([NodePath("../../Objects/Chests/Item Chest 01 - 1"), NodePath("../../Objects/Chests/Item Chest 01 - 2"), NodePath("../../Objects/Chests/Item Chest 01 - 3")])
[node name="GatePersistenceConnector" parent="Persistence Connectors" unique_id=1082904286 instance=ExtResource("7_0w1de")]
gates = Array[NodePath]([NodePath("../../Objects/Spike Gate"), NodePath("../../Objects/Spike Gate2")])
[node name="Camera Limit Connector" type="Area2D" parent="." unique_id=1290795384 node_paths=PackedStringArray("camera_to_limit")]
collision_layer = 0
collision_mask = 0
@@ -342,7 +331,7 @@ position = Vector2(-1, -0.5)
shape = SubResource("RectangleShape2D_xrhbk")
[node name="Loading Zone Transporter" parent="Loading Zones/Shop Door" unique_id=1690817663 instance=ExtResource("19_c5vrl")]
destination_map_id = 3
destination_map_id = 1
destination_marker_name = "Entrance"
[node name="Spawn Markers" type="Node2D" parent="." unique_id=1420428815]
@@ -351,9 +340,7 @@ destination_marker_name = "Entrance"
position = Vector2(278, 474)
[node name="Player" parent="." unique_id=1502234578 instance=ExtResource("4_4igim")]
position = Vector2(656, 498)
[node name="Movement Component" parent="Player" unique_id=737644583 instance=ExtResource("28_mf3dv")]
position = Vector2(89, 450)
[node name="Camera2D" type="Camera2D" parent="Player" unique_id=1115720225]
position = Vector2(0, 1)
@@ -398,7 +385,7 @@ position = Vector2(760, 312)
[node name="Under Construction Block12" parent="Debug" unique_id=1005752992 instance=ExtResource("26_4lnhp")]
position = Vector2(760, 328)
[connection signal="SitOnBenchTriggered" from="Map Connectors/Bench Interaction Connector" to="Player" method="OnSitOnFurnitureTriggered"]
[connection signal="SitOnBenchTriggered" from="Connectors/Bench Interaction Connector" to="Player" method="OnSitOnFurnitureTriggered"]
[connection signal="TargetHit" from="Objects/ArrowTarget" to="Objects/Spike Gate" method="OpenGate"]
[connection signal="TargetHit" from="Objects/ArrowTarget" to="Objects/Spike Gate2" method="OpenGate"]
[connection signal="PressurePlateTripped" from="Objects/PressurePlate" to="Objects/Spike Gate" method="OpenGate"]

View File

@@ -0,0 +1,8 @@
[gd_scene format=3 uid="uid://cb7es4u3xy5hw"]
[ext_resource type="Script" uid="uid://da5dg36wink7x" path="res://Scripts/Maps/base_map.gd" id="1_71ugn"]
[node name="BaseMap" type="Node2D" unique_id=94057185]
script = ExtResource("1_71ugn")
[node name="Connectors" type="Node" parent="." unique_id=226687733]

View File

@@ -1,16 +1,16 @@
[gd_scene format=4 uid="uid://bwt0ijoq4qmhn"]
[ext_resource type="Script" uid="uid://btg630l3xo16w" path="res://Maps/Common/Scripts/shop.gd" id="1_83xsp"]
[ext_resource type="Script" uid="uid://btg630l3xo16w" path="res://Scripts/Maps/shop.gd" id="1_83xsp"]
[ext_resource type="TileSet" uid="uid://df0lg5vkqwbbt" path="res://Resources/Tilesets/home_interior.tres" id="2_kt7c3"]
[ext_resource type="Script" uid="uid://cpr710p4wdgx" path="res://Maps/Connectors/Scripts/shop_item_label_connector.gd" id="2_r8s0p"]
[ext_resource type="PackedScene" uid="uid://ddgeo3vwebqeg" path="res://Entities/Map Objects/Mechanisms/shop_item.tscn" id="3_7ftpj"]
[ext_resource type="Script" uid="uid://dkcsftcdqtmg" path="res://Maps/Connectors/Scripts/spawn_marker_connector.gd" id="3_t8w5b"]
[ext_resource type="Script" uid="uid://cpr710p4wdgx" path="res://Scripts/Maps/Connectors/shop_item_label_connector.gd" id="2_r8s0p"]
[ext_resource type="PackedScene" uid="uid://ddgeo3vwebqeg" path="res://Scenes/Objects/shop_item.tscn" id="3_7ftpj"]
[ext_resource type="Script" uid="uid://dkcsftcdqtmg" path="res://Scripts/Maps/Connectors/spawn_marker_connector.gd" id="3_t8w5b"]
[ext_resource type="Texture2D" uid="uid://hop1gedjh8s4" path="res://Assets/Spritesheets/Player/icons_full_32.png" id="4_r8s0p"]
[ext_resource type="PackedScene" uid="uid://6athlweutl2g" path="res://Entities/Characters/Player/player.tscn" id="5_6ky6i"]
[ext_resource type="PackedScene" uid="uid://6athlweutl2g" path="res://Scenes/Characters/Player/player.tscn" id="5_6ky6i"]
[ext_resource type="Texture2D" uid="uid://crebnygky3qv0" path="res://Assets/Sprites/Black Square.png" id="6_kt7c3"]
[ext_resource type="PackedScene" uid="uid://bbules4o3xayc" path="res://Entities/Map Objects/Loading Zone/loading_zone_transporter.tscn" id="6_t8w5b"]
[ext_resource type="PackedScene" uid="uid://bbules4o3xayc" path="res://Scenes/Objects/Loading Zone/loading_zone_transporter.tscn" id="6_t8w5b"]
[ext_resource type="Texture2D" uid="uid://bf6llktwqhs8l" path="res://Assets/Sprites/Door Fade.png" id="7_7ftpj"]
[ext_resource type="PackedScene" uid="uid://ca75b65eh7vv8" path="res://Entities/Map Objects/Loading Zone/collision_loading_zone.tscn" id="9_kp1fr"]
[ext_resource type="PackedScene" uid="uid://ca75b65eh7vv8" path="res://Scenes/Objects/Loading Zone/collision_loading_zone.tscn" id="9_kp1fr"]
[sub_resource type="AtlasTexture" id="AtlasTexture_fdj0q"]
atlas = ExtResource("4_r8s0p")

View File

@@ -1,6 +1,6 @@
[gd_scene format=3 uid="uid://cd3iyspcdg8m"]
[ext_resource type="Script" uid="uid://0fsmtp1umvmp" path="res://Entities/Map Objects/Chests/Scripts/Bases/chest_base.gd" id="1_6u2sl"]
[ext_resource type="Script" uid="uid://0fsmtp1umvmp" path="res://Scripts/Objects/Chests/Bases/chest_base.gd" id="1_6u2sl"]
[node name="Base Chest" type="StaticBody2D" unique_id=975880832 groups=["Treasure Chest Group"]]
y_sort_enabled = true

View File

@@ -1,6 +1,6 @@
[gd_scene format=3 uid="uid://cncm0c4dmosgs"]
[ext_resource type="Script" uid="uid://dbuc0f87m24xf" path="res://Entities/Map Objects/Chests/Scripts/Bases/item_chest.gd" id="1_mkt0u"]
[ext_resource type="Script" uid="uid://dbuc0f87m24xf" path="res://Scripts/Objects/Chests/Bases/item_chest.gd" id="1_mkt0u"]
[node name="Base Item Chest" type="StaticBody2D" unique_id=991903258]
script = ExtResource("1_mkt0u")

View File

@@ -1,7 +1,7 @@
[gd_scene format=3 uid="uid://byp273amg5ji8"]
[ext_resource type="Script" uid="uid://bvq13h8uyx572" path="res://Entities/Map Objects/Chests/Scripts/item_chest_01.gd" id="1_lp0kr"]
[ext_resource type="PackedScene" uid="uid://d3rqn611axsfk" path="res://Entities/Map Objects/Chests/Sprites/chest01_sprite.tscn" id="2_iwcc8"]
[ext_resource type="Script" uid="uid://bvq13h8uyx572" path="res://Scripts/Objects/Chests/item_chest_01.gd" id="1_lp0kr"]
[ext_resource type="PackedScene" uid="uid://d3rqn611axsfk" path="res://Scenes/Animated Sprites/chest01_sprite.tscn" id="2_iwcc8"]
[ext_resource type="Texture2D" uid="uid://crf23tc55dxu" path="res://Assets/Spritesheets/Treasure Chests/Chest_Anim.png" id="3_iwcc8"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_y3ooa"]

View File

@@ -1,7 +1,7 @@
[gd_scene format=3 uid="uid://b7u4hlvuqiefn"]
[ext_resource type="Script" uid="uid://bvq13h8uyx572" path="res://Entities/Map Objects/Chests/Scripts/item_chest_01.gd" id="1_77oue"]
[ext_resource type="PackedScene" uid="uid://d3rqn611axsfk" path="res://Entities/Map Objects/Chests/Sprites/chest01_sprite.tscn" id="2_jpeii"]
[ext_resource type="Script" uid="uid://bvq13h8uyx572" path="res://Scripts/Objects/Chests/item_chest_01.gd" id="1_77oue"]
[ext_resource type="PackedScene" uid="uid://d3rqn611axsfk" path="res://Scenes/Animated Sprites/chest01_sprite.tscn" id="2_jpeii"]
[ext_resource type="Texture2D" uid="uid://dcbk854sc3uud" path="res://Assets/Spritesheets/Home Decor/Metal_Chest_Anim.png" id="3_jpeii"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_y3ooa"]

View File

@@ -1,7 +1,7 @@
[gd_scene format=3 uid="uid://23tpba4r6ucg"]
[ext_resource type="Texture2D" uid="uid://nocnsf1xr3ap" path="res://Assets/Spritesheets/Outdoor Decor/Benches.png" id="1_jlu4v"]
[ext_resource type="Script" uid="uid://c6n652dy18xbm" path="res://Entities/Map Objects/Decorative/Outdoor/Scripts/wooden_bench.gd" id="1_nv27i"]
[ext_resource type="Script" uid="uid://c6n652dy18xbm" path="res://Scripts/Objects/Decorative/Outdoor/wooden_bench.gd" id="1_nv27i"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_nv27i"]
size = Vector2(30, 11)

View File

@@ -1,6 +1,6 @@
[gd_scene format=3 uid="uid://b60nr4wfvijpf"]
[ext_resource type="Script" uid="uid://cfsfx0sahh5t7" path="res://Entities/Map Objects/Dialogue/Scripts/dialogue_trigger.gd" id="1_dyjvr"]
[ext_resource type="Script" uid="uid://cfsfx0sahh5t7" path="res://Scripts/Objects/Dialogue/dialogue_trigger.gd" id="1_dyjvr"]
[node name="Dialogue Trigger" type="Area2D" unique_id=189867444 groups=["Dialog Trigger Group"]]
collision_layer = 2

View File

@@ -1,7 +1,7 @@
[gd_scene format=3 uid="uid://da4qqruhldc6b"]
[ext_resource type="Texture2D" uid="uid://1kmd0qww3368" path="res://Assets/Spritesheets/Outdoor Objects/Spike_Gate_anim.png" id="1_5ttkm"]
[ext_resource type="Script" uid="uid://8erg53skow38" path="res://Entities/Map Objects/Gates/Spike Gate/Scripts/spike_gate.gd" id="1_kye8r"]
[ext_resource type="Script" uid="uid://8erg53skow38" path="res://Scripts/Objects/Gates/Spike Gate/spike_gate.gd" id="1_kye8r"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_5ttkm"]
size = Vector2(29, 4)
@@ -395,6 +395,6 @@ shape = SubResource("RectangleShape2D_5ttkm")
y_sort_enabled = true
position = Vector2(0, 15)
sprite_frames = SubResource("SpriteFrames_pki7h")
animation = &"open"
animation = &"closed"
autoplay = "closed"
offset = Vector2(0, -15)

View File

@@ -1,6 +1,6 @@
[gd_scene format=3 uid="uid://ca75b65eh7vv8"]
[ext_resource type="Script" uid="uid://ckfuj0lm6jv3i" path="res://Entities/Map Objects/Loading Zone/Scripts/collision_loading_zone.gd" id="1_pb5hg"]
[ext_resource type="Script" uid="uid://g0r5waf50gp5" path="res://Scripts/Objects/Loading Zone/collision_loading_zone.gd" id="1_pb5hg"]
[node name="Collision Loading Zone" type="Area2D" unique_id=1043800735 groups=["Collision Loading Zone Group"]]
collision_layer = 0

View File

@@ -1,6 +1,6 @@
[gd_scene format=3 uid="uid://cla2d3gii8qda"]
[ext_resource type="Script" uid="uid://csspyy43sohfl" path="res://Entities/Map Objects/Loading Zone/Scripts/interactive_loading_zone.gd" id="1_7bdbd"]
[ext_resource type="Script" uid="uid://dla7fe0nsbdvv" path="res://Scripts/Objects/Loading Zone/interactive_loading_zone.gd" id="1_7bdbd"]
[node name="Interactive Loading Zone" type="Area2D" unique_id=1427014981 groups=["Interactive Loading Zone Group"]]
collision_layer = 2

View File

@@ -1,6 +1,6 @@
[gd_scene format=3 uid="uid://bbules4o3xayc"]
[ext_resource type="Script" uid="uid://bvl1vdqd5cjkc" path="res://Entities/Map Objects/Loading Zone/Scripts/loading_zone_transporter.gd" id="1_p8o2m"]
[ext_resource type="Script" uid="uid://cshtpe5n2iubh" path="res://Scripts/Objects/Loading Zone/loading_zone_transporter.gd" id="1_p8o2m"]
[node name="Loading Zone Transporter" type="Node" unique_id=1690817663 groups=["Loading Zone Transporter Group"]]
script = ExtResource("1_p8o2m")

View File

@@ -1,7 +1,7 @@
[gd_scene format=3 uid="uid://b8m08wroe1qu2"]
[ext_resource type="Texture2D" uid="uid://k2htcxstdj5v" path="res://Assets/Spritesheets/Outdoor Objects/Arrow Target-Sheet.png" id="1_b0s8y"]
[ext_resource type="Script" uid="uid://6jls1eokv2to" path="res://Entities/Map Objects/Mechanisms/Scripts/arrow_target.gd" id="1_uhut5"]
[ext_resource type="Script" uid="uid://6jls1eokv2to" path="res://Scripts/Objects/arrow_target.gd" id="1_uhut5"]
[sub_resource type="CircleShape2D" id="CircleShape2D_uhut5"]
radius = 8.0

View File

@@ -1,6 +1,6 @@
[gd_scene format=3 uid="uid://b5t4h63xhuods"]
[ext_resource type="Script" uid="uid://cxt7ht66jiac8" path="res://Entities/Map Objects/Mechanisms/Scripts/pressure_plate.gd" id="1_po2h8"]
[ext_resource type="Script" uid="uid://cxt7ht66jiac8" path="res://Scripts/Objects/Mechanisms/pressure_plate.gd" id="1_po2h8"]
[ext_resource type="Texture2D" uid="uid://dhtolttw5h33" path="res://Assets/Spritesheets/Mechanisms/Pressure Plate.png" id="1_ulio5"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ulio5"]

View File

@@ -1,6 +1,6 @@
[gd_scene format=3 uid="uid://d24gcv3umq60k"]
[ext_resource type="Script" uid="uid://ba0nsd76er3xa" path="res://Entities/Characters/Utility/Occlusion/Scripts/occlusion_culler.gd" id="1_4550i"]
[ext_resource type="Script" uid="uid://d4g6s63d0bh4o" path="res://Scripts/Objects/Occlusion/occlusion_culler.gd" id="1_4550i"]
[node name="Occlusion Culler" type="Area2D" unique_id=1362480066]
collision_layer = 0

View File

@@ -0,0 +1,36 @@
[gd_scene format=3 uid="uid://cc3qat6un2323"]
[ext_resource type="Texture2D" uid="uid://xygpf7c886pj" path="res://Assets/Spritesheets/Trees/Medium_Oak_Tree.png" id="1_i2ia5"]
[ext_resource type="PackedScene" uid="uid://d24gcv3umq60k" path="res://Scenes/Objects/Occlusion/occlusion_culler.tscn" id="1_jbed0"]
[ext_resource type="Material" uid="uid://1shsptwu7rdt" path="res://Resources/Materials/tree_sway.tres" id="2_o0u4i"]
[sub_resource type="CircleShape2D" id="CircleShape2D_jbed0"]
radius = 12.0
[sub_resource type="AtlasTexture" id="AtlasTexture_5otsd"]
atlas = ExtResource("1_i2ia5")
region = Rect2(32, 0, 32, 48)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_0srx6"]
size = Vector2(6, 3)
[node name="Tree 01" type="StaticBody2D" unique_id=2046930104]
y_sort_enabled = true
[node name="Occlusion Culler" parent="." unique_id=1362480066 node_paths=PackedStringArray("nodes_to_occlude") instance=ExtResource("1_jbed0")]
nodes_to_occlude = [NodePath("../Sprite2D")]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Occlusion Culler" unique_id=731605527]
position = Vector2(0, -10)
shape = SubResource("CircleShape2D_jbed0")
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=1420512565]
y_sort_enabled = true
material = ExtResource("2_o0u4i")
position = Vector2(0, 8)
texture = SubResource("AtlasTexture_5otsd")
offset = Vector2(0, -8)
[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=870152657]
position = Vector2(0, 6.5)
shape = SubResource("RectangleShape2D_0srx6")

View File

@@ -1,83 +1,19 @@
[gd_scene format=3 uid="uid://be6xfndyj4ckx"]
[ext_resource type="PackedScene" uid="uid://d24gcv3umq60k" path="res://Entities/Characters/Utility/Occlusion/occlusion_culler.tscn" id="1_ijlg6"]
[ext_resource type="PackedScene" uid="uid://d24gcv3umq60k" path="res://Scenes/Objects/Occlusion/occlusion_culler.tscn" id="1_ijlg6"]
[ext_resource type="Texture2D" uid="uid://c6cddkuevr4hl" path="res://Assets/Spritesheets/Trees/Big_Oak_Tree-Isolated.png" id="2_mxye4"]
[ext_resource type="PackedScene" uid="uid://dpwm1tn0mbr3l" path="res://Entities/Map Objects/Trees/Effects/leaf_spawner.tscn" id="3_n7ubj"]
[ext_resource type="Texture2D" uid="uid://dv2qcpyn2rk5s" path="res://Assets/Spritesheets/Trees/Oak_Leaf_Particle.png" id="4_xq3h5"]
[ext_resource type="Material" uid="uid://1shsptwu7rdt" path="res://Resources/Materials/tree_sway.tres" id="2_pv2vp"]
[ext_resource type="Script" uid="uid://vmyfl4obus88" path="res://Scripts/Objects/Trees/leaf_spawner.gd" id="3_mxye4"]
[sub_resource type="CircleShape2D" id="CircleShape2D_ijlg6"]
radius = 23.021729
[sub_resource type="Shader" id="Shader_mxye4"]
code = "shader_type canvas_item;
uniform bool render_noise = false;
uniform sampler2D noise_texture : repeat_enable; // set in inspector
uniform float amplitude : hint_range(0.0, 0.5, 0.01) = 0.2;
uniform float time_scale : hint_range(0.0, 5.0, 0.01) = 0.04;
uniform float noise_scale : hint_range(0.0, 2.0, 0.0001) = 0.001;
uniform float rotation_strength : hint_range(0.0, 5.0, 0.1) = 1;
uniform vec2 rotation_pivot = vec2(0.5, 1);
varying vec2 world_position;
void vertex(){
world_position = (MODEL_MATRIX * vec4(VERTEX, 0.0, 1.0)).xy;
}
vec2 get_sample_pos(vec2 pos, float scale, float offset) {
pos *= scale;
pos += offset;
return pos;
}
vec2 rotate_vec(vec2 vec, vec2 pivot, float rotation) {
float cosa = cos(rotation);
float sina = sin(rotation);
vec -= pivot;
return vec2(
cosa * vec.x - sina * vec.y,
cosa * vec.y + sina * vec.x
) + pivot;
}
void fragment() {
// get noise from texture
vec2 noise_sample_pos = get_sample_pos(world_position, noise_scale, TIME * time_scale);
float noise_amount = texture(noise_texture, noise_sample_pos).r - 0.5f;
// get rotation position around a pivot
float rotation = amplitude * noise_amount;
vec2 rotated_uvs = rotate_vec(UV, rotation_pivot, rotation);
// blend original uvs and rotated uvs based on distance to pivot
float dist = distance(UV, rotation_pivot) * rotation_strength;
vec2 result_uvs = mix(UV, rotated_uvs, dist);
// output color
COLOR = texture(TEXTURE, result_uvs);
// optional, preview noise texture for debugging
if (render_noise) {
vec4 noise_color = texture(noise_texture, noise_sample_pos);
COLOR = noise_color;
}
}"
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_pv2vp"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ocj51"]
shader = SubResource("Shader_mxye4")
shader_parameter/render_noise = false
shader_parameter/noise_texture = SubResource("NoiseTexture2D_pv2vp")
shader_parameter/amplitude = 0.1999999955296
shader_parameter/time_scale = 0.04
shader_parameter/noise_scale = 0.001
shader_parameter/rotation_strength = 1.0
shader_parameter/rotation_pivot = Vector2(0.5, 1)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_0srx6"]
size = Vector2(16, 10)
[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_mxye4"]
load_path = "res://.godot/imported/Oak_Leaf_Particle.png-90b4e62cf0b626a461440019d7b31cd8.ctex"
[node name="Tree 02" type="StaticBody2D" unique_id=2046930104]
y_sort_enabled = true
@@ -90,7 +26,7 @@ shape = SubResource("CircleShape2D_ijlg6")
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=1420512565]
y_sort_enabled = true
material = SubResource("ShaderMaterial_ocj51")
material = ExtResource("2_pv2vp")
position = Vector2(0, 24)
texture = ExtResource("2_mxye4")
offset = Vector2(0, -24)
@@ -99,8 +35,10 @@ offset = Vector2(0, -24)
position = Vector2(0, 19)
shape = SubResource("RectangleShape2D_0srx6")
[node name="Leaf Spawner" parent="." unique_id=986945632 node_paths=PackedStringArray("spawn_markers", "destination_markers") instance=ExtResource("3_n7ubj")]
leaf_texture = ExtResource("4_xq3h5")
[node name="Leaf Spawner" type="Node2D" parent="." unique_id=1908114650 node_paths=PackedStringArray("spawn_markers", "destination_markers")]
y_sort_enabled = true
script = ExtResource("3_mxye4")
leaf_texture = SubResource("CompressedTexture2D_mxye4")
spawn_markers = NodePath("Spawn Markers")
destination_markers = NodePath("Destination Markers")

View File

@@ -1,8 +1,9 @@
[gd_scene format=3 uid="uid://bcx1d8kvp7o0h"]
[ext_resource type="Texture2D" uid="uid://bhdecga15imvk" path="res://Assets/Spritesheets/Trees/Big_Spruce_tree.png" id="1_xun88"]
[ext_resource type="PackedScene" uid="uid://d24gcv3umq60k" path="res://Entities/Characters/Utility/Occlusion/occlusion_culler.tscn" id="2_45i4c"]
[ext_resource type="PackedScene" uid="uid://dpwm1tn0mbr3l" path="res://Entities/Map Objects/Trees/Effects/leaf_spawner.tscn" id="3_nua4y"]
[ext_resource type="PackedScene" uid="uid://d24gcv3umq60k" path="res://Scenes/Objects/Occlusion/occlusion_culler.tscn" id="2_45i4c"]
[ext_resource type="Material" uid="uid://1shsptwu7rdt" path="res://Resources/Materials/tree_sway.tres" id="2_bbkr4"]
[ext_resource type="Script" uid="uid://vmyfl4obus88" path="res://Scripts/Objects/Trees/leaf_spawner.gd" id="3_13veg"]
[ext_resource type="Texture2D" uid="uid://ckvfo6bl606hp" path="res://Assets/Spritesheets/Trees/Spruce_Needle_Particle.png" id="4_34ibr"]
[sub_resource type="CircleShape2D" id="CircleShape2D_13veg"]
@@ -14,73 +15,6 @@ radius = 8.0
[sub_resource type="CircleShape2D" id="CircleShape2D_bbkr4"]
radius = 3.0
[sub_resource type="Shader" id="Shader_34ibr"]
code = "shader_type canvas_item;
uniform bool render_noise = false;
uniform sampler2D noise_texture : repeat_enable; // set in inspector
uniform float amplitude : hint_range(0.0, 0.5, 0.01) = 0.2;
uniform float time_scale : hint_range(0.0, 5.0, 0.01) = 0.04;
uniform float noise_scale : hint_range(0.0, 2.0, 0.0001) = 0.001;
uniform float rotation_strength : hint_range(0.0, 5.0, 0.1) = 1;
uniform vec2 rotation_pivot = vec2(0.5, 1);
varying vec2 world_position;
void vertex(){
world_position = (MODEL_MATRIX * vec4(VERTEX, 0.0, 1.0)).xy;
}
vec2 get_sample_pos(vec2 pos, float scale, float offset) {
pos *= scale;
pos += offset;
return pos;
}
vec2 rotate_vec(vec2 vec, vec2 pivot, float rotation) {
float cosa = cos(rotation);
float sina = sin(rotation);
vec -= pivot;
return vec2(
cosa * vec.x - sina * vec.y,
cosa * vec.y + sina * vec.x
) + pivot;
}
void fragment() {
// get noise from texture
vec2 noise_sample_pos = get_sample_pos(world_position, noise_scale, TIME * time_scale);
float noise_amount = texture(noise_texture, noise_sample_pos).r - 0.5f;
// get rotation position around a pivot
float rotation = amplitude * noise_amount;
vec2 rotated_uvs = rotate_vec(UV, rotation_pivot, rotation);
// blend original uvs and rotated uvs based on distance to pivot
float dist = distance(UV, rotation_pivot) * rotation_strength;
vec2 result_uvs = mix(UV, rotated_uvs, dist);
// output color
COLOR = texture(TEXTURE, result_uvs);
// optional, preview noise texture for debugging
if (render_noise) {
vec4 noise_color = texture(noise_texture, noise_sample_pos);
COLOR = noise_color;
}
}"
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_bbkr4"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_b4y2c"]
shader = SubResource("Shader_34ibr")
shader_parameter/render_noise = false
shader_parameter/noise_texture = SubResource("NoiseTexture2D_bbkr4")
shader_parameter/amplitude = 0.03999999910592
shader_parameter/time_scale = 0.04
shader_parameter/noise_scale = 0.001
shader_parameter/rotation_strength = 1.0
shader_parameter/rotation_pivot = Vector2(0.5, 1)
[sub_resource type="AtlasTexture" id="AtlasTexture_5otsd"]
atlas = ExtResource("1_xun88")
region = Rect2(64, 0, 64, 80)
@@ -107,7 +41,7 @@ shape = SubResource("CircleShape2D_bbkr4")
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=1420512565]
y_sort_enabled = true
material = SubResource("ShaderMaterial_b4y2c")
material = ExtResource("2_bbkr4")
position = Vector2(0, 24)
texture = SubResource("AtlasTexture_5otsd")
offset = Vector2(0, -24)
@@ -116,7 +50,8 @@ offset = Vector2(0, -24)
position = Vector2(0, 19)
shape = SubResource("RectangleShape2D_0srx6")
[node name="Leaf Spawner" parent="." unique_id=986945632 node_paths=PackedStringArray("spawn_markers", "destination_markers") instance=ExtResource("3_nua4y")]
[node name="Leaf Spawner" type="Node2D" parent="." unique_id=1308634781 node_paths=PackedStringArray("spawn_markers", "destination_markers")]
script = ExtResource("3_13veg")
leaf_texture = ExtResource("4_34ibr")
spawn_markers = NodePath("Spawn Markers")
destination_markers = NodePath("Destination Markers")

View File

@@ -1,6 +1,6 @@
[gd_scene format=3 uid="uid://bc8u3wlyag7c4"]
[ext_resource type="Script" uid="uid://8q26ldhfyijx" path="res://Entities/Weapons/Projectiles/Scripts/base_projectile.gd" id="1_0qxu7"]
[ext_resource type="Script" uid="uid://8q26ldhfyijx" path="res://Scripts/Objects/Weapons/Projectiles/base_projectile.gd" id="1_0qxu7"]
[node name="BaseProjectile" type="CharacterBody2D" unique_id=647680377]
collision_layer = 0

View File

@@ -1,7 +1,7 @@
[gd_scene format=3 uid="uid://b2wq5m01b68rx"]
[ext_resource type="Texture2D" uid="uid://hop1gedjh8s4" path="res://Assets/Spritesheets/Player/icons_full_32.png" id="1_0h1c2"]
[ext_resource type="Script" uid="uid://j5yj4piyfql1" path="res://Entities/Weapons/Projectiles/Scripts/wooden_arrow.gd" id="1_44gti"]
[ext_resource type="Script" uid="uid://j5yj4piyfql1" path="res://Scripts/Objects/Weapons/Projectiles/wooden_arrow.gd" id="1_44gti"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_0h1c2"]
size = Vector2(10, 2)

View File

@@ -1,6 +1,6 @@
[gd_scene format=3 uid="uid://ddgeo3vwebqeg"]
[ext_resource type="Script" uid="uid://cggyjxrk4qqfm" path="res://Entities/Map Objects/Mechanisms/Scripts/shop_item.gd" id="1_0luup"]
[ext_resource type="Script" uid="uid://cggyjxrk4qqfm" path="res://Scripts/Objects/shop_item.gd" id="1_0luup"]
[node name="ShopItem" type="Area2D" unique_id=1768344009]
collision_layer = 2

View File

@@ -1,6 +1,6 @@
[gd_scene format=3 uid="uid://cxc4x4yp7l3hg"]
[ext_resource type="Script" uid="uid://d0mlugcfvyksn" path="res://UI/Scripts/dialogue_box.gd" id="1_tpmx7"]
[ext_resource type="Script" uid="uid://d0mlugcfvyksn" path="res://Scripts/UI/dialogue_box.gd" id="1_tpmx7"]
[node name="Dialogue Box" type="Control" unique_id=586562815]
layout_mode = 3

View File

@@ -1,28 +1,22 @@
[gd_scene format=3 uid="uid://dqgxg3i307lvr"]
[ext_resource type="Script" uid="uid://vv4pj8uhiad8" path="res://Main/Scripts/main.gd" id="1_jjgbg"]
[ext_resource type="Script" uid="uid://ekp7au5wf06q" path="res://Main/Scripts/world.gd" id="2_bo1nx"]
[ext_resource type="Script" uid="uid://c4w8hney4mesw" path="res://Main/Scripts/gui.gd" id="3_8gbba"]
[ext_resource type="Script" uid="uid://dr7ljodtof1k5" path="res://Main/Scripts/map_transitioner.gd" id="3_kry3j"]
[ext_resource type="Script" uid="uid://vv4pj8uhiad8" path="res://Scripts/main.gd" id="1_jjgbg"]
[ext_resource type="Script" uid="uid://ekp7au5wf06q" path="res://Scripts/world.gd" id="2_bo1nx"]
[ext_resource type="Script" uid="uid://c4w8hney4mesw" path="res://Scripts/gui.gd" id="3_8gbba"]
[ext_resource type="Script" uid="uid://dr7ljodtof1k5" path="res://Scripts/map_transitioner.gd" id="3_kry3j"]
[ext_resource type="Script" uid="uid://cluyhxrc3pdb" path="res://Scripts/dialogue_trigger_connector.gd" id="4_6bp64"]
[ext_resource type="Script" uid="uid://bkvsdwn7swt1p" path="res://Main/Scripts/persistence_loader.gd" id="4_ib3t1"]
[ext_resource type="PackedScene" uid="uid://cxc4x4yp7l3hg" path="res://UI/dialogue_box.tscn" id="6_21xkr"]
[ext_resource type="PackedScene" uid="uid://ce6ix6ca6js5f" path="res://UI/Screens/map_ui.tscn" id="8_f6fdm"]
[ext_resource type="PackedScene" uid="uid://cxc4x4yp7l3hg" path="res://Scenes/UI/dialogue_box.tscn" id="6_21xkr"]
[node name="Main" type="Node2D" unique_id=1457826519]
script = ExtResource("1_jjgbg")
[node name="Map Transitioner" type="Node" parent="." unique_id=1528505665]
script = ExtResource("3_kry3j")
initial_map_id = 3
[node name="Dialogue Trigger Connector" type="Node" parent="." unique_id=1187622540 node_paths=PackedStringArray("dialogue_box")]
script = ExtResource("4_6bp64")
dialogue_box = NodePath("../Gui/Dialogue Box")
[node name="Persistence Loader" type="Node" parent="." unique_id=523510879]
script = ExtResource("4_ib3t1")
[node name="World" type="Node2D" parent="." unique_id=578440549]
script = ExtResource("2_bo1nx")
@@ -32,10 +26,5 @@ script = ExtResource("3_8gbba")
[node name="Dialogue Box" parent="Gui" unique_id=586562815 instance=ExtResource("6_21xkr")]
visible = false
[node name="Map UI" parent="Gui" unique_id=98184404 instance=ExtResource("8_f6fdm")]
visible = false
[connection signal="GameStarted" from="Map Transitioner" to="Persistence Loader" method="OnGameStarted"]
[connection signal="MapChanged" from="Map Transitioner" to="." method="_on_map_changed"]
[connection signal="MapChanged" from="Map Transitioner" to="Dialogue Trigger Connector" method="_on_map_changed"]
[connection signal="DialogueTriggered" from="Dialogue Trigger Connector" to="Gui/Dialogue Box" method="OnDialogueTriggered"]

View File

@@ -5,10 +5,6 @@ enum States {
PECKING
}
@export var minimum_pecking_schedule_gap := 8.0
@export var maximum_pecking_schedule_gap := 25.0
@export var should_log_pecking_schedule := false
@onready var animated_sprite_2d: AnimatedSprite2D = $AnimatedSprite2D
var current_state := States.IDLE
@@ -27,12 +23,11 @@ func _process(delta: float) -> void:
animated_sprite_2d.play("pecking")
await animated_sprite_2d.animation_finished
animated_sprite_2d.play("idle")
pecking_sched = randf_range(minimum_pecking_schedule_gap, maximum_pecking_schedule_gap)
pecking_sched = randf_range(8.0, 25.0)
pecking_timer = 0
current_state = States.IDLE
_print_sched()
func _print_sched() -> void:
if should_log_pecking_schedule:
print("%s Pecking Schedule: %f" % [name, pecking_sched])
print("%s Pecking Schedule: %f" % [name, pecking_sched])

View File

@@ -3,36 +3,35 @@ extends BaseState
signal PlayerBeganDrawingBow
@export var strafing_speed := 35
@export var movement_componenent: MovementComponent
@export var body: CharacterBody2D
var _used_item_action: String
var _animation_finished := false
var _movement_componenent: MovementComponent
var used_item_action: String
var animation_finished := false
func GetStateEnum() -> PlayerStateMachine.States:
return PlayerStateMachine.States.DRAWING_BOW
func Enter(extra_parameters: Dictionary) -> void:
_animation_finished = false
_used_item_action = extra_parameters.action_name
_movement_componenent = ComponentUtils.GetMovementComponent(body)
animation_finished = false
used_item_action = extra_parameters.action_name
PlayerBeganDrawingBow.emit()
func Update(_delta: float) -> void:
if !_animation_finished:
if !animation_finished:
return
if !Input.is_action_pressed(_used_item_action):
if !Input.is_action_pressed(used_item_action):
state_machine.QueueStateChange(PlayerStateMachine.States.FIRING_ARROW)
return
var movement_vector := _movement_componenent.movement_vector
var movement_vector := movement_componenent.movement_vector
if movement_vector != Vector2.ZERO:
body.velocity = movement_vector * strafing_speed
body.move_and_slide()
func OnDrawingBowAnimationFinished() -> void:
_animation_finished = true
animation_finished = true

View File

@@ -1,11 +1,10 @@
extends BaseState
class_name PlayerIdleState
@export var movement_component: MovementComponent
signal PlayerBecameIdle
@export var player: PlayerCharacter
var _movement_component: MovementComponent
var _sit_queued := false
var _sit_queue_pos: Vector2
var _sit_queue_dir: Enums.Directions
@@ -16,10 +15,6 @@ func GetStateEnum() -> PlayerStateMachine.States:
func Enter(_extra_parameters: Dictionary) -> void:
_movement_component = ComponentUtils.GetMovementComponent(player)
if not _movement_component:
print_rich("[color=yellow]Warning: Player does not have a movement component...[/color]")
PlayerBecameIdle.emit()
@@ -35,7 +30,7 @@ func Update(_delta: float) -> void:
_sit_queued = false
return
if _movement_component and _movement_component.movement_vector != Vector2.ZERO:
if movement_component.movement_vector != Vector2.ZERO:
state_machine.QueueStateChange(PlayerStateMachine.States.WALKING)

Some files were not shown because too many files have changed in this diff Show More