mirror of
https://gitlab.com/MaddoScientisto/cirnogodot.git
synced 2026-06-20 13:13:48 +00:00
Teleporter visualizer
This commit is contained in:
parent
ba481a5914
commit
1a8e88f719
6 changed files with 78 additions and 17 deletions
|
|
@ -1,9 +1,10 @@
|
||||||
[gd_scene load_steps=7 format=3 uid="uid://byms2dhliyux0"]
|
[gd_scene load_steps=8 format=3 uid="uid://byms2dhliyux0"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://c1q7esgfnbvsf" path="res://Scripts/Activables/Teleporter.cs" id="1_juavy"]
|
[ext_resource type="Script" uid="uid://c1q7esgfnbvsf" path="res://Scripts/Activables/Teleporter.cs" id="1_juavy"]
|
||||||
[ext_resource type="SpriteFrames" uid="uid://w4jlaryen3we" path="res://Resources/Sprites/teleporter.tres" id="2_k58t7"]
|
[ext_resource type="SpriteFrames" uid="uid://w4jlaryen3we" path="res://Resources/Sprites/teleporter.tres" id="2_k58t7"]
|
||||||
[ext_resource type="AudioStream" uid="uid://c4uxtkynonomm" path="res://SFX/teleporter_start.wav" id="3_ox1iw"]
|
[ext_resource type="AudioStream" uid="uid://c4uxtkynonomm" path="res://SFX/teleporter_start.wav" id="3_ox1iw"]
|
||||||
[ext_resource type="AudioStream" uid="uid://cq1880lc1iwsa" path="res://SFX/teleporter_end.wav" id="4_ildd2"]
|
[ext_resource type="AudioStream" uid="uid://cq1880lc1iwsa" path="res://SFX/teleporter_end.wav" id="4_ildd2"]
|
||||||
|
[ext_resource type="Script" uid="uid://3jcfdfymcvxu" path="res://Scripts/Utils/TeleporterLinker.cs" id="5_ildd2"]
|
||||||
|
|
||||||
[sub_resource type="CircleShape2D" id="CircleShape2D_kwj8m"]
|
[sub_resource type="CircleShape2D" id="CircleShape2D_kwj8m"]
|
||||||
radius = 4.12311
|
radius = 4.12311
|
||||||
|
|
@ -34,7 +35,7 @@ animation = &"Teleporting"
|
||||||
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
|
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
|
||||||
sprite_frames = ExtResource("2_k58t7")
|
sprite_frames = ExtResource("2_k58t7")
|
||||||
animation = &"Default"
|
animation = &"Default"
|
||||||
frame_progress = 0.462812
|
frame_progress = 0.620066
|
||||||
|
|
||||||
[node name="Particles" type="GPUParticles2D" parent="."]
|
[node name="Particles" type="GPUParticles2D" parent="."]
|
||||||
z_index = 2
|
z_index = 2
|
||||||
|
|
@ -53,4 +54,10 @@ process_mode = 3
|
||||||
stream = ExtResource("4_ildd2")
|
stream = ExtResource("4_ildd2")
|
||||||
max_distance = 100.0
|
max_distance = 100.0
|
||||||
|
|
||||||
|
[node name="Visualizer" type="Node2D" parent="."]
|
||||||
|
z_index = 15
|
||||||
|
z_as_relative = false
|
||||||
|
script = ExtResource("5_ildd2")
|
||||||
|
Color = Color(0, 0, 1, 0.741176)
|
||||||
|
|
||||||
[connection signal="area_entered" from="." to="." method="_on_area_entered"]
|
[connection signal="area_entered" from="." to="." method="_on_area_entered"]
|
||||||
|
|
|
||||||
15
Scenes/Maps/TeleporterTest.tscn
Normal file
15
Scenes/Maps/TeleporterTest.tscn
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
[gd_scene load_steps=2 format=3 uid="uid://74hy0x41gei7"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://byms2dhliyux0" path="res://Scenes/Actors/teleporter.tscn" id="1_4vmoo"]
|
||||||
|
|
||||||
|
[node name="Node2D" type="Node2D"]
|
||||||
|
|
||||||
|
[node name="Teleporter" parent="." node_paths=PackedStringArray("Target") instance=ExtResource("1_4vmoo")]
|
||||||
|
position = Vector2(104, 66)
|
||||||
|
Target = NodePath("../Teleporter2")
|
||||||
|
|
||||||
|
[node name="Teleporter2" parent="." node_paths=PackedStringArray("Target") instance=ExtResource("1_4vmoo")]
|
||||||
|
position = Vector2(45, 41)
|
||||||
|
IsEnabled = true
|
||||||
|
Target = NodePath("../Teleporter")
|
||||||
|
metadata/_edit_group_ = true
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=144 format=4 uid="uid://bv451a8wgty4u"]
|
[gd_scene load_steps=145 format=4 uid="uid://bv451a8wgty4u"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://doxmbokehw8ci" path="res://Scripts/GameManager.cs" id="1_8tmoj"]
|
[ext_resource type="Script" uid="uid://doxmbokehw8ci" path="res://Scripts/GameManager.cs" id="1_8tmoj"]
|
||||||
[ext_resource type="PackedScene" uid="uid://c4pr2707hbeph" path="res://Scenes/Actors/fsm_player.tscn" id="2_ksslq"]
|
[ext_resource type="PackedScene" uid="uid://c4pr2707hbeph" path="res://Scenes/Actors/fsm_player.tscn" id="2_ksslq"]
|
||||||
|
|
@ -64,6 +64,7 @@
|
||||||
[ext_resource type="PackedScene" uid="uid://b0k2grrc8xp1l" path="res://Scenes/Props/BigTank.tscn" id="45_5qg27"]
|
[ext_resource type="PackedScene" uid="uid://b0k2grrc8xp1l" path="res://Scenes/Props/BigTank.tscn" id="45_5qg27"]
|
||||||
[ext_resource type="Script" uid="uid://bwox5lmgiijcs" path="res://Scripts/Resources/Events/ActivateEvent.cs" id="45_emjoj"]
|
[ext_resource type="Script" uid="uid://bwox5lmgiijcs" path="res://Scripts/Resources/Events/ActivateEvent.cs" id="45_emjoj"]
|
||||||
[ext_resource type="Script" uid="uid://b5fesrd4lv8t1" path="res://Scripts/Resources/Events/EventResource.cs" id="46_0bqta"]
|
[ext_resource type="Script" uid="uid://b5fesrd4lv8t1" path="res://Scripts/Resources/Events/EventResource.cs" id="46_0bqta"]
|
||||||
|
[ext_resource type="Script" uid="uid://b5s5mjuk1rng5" path="res://Scripts/Resources/TimeModifier.cs" id="46_cxj4w"]
|
||||||
[ext_resource type="Script" uid="uid://ddv26x2qilprb" path="res://Scripts/Resources/Events/DialogueStartEvent.cs" id="46_i0omr"]
|
[ext_resource type="Script" uid="uid://ddv26x2qilprb" path="res://Scripts/Resources/Events/DialogueStartEvent.cs" id="46_i0omr"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cqrkisw6jg24w" path="res://Scenes/Props/MainFrame1.tscn" id="46_ny2s2"]
|
[ext_resource type="PackedScene" uid="uid://cqrkisw6jg24w" path="res://Scenes/Props/MainFrame1.tscn" id="46_ny2s2"]
|
||||||
[ext_resource type="PackedScene" uid="uid://cdti0hnbs3e63" path="res://Scenes/Actors/RoamingSusan.tscn" id="47_u1ve6"]
|
[ext_resource type="PackedScene" uid="uid://cdti0hnbs3e63" path="res://Scenes/Actors/RoamingSusan.tscn" id="47_u1ve6"]
|
||||||
|
|
@ -148,7 +149,7 @@ DamageType = 0
|
||||||
OverrideControllable = false
|
OverrideControllable = false
|
||||||
Controllable = false
|
Controllable = false
|
||||||
OverrideCreationModifier = false
|
OverrideCreationModifier = false
|
||||||
TimeModifiers = []
|
TimeModifiers = Array[ExtResource("46_cxj4w")]([])
|
||||||
WaitForCompletion = true
|
WaitForCompletion = true
|
||||||
metadata/_custom_type_script = "uid://c0ndqalsc4jve"
|
metadata/_custom_type_script = "uid://c0ndqalsc4jve"
|
||||||
|
|
||||||
|
|
@ -1124,7 +1125,7 @@ position = Vector2(-2000, -736)
|
||||||
[node name="ControlPad8" parent="Parallax2D/Factory Tilemaps/LevelProps" node_paths=PackedStringArray("Targets") instance=ExtResource("12_hfkf1")]
|
[node name="ControlPad8" parent="Parallax2D/Factory Tilemaps/LevelProps" node_paths=PackedStringArray("Targets") instance=ExtResource("12_hfkf1")]
|
||||||
position = Vector2(-2027, -735)
|
position = Vector2(-2027, -735)
|
||||||
Targets = [NodePath("../HorizontalForceField")]
|
Targets = [NodePath("../HorizontalForceField")]
|
||||||
Requirements = [ExtResource("84_ma1ta")]
|
Requirements = Array[ExtResource("6_8tdlb")]([ExtResource("84_ma1ta")])
|
||||||
|
|
||||||
[node name="Ammo6" parent="Parallax2D/Factory Tilemaps/LevelProps" instance=ExtResource("34_17pjh")]
|
[node name="Ammo6" parent="Parallax2D/Factory Tilemaps/LevelProps" instance=ExtResource("34_17pjh")]
|
||||||
position = Vector2(-872, -220)
|
position = Vector2(-872, -220)
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ using GTweensGodot.Extensions;
|
||||||
|
|
||||||
namespace Cirno.Scripts.Activables;
|
namespace Cirno.Scripts.Activables;
|
||||||
|
|
||||||
|
[Tool]
|
||||||
public partial class Teleporter : Activable
|
public partial class Teleporter : Activable
|
||||||
{
|
{
|
||||||
[Export]
|
[Export]
|
||||||
|
|
@ -41,8 +42,11 @@ public partial class Teleporter : Activable
|
||||||
|
|
||||||
public override void _Ready()
|
public override void _Ready()
|
||||||
{
|
{
|
||||||
_particles = GetNode<GpuParticles2D>("./Particles");
|
|
||||||
_animatedSprite = GetNode<AnimatedSprite2D>("AnimatedSprite2D");
|
_animatedSprite = GetNode<AnimatedSprite2D>("AnimatedSprite2D");
|
||||||
|
_animatedSprite.Play(IsEnabled ? "Active" : "Default");
|
||||||
|
if (Engine.IsEditorHint()) return;
|
||||||
|
|
||||||
|
_particles = GetNode<GpuParticles2D>("./Particles");
|
||||||
|
|
||||||
IsPrimed = true;
|
IsPrimed = true;
|
||||||
_particles.Emitting = false;
|
_particles.Emitting = false;
|
||||||
|
|
@ -50,21 +54,13 @@ public partial class Teleporter : Activable
|
||||||
|
|
||||||
this.Visible = !Invisible;
|
this.Visible = !Invisible;
|
||||||
|
|
||||||
if (IsEnabled)
|
|
||||||
{
|
|
||||||
_animatedSprite.Play("Active");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
_animatedSprite.Play("Default");
|
|
||||||
}
|
|
||||||
|
|
||||||
_teleportStartSound = GetNodeOrNull<AudioStreamPlayer2D>("TeleportStart");
|
_teleportStartSound = GetNodeOrNull<AudioStreamPlayer2D>("TeleportStart");
|
||||||
_teleportEndSound = GetNodeOrNull<AudioStreamPlayer2D>("TeleportEnd");
|
_teleportEndSound = GetNodeOrNull<AudioStreamPlayer2D>("TeleportEnd");
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void _Process(double delta)
|
public override void _Process(double delta)
|
||||||
{
|
{
|
||||||
|
if (Engine.IsEditorHint()) return;
|
||||||
if (!_particles.Emitting) return;
|
if (!_particles.Emitting) return;
|
||||||
|
|
||||||
_particleTimer += delta;
|
_particleTimer += delta;
|
||||||
|
|
|
||||||
41
Scripts/Utils/TeleporterLinker.cs
Normal file
41
Scripts/Utils/TeleporterLinker.cs
Normal file
|
|
@ -0,0 +1,41 @@
|
||||||
|
using Cirno.Scripts.Activables;
|
||||||
|
using Godot;
|
||||||
|
|
||||||
|
namespace Cirno.Scripts.Utils;
|
||||||
|
|
||||||
|
[Tool]
|
||||||
|
public partial class TeleporterLinker : Node2D
|
||||||
|
{
|
||||||
|
private Teleporter _teleporter;
|
||||||
|
|
||||||
|
[Export] public Color Color { get; set; } = Colors.Blue;
|
||||||
|
|
||||||
|
public override void _Ready()
|
||||||
|
{
|
||||||
|
_teleporter = GetParentOrNull<Teleporter>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void _Draw()
|
||||||
|
{
|
||||||
|
if (!Engine.IsEditorHint())
|
||||||
|
return;
|
||||||
|
if (_teleporter is null) return;
|
||||||
|
if (!_teleporter.IsEnabled) return;
|
||||||
|
if (_teleporter.Target is null) return;
|
||||||
|
|
||||||
|
Vector2 start = _teleporter.GlobalPosition;
|
||||||
|
Vector2 end = _teleporter.Target.GlobalPosition;
|
||||||
|
|
||||||
|
DrawLine(ToLocal(start), ToLocal(end), Color, 2.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void _Process(double delta)
|
||||||
|
{
|
||||||
|
if (Engine.IsEditorHint())
|
||||||
|
{
|
||||||
|
QueueRedraw();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
1
Scripts/Utils/TeleporterLinker.cs.uid
Normal file
1
Scripts/Utils/TeleporterLinker.cs.uid
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
uid://3jcfdfymcvxu
|
||||||
Loading…
Add table
Add a link
Reference in a new issue