mirror of
https://gitlab.com/MaddoScientisto/cirnogodot.git
synced 2026-06-09 00:35:53 +00:00
Moved events inside the player
This commit is contained in:
parent
11a22684d4
commit
7d9db8cfb6
7 changed files with 57 additions and 75 deletions
|
|
@ -1,8 +1,7 @@
|
|||
[gd_scene load_steps=13 format=4 uid="uid://6a6tjohypmmb"]
|
||||
[gd_scene load_steps=12 format=4 uid="uid://6a6tjohypmmb"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://doxmbokehw8ci" path="res://Scripts/GameManager.cs" id="1_t2k72"]
|
||||
[ext_resource type="PackedScene" uid="uid://bghghp5ep4w2j" path="res://Scenes/player.tscn" id="2_v2pdx"]
|
||||
[ext_resource type="PackedScene" uid="uid://crry0rgk7a8sm" path="res://Scenes/Weapons/BaseWeapon.tscn" id="3_3pdf7"]
|
||||
[ext_resource type="Script" uid="uid://mja0rk7n2kln" path="res://Scripts/Resources/MapStartDataResource.cs" id="4_s1vkf"]
|
||||
[ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="5_06rc0"]
|
||||
[ext_resource type="Script" uid="uid://krean0uywtms" path="res://Scripts/TilemapAvoidance.cs" id="6_up0ka"]
|
||||
|
|
@ -23,7 +22,6 @@ PlayerTemplate = ExtResource("2_v2pdx")
|
|||
SpawnMarkers = Dictionary[int, NodePath]({
|
||||
0: NodePath("PlayerStartPosition")
|
||||
})
|
||||
WeaponTemplate = ExtResource("3_3pdf7")
|
||||
MapStartData = SubResource("Resource_6wo78")
|
||||
|
||||
[node name="Tilemaps" type="Node2D" parent="."]
|
||||
|
|
|
|||
|
|
@ -1,8 +1,7 @@
|
|||
[gd_scene load_steps=19 format=4 uid="uid://dqyfnby0t7gu1"]
|
||||
[gd_scene load_steps=18 format=4 uid="uid://dqyfnby0t7gu1"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://doxmbokehw8ci" path="res://Scripts/GameManager.cs" id="1_c3v4x"]
|
||||
[ext_resource type="PackedScene" uid="uid://bghghp5ep4w2j" path="res://Scenes/player.tscn" id="2_w1v1g"]
|
||||
[ext_resource type="PackedScene" uid="uid://crry0rgk7a8sm" path="res://Scenes/Weapons/BaseWeapon.tscn" id="3_b3hxm"]
|
||||
[ext_resource type="Script" uid="uid://mja0rk7n2kln" path="res://Scripts/Resources/MapStartDataResource.cs" id="4_u1i8n"]
|
||||
[ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="5_6314l"]
|
||||
[ext_resource type="Script" uid="uid://krean0uywtms" path="res://Scripts/TilemapAvoidance.cs" id="6_yyg8m"]
|
||||
|
|
@ -32,7 +31,6 @@ PlayerTemplate = ExtResource("2_w1v1g")
|
|||
SpawnMarkers = Dictionary[int, NodePath]({
|
||||
0: NodePath("PlayerStartPosition")
|
||||
})
|
||||
WeaponTemplate = ExtResource("3_b3hxm")
|
||||
MapStartData = SubResource("Resource_6wo78")
|
||||
|
||||
[node name="Tilemaps" type="Node2D" parent="."]
|
||||
|
|
|
|||
|
|
@ -170,6 +170,7 @@ process_material = SubResource("ParticleProcessMaterial_hmqi5")
|
|||
|
||||
[node name="WeaponProvider" type="Node2D" parent="."]
|
||||
script = ExtResource("17_qqcod")
|
||||
WeaponTemplate = ExtResource("9_wblq0")
|
||||
|
||||
[connection signal="area_entered" from="InteractionController" to="." method="_on_interaction_controller_area_entered"]
|
||||
[connection signal="area_exited" from="InteractionController" to="." method="_on_interaction_controller_area_exited"]
|
||||
|
|
|
|||
|
|
@ -1,8 +1,7 @@
|
|||
[gd_scene load_steps=121 format=4 uid="uid://bv451a8wgty4u"]
|
||||
[gd_scene load_steps=120 format=4 uid="uid://bv451a8wgty4u"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://doxmbokehw8ci" path="res://Scripts/GameManager.cs" id="1_8tmoj"]
|
||||
[ext_resource type="PackedScene" uid="uid://bghghp5ep4w2j" path="res://Scenes/player.tscn" id="2_8mh54"]
|
||||
[ext_resource type="PackedScene" uid="uid://crry0rgk7a8sm" path="res://Scenes/Weapons/BaseWeapon.tscn" id="3_2wlhc"]
|
||||
[ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="3_kgs2x"]
|
||||
[ext_resource type="Script" uid="uid://krean0uywtms" path="res://Scripts/TilemapAvoidance.cs" id="4_p1fl3"]
|
||||
[ext_resource type="PackedScene" uid="uid://rp4jhx0tuh24" path="res://Scenes/fragola.tscn" id="4_s7wq6"]
|
||||
|
|
@ -89,7 +88,7 @@ script = ExtResource("7_l32kg")
|
|||
EggIndex = 0
|
||||
StartingEquipment = Array[ExtResource("6_8tdlb")]([ExtResource("6_khabp")])
|
||||
|
||||
[sub_resource type="Shader" id="Shader_jn1m0"]
|
||||
[sub_resource type="Shader" id="Shader_ksslq"]
|
||||
resource_local_to_scene = true
|
||||
code = "shader_type canvas_item;
|
||||
|
||||
|
|
@ -113,9 +112,9 @@ void fragment() {
|
|||
COLOR = color;
|
||||
}"
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_usuub"]
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_jn1m0"]
|
||||
resource_local_to_scene = true
|
||||
shader = SubResource("Shader_jn1m0")
|
||||
shader = SubResource("Shader_ksslq")
|
||||
shader_parameter/blink_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/blink_intensity = 0.0
|
||||
shader_parameter/teleport_progress = 0.0
|
||||
|
|
@ -154,7 +153,7 @@ source = 5
|
|||
[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_81ys3"]
|
||||
input_name = "time"
|
||||
|
||||
[sub_resource type="VisualShader" id="VisualShader_h0jm4"]
|
||||
[sub_resource type="VisualShader" id="VisualShader_usuub"]
|
||||
resource_local_to_scene = true
|
||||
code = "shader_type canvas_item;
|
||||
render_mode blend_mix;
|
||||
|
|
@ -236,11 +235,11 @@ nodes/fragment/11/node = SubResource("VisualShaderNodeFloatOp_own43")
|
|||
nodes/fragment/11/position = Vector2(1360, 480)
|
||||
nodes/fragment/connections = PackedInt32Array(2, 0, 3, 0, 3, 1, 4, 0, 6, 0, 7, 2, 7, 4, 8, 0, 5, 0, 8, 1, 8, 0, 0, 1, 9, 0, 10, 0, 4, 0, 11, 0, 10, 0, 11, 1, 11, 0, 5, 0)
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_oy44o"]
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_h0jm4"]
|
||||
resource_local_to_scene = true
|
||||
shader = SubResource("VisualShader_h0jm4")
|
||||
shader = SubResource("VisualShader_usuub")
|
||||
|
||||
[sub_resource type="Shader" id="Shader_pniyx"]
|
||||
[sub_resource type="Shader" id="Shader_oy44o"]
|
||||
resource_local_to_scene = true
|
||||
code = "shader_type canvas_item;
|
||||
|
||||
|
|
@ -264,15 +263,15 @@ void fragment() {
|
|||
COLOR = color;
|
||||
}"
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_5ews6"]
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_pniyx"]
|
||||
resource_local_to_scene = true
|
||||
shader = SubResource("Shader_pniyx")
|
||||
shader = SubResource("Shader_oy44o")
|
||||
shader_parameter/blink_color = Color(0, 0, 0, 1)
|
||||
shader_parameter/blink_intensity = 0.0
|
||||
shader_parameter/teleport_progress = 0.0
|
||||
shader_parameter/scanline_density = 50.0
|
||||
|
||||
[sub_resource type="VisualShader" id="VisualShader_pqe7f"]
|
||||
[sub_resource type="VisualShader" id="VisualShader_5ews6"]
|
||||
resource_local_to_scene = true
|
||||
code = "shader_type canvas_item;
|
||||
render_mode blend_mix;
|
||||
|
|
@ -354,9 +353,9 @@ nodes/fragment/11/node = SubResource("VisualShaderNodeFloatOp_own43")
|
|||
nodes/fragment/11/position = Vector2(1360, 480)
|
||||
nodes/fragment/connections = PackedInt32Array(2, 0, 3, 0, 3, 1, 4, 0, 6, 0, 7, 2, 7, 4, 8, 0, 5, 0, 8, 1, 8, 0, 0, 1, 9, 0, 10, 0, 4, 0, 11, 0, 10, 0, 11, 1, 11, 0, 5, 0)
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_xof4a"]
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_pqe7f"]
|
||||
resource_local_to_scene = true
|
||||
shader = SubResource("VisualShader_pqe7f")
|
||||
shader = SubResource("VisualShader_5ews6")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_hppa0"]
|
||||
script = ExtResource("40_7qam0")
|
||||
|
|
@ -441,7 +440,7 @@ ActivationType = 0
|
|||
Targets = Array[NodePath]([NodePath("../Rumia")])
|
||||
WaitForCompletion = true
|
||||
|
||||
[sub_resource type="Resource" id="Resource_ati1v"]
|
||||
[sub_resource type="Resource" id="Resource_xof4a"]
|
||||
resource_local_to_scene = true
|
||||
script = ExtResource("49_0si7g")
|
||||
Target = NodePath(".")
|
||||
|
|
@ -476,7 +475,6 @@ SpawnMarkers = Dictionary[int, NodePath]({
|
|||
2: NodePath("Factory Tilemaps/LevelProps/BossDebugTeleporterDestination"),
|
||||
255: NodePath("Factory Tilemaps/Debug Room/DebugRoomStartPosition")
|
||||
})
|
||||
WeaponTemplate = ExtResource("3_2wlhc")
|
||||
StartingEquipment = [ExtResource("4_swym2"), ExtResource("5_nqier")]
|
||||
MapStartData = SubResource("Resource_6sau4")
|
||||
metadata/_edit_lock_ = true
|
||||
|
|
@ -617,13 +615,13 @@ position = Vector2(-779, -550)
|
|||
|
||||
[node name="HorizontalForceField" parent="Factory Tilemaps/Debug Room" instance=ExtResource("66_nxn3h")]
|
||||
position = Vector2(-749, -496)
|
||||
TurnOffMaterial = SubResource("ShaderMaterial_usuub")
|
||||
ActiveMaterial = SubResource("ShaderMaterial_oy44o")
|
||||
TurnOffMaterial = SubResource("ShaderMaterial_jn1m0")
|
||||
ActiveMaterial = SubResource("ShaderMaterial_h0jm4")
|
||||
|
||||
[node name="HorizontalForceField2" parent="Factory Tilemaps/Debug Room" instance=ExtResource("66_nxn3h")]
|
||||
position = Vector2(-735, -532)
|
||||
TurnOffMaterial = SubResource("ShaderMaterial_5ews6")
|
||||
ActiveMaterial = SubResource("ShaderMaterial_xof4a")
|
||||
TurnOffMaterial = SubResource("ShaderMaterial_pniyx")
|
||||
ActiveMaterial = SubResource("ShaderMaterial_pqe7f")
|
||||
|
||||
[node name="ControllabeFairyGuard" parent="Factory Tilemaps/Debug Room" instance=ExtResource("73_ier4h")]
|
||||
position = Vector2(-581, -346)
|
||||
|
|
@ -998,7 +996,7 @@ Events = Array[Object]([SubResource("Resource_068l7"), SubResource("Resource_l3n
|
|||
|
||||
[node name="BossBattleStartScript" parent="Factory Tilemaps/LevelProps" instance=ExtResource("43_kf3qc")]
|
||||
position = Vector2(-1487, -396)
|
||||
Events = Array[Object]([SubResource("Resource_4f4id"), SubResource("Resource_s2o7m"), SubResource("Resource_b1dht"), SubResource("Resource_xrgpy"), SubResource("Resource_ati1v")])
|
||||
Events = Array[Object]([SubResource("Resource_4f4id"), SubResource("Resource_s2o7m"), SubResource("Resource_b1dht"), SubResource("Resource_xrgpy"), SubResource("Resource_xof4a")])
|
||||
|
||||
[node name="Enemy13" parent="Factory Tilemaps/LevelProps" instance=ExtResource("47_u1ve6")]
|
||||
position = Vector2(-1657, -788)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
using System;
|
||||
using System.Linq;
|
||||
using Cirno.Scripts.Resources;
|
||||
using Godot;
|
||||
using Godot.Collections;
|
||||
|
||||
|
|
@ -7,6 +8,7 @@ namespace Cirno.Scripts.Components.Actors;
|
|||
|
||||
public partial class PlayerWeaponProvider : Node2D
|
||||
{
|
||||
[Export] public PackedScene WeaponTemplate { get; private set; }
|
||||
public Array<Weapon> EquippedWeapons { get; set; } = new Array<Weapon>();
|
||||
public int CurrentWeaponIndex { get; set; } = 0;
|
||||
|
||||
|
|
@ -21,6 +23,16 @@ public partial class PlayerWeaponProvider : Node2D
|
|||
public override void _Ready()
|
||||
{
|
||||
_inventoryManager = this.GetInventoryManager();
|
||||
|
||||
_inventoryManager.WeaponEquip += this.EquipWeapon;
|
||||
|
||||
_inventoryManager.ItemAdded += (LootItem item, int amount) =>
|
||||
{
|
||||
if (item.Item == ItemTypes.Weapon)
|
||||
{
|
||||
SpawnPlayerWeapon(item);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public void Init(PlayerMovement parent)
|
||||
|
|
@ -81,4 +93,23 @@ public partial class PlayerWeaponProvider : Node2D
|
|||
EquippedWeapon.Shoot();
|
||||
}
|
||||
|
||||
private void SpawnPlayerWeapon(LootItem startingItem)
|
||||
{
|
||||
if (WeaponTemplate == null)
|
||||
{
|
||||
GD.Print("Could not spawn weapon because template is null");
|
||||
return;
|
||||
}
|
||||
|
||||
var weapon = this.CreateSibling<Weapon>(WeaponTemplate);
|
||||
weapon.WeaponData = startingItem.WeaponData;
|
||||
|
||||
this.AddWeapon(weapon);
|
||||
|
||||
if (this.EquippedWeapon == null)
|
||||
{
|
||||
this.EquipWeapon(weapon);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,8 +28,6 @@ public partial class GameManager : Node2D
|
|||
|
||||
//[Export] public Marker2D PlayerSpawnMarker { get; set; }
|
||||
|
||||
[Export] public PackedScene WeaponTemplate { get; private set; }
|
||||
|
||||
[Export] public Array<LootItem> StartingEquipment { get; private set; } = new();
|
||||
|
||||
private InventoryManager _inventoryManager { get; set; }
|
||||
|
|
@ -150,21 +148,6 @@ public partial class GameManager : Node2D
|
|||
return;
|
||||
}
|
||||
|
||||
if (_inventoryManager is not null)
|
||||
{
|
||||
_inventoryManager.ItemAdded += (LootItem item, int amount) =>
|
||||
{
|
||||
if (item.Item == ItemTypes.Weapon)
|
||||
{
|
||||
SpawnPlayerWeapon(item);
|
||||
}
|
||||
};
|
||||
|
||||
_inventoryManager.WeaponEquip += _player.EquipWeapon;
|
||||
|
||||
_inventoryManager.ItemUsed += _player.UseItem;
|
||||
}
|
||||
|
||||
// Wait before the player is fully initialized before spawning weapons on it
|
||||
CallDeferred(MethodName.SpawnWeapons);
|
||||
}
|
||||
|
|
@ -252,25 +235,6 @@ public partial class GameManager : Node2D
|
|||
}
|
||||
}
|
||||
|
||||
private void SpawnPlayerWeapon(LootItem startingItem)
|
||||
{
|
||||
if (WeaponTemplate == null)
|
||||
{
|
||||
GD.Print("Could not spawn weapon because template is null");
|
||||
return;
|
||||
}
|
||||
|
||||
var weapon = _player.CreateChild<Weapon>(WeaponTemplate);
|
||||
weapon.WeaponData = startingItem.WeaponData;
|
||||
|
||||
_player.AddWeapon(weapon);
|
||||
|
||||
if (_player.EquippedWeapon == null)
|
||||
{
|
||||
_player.EquipWeapon(weapon);
|
||||
}
|
||||
}
|
||||
|
||||
private void SpawnBulletsContainer()
|
||||
{
|
||||
_bulletsContainer = new Node2D();
|
||||
|
|
|
|||
|
|
@ -163,6 +163,8 @@ public partial class PlayerMovement : CharacterBody2D, IDestructible
|
|||
_selector.Visible = false;
|
||||
}
|
||||
|
||||
_inventoryManager.ItemUsed += this.UseItem;
|
||||
|
||||
_lastCheckPointPosition = GlobalPosition;
|
||||
|
||||
_ = UnTeleport();
|
||||
|
|
@ -260,16 +262,6 @@ public partial class PlayerMovement : CharacterBody2D, IDestructible
|
|||
_weaponProvider.EquipWeapon(weapon);
|
||||
}
|
||||
|
||||
public void NextWeapon()
|
||||
{
|
||||
_weaponProvider.NextWeapon();
|
||||
}
|
||||
|
||||
public void PreviousWeapon()
|
||||
{
|
||||
_weaponProvider.PreviousWeapon();
|
||||
}
|
||||
|
||||
private void FindInteractable()
|
||||
{
|
||||
var selected = _selector.SelectedInteractable;
|
||||
|
|
@ -394,12 +386,12 @@ public partial class PlayerMovement : CharacterBody2D, IDestructible
|
|||
|
||||
if (Input.IsActionJustPressed(_nextWeaponActionName))
|
||||
{
|
||||
NextWeapon();
|
||||
_weaponProvider.NextWeapon();
|
||||
}
|
||||
|
||||
if (Input.IsActionJustPressed(_previousWeaponActionName))
|
||||
{
|
||||
PreviousWeapon();
|
||||
_weaponProvider.PreviousWeapon();
|
||||
}
|
||||
|
||||
_crosshair.Position = CalculateCrosshairPosition();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue