rendering fixes and menu

This commit is contained in:
2025-10-15 00:18:23 +02:00
parent ea63279633
commit 283e3cbb5a
21 changed files with 338 additions and 65 deletions

View File

@@ -11,7 +11,7 @@ config_version=5
[application] [application]
config/name="hood" config/name="hood"
run/main_scene="uid://clnb1eshis30m" run/main_scene="uid://dgq21ggr3br2g"
run/print_header=false run/print_header=false
config/features=PackedStringArray("4.5", "Forward Plus") config/features=PackedStringArray("4.5", "Forward Plus")
boot_splash/bg_color=Color(0, 0, 0, 1) boot_splash/bg_color=Color(0, 0, 0, 1)
@@ -24,13 +24,18 @@ config/icon="res://icon.svg"
WindowManager="*res://scripts/autoloads/windowman.gd" WindowManager="*res://scripts/autoloads/windowman.gd"
DialogueManager="*res://addons/dialogue_manager/dialogue_manager.gd" DialogueManager="*res://addons/dialogue_manager/dialogue_manager.gd"
EventManager="*res://scripts/autoloads/event_manager.gd"
Save="*res://scripts/autoloads/save.gd" Save="*res://scripts/autoloads/save.gd"
EventManager="*res://scenes/autoloads/event_manager.tscn"
Pixelize="*res://scenes/filter/pixelize.tscn"
[display] [display]
window/stretch/mode="canvas_items" window/size/viewport_width=360
window/stretch/scale=3.5 window/size/viewport_height=200
window/size/window_width_override=1152
window/size/window_height_override=640
window/stretch/mode="viewport"
window/stretch/scale_mode="integer"
display_server/driver.linuxbsd="wayland" display_server/driver.linuxbsd="wayland"
window/size/mode.release=4 window/size/mode.release=4
@@ -92,6 +97,7 @@ escape={
[physics] [physics]
2d/run_on_separate_thread=true
common/physics_interpolation=true common/physics_interpolation=true
[rendering] [rendering]
@@ -102,4 +108,6 @@ anti_aliasing/quality/msaa_2d=3
anti_aliasing/quality/screen_space_aa=2 anti_aliasing/quality/screen_space_aa=2
anti_aliasing/quality/use_taa=true anti_aliasing/quality/use_taa=true
anti_aliasing/quality/use_debanding=true anti_aliasing/quality/use_debanding=true
2d/snap/snap_2d_transforms_to_pixel=true
2d/snap/snap_2d_vertices_to_pixel=true
environment/defaults/default_clear_color.release=Color(0, 0, 0, 1) environment/defaults/default_clear_color.release=Color(0, 0, 0, 1)

View File

@@ -0,0 +1,15 @@
[gd_scene load_steps=2 format=3 uid="uid://cjbbslcx6vjjy"]
[ext_resource type="Script" uid="uid://b08q3lqbuoolb" path="res://scripts/autoloads/nodes/event_manager.gd" id="1_xplee"]
[node name="EventManager" type="CanvasLayer"]
script = ExtResource("1_xplee")
[node name="ColorRect" type="ColorRect" parent="."]
self_modulate = Color(1, 1, 1, 0)
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0, 0, 0, 1)

View File

@@ -0,0 +1,22 @@
[gd_scene load_steps=3 format=3 uid="uid://dthcpgxk5b74y"]
[ext_resource type="Shader" uid="uid://dgstw8crggyti" path="res://shaders/pixelate.gdshader" id="1_tt4dp"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_83vy4"]
shader = ExtResource("1_tt4dp")
shader_parameter/texture_mode = 1
shader_parameter/quantize_size = 1
shader_parameter/snap_to_world = false
shader_parameter/limit_subpixels = true
[node name="Pixelize" type="CanvasLayer"]
[node name="ColorRect" type="ColorRect" parent="."]
material = SubResource("ShaderMaterial_83vy4")
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 1
metadata/_edit_lock_ = true

View File

@@ -8,69 +8,69 @@ texture = ExtResource("1_74em3")
texture_region_size = Vector2i(32, 32) texture_region_size = Vector2i(32, 32)
0:0/0 = 0 0:0/0 = 0
0:0/0/terrain_set = 0 0:0/0/terrain_set = 0
0:0/0/terrain = 1 0:0/0/terrain = 0
0:0/0/terrains_peering_bit/right_side = 0 0:0/0/terrains_peering_bit/right_side = 0
0:0/0/terrains_peering_bit/bottom_right_corner = 0 0:0/0/terrains_peering_bit/bottom_right_corner = 0
0:0/0/terrains_peering_bit/bottom_side = 1 0:0/0/terrains_peering_bit/bottom_side = 0
0:0/0/terrains_peering_bit/bottom_left_corner = 1 0:0/0/terrains_peering_bit/bottom_left_corner = 1
0:0/0/terrains_peering_bit/left_side = 1 0:0/0/terrains_peering_bit/left_side = 0
0:0/0/terrains_peering_bit/top_left_corner = 0 0:0/0/terrains_peering_bit/top_left_corner = 0
0:0/0/terrains_peering_bit/top_side = 0 0:0/0/terrains_peering_bit/top_side = 0
0:0/0/terrains_peering_bit/top_right_corner = 0 0:0/0/terrains_peering_bit/top_right_corner = 0
1:0/0 = 0 1:0/0 = 0
1:0/0/terrain_set = 0 1:0/0/terrain_set = 0
1:0/0/terrain = 1 1:0/0/terrain = 0
1:0/0/terrains_peering_bit/right_side = 1 1:0/0/terrains_peering_bit/right_side = 1
1:0/0/terrains_peering_bit/bottom_right_corner = 1 1:0/0/terrains_peering_bit/bottom_right_corner = 1
1:0/0/terrains_peering_bit/bottom_side = 1 1:0/0/terrains_peering_bit/bottom_side = 0
1:0/0/terrains_peering_bit/bottom_left_corner = 0 1:0/0/terrains_peering_bit/bottom_left_corner = 0
1:0/0/terrains_peering_bit/left_side = 0 1:0/0/terrains_peering_bit/left_side = 0
1:0/0/terrains_peering_bit/top_left_corner = 0 1:0/0/terrains_peering_bit/top_left_corner = 0
1:0/0/terrains_peering_bit/top_side = 1 1:0/0/terrains_peering_bit/top_side = 0
1:0/0/terrains_peering_bit/top_right_corner = 1 1:0/0/terrains_peering_bit/top_right_corner = 1
2:0/0 = 0 2:0/0 = 0
2:0/0/terrain_set = 0 2:0/0/terrain_set = 0
2:0/0/terrain = 1 2:0/0/terrain = 0
2:0/0/terrains_peering_bit/right_side = 1 2:0/0/terrains_peering_bit/right_side = 0
2:0/0/terrains_peering_bit/bottom_right_corner = 1 2:0/0/terrains_peering_bit/bottom_right_corner = 1
2:0/0/terrains_peering_bit/bottom_side = 1 2:0/0/terrains_peering_bit/bottom_side = 1
2:0/0/terrains_peering_bit/bottom_left_corner = 1 2:0/0/terrains_peering_bit/bottom_left_corner = 1
2:0/0/terrains_peering_bit/left_side = 1 2:0/0/terrains_peering_bit/left_side = 1
2:0/0/terrains_peering_bit/top_left_corner = 1 2:0/0/terrains_peering_bit/top_left_corner = 1
2:0/0/terrains_peering_bit/top_side = 1 2:0/0/terrains_peering_bit/top_side = 0
2:0/0/terrains_peering_bit/top_right_corner = 0 2:0/0/terrains_peering_bit/top_right_corner = 0
3:0/0 = 0 3:0/0 = 0
3:0/0/terrain_set = 0 3:0/0/terrain_set = 0
3:0/0/terrain = 1 3:0/0/terrain = 0
3:0/0/terrains_peering_bit/right_side = 1 3:0/0/terrains_peering_bit/right_side = 0
3:0/0/terrains_peering_bit/bottom_right_corner = 1 3:0/0/terrains_peering_bit/bottom_right_corner = 1
3:0/0/terrains_peering_bit/bottom_side = 1 3:0/0/terrains_peering_bit/bottom_side = 1
3:0/0/terrains_peering_bit/bottom_left_corner = 1 3:0/0/terrains_peering_bit/bottom_left_corner = 1
3:0/0/terrains_peering_bit/left_side = 1 3:0/0/terrains_peering_bit/left_side = 0
3:0/0/terrains_peering_bit/top_left_corner = 0 3:0/0/terrains_peering_bit/top_left_corner = 0
3:0/0/terrains_peering_bit/top_side = 0 3:0/0/terrains_peering_bit/top_side = 0
3:0/0/terrains_peering_bit/top_right_corner = 0 3:0/0/terrains_peering_bit/top_right_corner = 0
0:1/0 = 0 0:1/0 = 0
0:1/0/terrain_set = 0 0:1/0/terrain_set = 0
0:1/0/terrain = 1 0:1/0/terrain = 0
0:1/0/terrains_peering_bit/right_side = 1 0:1/0/terrains_peering_bit/right_side = 0
0:1/0/terrains_peering_bit/bottom_right_corner = 1 0:1/0/terrains_peering_bit/bottom_right_corner = 1
0:1/0/terrains_peering_bit/bottom_side = 1 0:1/0/terrains_peering_bit/bottom_side = 0
0:1/0/terrains_peering_bit/bottom_left_corner = 0 0:1/0/terrains_peering_bit/bottom_left_corner = 0
0:1/0/terrains_peering_bit/left_side = 1 0:1/0/terrains_peering_bit/left_side = 0
0:1/0/terrains_peering_bit/top_left_corner = 1 0:1/0/terrains_peering_bit/top_left_corner = 1
0:1/0/terrains_peering_bit/top_side = 1 0:1/0/terrains_peering_bit/top_side = 0
0:1/0/terrains_peering_bit/top_right_corner = 0 0:1/0/terrains_peering_bit/top_right_corner = 0
1:1/0 = 0 1:1/0 = 0
1:1/0/terrain_set = 0 1:1/0/terrain_set = 0
1:1/0/terrain = 1 1:1/0/terrain = 0
1:1/0/terrains_peering_bit/right_side = 1 1:1/0/terrains_peering_bit/right_side = 1
1:1/0/terrains_peering_bit/bottom_right_corner = 1 1:1/0/terrains_peering_bit/bottom_right_corner = 1
1:1/0/terrains_peering_bit/bottom_side = 1 1:1/0/terrains_peering_bit/bottom_side = 1
1:1/0/terrains_peering_bit/bottom_left_corner = 1 1:1/0/terrains_peering_bit/bottom_left_corner = 1
1:1/0/terrains_peering_bit/left_side = 1 1:1/0/terrains_peering_bit/left_side = 0
1:1/0/terrains_peering_bit/top_left_corner = 0 1:1/0/terrains_peering_bit/top_left_corner = 0
1:1/0/terrains_peering_bit/top_side = 1 1:1/0/terrains_peering_bit/top_side = 0
1:1/0/terrains_peering_bit/top_right_corner = 1 1:1/0/terrains_peering_bit/top_right_corner = 1
2:1/0 = 0 2:1/0 = 0
2:1/0/terrain_set = 0 2:1/0/terrain_set = 0
@@ -85,10 +85,10 @@ texture_region_size = Vector2i(32, 32)
2:1/0/terrains_peering_bit/top_right_corner = 1 2:1/0/terrains_peering_bit/top_right_corner = 1
3:1/0 = 0 3:1/0 = 0
3:1/0/terrain_set = 0 3:1/0/terrain_set = 0
3:1/0/terrain = 1 3:1/0/terrain = 0
3:1/0/terrains_peering_bit/right_side = 1 3:1/0/terrains_peering_bit/right_side = 0
3:1/0/terrains_peering_bit/bottom_right_corner = 0 3:1/0/terrains_peering_bit/bottom_right_corner = 0
3:1/0/terrains_peering_bit/bottom_side = 1 3:1/0/terrains_peering_bit/bottom_side = 0
3:1/0/terrains_peering_bit/bottom_left_corner = 1 3:1/0/terrains_peering_bit/bottom_left_corner = 1
3:1/0/terrains_peering_bit/left_side = 1 3:1/0/terrains_peering_bit/left_side = 1
3:1/0/terrains_peering_bit/top_left_corner = 1 3:1/0/terrains_peering_bit/top_left_corner = 1
@@ -96,47 +96,47 @@ texture_region_size = Vector2i(32, 32)
3:1/0/terrains_peering_bit/top_right_corner = 1 3:1/0/terrains_peering_bit/top_right_corner = 1
0:2/0 = 0 0:2/0 = 0
0:2/0/terrain_set = 0 0:2/0/terrain_set = 0
0:2/0/terrain = 1 0:2/0/terrain = 0
0:2/0/terrains_peering_bit/right_side = 1 0:2/0/terrains_peering_bit/right_side = 0
0:2/0/terrains_peering_bit/bottom_right_corner = 0 0:2/0/terrains_peering_bit/bottom_right_corner = 0
0:2/0/terrains_peering_bit/bottom_side = 0 0:2/0/terrains_peering_bit/bottom_side = 0
0:2/0/terrains_peering_bit/bottom_left_corner = 0 0:2/0/terrains_peering_bit/bottom_left_corner = 0
0:2/0/terrains_peering_bit/left_side = 0 0:2/0/terrains_peering_bit/left_side = 0
0:2/0/terrains_peering_bit/top_left_corner = 0 0:2/0/terrains_peering_bit/top_left_corner = 0
0:2/0/terrains_peering_bit/top_side = 1 0:2/0/terrains_peering_bit/top_side = 0
0:2/0/terrains_peering_bit/top_right_corner = 1 0:2/0/terrains_peering_bit/top_right_corner = 1
1:2/0 = 0 1:2/0 = 0
1:2/0/terrain_set = 0 1:2/0/terrain_set = 0
1:2/0/terrain = 1 1:2/0/terrain = 0
1:2/0/terrains_peering_bit/right_side = 1 1:2/0/terrains_peering_bit/right_side = 0
1:2/0/terrains_peering_bit/bottom_right_corner = 0 1:2/0/terrains_peering_bit/bottom_right_corner = 0
1:2/0/terrains_peering_bit/bottom_side = 0 1:2/0/terrains_peering_bit/bottom_side = 0
1:2/0/terrains_peering_bit/bottom_left_corner = 0 1:2/0/terrains_peering_bit/bottom_left_corner = 0
1:2/0/terrains_peering_bit/left_side = 1 1:2/0/terrains_peering_bit/left_side = 0
1:2/0/terrains_peering_bit/top_left_corner = 1 1:2/0/terrains_peering_bit/top_left_corner = 1
1:2/0/terrains_peering_bit/top_side = 1 1:2/0/terrains_peering_bit/top_side = 1
1:2/0/terrains_peering_bit/top_right_corner = 1 1:2/0/terrains_peering_bit/top_right_corner = 1
2:2/0 = 0 2:2/0 = 0
2:2/0/terrain_set = 0 2:2/0/terrain_set = 0
2:2/0/terrain = 1 2:2/0/terrain = 0
2:2/0/terrains_peering_bit/right_side = 1 2:2/0/terrains_peering_bit/right_side = 1
2:2/0/terrains_peering_bit/bottom_right_corner = 1 2:2/0/terrains_peering_bit/bottom_right_corner = 1
2:2/0/terrains_peering_bit/bottom_side = 1 2:2/0/terrains_peering_bit/bottom_side = 0
2:2/0/terrains_peering_bit/bottom_left_corner = 0 2:2/0/terrains_peering_bit/bottom_left_corner = 0
2:2/0/terrains_peering_bit/left_side = 1 2:2/0/terrains_peering_bit/left_side = 0
2:2/0/terrains_peering_bit/top_left_corner = 1 2:2/0/terrains_peering_bit/top_left_corner = 1
2:2/0/terrains_peering_bit/top_side = 1 2:2/0/terrains_peering_bit/top_side = 1
2:2/0/terrains_peering_bit/top_right_corner = 1 2:2/0/terrains_peering_bit/top_right_corner = 1
3:2/0 = 0 3:2/0 = 0
3:2/0/terrain_set = 0 3:2/0/terrain_set = 0
3:2/0/terrain = 1 3:2/0/terrain = 0
3:2/0/terrains_peering_bit/right_side = 0 3:2/0/terrains_peering_bit/right_side = 0
3:2/0/terrains_peering_bit/bottom_right_corner = 0 3:2/0/terrains_peering_bit/bottom_right_corner = 0
3:2/0/terrains_peering_bit/bottom_side = 1 3:2/0/terrains_peering_bit/bottom_side = 0
3:2/0/terrains_peering_bit/bottom_left_corner = 1 3:2/0/terrains_peering_bit/bottom_left_corner = 1
3:2/0/terrains_peering_bit/left_side = 1 3:2/0/terrains_peering_bit/left_side = 1
3:2/0/terrains_peering_bit/top_left_corner = 1 3:2/0/terrains_peering_bit/top_left_corner = 1
3:2/0/terrains_peering_bit/top_side = 1 3:2/0/terrains_peering_bit/top_side = 0
3:2/0/terrains_peering_bit/top_right_corner = 0 3:2/0/terrains_peering_bit/top_right_corner = 0
0:3/0 = 0 0:3/0 = 0
0:3/0/terrain_set = 0 0:3/0/terrain_set = 0
@@ -151,10 +151,10 @@ texture_region_size = Vector2i(32, 32)
0:3/0/terrains_peering_bit/top_right_corner = 0 0:3/0/terrains_peering_bit/top_right_corner = 0
1:3/0 = 0 1:3/0 = 0
1:3/0/terrain_set = 0 1:3/0/terrain_set = 0
1:3/0/terrain = 1 1:3/0/terrain = 0
1:3/0/terrains_peering_bit/right_side = 1 1:3/0/terrains_peering_bit/right_side = 0
1:3/0/terrains_peering_bit/bottom_right_corner = 1 1:3/0/terrains_peering_bit/bottom_right_corner = 1
1:3/0/terrains_peering_bit/bottom_side = 1 1:3/0/terrains_peering_bit/bottom_side = 0
1:3/0/terrains_peering_bit/bottom_left_corner = 0 1:3/0/terrains_peering_bit/bottom_left_corner = 0
1:3/0/terrains_peering_bit/left_side = 0 1:3/0/terrains_peering_bit/left_side = 0
1:3/0/terrains_peering_bit/top_left_corner = 0 1:3/0/terrains_peering_bit/top_left_corner = 0
@@ -162,32 +162,32 @@ texture_region_size = Vector2i(32, 32)
1:3/0/terrains_peering_bit/top_right_corner = 0 1:3/0/terrains_peering_bit/top_right_corner = 0
2:3/0 = 0 2:3/0 = 0
2:3/0/terrain_set = 0 2:3/0/terrain_set = 0
2:3/0/terrain = 1 2:3/0/terrain = 0
2:3/0/terrains_peering_bit/right_side = 1 2:3/0/terrains_peering_bit/right_side = 0
2:3/0/terrains_peering_bit/bottom_right_corner = 0 2:3/0/terrains_peering_bit/bottom_right_corner = 0
2:3/0/terrains_peering_bit/bottom_side = 1 2:3/0/terrains_peering_bit/bottom_side = 0
2:3/0/terrains_peering_bit/bottom_left_corner = 1 2:3/0/terrains_peering_bit/bottom_left_corner = 1
2:3/0/terrains_peering_bit/left_side = 1 2:3/0/terrains_peering_bit/left_side = 0
2:3/0/terrains_peering_bit/top_left_corner = 0 2:3/0/terrains_peering_bit/top_left_corner = 0
2:3/0/terrains_peering_bit/top_side = 1 2:3/0/terrains_peering_bit/top_side = 0
2:3/0/terrains_peering_bit/top_right_corner = 1 2:3/0/terrains_peering_bit/top_right_corner = 1
3:3/0 = 0 3:3/0 = 0
3:3/0/terrain_set = 0 3:3/0/terrain_set = 0
3:3/0/terrain = 1 3:3/0/terrain = 0
3:3/0/terrains_peering_bit/right_side = 0 3:3/0/terrains_peering_bit/right_side = 0
3:3/0/terrains_peering_bit/bottom_right_corner = 0 3:3/0/terrains_peering_bit/bottom_right_corner = 0
3:3/0/terrains_peering_bit/bottom_side = 0 3:3/0/terrains_peering_bit/bottom_side = 0
3:3/0/terrains_peering_bit/bottom_left_corner = 0 3:3/0/terrains_peering_bit/bottom_left_corner = 0
3:3/0/terrains_peering_bit/left_side = 1 3:3/0/terrains_peering_bit/left_side = 0
3:3/0/terrains_peering_bit/top_left_corner = 1 3:3/0/terrains_peering_bit/top_left_corner = 1
3:3/0/terrains_peering_bit/top_side = 1 3:3/0/terrains_peering_bit/top_side = 0
3:3/0/terrains_peering_bit/top_right_corner = 0 3:3/0/terrains_peering_bit/top_right_corner = 0
[sub_resource type="TileSet" id="TileSet_ge1l5"] [sub_resource type="TileSet" id="TileSet_ge1l5"]
tile_size = Vector2i(32, 32) tile_size = Vector2i(32, 32)
terrain_set_0/mode = 0 terrain_set_0/mode = 0
terrain_set_0/terrain_0/name = "Grass" terrain_set_0/terrain_0/name = "Grass"
terrain_set_0/terrain_0/color = Color(0, 0.53558326, 0.2235117, 1) terrain_set_0/terrain_0/color = Color(0, 0.5365651, 0.20230255, 1)
terrain_set_0/terrain_1/name = "Dirt" terrain_set_0/terrain_1/name = "Dirt"
terrain_set_0/terrain_1/color = Color(0.5, 0.34375, 0.25, 1) terrain_set_0/terrain_1/color = Color(0.5, 0.34375, 0.25, 1)
sources/2 = SubResource("TileSetAtlasSource_1r5ec") sources/2 = SubResource("TileSetAtlasSource_1r5ec")
@@ -195,9 +195,10 @@ sources/2 = SubResource("TileSetAtlasSource_1r5ec")
[node name="Hood" type="Node2D"] [node name="Hood" type="Node2D"]
[node name="TileMapLayer" type="TileMapLayer" parent="."] [node name="TileMapLayer" type="TileMapLayer" parent="."]
tile_map_data = PackedByteArray("AAAAAAAAAgAAAAMAAAAMAAgAAgAAAAMAAAAMAAcAAgAAAAMAAAAMAAYAAgAAAAMAAAAMAAUAAgABAAIAAAAMAAQAAgADAAAAAAAMAAMAAgAAAAMAAAAMAAIAAgAAAAMAAAAMAAEAAgAAAAMAAAAMAAAAAgAAAAMAAAALAAgAAgAAAAMAAAALAAcAAgAAAAMAAAALAAYAAgAAAAMAAAALAAUAAgABAAIAAAALAAQAAgADAAAAAAALAAMAAgAAAAMAAAALAAIAAgAAAAMAAAALAAEAAgAAAAMAAAALAAAAAgAAAAMAAAAKAAgAAgAAAAMAAAAKAAcAAgAAAAMAAAAKAAYAAgAAAAMAAAAKAAUAAgABAAIAAAAKAAQAAgADAAAAAAAKAAMAAgAAAAMAAAAKAAIAAgAAAAMAAAAKAAEAAgAAAAMAAAAKAAAAAgAAAAMAAAAJAAgAAgAAAAMAAAAJAAcAAgAAAAMAAAAJAAYAAgAAAAMAAAAJAAUAAgABAAIAAAAJAAQAAgADAAAAAAAJAAMAAgAAAAMAAAAJAAIAAgAAAAMAAAAJAAEAAgAAAAMAAAAJAAAAAgAAAAMAAAAIAAgAAgAAAAMAAAAIAAcAAgAAAAMAAAAIAAYAAgADAAMAAAAIAAUAAgADAAEAAAAIAAQAAgACAAAAAAAIAAMAAgADAAIAAAAIAAIAAgAAAAAAAAAIAAEAAgAAAAMAAAAIAAAAAgAAAAMAAAAHAAgAAgAAAAMAAAAHAAcAAgAAAAMAAAAHAAYAAgABAAIAAAAHAAUAAgABAAEAAAAHAAEAAgAAAAMAAAAHAAAAAgAAAAMAAAAGAAgAAgAAAAMAAAAGAAcAAgAAAAMAAAAGAAMAAgAAAAMAAAAGAAIAAgAAAAMAAAAGAAEAAgAAAAMAAAAGAAAAAgAAAAMAAAAFAAgAAgADAAMAAAAFAAcAAgADAAIAAAAFAAYAAgADAAEAAAAFAAUAAgADAAAAAAAFAAQAAgAAAAMAAAAFAAMAAgAAAAMAAAAFAAIAAgAAAAMAAAAFAAEAAgAAAAMAAAAFAAAAAgAAAAMAAAAEAAgAAgAAAAMAAAAEAAcAAgAAAAMAAAAEAAYAAgABAAIAAAAEAAUAAgACAAAAAAAEAAQAAgADAAIAAAAEAAMAAgADAAIAAAAEAAIAAgADAAIAAAAEAAEAAgADAAIAAAAEAAAAAgAAAAAAAAADAAgAAgAAAAMAAAADAAcAAgAAAAMAAAADAAYAAgAAAAIAAAADAAUAAgABAAAAAAADAAQAAgACAAIAAAADAAMAAgABAAAAAAADAAIAAgABAAAAAAADAAEAAgABAAAAAAADAAAAAgABAAMAAAACAAgAAgAAAAMAAAACAAcAAgAAAAMAAAACAAYAAgAAAAMAAAACAAUAAgAAAAMAAAACAAQAAgABAAIAAAACAAMAAgAAAAMAAAACAAIAAgAAAAMAAAACAAEAAgAAAAMAAAACAAAAAgAAAAMAAAABAAgAAgAAAAMAAAABAAcAAgAAAAMAAAABAAYAAgAAAAMAAAABAAUAAgAAAAMAAAABAAQAAgABAAIAAAABAAMAAgAAAAMAAAABAAIAAgAAAAMAAAABAAEAAgAAAAMAAAABAAAAAgAAAAMAAAAAAAgAAgAAAAMAAAAAAAcAAgAAAAMAAAAAAAYAAgAAAAMAAAAAAAUAAgAAAAMAAAAAAAQAAgAAAAIAAAAAAAMAAgAAAAMAAAAAAAIAAgAAAAMAAAAAAAEAAgAAAAMAAAAAAP//AgAAAAMAAAABAP//AgAAAAMAAAACAP//AgAAAAMAAAADAP//AgAAAAMAAAAEAP//AgAAAAMAAAAFAP//AgAAAAMAAAAGAP//AgAAAAMAAAAHAP//AgAAAAMAAAAIAP//AgAAAAMAAAAJAP//AgAAAAMAAAAKAP//AgAAAAMAAAALAP//AgAAAAMAAAAMAP//AgAAAAMAAAANAAIAAgAAAAMAAAANAAEAAgAAAAMAAAANAAAAAgAAAAMAAAANAP//AgAAAAMAAAANAAMAAgAAAAMAAAANAAQAAgAAAAAAAAANAAUAAgADAAMAAAANAAYAAgAAAAMAAAANAAcAAgAAAAMAAAANAAgAAgAAAAMAAAANAAkAAgAAAAMAAAAMAAkAAgAAAAMAAAALAAkAAgAAAAMAAAAKAAkAAgAAAAMAAAAJAAkAAgAAAAMAAAAIAAkAAgAAAAMAAAAHAAkAAgAAAAMAAAAGAAkAAgAAAAMAAAAFAAkAAgAAAAMAAAAEAAkAAgAAAAMAAAADAAkAAgAAAAMAAAACAAkAAgAAAAMAAAABAAkAAgAAAAMAAAAAAAkAAgAAAAMAAAD//wkAAgAAAAMAAAD//wgAAgAAAAMAAAD//wcAAgAAAAMAAAD//wYAAgAAAAMAAAD//wUAAgAAAAMAAAD//wQAAgAAAAMAAAD//wMAAgAAAAMAAAD//wIAAgAAAAMAAAD//wEAAgAAAAMAAAD//wAAAgAAAAMAAAD/////AgAAAAMAAAAHAAIAAgAAAAMAAAAHAAMAAgAAAAMAAAAHAAQAAgABAAMAAAAGAAQAAgAAAAMAAAAGAAUAAgADAAAAAAAGAAYAAgABAAIAAAA=") tile_map_data = PackedByteArray("AAAQAAkAAgAAAAMAAAAQAAgAAgAAAAMAAAAQAAcAAgAAAAMAAAAQAAYAAgAAAAMAAAAQAAUAAgAAAAMAAAAQAAQAAgAAAAMAAAAQAAMAAgAAAAMAAAAQAAIAAgAAAAMAAAAQAAEAAgAAAAMAAAAQAAAAAgAAAAMAAAAQAP//AgAAAAMAAAAQAP7/AgAAAAMAAAAPAAkAAgAAAAMAAAAPAAgAAgAAAAMAAAAPAAcAAgAAAAMAAAAPAAYAAgADAAMAAAAPAAUAAgADAAIAAAAPAAQAAgAAAAAAAAAPAAMAAgAAAAMAAAAPAAIAAgAAAAMAAAAPAAEAAgAAAAMAAAAPAAAAAgAAAAMAAAAPAP//AgAAAAMAAAAPAP7/AgAAAAMAAAAOAAkAAgAAAAMAAAAOAAgAAgAAAAMAAAAOAAcAAgAAAAMAAAAOAAYAAgABAAIAAAAOAAUAAgACAAEAAAAOAAQAAgADAAAAAAAOAAMAAgAAAAMAAAAOAAIAAgAAAAMAAAAOAAEAAgAAAAMAAAAOAAAAAgAAAAMAAAAOAP//AgAAAAMAAAAOAP7/AgAAAAMAAAANAAkAAgAAAAMAAAANAAgAAgAAAAMAAAANAAcAAgAAAAMAAAANAAYAAgABAAIAAAANAAUAAgACAAEAAAANAAQAAgADAAAAAAANAAMAAgAAAAMAAAANAAIAAgAAAAMAAAANAAEAAgAAAAMAAAANAAAAAgAAAAMAAAANAP//AgAAAAMAAAANAP7/AgAAAAMAAAAMAAkAAgAAAAMAAAAMAAgAAgAAAAMAAAAMAAcAAgAAAAMAAAAMAAYAAgABAAIAAAAMAAUAAgACAAEAAAAMAAQAAgADAAAAAAAMAAMAAgAAAAMAAAAMAAIAAgAAAAMAAAAMAAEAAgAAAAMAAAAMAAAAAgAAAAMAAAAMAP//AgAAAAMAAAAMAP7/AgAAAAMAAAALAAkAAgAAAAMAAAALAAgAAgAAAAMAAAALAAcAAgAAAAMAAAALAAYAAgABAAIAAAALAAUAAgACAAEAAAALAAQAAgADAAAAAAALAAMAAgAAAAMAAAALAAIAAgAAAAMAAAALAAEAAgAAAAMAAAALAAAAAgAAAAMAAAALAP//AgAAAAMAAAALAP7/AgAAAAMAAAAKAAkAAgAAAAMAAAAKAAgAAgAAAAMAAAAKAAcAAgAAAAMAAAAKAAYAAgABAAIAAAAKAAUAAgACAAEAAAAKAAQAAgACAAAAAAAKAAMAAgADAAIAAAAKAAIAAgAAAAAAAAAKAAEAAgAAAAMAAAAKAAAAAgAAAAMAAAAKAP//AgAAAAMAAAAKAP7/AgAAAAMAAAAJAAkAAgAAAAMAAAAJAAgAAgAAAAMAAAAJAAcAAgAAAAMAAAAJAAYAAgABAAIAAAAJAAUAAgACAAEAAAAJAAQAAgACAAEAAAAJAAMAAgACAAEAAAAJAAIAAgADAAAAAAAJAAEAAgAAAAMAAAAJAAAAAgAAAAMAAAAJAP//AgAAAAMAAAAJAP7/AgAAAAMAAAAIAAkAAgAAAAMAAAAIAAgAAgAAAAMAAAAIAAcAAgAAAAMAAAAIAAYAAgABAAIAAAAIAAUAAgACAAEAAAAIAAQAAgABAAEAAAAIAAMAAgABAAAAAAAIAAIAAgABAAMAAAAIAAEAAgAAAAMAAAAIAAAAAgAAAAMAAAAIAP//AgAAAAMAAAAIAP7/AgAAAAMAAAAHAAkAAgAAAAMAAAAHAAgAAgAAAAMAAAAHAAcAAgAAAAMAAAAHAAYAAgABAAIAAAAHAAUAAgACAAEAAAAHAAQAAgADAAAAAAAHAAMAAgAAAAMAAAAHAAIAAgAAAAMAAAAHAAEAAgAAAAMAAAAHAAAAAgAAAAMAAAAHAP//AgAAAAMAAAAHAP7/AgAAAAMAAAAGAAkAAgAAAAMAAAAGAAgAAgAAAAMAAAAGAAcAAgAAAAMAAAAGAAYAAgABAAIAAAAGAAUAAgACAAEAAAAGAAQAAgADAAAAAAAGAAMAAgAAAAMAAAAGAAIAAgAAAAMAAAAGAAEAAgAAAAMAAAAGAAAAAgAAAAMAAAAGAP//AgAAAAMAAAAGAP7/AgAAAAMAAAAFAAkAAgAAAAMAAAAFAAgAAgAAAAMAAAAFAAcAAgAAAAMAAAAFAAYAAgABAAIAAAAFAAUAAgACAAEAAAAFAAQAAgADAAAAAAAFAAMAAgAAAAMAAAAFAAIAAgAAAAMAAAAFAAEAAgAAAAMAAAAFAAAAAgAAAAMAAAAFAP//AgAAAAMAAAAFAP7/AgAAAAMAAAAEAAkAAgAAAAMAAAAEAAgAAgAAAAMAAAAEAAcAAgAAAAMAAAAEAAYAAgABAAIAAAAEAAUAAgACAAEAAAAEAAQAAgACAAAAAAAEAAMAAgADAAIAAAAEAAIAAgADAAIAAAAEAAEAAgAAAAAAAAAEAAAAAgAAAAMAAAAEAP//AgAAAAMAAAAEAP7/AgAAAAMAAAADAAkAAgAAAAMAAAADAAgAAgAAAAMAAAADAAcAAgAAAAMAAAADAAYAAgABAAIAAAADAAUAAgACAAEAAAADAAQAAgACAAEAAAADAAMAAgACAAEAAAADAAIAAgACAAEAAAADAAEAAgADAAAAAAADAAAAAgAAAAMAAAADAP//AgAAAAMAAAADAP7/AgAAAAMAAAACAAkAAgAAAAMAAAACAAgAAgAAAAMAAAACAAcAAgAAAAMAAAACAAYAAgAAAAIAAAACAAUAAgABAAAAAAACAAQAAgACAAIAAAACAAMAAgACAAEAAAACAAIAAgABAAEAAAACAAEAAgABAAMAAAACAAAAAgAAAAMAAAACAP//AgAAAAMAAAACAP7/AgAAAAMAAAABAAkAAgAAAAMAAAABAAgAAgAAAAMAAAABAAcAAgAAAAMAAAABAAYAAgAAAAMAAAABAAUAAgAAAAMAAAABAAQAAgABAAIAAAABAAMAAgACAAEAAAABAAIAAgADAAAAAAABAAEAAgAAAAMAAAABAAAAAgAAAAMAAAABAP//AgAAAAMAAAABAP7/AgAAAAMAAAAAAAkAAgAAAAMAAAAAAAgAAgAAAAMAAAAAAAcAAgAAAAMAAAAAAAYAAgAAAAMAAAAAAAUAAgAAAAMAAAAAAAQAAgABAAIAAAAAAAMAAgACAAEAAAAAAAIAAgADAAAAAAAAAAEAAgAAAAMAAAAAAAAAAgAAAAMAAAAAAP//AgAAAAMAAAAAAP7/AgAAAAMAAAD//wkAAgAAAAMAAAD//wgAAgAAAAMAAAD//wcAAgAAAAMAAAD//wYAAgAAAAMAAAD//wUAAgAAAAMAAAD//wQAAgABAAIAAAD//wMAAgACAAEAAAD//wIAAgADAAAAAAD//wEAAgAAAAMAAAD//wAAAgAAAAMAAAD/////AgAAAAMAAAD///7/AgAAAAMAAAD+/wkAAgAAAAMAAAD+/wgAAgAAAAMAAAD+/wcAAgAAAAMAAAD+/wYAAgAAAAMAAAD+/wUAAgAAAAMAAAD+/wQAAgAAAAIAAAD+/wMAAgABAAAAAAD+/wIAAgABAAMAAAD+/wEAAgAAAAMAAAD+/wAAAgAAAAMAAAD+////AgAAAAMAAAD+//7/AgAAAAMAAAA=")
tile_set = SubResource("TileSet_ge1l5") tile_set = SubResource("TileSet_ge1l5")
metadata/_edit_lock_ = true
[node name="Player" parent="." node_paths=PackedStringArray("tilemap") instance=ExtResource("1_ge1l5")] [node name="Player" parent="." node_paths=PackedStringArray("tilemap") instance=ExtResource("1_ge1l5")]
position = Vector2(128, 76) position = Vector2(110, 50)
tilemap = NodePath("../TileMapLayer") tilemap = NodePath("../TileMapLayer")

View File

@@ -0,0 +1,35 @@
[gd_scene load_steps=2 format=3 uid="uid://dgq21ggr3br2g"]
[ext_resource type="Script" uid="uid://bfgqkpn60hhwj" path="res://scripts/menus/main_menu.gd" id="1_xqga4"]
[node name="MainMenu" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_xqga4")
[node name="VBoxContainer" type="VBoxContainer" parent="."]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -20.0
offset_top = -20.0
offset_right = 20.0
offset_bottom = 20.0
grow_horizontal = 2
grow_vertical = 2
[node name="Button" type="Button" parent="VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 8
text = "Start"
[node name="MenuSlot" type="CanvasLayer" parent="."]
[connection signal="pressed" from="VBoxContainer/Button" to="." method="_on_start_button_pressed"]

View File

@@ -0,0 +1,12 @@
[gd_scene load_steps=2 format=3 uid="uid://cd657k2lc3gyc"]
[ext_resource type="Script" uid="uid://cs1ylnivyrbc2" path="res://scripts/menus/profile_creator.gd" id="1_4xjd5"]
[node name="ProfileCreator" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_4xjd5")

View File

@@ -56,7 +56,7 @@ animations = [{
}], }],
"loop": true, "loop": true,
"name": &"down", "name": &"down",
"speed": 5.0 "speed": 6.5
}, { }, {
"frames": [{ "frames": [{
"duration": 1.0, "duration": 1.0,
@@ -73,7 +73,7 @@ animations = [{
}], }],
"loop": true, "loop": true,
"name": &"side", "name": &"side",
"speed": 5.0 "speed": 6.0
}, { }, {
"frames": [{ "frames": [{
"duration": 1.0, "duration": 1.0,
@@ -90,7 +90,7 @@ animations = [{
}], }],
"loop": true, "loop": true,
"name": &"up", "name": &"up",
"speed": 5.0 "speed": 6.5
}] }]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_3vyb7"] [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_3vyb7"]
@@ -98,9 +98,11 @@ radius = 3.0
height = 14.0 height = 14.0
[node name="Player" type="CharacterBody2D"] [node name="Player" type="CharacterBody2D"]
motion_mode = 1
script = ExtResource("1_3vyb7") script = ExtResource("1_3vyb7")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
position = Vector2(-1, -1)
sprite_frames = SubResource("SpriteFrames_qhqgy") sprite_frames = SubResource("SpriteFrames_qhqgy")
animation = &"down" animation = &"down"

View File

@@ -1 +0,0 @@
extends Node

View File

@@ -0,0 +1,6 @@
extends Node
var player_free: bool = true
func transition() -> void:
pass

View File

@@ -0,0 +1,6 @@
extends Control
func _on_start_button_pressed() -> void:
pass # Replace with function body.

View File

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

View File

@@ -0,0 +1 @@
extends Control

View File

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

View File

@@ -1,6 +1,6 @@
extends CharacterBody2D extends CharacterBody2D
const SPEED: int = 500 const SPEED: int = 800
@onready var animated_sprite: AnimatedSprite2D = $AnimatedSprite2D @onready var animated_sprite: AnimatedSprite2D = $AnimatedSprite2D
@onready var cam: Camera2D = $Camera2D @onready var cam: Camera2D = $Camera2D
@@ -17,19 +17,20 @@ func _ready() -> void:
cam.limit_right = used_tilemap_rect.end.x * tilesize cam.limit_right = used_tilemap_rect.end.x * tilesize
cam.limit_bottom = used_tilemap_rect.end.y * tilesize cam.limit_bottom = used_tilemap_rect.end.y * tilesize
var x_margin: float = float(tilesize) / 4 var margin: float = float(tilesize) / 4
var y_margin: float = float(tilesize) / 2
position_limit_rect = Rect2( position_limit_rect = Rect2(
Vector2(cam.limit_left + x_margin, cam.limit_top + y_margin), Vector2(cam.limit_left + margin, cam.limit_top - margin),
Vector2( Vector2(
(cam.limit_right - x_margin) - (cam.limit_left + x_margin), (cam.limit_right - margin) - (cam.limit_left + margin),
(cam.limit_bottom - y_margin) - (cam.limit_top + y_margin) (cam.limit_bottom - margin / 2) - (cam.limit_top + margin / 2)
) )
) )
func _physics_process(delta: float) -> void: func _physics_process(delta: float) -> void:
velocity = Input.get_vector("move_left","move_right","move_up","move_down").normalized() * delta * SPEED * 3 if EventManager.player_free:
velocity = Input.get_vector("move_left","move_right","move_up","move_down").normalized() * delta * SPEED * 3
move_and_slide() move_and_slide()
position = position.clamp(position_limit_rect.position, position_limit_rect.end) position = position.clamp(position_limit_rect.position, position_limit_rect.end)
@@ -45,4 +46,3 @@ func _physics_process(delta: float) -> void:
animated_sprite.animation = "down" animated_sprite.animation = "down"
else: else:
animated_sprite.stop() animated_sprite.stop()

View File

@@ -0,0 +1,6 @@
class_name Profile
extends Resource
@export var your_name: String = "Joel"
@export var villain_friend_name: String = "Josh"
@export var stupid_friend_name: String = "Kevin"

View File

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

51
shaders/pixelate.gdshader Normal file
View File

@@ -0,0 +1,51 @@
shader_type canvas_item;
/**
0 = Texture: For use with Sprite2Ds, TextureRects, and Meshes
1 = Screen: For use with ColorRect
*/
uniform int texture_mode : hint_range(0,1) = 1;
// This file relies on a quantize shader include file, listed further down.
// The paths must match your file's location.
#include "res://shaders/quantize.gdshaderinc"
uniform sampler2D SCREEN_TEXTURE : hint_screen_texture, repeat_disable, filter_nearest;
void vertex() {
float zoom = length(CANVAS_MATRIX[1].xyz);
v_quant_size = getQuantizeSize(zoom);
v_model_matrix = MODEL_MATRIX;
v_vertex = VERTEX;
if (texture_mode == 0) {
v_alt_matrix = inverse(MODEL_MATRIX);
v_texture_data.xy = 1. / TEXTURE_PIXEL_SIZE;
// Is texture flipped
v_texture_data.zw = max(-sign((UV - 0.5) * VERTEX), 0.);
} else {
v_alt_matrix = SCREEN_MATRIX * CANVAS_MATRIX;
if (snap_to_world) {
v_alt_matrix = inverse(v_alt_matrix);
}
vec2 local_origin = (MODEL_MATRIX * vec4(0.0, 0.0, 0, 1)).xy;
vec2 clip = (v_alt_matrix * vec4(local_origin, 0,1)).xy;
vec2 screen_origin_uv = clip * 0.5 + 0.5;
vec2 screen_pixel_size = 1. / vec2(textureSize(SCREEN_TEXTURE, 0));
vec2 q = screen_pixel_size * float(v_quant_size) * zoom;
v_texture_data.xy = screen_origin_uv;
v_texture_data.zw = q;
}
}
void fragment() {
if (texture_mode == 0) {
vec4 uvResult = getQuantizeTextureUV(UV);
COLOR = texture(TEXTURE, uvResult.xy);
} else {
vec4 uvResult = getQuantizeScreenUV(SCREEN_UV);
COLOR = texture(SCREEN_TEXTURE, uvResult.xy);
}
}

View File

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

View File

@@ -0,0 +1,104 @@
group_uniforms Quantization;
/**Pixel resolution scale (0 is bypass)*/
uniform int quantize_size : hint_range(0,100) = 1;
/**Pixels are snapped based on world coordinates vs local coordinates.*/
uniform bool snap_to_world;
/**Auto-scales the quantize size when zoom is < 1, preventing subpixel artifacts*/
uniform bool limit_subpixels = true;
group_uniforms;
varying mat4 v_model_matrix;
varying mat4 v_alt_matrix;
varying vec2 v_vertex;
varying flat int v_quant_size;
varying flat vec4 v_texture_data;
const float EPSILON = 0.0001;
int getQuantizeSize(float in_zoom) {
int q_size = quantize_size;
if (limit_subpixels && in_zoom < 1.) {
q_size = int(round(float(quantize_size) * (1. / in_zoom)));
}
return q_size;
}
vec2 _snap(vec2 in_uv, float in_q_size) {
return (floor(in_uv / in_q_size) + 0.5) * in_q_size;
}
vec4 getQuantizeScreenUV(vec2 in_screen_uv) {
vec4 result;
if (v_quant_size == 0) {
result.xy = in_screen_uv;
result.zw = (v_model_matrix * vec4(v_vertex, 0, 1)).xy;
return result;
}
if (snap_to_world) {
vec2 uv = (v_model_matrix * vec4(v_vertex, 0, 1)).xy;
result.zw = uv + EPSILON;
uv = _snap(uv, float(v_quant_size));
uv = (v_alt_matrix * vec4(uv, 0,1)).xy;
uv = uv * 0.5 + 0.5;
result.xy = uv;
return result;
} else {
vec2 origin_uv = v_texture_data.xy;
vec2 quant_pixel_size = v_texture_data.zw;
vec2 uv = in_screen_uv - origin_uv;
uv = (floor(uv / quant_pixel_size) + 0.5) * quant_pixel_size;
uv = uv + origin_uv;
vec2 clipXY = uv * 2.0 - 1.;
vec2 world_pos = (v_alt_matrix * vec4(clipXY, 0.0, 1.0)).xy;
result.zw = world_pos + EPSILON;
result.xy = uv;
return result;
}
}
vec4 getQuantizeTextureUV(vec2 in_uv) {
vec4 result;
vec2 texture_size = v_texture_data.xy;
vec2 flip = v_texture_data.zw;
if (v_quant_size == 0) {
result.xy = in_uv;
result.zw = (v_model_matrix * vec4(in_uv * texture_size, 0, 1)).xy;
return result;
}
vec2 offset;
float q = float(v_quant_size);
vec2 uv = in_uv;
uv = mix(uv, 1.0 - uv, flip);
if (snap_to_world) {
vec2 inv_texture_size = 1. / texture_size;
offset = v_vertex * inv_texture_size;
offset = uv - offset;
uv -= offset;
uv *= texture_size;
uv = (v_model_matrix * vec4(uv, 0, 1)).xy;
result.zw = uv;
uv = _snap(uv, q);
uv = (v_alt_matrix * vec4(uv, 0, 1)).xy;
uv *= inv_texture_size;
uv = offset + uv;
} else {
uv *= texture_size;
result.zw = uv;
uv = _snap(uv, q);
uv /= texture_size;
}
uv = mix(uv, 1.0 - uv, flip);
result.xy = uv + EPSILON;
return result;
}

View File

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