Fixed Pickup behaviour
This commit is contained in:
+16
-5
@@ -1,13 +1,17 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://dbd1niu3tp8y5"]
|
||||
[gd_scene load_steps=7 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="Texture2D" uid="uid://duaideiajsu8r" path="res://art/Characters/Vesna/babushka concept art vesna.png" id="2_3trg2"]
|
||||
[ext_resource type="Script" uid="uid://r5tahuqvbucy" path="res://scripts/CSharp/Common/Camera/CameraPivot.cs" id="3_3trg2"]
|
||||
[ext_resource type="Texture2D" uid="uid://c4ggew55w0icj" path="res://art/farm/farming/farmobjekte/harke.png" id="4_kngqo"]
|
||||
[ext_resource type="Script" uid="uid://b1sscdr4ptec8" path="res://scripts/CSharp/Common/Farming/FarmingControls.cs" id="4_q5t2e"]
|
||||
|
||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_1vdrh"]
|
||||
height = 1.5
|
||||
|
||||
[node name="Player3d" type="Node3D"]
|
||||
[node name="Player3d" type="Node3D" node_paths=PackedStringArray("_hoeSprite")]
|
||||
script = ExtResource("4_q5t2e")
|
||||
_hoeSprite = NodePath("CharacterBody3D/Farming/Hoe")
|
||||
|
||||
[node name="CharacterBody3D" type="CharacterBody3D" parent="." node_paths=PackedStringArray("_camera", "_frontSprite", "_sideSprite")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.1, 0)
|
||||
@@ -23,7 +27,7 @@ _sideSprite = NodePath("SideSprite")
|
||||
transform = Transform3D(0.15, 0, 0, 0, 0.15, 0, 0, 0, 0.15, 0, 0, 0)
|
||||
billboard = 1
|
||||
shaded = true
|
||||
render_priority = 100
|
||||
render_priority = 50
|
||||
texture = ExtResource("2_3trg2")
|
||||
region_enabled = true
|
||||
region_rect = Rect2(52, 20, 648, 1175)
|
||||
@@ -33,7 +37,7 @@ transform = Transform3D(0.15, 0, 0, 0, 0.15, 0, 0, 0, 0.15, 0, 0, 0)
|
||||
visible = false
|
||||
billboard = 1
|
||||
shaded = true
|
||||
render_priority = 100
|
||||
render_priority = 50
|
||||
texture = ExtResource("2_3trg2")
|
||||
region_enabled = true
|
||||
region_rect = Rect2(803, 17, 663, 1161)
|
||||
@@ -53,4 +57,11 @@ _subPivot = NodePath("SubPivot")
|
||||
transform = Transform3D(1, 0, 0, 0, 0.933581, 0.358368, 0, -0.358368, 0.933581, 0, 1, 1.734)
|
||||
fov = 70.0
|
||||
|
||||
[node name="FarmingMechanic" type="Node3D" parent="CharacterBody3D"]
|
||||
[node name="Farming" type="Node3D" parent="CharacterBody3D"]
|
||||
|
||||
[node name="Hoe" type="Sprite3D" parent="CharacterBody3D/Farming"]
|
||||
visible = false
|
||||
pixel_size = 0.002
|
||||
billboard = 1
|
||||
render_priority = 51
|
||||
texture = ExtResource("4_kngqo")
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
[sub_resource type="SphereShape3D" id="SphereShape3D_i8sim"]
|
||||
resource_local_to_scene = true
|
||||
radius = 2.0
|
||||
|
||||
[node name="InteractionArea" type="Node3D" node_paths=PackedStringArray("_area", "_label")]
|
||||
script = ExtResource("1_b15wn")
|
||||
@@ -23,9 +24,11 @@ pixel_size = 0.01
|
||||
billboard = 1
|
||||
no_depth_test = true
|
||||
fixed_size = true
|
||||
render_priority = 100
|
||||
outline_render_priority = 99
|
||||
text = "[E]"
|
||||
font_size = 60
|
||||
outline_size = 10
|
||||
font_size = 20
|
||||
outline_size = 8
|
||||
|
||||
[connection signal="body_entered" from="Area3D" to="." method="OnPlayerEntered"]
|
||||
[connection signal="body_exited" from="Area3D" to="." method="OnPlayerExited"]
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
shader_type spatial;
|
||||
|
||||
void vertex() {
|
||||
// Called for every vertex the material is visible on.
|
||||
}
|
||||
|
||||
void fragment() {
|
||||
// Called for every pixel the material is visible on.
|
||||
}
|
||||
|
||||
//void light() {
|
||||
// // Called for every pixel for every light affecting the material.
|
||||
// // Uncomment to replace the default light processing function with this one.
|
||||
//}
|
||||
@@ -0,0 +1 @@
|
||||
uid://dn6jmboabfrb2
|
||||
@@ -0,0 +1,40 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://cf0jpuio8tgim"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://v34pl0nlp4x" path="res://scripts/CSharp/Common/SpriteSwitcher.cs" id="1_scmhv"]
|
||||
[ext_resource type="Texture2D" uid="uid://c4ggew55w0icj" path="res://art/farm/farming/farmobjekte/harke.png" id="2_jv400"]
|
||||
|
||||
[sub_resource type="SphereMesh" id="SphereMesh_0ptl4"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_scmhv"]
|
||||
transparency = 1
|
||||
blend_mode = 3
|
||||
emission_enabled = true
|
||||
emission = Color(1, 1, 1, 1)
|
||||
|
||||
[node name="SpriteSwitcher" type="Node3D" node_paths=PackedStringArray("_trueSprite", "_falseSprite")]
|
||||
script = ExtResource("1_scmhv")
|
||||
_trueSprite = NodePath("Hoe on")
|
||||
_falseSprite = NodePath("Hoe off")
|
||||
|
||||
[node name="Hoe on" type="Sprite3D" parent="."]
|
||||
modulate = Color(0, 0.996078, 0, 1)
|
||||
pixel_size = 0.001
|
||||
billboard = 1
|
||||
texture = ExtResource("2_jv400")
|
||||
region_rect = Rect2(484, 143, 365, 1317)
|
||||
|
||||
[node name="Hoe off" type="Sprite3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, -8.47033e-22, 0, 8.47033e-22, 1, 0.106585, 0, 0.0173626)
|
||||
visible = false
|
||||
modulate = Color(1, 0, 0, 1)
|
||||
pixel_size = 0.001
|
||||
billboard = 1
|
||||
texture = ExtResource("2_jv400")
|
||||
region_rect = Rect2(421, 0, 539, 965)
|
||||
|
||||
[node name="CSGMesh3D" type="CSGMesh3D" parent="."]
|
||||
transparency = 0.5
|
||||
cast_shadow = 0
|
||||
calculate_tangents = false
|
||||
mesh = SubResource("SphereMesh_0ptl4")
|
||||
material = SubResource("StandardMaterial3D_scmhv")
|
||||
@@ -5,8 +5,7 @@
|
||||
[ext_resource type="Texture2D" uid="uid://lvhbicmwqab5" path="res://art/farm/tilable grounds/böden/fruchtbarer wilder trockender boden.png" id="3_0ptl4"]
|
||||
[ext_resource type="PackedScene" uid="uid://bjhj1wa5olwcu" path="res://prefabs/farming/base_plant.tscn" id="3_oyw0x"]
|
||||
[ext_resource type="PackedScene" uid="uid://ob04y3syvo0e" path="res://prefabs/interaction_area.tscn" id="4_r4sre"]
|
||||
[ext_resource type="Texture2D" uid="uid://c4ggew55w0icj" path="res://art/farm/farming/farmobjekte/harke.png" id="5_0ptl4"]
|
||||
[ext_resource type="Script" uid="uid://v34pl0nlp4x" path="res://scripts/CSharp/Common/SpriteSwitcher.cs" id="6_jg3xi"]
|
||||
[ext_resource type="PackedScene" uid="uid://cf0jpuio8tgim" path="res://prefabs/interactions/sprite_switcher.tscn" id="6_r4sre"]
|
||||
|
||||
[sub_resource type="PlaneMesh" id="PlaneMesh_8yprl"]
|
||||
|
||||
@@ -16,6 +15,10 @@ albedo_color = Color(0.505882, 0.588235, 0.494118, 1)
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_t58di"]
|
||||
size = Vector3(2.01563, 0.160522, 2.00824)
|
||||
|
||||
[sub_resource type="SphereShape3D" id="SphereShape3D_0ptl4"]
|
||||
resource_local_to_scene = true
|
||||
radius = 1.0
|
||||
|
||||
[node name="SceneFarmVesna" type="Node3D"]
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
||||
@@ -45,26 +48,14 @@ transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0, 0, 0)
|
||||
top_level = true
|
||||
|
||||
[node name="HoePickup" parent="." instance=ExtResource("4_r4sre")]
|
||||
transform = Transform3D(0.5, 0, 0, 0, 0.5, -5.32907e-15, 0, 5.32907e-15, 0.5, -4.32699, 1.8523, -3.4472)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, -1.06581e-14, 0, 1.06581e-14, 1, -4.327, 1, -3.447)
|
||||
|
||||
[node name="Hoe on" type="Sprite3D" parent="HoePickup"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.138896, 0)
|
||||
modulate = Color(0, 0.996078, 0, 1)
|
||||
billboard = 1
|
||||
texture = ExtResource("5_0ptl4")
|
||||
region_rect = Rect2(484, 143, 365, 1317)
|
||||
[node name="CollisionShape3D" parent="HoePickup/Area3D" index="0"]
|
||||
shape = SubResource("SphereShape3D_0ptl4")
|
||||
|
||||
[node name="Hoe off" type="Sprite3D" parent="HoePickup"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.138896, 0)
|
||||
visible = false
|
||||
modulate = Color(1, 0, 0, 1)
|
||||
billboard = 1
|
||||
texture = ExtResource("5_0ptl4")
|
||||
region_rect = Rect2(421, 0, 539, 965)
|
||||
[node name="SpriteSwitcher Hoe" parent="HoePickup" instance=ExtResource("6_r4sre")]
|
||||
|
||||
[node name="SpriteSwitcher" type="Node3D" parent="HoePickup" node_paths=PackedStringArray("_TrueSprite", "_FalseSprite")]
|
||||
script = ExtResource("6_jg3xi")
|
||||
_TrueSprite = NodePath("../Hoe on")
|
||||
_FalseSprite = NodePath("../Hoe off")
|
||||
[connection signal="Interacted" from="HoePickup" to="HoePickup/SpriteSwitcher Hoe" method="SwitchState"]
|
||||
[connection signal="Switch" from="HoePickup/SpriteSwitcher Hoe" to="Player3d" method="ActivateHoe"]
|
||||
|
||||
[connection signal="Interacted" from="HoePickup" to="HoePickup/SpriteSwitcher" method="SwitchState"]
|
||||
[editable path="HoePickup"]
|
||||
|
||||
@@ -4,5 +4,14 @@ namespace Babushka.scripts.CSharp.Common.Farming;
|
||||
|
||||
public partial class FarmingControls : Node3D
|
||||
{
|
||||
[Export] private Sprite3D _hoeSprite;
|
||||
|
||||
private bool _hoeInHand = false;
|
||||
|
||||
public void ActivateHoe(bool activate)
|
||||
{
|
||||
_hoeSprite.Visible = !activate;
|
||||
_hoeInHand = !activate;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -7,10 +7,13 @@ namespace Babushka.scripts.CSharp.Common;
|
||||
/// </summary>
|
||||
public partial class SpriteSwitcher : Node3D
|
||||
{
|
||||
[Export] private Sprite3D _TrueSprite;
|
||||
[Export] private Sprite3D _FalseSprite;
|
||||
[Export] private Sprite3D _trueSprite;
|
||||
[Export] private Sprite3D _falseSprite;
|
||||
[Export] private bool _state = true;
|
||||
|
||||
[Signal]
|
||||
public delegate void SwitchEventHandler(bool state);
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
SetState();
|
||||
@@ -19,18 +22,15 @@ public partial class SpriteSwitcher : Node3D
|
||||
public void SwitchState()
|
||||
{
|
||||
_state = !_state;
|
||||
EmitSignal(SignalName.Switch, _state);
|
||||
SetState();
|
||||
}
|
||||
|
||||
private void SetState()
|
||||
{
|
||||
if (_state)
|
||||
{
|
||||
_TrueSprite.Visible = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
_FalseSprite.Visible = false;
|
||||
}
|
||||
if(_trueSprite != null)
|
||||
_trueSprite.Visible = _state;
|
||||
if(_falseSprite != null)
|
||||
_falseSprite.Visible = !_state;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user