Compare commits

..

4 commits

Author SHA1 Message Date
bd6ced2a16 finish room enter transition 2025-11-24 20:00:39 -03:00
4dd9b31c27 add player point light settings to room config 2025-11-24 18:52:20 -03:00
0bed3833f8 add pointlight to player 2025-11-24 18:51:54 -03:00
68032cbacf add palettes from lospec 2025-11-24 18:51:35 -03:00
20 changed files with 336 additions and 11 deletions

BIN
assets/palettes/aap-64.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 305 B

View file

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bl5h40nfhnh3t"
path="res://.godot/imported/aap-64.png-158960362713f99b41beab427d0e61e6.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/palettes/aap-64.png"
dest_files=["res://.godot/imported/aap-64.png-158960362713f99b41beab427d0e61e6.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 B

View file

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://crfomkdkr1lmh"
path="res://.godot/imported/apollo-46.png-c75b04cdb172eea211b3c0c20122e4d7.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/palettes/apollo-46.png"
dest_files=["res://.godot/imported/apollo-46.png-c75b04cdb172eea211b3c0c20122e4d7.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 B

View file

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b4l5eek563pal"
path="res://.godot/imported/dubble-gums-16.png-42b1298821f49d80424f87ca336112bd.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/palettes/dubble-gums-16.png"
dest_files=["res://.godot/imported/dubble-gums-16.png-42b1298821f49d80424f87ca336112bd.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

Before

Width:  |  Height:  |  Size: 464 B

After

Width:  |  Height:  |  Size: 464 B

View file

@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://h5523ru86vrd" uid="uid://h5523ru86vrd"
path="res://.godot/imported/forgotten.png-16ceeb0132426814a27475a2e3efca51.ctex" path="res://.godot/imported/forgotten-120.png-c0c8c092fbe3d1531b8c9bb91f54b2ef.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://assets/palettes/forgotten.png" source_file="res://assets/palettes/forgotten-120.png"
dest_files=["res://.godot/imported/forgotten.png-16ceeb0132426814a27475a2e3efca51.ctex"] dest_files=["res://.godot/imported/forgotten-120.png-c0c8c092fbe3d1531b8c9bb91f54b2ef.ctex"]
[params] [params]

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 B

View file

@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bos6f0a87dyno"
path="res://.godot/imported/lospec500-42.png-e3ea3f9703cd43980f7e0a8004b822c9.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/palettes/lospec500-42.png"
dest_files=["res://.godot/imported/lospec500-42.png-e3ea3f9703cd43980f7e0a8004b822c9.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

Binary file not shown.

View file

@ -0,0 +1,20 @@
[remap]
importer="aseprite_wizard.plugin.static-texture"
type="PortableCompressedTexture2D"
uid="uid://5mm8pi5i0yal"
path="res://.godot/imported/pointlight_texture.aseprite-ac5a4cb751aff2ed94143cd2b9f18e95.res"
[deps]
source_file="res://scenes/player/assets/pointlight_texture.aseprite"
dest_files=["res://.godot/imported/pointlight_texture.aseprite-ac5a4cb751aff2ed94143cd2b9f18e95.res"]
[params]
layer/exclude_layers_pattern=""
layer/only_visible_layers=false
first_frame_only=true
sheet/sheet_type="packed"
sheet/sheet_columns=12
sheet/scale=1

View file

@ -1,12 +1,16 @@
class_name Player extends CharacterBody2D class_name Player extends CharacterBody2D
signal point_light_toggled(enabled: bool, energy: float)
const DEADZONE = 0.1 const DEADZONE = 0.1
@export var max_speed: float = 300.0 @export var max_speed: float = 300.0
@onready var sprite: AnimatedSprite2D = $AnimatedSprite2D @onready var sprite: AnimatedSprite2D = $AnimatedSprite2D
@onready var state_machine: StateMachine = $PlayerStateMachine @onready var state_machine: StateMachine = $PlayerStateMachine
@onready var point_light: PointLight2D = $PointLight2D
@onready var animation_player: AnimationPlayer = $AnimationPlayer
var h_press_tick: int = 0 ## last time horizontal axis was pressed var h_press_tick: int = 0 ## last time horizontal axis was pressed
var v_press_tick: int = 0 ## last time vertical axis was pressed var v_press_tick: int = 0 ## last time vertical axis was pressed
@ -75,3 +79,12 @@ func _on_loop_toggled(enabled: bool, loop_size: Rect2i) -> void:
wrapping = true wrapping = true
else: wrapping = false else: wrapping = false
func enable_point_light(enabled: bool, energy: float = 0) -> void:
point_light.enabled = enabled
point_light.energy = energy
if enabled: animation_player.play("default")
else: animation_player.pause()
point_light_toggled.emit(enabled, energy)

View file

@ -1,10 +1,48 @@
[gd_scene load_steps=7 format=3 uid="uid://cqm5besqgsb7x"] [gd_scene load_steps=11 format=3 uid="uid://cqm5besqgsb7x"]
[ext_resource type="Script" uid="uid://dpsocqnk0e6le" path="res://scenes/player/player.gd" id="1_dovo2"] [ext_resource type="Script" uid="uid://dpsocqnk0e6le" path="res://scenes/player/player.gd" id="1_dovo2"]
[ext_resource type="SpriteFrames" uid="uid://6v5nyv2wo47g" path="res://scenes/player/assets/yukotsuki.aseprite" id="2_dovo2"] [ext_resource type="SpriteFrames" uid="uid://6v5nyv2wo47g" path="res://scenes/player/assets/yukotsuki.aseprite" id="2_dovo2"]
[ext_resource type="Script" uid="uid://diths5s8vd7lr" path="res://classes/state_machine/state_machine.gd" id="2_lvxji"] [ext_resource type="Script" uid="uid://diths5s8vd7lr" path="res://classes/state_machine/state_machine.gd" id="2_lvxji"]
[ext_resource type="Script" uid="uid://cl6snimpmxcvu" path="res://scenes/player/states/player_idle.gd" id="3_p47bc"] [ext_resource type="Script" uid="uid://cl6snimpmxcvu" path="res://scenes/player/states/player_idle.gd" id="3_p47bc"]
[ext_resource type="Script" uid="uid://bg5fu1ildsdnq" path="res://scenes/player/states/player_walking.gd" id="4_p47bc"] [ext_resource type="Script" uid="uid://bg5fu1ildsdnq" path="res://scenes/player/states/player_walking.gd" id="4_p47bc"]
[ext_resource type="Texture2D" uid="uid://5mm8pi5i0yal" path="res://scenes/player/assets/pointlight_texture.aseprite" id="5_75vfm"]
[sub_resource type="Animation" id="Animation_75vfm"]
resource_name = "default"
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("PointLight2D:offset:y")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.5),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [-14.0, -15.0]
}
[sub_resource type="Animation" id="Animation_0owmy"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("PointLight2D:offset:y")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [0.0]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_qek5x"]
_data = {
&"RESET": SubResource("Animation_0owmy"),
&"default": SubResource("Animation_75vfm")
}
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_gmlin"] [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_gmlin"]
radius = 6.0 radius = 6.0
@ -30,6 +68,16 @@ metadata/_custom_type_script = "uid://bebe1y51hwns8"
script = ExtResource("4_p47bc") script = ExtResource("4_p47bc")
metadata/_custom_type_script = "uid://bebe1y51hwns8" metadata/_custom_type_script = "uid://bebe1y51hwns8"
[node name="PointLight2D" type="PointLight2D" parent="."]
enabled = false
energy = 0.0
texture = ExtResource("5_75vfm")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_qek5x")
}
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
position = Vector2(0, -16) position = Vector2(0, -16)
sprite_frames = ExtResource("2_dovo2") sprite_frames = ExtResource("2_dovo2")

View file

@ -5,6 +5,8 @@ class_name Room extends Node2D
@onready var camera: RoomCamera = $RoomCamera @onready var camera: RoomCamera = $RoomCamera
@onready var director: StateMachine = $RoomDirector @onready var director: StateMachine = $RoomDirector
@onready var palette_shader: ColorRect = $CanvasLayer/PaletteShader
@onready var canvas_modulate: CanvasModulate = $CanvasModulate
# TODO: better alternative to preloading as i add functionality? # TODO: better alternative to preloading as i add functionality?
# https://theduriel.github.io/Godot/Do-not-use---Preload # https://theduriel.github.io/Godot/Do-not-use---Preload

View file

@ -8,7 +8,7 @@
[ext_resource type="Script" uid="uid://drnrd5xlt8imm" path="res://scenes/room/states/room_exiting.gd" id="6_7jj40"] [ext_resource type="Script" uid="uid://drnrd5xlt8imm" path="res://scenes/room/states/room_exiting.gd" id="6_7jj40"]
[ext_resource type="Script" uid="uid://ceevyto3vbq7c" path="res://scenes/room/states/room_paused.gd" id="6_gui0a"] [ext_resource type="Script" uid="uid://ceevyto3vbq7c" path="res://scenes/room/states/room_paused.gd" id="6_gui0a"]
[ext_resource type="Shader" uid="uid://bxvmsjxx0tj21" path="res://shaders/palette.gdshader" id="8_dv301"] [ext_resource type="Shader" uid="uid://bxvmsjxx0tj21" path="res://shaders/palette.gdshader" id="8_dv301"]
[ext_resource type="Texture2D" uid="uid://h5523ru86vrd" path="res://assets/palettes/forgotten.png" id="9_68b7a"] [ext_resource type="Texture2D" uid="uid://h5523ru86vrd" path="res://assets/palettes/forgotten-120.png" id="9_68b7a"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ip1yl"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_ip1yl"]
shader = ExtResource("8_dv301") shader = ExtResource("8_dv301")
@ -21,7 +21,7 @@ script = ExtResource("1_8xru0")
[node name="CanvasLayer" type="CanvasLayer" parent="."] [node name="CanvasLayer" type="CanvasLayer" parent="."]
[node name="ColorRect" type="ColorRect" parent="CanvasLayer"] [node name="PaletteShader" type="ColorRect" parent="CanvasLayer"]
material = SubResource("ShaderMaterial_ip1yl") material = SubResource("ShaderMaterial_ip1yl")
anchors_preset = 15 anchors_preset = 15
anchor_right = 1.0 anchor_right = 1.0
@ -29,6 +29,9 @@ anchor_bottom = 1.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
[node name="CanvasModulate" type="CanvasModulate" parent="."]
visible = false
[node name="RoomDirector" type="Node" parent="." node_paths=PackedStringArray("initial_state")] [node name="RoomDirector" type="Node" parent="." node_paths=PackedStringArray("initial_state")]
process_mode = 3 process_mode = 3
script = ExtResource("4_vaubn") script = ExtResource("4_vaubn")

View file

@ -4,6 +4,10 @@ class_name RoomConfig extends Resource
## The initial player spawn point. ## The initial player spawn point.
## Only used if one wasn't provided to the room beforehand. ## Only used if one wasn't provided to the room beforehand.
@export var initial_spawn: Vector2i = Vector2i.ZERO @export var initial_spawn: Vector2i = Vector2i.ZERO
## Enables player's point light.
@export var enable_point_light: bool = false
## Intensity of player's point light.
@export_range(0,16,0.4) var point_light_energy: float = 0
@export_group('Camera') @export_group('Camera')
## Whether the camera will (initially) follow the player ot not. ## Whether the camera will (initially) follow the player ot not.
@ -11,8 +15,23 @@ class_name RoomConfig extends Resource
## Initial position of the camera. ## Initial position of the camera.
@export var camera_position: Vector2i = Vector2i.ZERO @export var camera_position: Vector2i = Vector2i.ZERO
@export_group('Lighting')
## Enables the default canvas modulate.
@export var enable_canvas_modulate: bool = false
## Color of the canvas modulate.
@export var modulate_color: Color
@export_group('Room Loop') @export_group('Room Loop')
## Whether the room loops itself or not. ## Whether the room loops itself or not.
@export var loopable: bool = false @export var loopable: bool = false
## Section of the room that will loop itself. ## Section of the room that will loop itself.
@export var loop_size: Rect2i = Rect2i(Vector2i.ZERO, Vector2i.ZERO) @export var loop_size: Rect2i = Rect2i(Vector2i.ZERO, Vector2i.ZERO)
@export_group('Transitions')
@export_subgroup('In')
## Enables transition when room starts.
@export var enable_transition_in: bool = true
## What transition type plays when starting the room.
@export var transition_in_type: Tween.TransitionType = Tween.TransitionType.TRANS_CUBIC
## How long the transition lasts.
@export var transition_in_duration: float = 1.0

View file

@ -1,14 +1,70 @@
extends RoomState extends RoomState
var trans_tween: Tween
var player_light_tween: Tween
func _enter(_previous_state_path: String, _data: Dictionary = {}) -> void: func _enter(_previous_state_path: String, _data: Dictionary = {}) -> void:
print("entering room") print("entering room")
room.player = _instantiate_player() room.player = _instantiate_player()
assert(room.player != null, "player is null") assert(room.player != null, "player is null")
room.camera.global_position = room.config.camera_position room.camera.global_position = room.config.camera_position
room.player.enable_point_light(true, 0.4)
room.player.point_light.texture_scale = 0
room.canvas_modulate.visible = true
room.canvas_modulate.color = Color.BLACK
var timer: Timer = Timer.new()
room.add_child(timer)
timer.one_shot = true
timer.start(room.config.transition_in_duration)
await timer.timeout
timer.queue_free()
if player_light_tween:
player_light_tween.kill()
player_light_tween = create_tween()
player_light_tween.tween_property(room.player.point_light, "texture_scale", 1.0, room.config.transition_in_duration).set_trans(Tween.TRANS_BOUNCE).set_ease(Tween.EASE_OUT)
await player_light_tween.finished
if player_light_tween:
player_light_tween.kill()
player_light_tween = create_tween()
if room.config.enable_point_light:
player_light_tween.tween_property(room.player.point_light, "energy", room.config.point_light_energy, room.config.transition_in_duration).set_trans(room.config.transition_in_type).set_ease(Tween.EASE_OUT)
player_light_tween.tween_callback(func() -> void:
player_light_tween = null
)
else:
player_light_tween.tween_property(room.player.point_light, "energy", 0, room.config.transition_in_duration).set_trans(room.config.transition_in_type).set_ease(Tween.EASE_OUT)
player_light_tween.tween_callback(func() -> void:
room.player.point_light.enabled = false
player_light_tween = null
)
if trans_tween:
trans_tween.kill()
assert(trans_tween == null, "transgender tween wasnt nulled")
trans_tween = create_tween()
if room.config.enable_canvas_modulate:
trans_tween.tween_property(room.canvas_modulate, "color", room.config.modulate_color, room.config.transition_in_duration).set_trans(room.config.transition_in_type).set_ease(Tween.EASE_OUT)
else:
trans_tween.tween_property(room.canvas_modulate, "color", Color.WHITE, room.config.transition_in_duration).set_trans(room.config.transition_in_type).set_ease(Tween.EASE_OUT)
await trans_tween.finished
finished.emit(PLAYING) finished.emit(PLAYING)
return
func _instantiate_player() -> Player: func _instantiate_player() -> Player:

View file

@ -8,17 +8,17 @@
[node name="Yukotsuki\'s Room" instance=ExtResource("1_1k8b4")] [node name="Yukotsuki\'s Room" instance=ExtResource("1_1k8b4")]
config = ExtResource("2_vqekq") config = ExtResource("2_vqekq")
[node name="FloorLayer" type="TileMapLayer" parent="." index="2"] [node name="FloorLayer" type="TileMapLayer" parent="." index="3"]
tile_map_data = PackedByteArray("AAAPAA4AAQALAAMAAAAPAA0AAQALAAIAAAAPAAwAAQALAA4AAAAPAAsAAQALAAYAAAAPAAoAAQALAAQAAAAOAA4AAQAJAA8AAAAOAA0AAQAJAA4AAAAOAAwAAQAJAAIAAAAOAAsAAQAJAAoAAAAOAAoAAQAKAAQAAAANAA4AAQAJAA8AAAANAA0AAQAJAA4AAAANAAwAAQAJAAYAAAANAAsAAQAJAAYAAAANAAoAAQAKAAwAAAAMAA4AAQAJAAMAAAAMAA0AAQAJAAoAAAAMAAwAAQAJAAYAAAAMAAsAAQAJAA4AAAAMAAoAAQAKAAQAAAALAA4AAQAJAAsAAAALAA0AAQAJAAYAAAALAAwAAQAJAAoAAAALAAsAAQAJAAoAAAALAAoAAQAKAAAAAAAKAA4AAQAJAA8AAAAKAA0AAQAJAAYAAAAKAAwAAQAJAAIAAAAKAAsAAQAJAAIAAAAKAAoAAQAKAAAAAAAJAA4AAQAJAAMAAAAJAA0AAQAJAAYAAAAJAAwAAQAJAAIAAAAJAAsAAQAJAAoAAAAJAAoAAQAKAAwAAAAIAA4AAQAJAAcAAAAIAA0AAQAJAA4AAAAIAAwAAQAJAAIAAAAIAAsAAQAJAAoAAAAIAAoAAQAKAAAAAAAHAA4AAQAJAA8AAAAHAA0AAQAJAAoAAAAHAAwAAQAJAAYAAAAHAAsAAQAJAAoAAAAHAAoAAQAKAAgAAAAGAA4AAQAJAAsAAAAGAA0AAQAJAAYAAAAGAAwAAQAJAAYAAAAGAAsAAQAJAAoAAAAGAAoAAQAKAAgAAAAFAA4AAQAJAA8AAAAFAA0AAQAJAAoAAAAFAAwAAQAJAAoAAAAFAAsAAQAJAAYAAAAFAAoAAQAKAAQAAAAEAA4AAQAIAAcAAAAEAA0AAQAIAAUAAAAEAAwAAQAIAAEAAAAEAAsAAQAIAAUAAAAEAAoAAQAIAAQAAAA=") tile_map_data = PackedByteArray("AAAPAA4AAQALAAMAAAAPAA0AAQALAAIAAAAPAAwAAQALAA4AAAAPAAsAAQALAAYAAAAPAAoAAQALAAQAAAAOAA4AAQAJAA8AAAAOAA0AAQAJAA4AAAAOAAwAAQAJAAIAAAAOAAsAAQAJAAoAAAAOAAoAAQAKAAQAAAANAA4AAQAJAA8AAAANAA0AAQAJAA4AAAANAAwAAQAJAAYAAAANAAsAAQAJAAYAAAANAAoAAQAKAAwAAAAMAA4AAQAJAAMAAAAMAA0AAQAJAAoAAAAMAAwAAQAJAAYAAAAMAAsAAQAJAA4AAAAMAAoAAQAKAAQAAAALAA4AAQAJAAsAAAALAA0AAQAJAAYAAAALAAwAAQAJAAoAAAALAAsAAQAJAAoAAAALAAoAAQAKAAAAAAAKAA4AAQAJAA8AAAAKAA0AAQAJAAYAAAAKAAwAAQAJAAIAAAAKAAsAAQAJAAIAAAAKAAoAAQAKAAAAAAAJAA4AAQAJAAMAAAAJAA0AAQAJAAYAAAAJAAwAAQAJAAIAAAAJAAsAAQAJAAoAAAAJAAoAAQAKAAwAAAAIAA4AAQAJAAcAAAAIAA0AAQAJAA4AAAAIAAwAAQAJAAIAAAAIAAsAAQAJAAoAAAAIAAoAAQAKAAAAAAAHAA4AAQAJAA8AAAAHAA0AAQAJAAoAAAAHAAwAAQAJAAYAAAAHAAsAAQAJAAoAAAAHAAoAAQAKAAgAAAAGAA4AAQAJAAsAAAAGAA0AAQAJAAYAAAAGAAwAAQAJAAYAAAAGAAsAAQAJAAoAAAAGAAoAAQAKAAgAAAAFAA4AAQAJAA8AAAAFAA0AAQAJAAoAAAAFAAwAAQAJAAoAAAAFAAsAAQAJAAYAAAAFAAoAAQAKAAQAAAAEAA4AAQAIAAcAAAAEAA0AAQAIAAUAAAAEAAwAAQAIAAEAAAAEAAsAAQAIAAUAAAAEAAoAAQAIAAQAAAA=")
tile_set = ExtResource("3_od2gb") tile_set = ExtResource("3_od2gb")
[node name="CarpetLayer" type="TileMapLayer" parent="." index="3"] [node name="CarpetLayer" type="TileMapLayer" parent="." index="4"]
tile_map_data = PackedByteArray("AAAIAAsAAwAIAAAAAAAJAAsAAwAFAAEAAAAJAAoAAwAIAAAAAAAKAAoAAwAKAAAAAAALAAoAAwAKAAAAAAAMAAoAAwAKAAAAAAANAAoAAwALAAAAAAANAAsAAwAGAAEAAAAOAAsAAwALAAAAAAAOAAwAAwALAAMAAAANAAwAAwAGAAIAAAANAA0AAwALAAMAAAAMAA0AAwAJAAMAAAALAA0AAwAJAAMAAAAKAA0AAwAJAAMAAAAJAA0AAwAJAAMAAAAIAA0AAwAIAAMAAAAIAAwAAwAIAAEAAAAMAAsAAwAJAAIAAAAMAAwAAwAJAAIAAAALAAwAAwAJAAIAAAAKAAwAAwAJAAIAAAAJAAwAAwAJAAIAAAAKAAsAAwAJAAIAAAALAAsAAwAJAAIAAAA=") tile_map_data = PackedByteArray("AAAIAAsAAwAIAAAAAAAJAAsAAwAFAAEAAAAJAAoAAwAIAAAAAAAKAAoAAwAKAAAAAAALAAoAAwAKAAAAAAAMAAoAAwAKAAAAAAANAAoAAwALAAAAAAANAAsAAwAGAAEAAAAOAAsAAwALAAAAAAAOAAwAAwALAAMAAAANAAwAAwAGAAIAAAANAA0AAwALAAMAAAAMAA0AAwAJAAMAAAALAA0AAwAJAAMAAAAKAA0AAwAJAAMAAAAJAA0AAwAJAAMAAAAIAA0AAwAIAAMAAAAIAAwAAwAIAAEAAAAMAAsAAwAJAAIAAAAMAAwAAwAJAAIAAAALAAwAAwAJAAIAAAAKAAwAAwAJAAIAAAAJAAwAAwAJAAIAAAAKAAsAAwAJAAIAAAALAAsAAwAJAAIAAAA=")
tile_set = ExtResource("4_od2gb") tile_set = ExtResource("4_od2gb")
[node name="WallLayer" type="TileMapLayer" parent="." index="4"] [node name="WallLayer" type="TileMapLayer" parent="." index="5"]
tile_map_data = PackedByteArray("AAADAA4AAAAKAAkAAAADAA0AAAAKAAkAAAADAAwAAAAKAAkAAAADAAsAAAAKAAkAAAADAAoAAAAKAAkAAAADAAkAAAAKAAkAAAAEAAkAAAAKAAkAAAAFAAkAAAAKAAkAAAAGAAkAAAAKAAkAAAAHAAkAAAAKAAkAAAAIAAkAAAAKAAkAAAAJAAkAAAAKAAkAAAAKAAkAAAAKAAkAAAALAAkAAAAKAAkAAAAMAAkAAAAKAAkAAAANAAkAAAAKAAkAAAAOAAkAAAAKAAkAAAAPAAkAAAAKAAkAAAAQAAkAAAAKAAkAAAAQAAoAAAAKAAkAAAAQAAsAAAAKAAkAAAAQAAwAAAAKAAkAAAAQAA0AAAAKAAkAAAAQAA4AAAAKAAkAAAADAA8AAAAKAAkAAAAEAA8AAAAKAAkAAAAFAA8AAAAKAAkAAAAGAA8AAAAKAAkAAAAHAA8AAAAKAAkAAAAIAA8AAAAKAAkAAAAJAA8AAAAKAAkAAAAKAA8AAAAKAAkAAAALAA8AAAAKAAkAAAAMAA8AAAAKAAkAAAANAA8AAAAKAAkAAAAOAA8AAAAKAAkAAAAPAA8AAAAKAAkAAAAQAA8AAAAKAAkAAAA=") tile_map_data = PackedByteArray("AAADAA4AAAAKAAkAAAADAA0AAAAKAAkAAAADAAwAAAAKAAkAAAADAAsAAAAKAAkAAAADAAoAAAAKAAkAAAADAAkAAAAKAAkAAAAEAAkAAAAKAAkAAAAFAAkAAAAKAAkAAAAGAAkAAAAKAAkAAAAHAAkAAAAKAAkAAAAIAAkAAAAKAAkAAAAJAAkAAAAKAAkAAAAKAAkAAAAKAAkAAAALAAkAAAAKAAkAAAAMAAkAAAAKAAkAAAANAAkAAAAKAAkAAAAOAAkAAAAKAAkAAAAPAAkAAAAKAAkAAAAQAAkAAAAKAAkAAAAQAAoAAAAKAAkAAAAQAAsAAAAKAAkAAAAQAAwAAAAKAAkAAAAQAA0AAAAKAAkAAAAQAA4AAAAKAAkAAAADAA8AAAAKAAkAAAAEAA8AAAAKAAkAAAAFAA8AAAAKAAkAAAAGAA8AAAAKAAkAAAAHAA8AAAAKAAkAAAAIAA8AAAAKAAkAAAAJAA8AAAAKAAkAAAAKAA8AAAAKAAkAAAALAA8AAAAKAAkAAAAMAA8AAAAKAAkAAAANAA8AAAAKAAkAAAAOAA8AAAAKAAkAAAAPAA8AAAAKAAkAAAAQAA8AAAAKAAkAAAA=")
tile_set = ExtResource("4_od2gb") tile_set = ExtResource("4_od2gb")
[node name="CurtainLayer" type="TileMapLayer" parent="." index="5"] [node name="CurtainLayer" type="TileMapLayer" parent="." index="6"]
tile_set = ExtResource("3_od2gb") tile_set = ExtResource("3_od2gb")

View file

@ -5,6 +5,10 @@
[resource] [resource]
script = ExtResource("1_vlksg") script = ExtResource("1_vlksg")
initial_spawn = Vector2i(85, 225) initial_spawn = Vector2i(85, 225)
enable_point_light = true
point_light_energy = 0.4
follow_player = false follow_player = false
camera_position = Vector2i(160, 120) camera_position = Vector2i(160, 120)
enable_canvas_modulate = true
modulate_color = Color(0.35156274, 0.35156295, 0.35156283, 1)
metadata/_custom_type_script = "uid://bamoq5wi0lkdy" metadata/_custom_type_script = "uid://bamoq5wi0lkdy"