Separated farming controls from vesna behvaiour and adjusted the setup

pull/3/head
kziolkowski 9 months ago
parent 6016f1cf38
commit ce5d2b65d3

@ -1,6 +1,7 @@
[gd_scene load_steps=302 format=3 uid="uid://dbd1niu3tp8y5"] [gd_scene load_steps=303 format=3 uid="uid://dbd1niu3tp8y5"]
[ext_resource type="Script" uid="uid://b4ugrget2x6lb" path="res://scripts/CSharp/Common/CharacterControls/Player3D.cs" id="1_3trg2"] [ext_resource type="Script" uid="uid://b4ugrget2x6lb" path="res://scripts/CSharp/Common/CharacterControls/Player3D.cs" id="1_3trg2"]
[ext_resource type="Script" uid="uid://bblprbhnbyv77" path="res://scripts/CSharp/Common/CharacterControls/VesnaBehaviour.cs" id="1_pkl5l"]
[ext_resource type="Texture2D" uid="uid://duaideiajsu8r" path="res://art/characters/Vesna/babushka concept art vesna.png" id="2_3trg2"] [ext_resource type="Texture2D" uid="uid://duaideiajsu8r" path="res://art/characters/Vesna/babushka concept art vesna.png" id="2_3trg2"]
[ext_resource type="PackedScene" uid="uid://biwd3jj65qrlh" path="res://prefabs/farming/base_field.tscn" id="2_oq5hi"] [ext_resource type="PackedScene" uid="uid://biwd3jj65qrlh" path="res://prefabs/farming/base_field.tscn" id="2_oq5hi"]
[ext_resource type="Script" uid="uid://r5tahuqvbucy" path="res://scripts/CSharp/Common/Camera/CameraPivot.cs" id="3_3trg2"] [ext_resource type="Script" uid="uid://r5tahuqvbucy" path="res://scripts/CSharp/Common/Camera/CameraPivot.cs" id="3_3trg2"]
@ -1210,11 +1211,9 @@ animations = [{
"speed": 25.0 "speed": 25.0
}] }]
[node name="Player3d" type="Node3D" node_paths=PackedStringArray("_hoeSprite", "_movingPlayer")] [node name="Player3d" type="Node3D" node_paths=PackedStringArray("_farmingControls")]
script = ExtResource("4_q5t2e") script = ExtResource("1_pkl5l")
_hoeSprite = NodePath("CharacterBody3D/Farming/Hoe") _farmingControls = NodePath("FarmingControls")
_fieldPrefab = ExtResource("2_oq5hi")
_movingPlayer = NodePath("CharacterBody3D")
[node name="CharacterBody3D" type="CharacterBody3D" parent="." node_paths=PackedStringArray("_camera", "_frontSpritesAnimated", "_sideSpritesAnimated", "_backSpritesAnimated")] [node name="CharacterBody3D" type="CharacterBody3D" parent="." node_paths=PackedStringArray("_camera", "_frontSpritesAnimated", "_sideSpritesAnimated", "_backSpritesAnimated")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.000654221, 0.102765, -0.00300497) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.000654221, 0.102765, -0.00300497)
@ -1330,3 +1329,10 @@ render_priority = 50
sprite_frames = SubResource("SpriteFrames_4q8ml") sprite_frames = SubResource("SpriteFrames_4q8ml")
autoplay = "default" autoplay = "default"
frame_progress = 0.481133 frame_progress = 0.481133
[node name="FarmingControls" type="Node3D" parent="." node_paths=PackedStringArray("_hoeSprite", "_movingPlayer")]
script = ExtResource("4_q5t2e")
_hoeSprite = NodePath("../CharacterBody3D/Farming/Hoe")
_fieldPrefab = ExtResource("2_oq5hi")
_movingPlayer = NodePath("../CharacterBody3D")
metadata/_custom_type_script = "uid://b1sscdr4ptec8"

@ -0,0 +1,25 @@
using Babushka.scripts.CSharp.Common.Farming;
using Godot;
namespace Babushka.scripts.CSharp.Common.CharacterControls;
public partial class VesnaBehaviour : Node
{
[ExportGroup("Farming")]
[Export] private Node _fieldParent;
[Export] private FarmingControls _farmingControls;
public override void _Ready()
{
_farmingControls.FieldParent = _fieldParent;
}
#region Farming
public void ActivateHoe(bool activate)
{
_farmingControls.ActivateHoe(activate);
}
#endregion
}

@ -2,13 +2,15 @@ using Godot;
namespace Babushka.scripts.CSharp.Common.Farming; namespace Babushka.scripts.CSharp.Common.Farming;
[GlobalClass]
public partial class FarmingControls : Node3D public partial class FarmingControls : Node3D
{ {
[Export] private Sprite3D _hoeSprite; [Export] private Sprite3D _hoeSprite;
[Export] private PackedScene _fieldPrefab; [Export] private PackedScene _fieldPrefab;
[Export] private Node _fieldParent;
[Export] private Node3D _movingPlayer; [Export] private Node3D _movingPlayer;
public Node FieldParent;
private bool _hoeInHand = false; private bool _hoeInHand = false;
public void ActivateHoe(bool activate) public void ActivateHoe(bool activate)
{ {
@ -26,7 +28,7 @@ public partial class FarmingControls : Node3D
private void MakeField() private void MakeField()
{ {
if(_fieldParent == null || _fieldPrefab == null) if(FieldParent == null || _fieldPrefab == null)
return; return;
Node fieldInstance = _fieldPrefab.Instantiate(); Node fieldInstance = _fieldPrefab.Instantiate();
@ -36,7 +38,7 @@ public partial class FarmingControls : Node3D
field3d.Position = _movingPlayer.GlobalPosition; field3d.Position = _movingPlayer.GlobalPosition;
} }
_fieldParent.AddChild(fieldInstance); FieldParent.AddChild(fieldInstance);
} }

Loading…
Cancel
Save