Openable doors

This commit is contained in:
Marco 2025-01-20 12:17:27 +01:00
commit 447a43eda2
14 changed files with 319 additions and 32 deletions

View file

@ -4,18 +4,8 @@ using System.Diagnostics;
public partial class Activable : Area2D
{
// Called when the node enters the scene tree for the first time.
public override void _Ready()
public virtual void Activate()
{
}
// Called every frame. 'delta' is the elapsed time since the previous frame.
public override void _Process(double delta)
{
}
public void Activate()
{
Debug.WriteLine("Activated");
//Debug.WriteLine("Activated");
}
}

View file

@ -1,7 +1,7 @@
[gd_scene load_steps=4 format=3 uid="uid://crph24e6e0v0q"]
[ext_resource type="Texture2D" uid="uid://dwpocd22r4pas" path="res://Sprites/Control_Pad.png" id="1_bgeyn"]
[ext_resource type="Script" path="res://Scenes/Interactable.cs" id="1_g3j01"]
[ext_resource type="Texture2D" uid="uid://d24g1qb40t72l" path="res://Sprites/Button_Small.png" id="2_7m30w"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_x0adl"]
@ -14,4 +14,4 @@ script = ExtResource("1_g3j01")
shape = SubResource("RectangleShape2D_x0adl")
[node name="Sprite2D" type="Sprite2D" parent="."]
texture = ExtResource("1_bgeyn")
texture = ExtResource("2_7m30w")

View file

@ -1,14 +1,126 @@
[gd_scene load_steps=3 format=3 uid="uid://bc64lr3vlwchq"]
[gd_scene load_steps=16 format=3 uid="uid://bc64lr3vlwchq"]
[sub_resource type="AtlasTexture" id="AtlasTexture_xakim"]
[ext_resource type="Script" path="res://Scripts/Door.cs" id="1_e61bg"]
[ext_resource type="Texture2D" uid="uid://dwcjixrhq4cdv" path="res://Sprites/DoorVertical.png" id="1_vdvtb"]
[sub_resource type="AtlasTexture" id="AtlasTexture_mbysk"]
atlas = ExtResource("1_vdvtb")
region = Rect2(0, 0, 16, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_cswit"]
atlas = ExtResource("1_vdvtb")
region = Rect2(48, 0, 16, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_5twlp"]
atlas = ExtResource("1_vdvtb")
region = Rect2(32, 0, 16, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_appi3"]
atlas = ExtResource("1_vdvtb")
region = Rect2(16, 0, 16, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_qf4nm"]
atlas = ExtResource("1_vdvtb")
region = Rect2(0, 0, 16, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_mvjy4"]
atlas = ExtResource("1_vdvtb")
region = Rect2(48, 0, 16, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_hqwo7"]
atlas = ExtResource("1_vdvtb")
region = Rect2(0, 0, 16, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_fjrcg"]
atlas = ExtResource("1_vdvtb")
region = Rect2(16, 0, 16, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_pjqv0"]
atlas = ExtResource("1_vdvtb")
region = Rect2(32, 0, 16, 48)
[sub_resource type="AtlasTexture" id="AtlasTexture_6brcl"]
atlas = ExtResource("1_vdvtb")
region = Rect2(48, 0, 16, 48)
[sub_resource type="SpriteFrames" id="SpriteFrames_keeml"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_mbysk")
}],
"loop": true,
"name": &"Closed",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_cswit")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_5twlp")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_appi3")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_qf4nm")
}],
"loop": false,
"name": &"Closing",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_mvjy4")
}],
"loop": true,
"name": &"Open",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_hqwo7")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_fjrcg")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_pjqv0")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_6brcl")
}],
"loop": false,
"name": &"Opening",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_0wg11"]
size = Vector2(8, 48)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_f2rl6"]
size = Vector2(8, 48)
[node name="Area2D" type="Area2D"]
collision_layer = 64
collision_mask = 154
script = ExtResource("1_e61bg")
metadata/_edit_group_ = true
[node name="Sprite2D" type="Sprite2D" parent="."]
texture = SubResource("AtlasTexture_xakim")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_keeml")
animation = &"Closing"
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("RectangleShape2D_0wg11")
[node name="RigidBody2D" type="RigidBody2D" parent="."]
collision_layer = 64
collision_mask = 10
gravity_scale = 0.0
[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D"]
shape = SubResource("RectangleShape2D_f2rl6")
[connection signal="animation_changed" from="AnimatedSprite2D" to="." method="_on_animated_sprite_2d_animation_changed"]

View file

@ -18,6 +18,6 @@ public partial class Interactable : Area2D
public void Activate()
{
Debug.WriteLine("Activated");
Target?.Activate();
}
}

View file

@ -59,7 +59,6 @@ texture = ExtResource("8_0km4o")
3:3/0 = 0
4:3/0 = 0
5:3/0 = 0
6:3/0 = 0
7:3/0 = 0
8:3/0 = 0
9:3/0 = 0
@ -191,6 +190,8 @@ texture = ExtResource("8_0km4o")
7:14/0 = 0
8:14/0 = 0
9:14/0 = 0
6:3/0 = 0
6:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-4, -6, -4, 0, 4, 0, 4, -6)
[sub_resource type="TileSetScenesCollectionSource" id="TileSetScenesCollectionSource_qg3vu"]
resource_name = "Props"
@ -228,7 +229,7 @@ tile_set = SubResource("TileSet_d7en2")
[node name="Solid2" type="TileMapLayer" parent="Factory Tilemaps" groups=["Solid"]]
use_parent_material = true
tile_map_data = PackedByteArray("AADL//L/AAACAAYAAADL//P/AAACAAYAAADL//T/AAACAAYAAADL//X/AAACAAYAAADL//b/AAACAAYAAADL//f/AAACAAYAAADL//j/AAACAAYAAADL//n/AAACAAYAAADL//r/AAACAAYAAADL//v/AAACAAYAAADL//z/AAACAAYAAADS//T/AAAAAAcAAADM//H/AAABAAcAAADN//H/AAABAAcAAADO//H/AAABAAcAAADP//H/AAABAAcAAADT//T/AAABAAcAAADU//T/AAABAAcAAADV//T/AAABAAcAAADW//T/AAABAAcAAADX//T/AAABAAcAAADO//f/AAADAAAAAADN//f/AAADAAAAAADM//f/AAADAAAAAADS//f/AAADAAAAAADO//r/AAADAAAAAADN//r/AAADAAAAAADM//r/AAADAAAAAADS//r/AAADAAAAAADT//r/AAADAAAAAADU//r/AAADAAAAAADV//r/AAADAAAAAADW//r/AAADAAAAAADX//r/AAADAAAAAADa//f/AAAAAAYAAADa//n/AAAAAAYAAADa//r/AAAAAAYAAADa//v/AAAAAAYAAADa//z/AAAAAAYAAADa//3/AAAAAAYAAADa//7/AAAAAAYAAADL//3/AAACAAYAAADL//7/AAACAAYAAADa////AAAAAAYAAADa/wAAAAAAAAYAAADY//r/AAADAAAAAADZ//r/AAADAAAAAADM//3/AAAEAAUAAADN//3/AAAEAAUAAADO//3/AAAEAAUAAADP//3/AAAEAAUAAADQ//3/AAAEAAUAAADR//3/AAAEAAUAAADS//3/AAAEAAUAAADT//3/AAAFAAUAAADX//3/AAADAAUAAADY//3/AAAEAAUAAADZ//3/AAAEAAUAAADX//7/AAADAAcAAADY////AAAEAAUAAADZ////AAAEAAUAAADT//7/AAAFAAcAAADS//7/AAAEAAUAAADR//7/AAAEAAUAAADQ//7/AAAEAAUAAADP//7/AAAEAAUAAADO//7/AAAEAAUAAADN//7/AAAEAAUAAADM//7/AAAEAAUAAADX/wEAAAAFAAcAAADW/wEAAAAEAAUAAADV/wEAAAAEAAUAAADU/wEAAAAEAAUAAADT/wEAAAAEAAUAAADX/wAAAAADAAYAAAC2////AAADAAAAAAC1////AAADAAAAAAC0////AAADAAAAAACz////AAADAAAAAACy////AAADAAAAAACx////AAADAAAAAACx//7/AAADAAAAAACx//3/AAADAAAAAAC2/wIAAAADAAAAAAC1/wIAAAADAAAAAAC0/wIAAAADAAAAAACz/wIAAAADAAAAAACy/wIAAAADAAAAAACx/wIAAAADAAAAAACw/wIAAAADAAAAAACv/wIAAAADAAAAAACu/wIAAAADAAAAAACt/wIAAAADAAAAAACs/wIAAAADAAAAAACu////AAADAAAAAACu//7/AAADAAAAAACu//3/AAADAAAAAACt////AAADAAAAAACs////AAADAAAAAACr////AAADAAAAAACq////AAADAAAAAACp////AAADAAAAAACr/wIAAAADAAAAAACq/wIAAAADAAAAAACp/wIAAAADAAAAAADQ/wEAAAADAAUAAADR/wEAAAAEAAUAAADS/wEAAAAEAAUAAADQ/wIAAAADAAYAAADQ/wMAAAADAAcAAADR/wMAAAAEAAUAAADX////AAADAAUAAADY//7/AAAEAAUAAADZ//7/AAAEAAUAAADL/wkAAAAAAAQAAADM/wAAAQAAAAAAAQDM/wEAAQAAAAAAAQDM/wIAAQAAAAAAAQDM/wMAAQAAAAAAAQDR//b/AQAAAAAAAgDV//H/AQAAAAAAAgDW//H/AQAAAAAAAwDX//H/AQAAAAAABADH//L/AQAAAAAABQDG//f/AQAAAAAABgDG//r/AQAAAAAABwDI//v/AQAAAAAACADR//X/AQAAAAAAAQDM//T/AAABAAEAAADN//T/AAABAAEAAADO//T/AAABAAEAAADP//T/AAABAAEAAADQ//T/AAABAAEAAADR//T/AAABAAEAAADS//X/AAAEAAEAAADS//b/AAAEAAEAAADT//X/AAABAAEAAADT//b/AAABAAEAAADV//b/AAABAAEAAADV//X/AAABAAEAAADX//b/AAABAAEAAADX//X/AAABAAEAAADZ//b/AAABAAEAAADZ//X/AAABAAEAAADa//j/AAAAAAYAAADL////AAACAAYAAADL/wAAAAACAAYAAADL/wEAAAACAAYAAADL/wIAAAACAAYAAADL/wMAAAACAAYAAADL/wQAAAACAAYAAADL/wUAAAACAAYAAADL/wYAAAACAAYAAADL/wcAAAACAAYAAADL/wgAAAACAAYAAADa/wEAAAAAAAYAAADa/wIAAAAAAAYAAADa/wMAAAAAAAYAAADa/wQAAAAAAAYAAADa/wUAAAAAAAYAAADa/wYAAAAAAAYAAADa/wcAAAAAAAYAAADa/wgAAAAAAAYAAADa/wkAAAAAAAYAAADa/woAAAAAAAYAAADa/wsAAAAAAAYAAADa/wwAAAAAAAYAAADa/w0AAAAAAAYAAADa/w4AAAAAAAYAAADZ/w8AAAABAAUAAADY/w8AAAABAAUAAADX/w8AAAABAAUAAADW/w8AAAABAAUAAADV/w8AAAABAAUAAADU/w8AAAABAAUAAADT/w8AAAABAAUAAADS/w8AAAABAAUAAADR/w8AAAABAAUAAADQ/w8AAAABAAUAAADP/w8AAAABAAUAAADO/w8AAAABAAUAAADN/w8AAAABAAUAAADM/w8AAAABAAUAAADL/w4AAAAAAAQAAADL/w0AAAAAAAQAAADK/w4AAAABAAUAAADJ/w4AAAABAAUAAADI/w4AAAABAAUAAADH/w4AAAABAAUAAADG/w4AAAABAAUAAADF/w4AAAABAAUAAADE/w4AAAABAAUAAADL/wsAAAAFAAEAAADL/woAAAAFAAEAAADK/woAAAABAAEAAADI/woAAAABAAEAAADH/woAAAABAAEAAADH/wkAAAABAAEAAADI/wkAAAABAAEAAADK/wkAAAABAAEAAADF/woAAAABAAEAAADE/woAAAABAAEAAADE/wkAAAABAAEAAADF/wkAAAABAAEAAADB/woAAAABAAEAAADC/woAAAABAAEAAADC/wkAAAABAAEAAADB/wkAAAABAAEAAAC//woAAAABAAEAAAC//wkAAAABAAEAAADJ/woAAAADAAEAAADJ/wkAAAADAAEAAADG/woAAAADAAEAAADG/wkAAAADAAEAAADD/woAAAADAAEAAADD/wkAAAADAAEAAADA/woAAAADAAEAAADA/wkAAAADAAEAAADD/w4AAAABAAUAAADC/w4AAAABAAUAAADB/w4AAAABAAUAAADA/w4AAAABAAUAAAC//w4AAAABAAUAAADU//b/AAADAAEAAADU//X/AAADAAEAAADW//b/AAADAAEAAADW//X/AAADAAEAAADY//b/AAADAAEAAADY//X/AAADAAEAAADT/wkAAQAAAAAAAgDU/wkAAQAAAAAAAgDU/woAAQAAAAAAAgDT/woAAQAAAAAAAgDT/wsAAQAAAAAAAgDU/wsAAQAAAAAAAgDU/wwAAQAAAAAAAgDT/wwAAQAAAAAAAgDS/wwAAQAAAAAAAgDR/wwAAQAAAAAAAgDR/wsAAQAAAAAAAgDS/wsAAQAAAAAAAgDS/woAAQAAAAAAAgDR/woAAQAAAAAAAgDS/wkAAQAAAAAAAgDR/wkAAQAAAAAAAgA=")
tile_map_data = PackedByteArray("AADL//L/AAACAAYAAADL//P/AAACAAYAAADL//T/AAACAAYAAADL//X/AAACAAYAAADL//b/AAACAAYAAADL//f/AAACAAYAAADL//j/AAACAAYAAADL//n/AAACAAYAAADL//r/AAACAAYAAADL//v/AAACAAYAAADL//z/AAACAAYAAADS//T/AAAAAAcAAADM//H/AAABAAcAAADN//H/AAABAAcAAADO//H/AAABAAcAAADP//H/AAABAAcAAADT//T/AAABAAcAAADU//T/AAABAAcAAADV//T/AAABAAcAAADW//T/AAABAAcAAADX//T/AAABAAcAAADO//f/AAADAAAAAADN//f/AAADAAAAAADM//f/AAADAAAAAADS//f/AAADAAAAAADO//r/AAADAAAAAADN//r/AAADAAAAAADM//r/AAADAAAAAADS//r/AAADAAAAAADT//r/AAADAAAAAADU//r/AAADAAAAAADV//r/AAADAAAAAADW//r/AAADAAAAAADX//r/AAADAAAAAADa//f/AAAAAAYAAADa//n/AAAAAAYAAADa//r/AAAAAAYAAADa//v/AAAAAAYAAADa//z/AAAAAAYAAADa//3/AAAAAAYAAADa//7/AAAAAAYAAADL//3/AAACAAYAAADL//7/AAACAAYAAADa////AAAAAAYAAADa/wAAAAAAAAYAAADY//r/AAADAAAAAADZ//r/AAADAAAAAADM//3/AAAEAAUAAADN//3/AAAEAAUAAADO//3/AAAEAAUAAADP//3/AAAEAAUAAADQ//3/AAAEAAUAAADR//3/AAAEAAUAAADS//3/AAAEAAUAAADT//3/AAAFAAUAAADX//3/AAADAAUAAADY//3/AAAEAAUAAADZ//3/AAAEAAUAAADX//7/AAADAAcAAADY////AAAEAAUAAADZ////AAAEAAUAAADT//7/AAAFAAcAAADS//7/AAAEAAUAAADR//7/AAAEAAUAAADQ//7/AAAEAAUAAADP//7/AAAEAAUAAADO//7/AAAEAAUAAADN//7/AAAEAAUAAADM//7/AAAEAAUAAADX/wEAAAAFAAcAAADW/wEAAAAEAAUAAADV/wEAAAAEAAUAAADU/wEAAAAEAAUAAADT/wEAAAAEAAUAAADX/wAAAAADAAYAAAC2////AAADAAAAAAC1////AAADAAAAAAC0////AAADAAAAAACz////AAADAAAAAACy////AAADAAAAAACx////AAADAAAAAACx//7/AAADAAAAAACx//3/AAADAAAAAAC2/wIAAAADAAAAAAC1/wIAAAADAAAAAAC0/wIAAAADAAAAAACz/wIAAAADAAAAAACy/wIAAAADAAAAAACx/wIAAAADAAAAAACw/wIAAAADAAAAAACv/wIAAAADAAAAAACu/wIAAAADAAAAAACt/wIAAAADAAAAAACs/wIAAAADAAAAAACu////AAADAAAAAACu//7/AAADAAAAAACu//3/AAADAAAAAACt////AAADAAAAAACs////AAADAAAAAACr////AAADAAAAAACq////AAADAAAAAACp////AAADAAAAAACr/wIAAAADAAAAAACq/wIAAAADAAAAAACp/wIAAAADAAAAAADQ/wEAAAADAAUAAADR/wEAAAAEAAUAAADS/wEAAAAEAAUAAADQ/wIAAAADAAYAAADQ/wMAAAADAAcAAADR/wMAAAAEAAUAAADX////AAADAAUAAADY//7/AAAEAAUAAADZ//7/AAAEAAUAAADL/wkAAAAEAAQAAADM/wAAAQAAAAAAAQDM/wEAAQAAAAAAAQDM/wIAAQAAAAAAAQDM/wMAAQAAAAAAAQDR//b/AQAAAAAAAgDV//H/AQAAAAAAAgDW//H/AQAAAAAAAwDX//H/AQAAAAAABADH//L/AQAAAAAABQDG//f/AQAAAAAABgDG//r/AQAAAAAABwDI//v/AQAAAAAACADR//X/AQAAAAAAAQDM//T/AAABAAEAAADN//T/AAABAAEAAADO//T/AAABAAEAAADP//T/AAABAAEAAADQ//T/AAABAAEAAADR//T/AAABAAEAAADS//X/AAAEAAEAAADS//b/AAAEAAEAAADT//X/AAABAAEAAADT//b/AAABAAEAAADV//b/AAABAAEAAADV//X/AAABAAEAAADX//b/AAABAAEAAADX//X/AAABAAEAAADZ//b/AAABAAEAAADZ//X/AAABAAEAAADa//j/AAAAAAYAAADL////AAACAAYAAADL/wAAAAACAAYAAADL/wEAAAACAAYAAADL/wIAAAACAAYAAADL/wMAAAACAAYAAADL/wQAAAACAAYAAADL/wUAAAACAAYAAADL/wYAAAACAAYAAADL/wcAAAACAAYAAADL/wgAAAACAAYAAADa/wEAAAAAAAYAAADa/wIAAAAAAAYAAADa/wMAAAAAAAYAAADa/wQAAAAAAAYAAADa/wUAAAAAAAYAAADa/wYAAAAAAAYAAADa/wcAAAAAAAYAAADa/wgAAAAAAAYAAADa/wkAAAAAAAYAAADa/woAAAAAAAYAAADa/wsAAAAAAAYAAADa/wwAAAAAAAYAAADa/w0AAAAAAAYAAADa/w4AAAAAAAYAAADZ/w8AAAABAAUAAADY/w8AAAABAAUAAADX/w8AAAABAAUAAADW/w8AAAABAAUAAADV/w8AAAABAAUAAADU/w8AAAABAAUAAADT/w8AAAABAAUAAADS/w8AAAABAAUAAADR/w8AAAABAAUAAADQ/w8AAAABAAUAAADP/w8AAAABAAUAAADO/w8AAAABAAUAAADN/w8AAAABAAUAAADM/w8AAAABAAUAAADL/w4AAAAAAAQAAADL/w0AAAAFAAQAAADK/w4AAAABAAUAAADJ/w4AAAABAAUAAADI/w4AAAABAAUAAADH/w4AAAABAAUAAADG/w4AAAABAAUAAADF/w4AAAABAAUAAADE/w4AAAABAAUAAADL/wsAAAAFAAEAAADL/woAAAAFAAEAAADK/woAAAABAAEAAADI/woAAAABAAEAAADH/woAAAABAAEAAADH/wkAAAABAAEAAADI/wkAAAABAAEAAADK/wkAAAABAAEAAADF/woAAAABAAEAAADE/woAAAABAAEAAADE/wkAAAABAAEAAADF/wkAAAABAAEAAADB/woAAAABAAEAAADC/woAAAABAAEAAADC/wkAAAABAAEAAADB/wkAAAABAAEAAAC//woAAAABAAEAAAC//wkAAAABAAEAAADJ/woAAAADAAEAAADJ/wkAAAADAAEAAADG/woAAAADAAEAAADG/wkAAAADAAEAAADD/woAAAADAAEAAADD/wkAAAADAAEAAADA/woAAAADAAEAAADA/wkAAAADAAEAAADD/w4AAAABAAUAAADC/w4AAAABAAUAAADB/w4AAAABAAUAAADA/w4AAAABAAUAAAC//w4AAAABAAUAAADU//b/AAADAAEAAADU//X/AAADAAEAAADW//b/AAADAAEAAADW//X/AAADAAEAAADY//b/AAADAAEAAADY//X/AAADAAEAAADT/wkAAQAAAAAAAgDU/wkAAQAAAAAAAgDU/woAAQAAAAAAAgDT/woAAQAAAAAAAgDT/wsAAQAAAAAAAgDU/wsAAQAAAAAAAgDU/wwAAQAAAAAAAgDT/wwAAQAAAAAAAgDS/wwAAQAAAAAAAgDR/wwAAQAAAAAAAgDR/wsAAQAAAAAAAgDS/wsAAQAAAAAAAgDS/woAAQAAAAAAAgDR/woAAQAAAAAAAgDS/wkAAQAAAAAAAgDR/wkAAQAAAAAAAgDM/woAAAAGAAMAAAC+/w0AAAAFAAQAAAC+/wkAAAAEAAQAAAA=")
tile_set = SubResource("TileSet_d7en2")
[node name="Barrel" parent="Factory Tilemaps" instance=ExtResource("5_3uba3")]
@ -269,11 +270,17 @@ position = Vector2(-696, -136)
[node name="ControlPad" parent="Factory Tilemaps" node_paths=PackedStringArray("Target") instance=ExtResource("12_hfkf1")]
position = Vector2(-713, -153)
Target = NodePath("../Door")
Target = NodePath("../Door_vertical")
[node name="ControlPad2" parent="Factory Tilemaps" node_paths=PackedStringArray("Target") instance=ExtResource("12_hfkf1")]
position = Vector2(-616, -154)
Target = NodePath("../Door")
position = Vector2(-824, 167)
Target = NodePath("../Door_vertical2")
[node name="Door_vertical" parent="Factory Tilemaps" instance=ExtResource("15_mgtvp")]
position = Vector2(-684, -120)
[node name="Door_vertical2" parent="Factory Tilemaps" instance=ExtResource("15_mgtvp")]
position = Vector2(-840, 184)
[node name="Door" parent="Factory Tilemaps" instance=ExtResource("14_y363m")]
position = Vector2(-766, -74)
@ -306,12 +313,10 @@ position = Vector2(-743, -117)
position = Vector2(-687, -10)
[node name="Enemy2" parent="." instance=ExtResource("18_ixcwn")]
position = Vector2(-783, 92)
position = Vector2(-646, 179)
[node name="Enemy3" parent="." instance=ExtResource("18_ixcwn")]
position = Vector2(-652, 180)
position = Vector2(-796, 88)
[node name="Enemy4" parent="." instance=ExtResource("18_ixcwn")]
position = Vector2(-883, 183)
[node name="Door" parent="." instance=ExtResource("15_mgtvp")]

97
Scripts/Door.cs Normal file
View file

@ -0,0 +1,97 @@
using Godot;
using System;
using System.Diagnostics;
using Cirno.Scripts;
public partial class Door : Activable
{
private AnimatedSprite2D _animatedSprite;
private CollisionShape2D _collisionShape;
private CollisionShape2D _solidShape;
// Called when the node enters the scene tree for the first time.
[Export]
public DoorState State { get; set; }
public override void _Ready()
{
_animatedSprite = GetNode<AnimatedSprite2D>("AnimatedSprite2D");
_collisionShape = GetNode<CollisionShape2D>("CollisionShape2D");
_solidShape = GetNode<CollisionShape2D>("RigidBody2D/CollisionShape2D");
SetState(State);
}
// Called every frame. 'delta' is the elapsed time since the previous frame.
public override void _Process(double delta)
{
}
public void Open()
{
_animatedSprite.Play("Opening");
State = DoorState.Open;
_collisionShape.Disabled = true;
_solidShape.Disabled = true;
}
public void Close()
{
_animatedSprite.Play("Closing");
State = DoorState.Closed;
_collisionShape.Disabled = false;
_solidShape.Disabled = false;
}
public override void Activate()
{
switch (State)
{
case DoorState.Closed:
Open();
break;
case DoorState.Open:
Close();
break;
default:
throw new ArgumentOutOfRangeException();
}
}
private void SetState(DoorState state)
{
switch (state)
{
case DoorState.Closed:
Close();
break;
case DoorState.Open:
Open();
break;
default:
throw new ArgumentOutOfRangeException();
}
}
public void _on_animated_sprite_2d_animation_changed()
{
switch (_animatedSprite.Animation)
{
case "Opening":
break;
case "Closing":
break;
default:
break;
}
}
}
public enum DoorState
{
Closed,
Open
}

6
Scripts/IActivable.cs Normal file
View file

@ -0,0 +1,6 @@
namespace Cirno.Scripts;
public interface IActivable
{
void Activate();
}

BIN
Sprites/Button_Small.aseprite (Stored with Git LFS) Normal file

Binary file not shown.

BIN
Sprites/Button_Small.png (Stored with Git LFS) Normal file

Binary file not shown.

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d24g1qb40t72l"
path="res://.godot/imported/Button_Small.png-98a4c5460459fa0da24d50dc27d2bef8.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Sprites/Button_Small.png"
dest_files=["res://.godot/imported/Button_Small.png-98a4c5460459fa0da24d50dc27d2bef8.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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
Sprites/DoorVertical.png (Stored with Git LFS) Normal file

Binary file not shown.

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dwcjixrhq4cdv"
path="res://.godot/imported/DoorVertical.png-d84a2064a28d3dea08e4e4d728307fa8.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Sprites/DoorVertical.png"
dest_files=["res://.godot/imported/DoorVertical.png-d84a2064a28d3dea08e4e4d728307fa8.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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
Tilesets/factory.aseprite (Stored with Git LFS)

Binary file not shown.

BIN
Tilesets/factory.png (Stored with Git LFS)

Binary file not shown.