Refine casting, rod feedback, and withdrawal
This commit is contained in:
parent
bba93eb3e5
commit
e3d86b1cb8
7 changed files with 700 additions and 12 deletions
|
|
@ -31,6 +31,9 @@ const FishInventoryType = preload("res://inventory/fish_inventory.gd")
|
|||
@onready var _spring_arm: SpringArm3D = %SpringArm3D
|
||||
@onready var _camera: Camera3D = %Camera3D
|
||||
@onready var inventory: FishInventoryType = %Inventory
|
||||
@onready var _cast_origin: Marker3D = %CastOrigin
|
||||
@onready var _fishing_rod: Node3D = %FishingRod
|
||||
@onready var _fishing_rod_tip: Marker3D = %FishingRodTip
|
||||
|
||||
var _gravity: float = float(ProjectSettings.get_setting("physics/3d/default_gravity"))
|
||||
var _camera_dragging: bool = false
|
||||
|
|
@ -171,3 +174,26 @@ func set_movement_enabled(enabled: bool) -> void:
|
|||
if not enabled:
|
||||
velocity.x = 0.0
|
||||
velocity.z = 0.0
|
||||
|
||||
|
||||
func get_fishing_rod_tip() -> Marker3D:
|
||||
return _fishing_rod_tip
|
||||
|
||||
|
||||
func get_fishing_rod() -> Node3D:
|
||||
return _fishing_rod
|
||||
|
||||
|
||||
func get_cast_origin_position() -> Vector3:
|
||||
return _cast_origin.global_position
|
||||
|
||||
|
||||
func get_facing_direction() -> Vector3:
|
||||
var facing: Vector3 = -_visuals.global_basis.z
|
||||
facing.y = 0.0
|
||||
if facing.is_zero_approx():
|
||||
facing = -global_basis.z
|
||||
facing.y = 0.0
|
||||
if facing.is_zero_approx():
|
||||
return Vector3.FORWARD
|
||||
return facing.normalized()
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
[gd_scene load_steps=8 format=3]
|
||||
[gd_scene load_steps=10 format=3]
|
||||
|
||||
[ext_resource type="Script" path="res://player/player.gd" id="1_script"]
|
||||
[ext_resource type="Script" path="res://inventory/fish_inventory.gd" id="2_inventory"]
|
||||
|
|
@ -20,6 +20,15 @@ size = Vector3(0.24, 0.2, 0.4)
|
|||
[sub_resource type="StandardMaterial3D" id="FacingMarkerMaterial"]
|
||||
albedo_color = Color(0.12, 0.18, 0.28, 1)
|
||||
|
||||
[sub_resource type="CylinderMesh" id="FishingRodMesh"]
|
||||
top_radius = 0.025
|
||||
bottom_radius = 0.045
|
||||
height = 1.2
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="FishingRodMaterial"]
|
||||
albedo_color = Color(0.22, 0.12, 0.06, 1)
|
||||
roughness = 0.8
|
||||
|
||||
[node name="Player" type="CharacterBody3D"]
|
||||
collision_layer = 2
|
||||
collision_mask = 1
|
||||
|
|
@ -42,6 +51,24 @@ position = Vector3(0, 1.0, -0.55)
|
|||
mesh = SubResource("FacingMarkerMesh")
|
||||
material_override = SubResource("FacingMarkerMaterial")
|
||||
|
||||
[node name="FishingRod" type="Node3D" parent="Visuals"]
|
||||
unique_name_in_owner = true
|
||||
position = Vector3(0.42, 1.05, -0.2)
|
||||
rotation = Vector3(-0.436332, 0, 0)
|
||||
|
||||
[node name="RodMesh" type="MeshInstance3D" parent="Visuals/FishingRod"]
|
||||
position = Vector3(0, 0.6, 0)
|
||||
mesh = SubResource("FishingRodMesh")
|
||||
material_override = SubResource("FishingRodMaterial")
|
||||
|
||||
[node name="FishingRodTip" type="Marker3D" parent="Visuals/FishingRod"]
|
||||
unique_name_in_owner = true
|
||||
position = Vector3(0, 1.2, 0)
|
||||
|
||||
[node name="CastOrigin" type="Marker3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
position = Vector3(0, 0.9, 0)
|
||||
|
||||
[node name="Inventory" type="Node" parent="."]
|
||||
unique_name_in_owner = true
|
||||
script = ExtResource("2_inventory")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue