diff --git a/scenes/player/assets/pointlight_texture.aseprite b/scenes/player/assets/pointlight_texture.aseprite new file mode 100644 index 0000000..3cd5635 Binary files /dev/null and b/scenes/player/assets/pointlight_texture.aseprite differ diff --git a/scenes/player/assets/pointlight_texture.aseprite.import b/scenes/player/assets/pointlight_texture.aseprite.import new file mode 100644 index 0000000..b8f2126 --- /dev/null +++ b/scenes/player/assets/pointlight_texture.aseprite.import @@ -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 diff --git a/scenes/player/player.gd b/scenes/player/player.gd index c564fc0..be8a9cc 100644 --- a/scenes/player/player.gd +++ b/scenes/player/player.gd @@ -1,12 +1,16 @@ class_name Player extends CharacterBody2D +signal point_light_toggled(enabled: bool, energy: float) + const DEADZONE = 0.1 @export var max_speed: float = 300.0 @onready var sprite: AnimatedSprite2D = $AnimatedSprite2D @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 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 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) diff --git a/scenes/player/player.tscn b/scenes/player/player.tscn index e2d13f7..27a88b4 100644 --- a/scenes/player/player.tscn +++ b/scenes/player/player.tscn @@ -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="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://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="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"] radius = 6.0 @@ -30,6 +68,16 @@ metadata/_custom_type_script = "uid://bebe1y51hwns8" script = ExtResource("4_p47bc") 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="."] position = Vector2(0, -16) sprite_frames = ExtResource("2_dovo2")