Compare commits
4 commits
b3db7f1ba6
...
bd6ced2a16
| Author | SHA1 | Date | |
|---|---|---|---|
| bd6ced2a16 | |||
| 4dd9b31c27 | |||
| 0bed3833f8 | |||
| 68032cbacf |
20 changed files with 336 additions and 11 deletions
BIN
assets/palettes/aap-64.png
Normal file
BIN
assets/palettes/aap-64.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 305 B |
40
assets/palettes/aap-64.png.import
Normal file
40
assets/palettes/aap-64.png.import
Normal 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
|
||||||
BIN
assets/palettes/apollo-46.png
Normal file
BIN
assets/palettes/apollo-46.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 229 B |
40
assets/palettes/apollo-46.png.import
Normal file
40
assets/palettes/apollo-46.png.import
Normal 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
|
||||||
BIN
assets/palettes/dubble-gums-16.png
Normal file
BIN
assets/palettes/dubble-gums-16.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 133 B |
40
assets/palettes/dubble-gums-16.png.import
Normal file
40
assets/palettes/dubble-gums-16.png.import
Normal 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
|
||||||
|
Before Width: | Height: | Size: 464 B After Width: | Height: | Size: 464 B |
|
|
@ -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]
|
||||||
|
|
||||||
BIN
assets/palettes/lospec500-42.png
Normal file
BIN
assets/palettes/lospec500-42.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 230 B |
40
assets/palettes/lospec500-42.png.import
Normal file
40
assets/palettes/lospec500-42.png.import
Normal 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
|
||||||
BIN
scenes/player/assets/pointlight_texture.aseprite
Normal file
BIN
scenes/player/assets/pointlight_texture.aseprite
Normal file
Binary file not shown.
20
scenes/player/assets/pointlight_texture.aseprite.import
Normal file
20
scenes/player/assets/pointlight_texture.aseprite.import
Normal 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
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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")
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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")
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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:
|
||||||
|
|
|
||||||
|
|
@ -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")
|
||||||
|
|
|
||||||
|
|
@ -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"
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue