move directory

This commit is contained in:
AleaJactaEst 2022-02-15 21:41:14 +01:00
parent 1b44ccd206
commit e5c01d4215
12 changed files with 410 additions and 56 deletions

File diff suppressed because one or more lines are too long

View file

@ -9,3 +9,13 @@ func _on_underwater_body_entered(body):
func _on_underwater_body_exited(body):
if body.has_method("exit_underwater"):
body.exit_underwater()
func _on_area_3d_body_entered(body):
if body.has_method("enter_boat"):
body.enter_boat($delta_boat)
func _on_area_3d_body_exited(body):
if body.has_method("exit_boat"):
body.exit_boat($delta_boat)

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=14 format=3 uid="uid://bkcvep4ijijmc"]
[gd_scene load_steps=15 format=3 uid="uid://bkcvep4ijijmc"]
[ext_resource type="Shader" path="res://maps/shaders/water.gdshader" id="1_j5guc"]
[ext_resource type="Script" path="res://maps/water-zone.gd" id="1_s4mf8"]
@ -8,6 +8,9 @@
[ext_resource type="Texture2D" uid="uid://b8tu2ncerig3r" path="res://maps/textures/water_normal_b.png" id="4_gohr5"]
[ext_resource type="Texture2D" uid="uid://dv1ywlb7inqyu" path="res://maps/textures/water_uv_sampler.png" id="5_uyeqp"]
[sub_resource type="SphereShape3D" id="SphereShape3D_08c7l"]
radius = 2.0
[sub_resource type="Texture2DArray" id="Texture2DArray_um4oc"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_tfcq0"]
@ -71,6 +74,12 @@ script = ExtResource( "1_s4mf8" )
[node name="delta_boat" parent="." instance=ExtResource( "2_824w2" )]
transform = Transform3D(-0.870957, 0, -0.49136, 0, 1, 0, 0.49136, 0, -0.870957, 7.46743, -1.07318, 12.6543)
[node name="Area3D" type="Area3D" parent="delta_boat"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
[node name="CollisionShape3D" type="CollisionShape3D" parent="delta_boat/Area3D"]
shape = SubResource( "SphereShape3D_08c7l" )
[node name="water-level" type="MeshInstance3D" parent="."]
transform = Transform3D(20, 0, 0, 0, 1, 0, 0, 0, 20, -0.242517, -1.07318, 0.480083)
mesh = SubResource( "PlaneMesh_uh76x" )
@ -89,5 +98,7 @@ transform = Transform3D(20, 0, 0, 0, 3, 0, 0, 0, 20, 0, -3.96834, 0)
visible = false
mesh = SubResource( "BoxMesh_1ovik" )
[connection signal="body_entered" from="delta_boat/Area3D" to="." method="_on_area_3d_body_entered"]
[connection signal="body_exited" from="delta_boat/Area3D" to="." method="_on_area_3d_body_exited"]
[connection signal="body_entered" from="underwater" to="." method="_on_underwater_body_entered"]
[connection signal="body_exited" from="underwater" to="." method="_on_underwater_body_exited"]

View file

@ -35,7 +35,7 @@ func _ready() -> void:
func _process(_delta):
if not camera.is_current():
if !weakref(camera).get_ref() or not camera.is_current():
# If the camera we have isn't the current one, get the current camera.
camera = get_viewport().get_camera_3d()

View file

@ -5,53 +5,81 @@
[node name="character" instance=ExtResource( "1_fjis3" )]
[node name="Skeleton3D" parent="char_grp/rig" index="0"]
bones/2/position = Vector3(-0.00506478, 0.466326, 0.942895)
bones/3/rotation = Quaternion(-0.133785, -0.0316834, 0.071252, 0.987938)
bones/5/position = Vector3(-0.218553, 0.126083, 0.922158)
bones/5/rotation = Quaternion(-0.715018, 0.0661517, 0.662421, 0.213475)
bones/6/rotation = Quaternion(-1.3178e-07, 0.0114362, 3.58596e-07, 0.999935)
bones/10/position = Vector3(-0.00191097, -0.0125695, 0.857793)
bones/10/rotation = Quaternion(0.00623195, 0.99891, -0.0462335, 0.00168693)
bones/11/rotation = Quaternion(-0.167316, 0.020861, -0.00928351, 0.985639)
bones/12/rotation = Quaternion(0.006424, 0.0132741, -0.00297561, 0.999887)
bones/16/rotation = Quaternion(-0.656904, 0.253208, 0.332021, 0.627793)
bones/17/rotation = Quaternion(-0.509886, -0.0544441, 0.172774, 0.840953)
bones/21/rotation = Quaternion(-0.575522, -0.37039, -0.451503, 0.572477)
bones/23/rotation = Quaternion(-0.492885, 0.0813709, -0.0822871, 0.862364)
bones/26/rotation = Quaternion(-0.029083, 0.00179413, -0.0257357, 0.999244)
bones/35/rotation = Quaternion(0.103596, -0.0863059, -0.0483063, 0.98969)
bones/36/rotation = Quaternion(0.039159, -0.0748465, 0.26351, 0.960951)
bones/38/rotation = Quaternion(0.281259, 0.566062, -0.451518, 0.629761)
bones/39/rotation = Quaternion(0.00479683, 0.989189, 0.146566, 0.000713159)
bones/40/rotation = Quaternion(0.107401, -3.18739e-08, -0.0391236, 0.993446)
bones/46/rotation = Quaternion(0.214792, 0.222058, 0.00962893, 0.951032)
bones/47/rotation = Quaternion(0.0335214, 0.0695326, -0.186123, 0.97949)
bones/49/rotation = Quaternion(0.248496, -0.66888, 0.30841, 0.629073)
bones/50/rotation = Quaternion(-0.00467455, 0.994189, 0.107551, 0.000154286)
bones/51/rotation = Quaternion(0.211355, -2.09798e-08, -0.0394617, 0.976612)
bones/54/position = Vector3(0.196354, 0.122889, 0.914004)
bones/54/rotation = Quaternion(-0.416081, 0.00519037, -0.872079, 0.257542)
bones/55/rotation = Quaternion(-0.179861, -0.15027, -0.0187863, 0.971965)
bones/96/position = Vector3(0.224384, -0.433829, 0.887285)
bones/96/rotation = Quaternion(-0.373285, -0.213196, -0.902139, 0.0367621)
bones/97/rotation = Quaternion(9.63929e-08, -0.0209701, -1.19635e-07, 0.99978)
bones/101/position = Vector3(0.196354, 0.122889, 0.914004)
bones/101/rotation = Quaternion(-0.416081, 0.0051903, -0.872079, 0.257542)
bones/104/rotation = Quaternion(-2.77398e-07, -0.152845, -2.43311e-07, 0.98825)
bones/106/position = Vector3(-0.170355, 0.239115, 0.925624)
bones/106/rotation = Quaternion(-0.7052, 0.13406, 0.68003, 0.149266)
bones/109/position = Vector3(0.135571, -0.235057, 0.881648)
bones/109/rotation = Quaternion(-0.46927, -0.111662, -0.857984, 0.17658)
bones/112/position = Vector3(-0.158349, -0.451938, 0.808648)
bones/112/rotation = Quaternion(0.509246, -0.191365, -0.838008, 0.042307)
bones/115/rotation = Quaternion(2.14026e-08, 0.0120989, -5.34386e-08, 0.999927)
bones/117/position = Vector3(-0.218554, 0.126083, 0.922158)
bones/117/rotation = Quaternion(-0.715018, 0.0661503, 0.662421, 0.213473)
bones/118/rotation = Quaternion(-0.0306712, 0.0114382, -0.00100564, 0.999464)
bones/159/position = Vector3(-0.10482, -0.243509, 0.842137)
bones/159/rotation = Quaternion(-0.600852, 0.0137189, 0.785812, 0.145904)
bones/162/position = Vector3(0.150024, 0.235589, 0.930238)
bones/162/rotation = Quaternion(-0.415601, -0.0206444, -0.886383, 0.202918)
bones/2/position = Vector3(-0.0168953, 0.508946, 0.0291032)
bones/3/rotation = Quaternion(0.0770252, 0.0061187, -0.0212199, 0.996785)
bones/5/position = Vector3(-0.338156, 0.447438, -0.124041)
bones/5/rotation = Quaternion(-0.307262, -0.314094, -0.387365, 0.810484)
bones/6/rotation = Quaternion(-1.33212e-07, 0.587936, 2.74967e-07, 0.808907)
bones/10/position = Vector3(0.00813095, 0.0408708, -0.108271)
bones/10/rotation = Quaternion(-0.0316695, 0.99443, 0.0903084, 0.0441596)
bones/11/rotation = Quaternion(-0.0554995, 0.082172, -0.0341149, 0.994487)
bones/12/rotation = Quaternion(-0.00305444, 0.025317, 0.0780189, 0.996626)
bones/16/rotation = Quaternion(-0.556256, 0.383694, 0.301203, 0.672781)
bones/17/rotation = Quaternion(-0.141952, 0.0631606, 0.424369, 0.89206)
bones/21/rotation = Quaternion(-0.545859, -0.416195, -0.418758, 0.594526)
bones/23/rotation = Quaternion(-0.0614123, -0.0911368, -0.507933, 0.854358)
bones/26/rotation = Quaternion(-0.092396, -0.012508, -0.016474, 0.995508)
bones/35/rotation = Quaternion(0.213681, -0.169249, -0.44672, 0.852136)
bones/36/rotation = Quaternion(0.0247409, -0.037012, 0.820981, 0.569217)
bones/38/rotation = Quaternion(0.453842, 0.608797, -0.453608, 0.466513)
bones/39/rotation = Quaternion(0.00476178, 0.990816, 0.135133, 0.000459045)
bones/40/rotation = Quaternion(0.296613, -3.00156e-08, -0.396533, 0.868782)
bones/46/rotation = Quaternion(0.108501, 0.138792, 0.458381, 0.871121)
bones/47/rotation = Quaternion(0.0456323, -0.0606414, -0.827615, 0.556142)
bones/49/rotation = Quaternion(0.280632, -0.521484, 0.48779, 0.641374)
bones/51/rotation = Quaternion(0.179271, -2.5339e-08, 0.4356, 0.882108)
bones/54/position = Vector3(0.312623, 0.437755, -0.109832)
bones/54/rotation = Quaternion(-0.337628, 0.316336, 0.395958, 0.793194)
bones/55/rotation = Quaternion(0.220858, -0.415893, -0.0365474, 0.88143)
bones/58/rotation = Quaternion(-0.178058, -0.000701349, -0.0247728, 0.983708)
bones/61/rotation = Quaternion(-0.102877, -0.00071574, -0.0123909, 0.994617)
bones/63/rotation = Quaternion(-0.0472496, -0.000244748, -0.00575957, 0.998866)
bones/66/rotation = Quaternion(-0.234863, 0.000405445, -0.0293189, 0.971586)
bones/69/rotation = Quaternion(-0.0621532, 0.000344386, -0.00745976, 0.998039)
bones/71/rotation = Quaternion(-0.0202359, -0.000526936, -0.00241824, 0.999792)
bones/74/rotation = Quaternion(-0.118501, -0.00204265, -0.00167214, 0.99295)
bones/77/rotation = Quaternion(-0.0608605, -6.15146e-05, -0.00731642, 0.998119)
bones/79/rotation = Quaternion(-0.0215469, -0.000118847, -0.0025894, 0.999765)
bones/82/rotation = Quaternion(-0.045812, 0.0774554, -0.0426766, 0.995028)
bones/85/rotation = Quaternion(-0.341894, -0.0505131, -0.00712847, 0.938353)
bones/87/rotation = Quaternion(-0.112437, -0.0105561, -0.016501, 0.993466)
bones/90/rotation = Quaternion(-0.226489, 0.0119206, 0.0152102, 0.973822)
bones/93/rotation = Quaternion(-0.0421871, 5.92849e-06, -0.00505668, 0.999097)
bones/95/rotation = Quaternion(-0.00828159, -0.000121388, -0.000993767, 0.999965)
bones/96/position = Vector3(0.26788, -0.0799248, -0.461465)
bones/96/rotation = Quaternion(0.495633, 0.199817, 0.813215, 0.230442)
bones/97/rotation = Quaternion(8.85872e-08, 0.0024306, -5.89807e-10, 0.999997)
bones/101/position = Vector3(0.312623, 0.437755, -0.109832)
bones/101/rotation = Quaternion(-0.337628, 0.316336, 0.395958, 0.793194)
bones/104/rotation = Quaternion(-2.57163e-07, -0.424214, -1.98708e-07, 0.905562)
bones/106/position = Vector3(-0.23823, 0.429048, -0.0548472)
bones/106/rotation = Quaternion(-0.431817, 0.089361, 0.488602, 0.752872)
bones/109/position = Vector3(0.162602, -0.0317358, -0.27701)
bones/109/rotation = Quaternion(-0.381183, 0.322201, -0.682154, 0.53437)
bones/112/position = Vector3(-0.253918, -0.103652, -0.463478)
bones/112/rotation = Quaternion(0.433082, -0.134603, -0.846937, 0.277523)
bones/115/rotation = Quaternion(-1.31103e-07, 0.048314, 5.07712e-08, 0.998832)
bones/117/position = Vector3(-0.338156, 0.447438, -0.124041)
bones/117/rotation = Quaternion(-0.307262, -0.314094, -0.387365, 0.810484)
bones/118/rotation = Quaternion(0.1203, 0.584517, 0.0686503, 0.799472)
bones/121/rotation = Quaternion(-0.0553657, 0.093504, 0.059485, 0.992297)
bones/124/rotation = Quaternion(-0.130073, 0.0138176, -0.00793818, 0.991376)
bones/126/rotation = Quaternion(0.0566031, -0.00251201, 0.0386277, 0.997646)
bones/129/rotation = Quaternion(0.000190053, -0.00104534, 0.00800264, 0.999968)
bones/132/rotation = Quaternion(-0.0190412, 0.000132444, 0.00227098, 0.999816)
bones/134/rotation = Quaternion(-0.0647147, 0.000386823, 0.00777492, 0.997873)
bones/137/rotation = Quaternion(0.00235471, -0.00315775, 0.0401739, 0.999185)
bones/140/rotation = Quaternion(-0.0165778, 0.0003923, -0.0339278, 0.999287)
bones/142/rotation = Quaternion(-0.0201405, 0.000293718, 0.00239391, 0.999794)
bones/145/rotation = Quaternion(-0.0346762, 0.00433396, 0.039094, 0.998624)
bones/148/rotation = Quaternion(-8.86981e-05, -4.99268e-07, 1.03173e-05, 1)
bones/150/rotation = Quaternion(-0.00112873, 2.94077e-05, 0.000133846, 0.999999)
bones/153/rotation = Quaternion(-0.0254682, -0.00272336, 0.00153101, 0.999671)
bones/156/rotation = Quaternion(-0.000252583, 2.31054e-07, 2.96366e-05, 1)
bones/159/position = Vector3(-0.147036, -0.0462964, -0.282602)
bones/159/rotation = Quaternion(-0.381505, -0.31016, 0.697233, 0.521652)
bones/162/position = Vector3(0.20413, 0.430834, -0.0524523)
bones/162/rotation = Quaternion(-0.438851, -0.149045, -0.528447, 0.711294)
[node name="AnimationPlayer" parent="." index="1"]
autoplay = "CHAR_idle_bored"

View file

@ -1,6 +1,8 @@
extends CharacterBody3D
signal switch_to_ship
enum StatePlayer {FLY = 0, SWIM = 1, WALK = 2, WALK_WATER=3}
# Constant
@ -89,6 +91,11 @@ var max_collided_speed = 0.0
@onready var camera_fps:Camera3D = $camera_root/Camera3D_FPS_WALK
@onready var height_step:Vector3 = $RayCastStep.get_position() - $RayCastGround.get_position()
var on_ship:bool = false
var near_boat:Node3D = null
var jump_disabled:bool = false
func switch_state(new_state):
if state_player == new_state:
@ -105,6 +112,9 @@ func switch_state(new_state):
camera_fps.make_current()
else:
camera_fps = $camera_root/Camera3D_FPS_WALK
$CollisionWalk.disabled = false
$CollisionFly.disabled = true
$CollisionSwim.disabled = true
StatePlayer.WALK:
print("switch camera WALK")
#$carpet.hide()
@ -115,6 +125,9 @@ func switch_state(new_state):
camera_fps.make_current()
else:
camera_fps = $camera_root/Camera3D_FPS_WALK
$CollisionWalk.disabled = false
$CollisionFly.disabled = true
$CollisionSwim.disabled = true
StatePlayer.FLY:
print("switch camera FLY")
#$carpet.show()
@ -125,6 +138,9 @@ func switch_state(new_state):
camera_fps.make_current()
else:
camera_fps = $camera_root/Camera3D_FPS_FLY
$CollisionWalk.disabled = true
$CollisionFly.disabled = false
$CollisionSwim.disabled = true
StatePlayer.SWIM:
print("switch camera SWIM")
#$carpet.hide()
@ -135,6 +151,9 @@ func switch_state(new_state):
camera_fps.make_current()
else:
camera_fps = $camera_root/Camera3D_FPS_SWIM
$CollisionWalk.disabled = true
$CollisionFly.disabled = true
$CollisionSwim.disabled = false
func search_animation( obj:Node , root:String = "/") -> bool:
@ -189,7 +208,56 @@ func _ready():
func _input(event):
if !on_ship:
_input_player(event)
else:
_input_in_ship(event)
func _input_in_ship(event):
if Input.is_action_just_pressed("board_ship"):
on_ship = false
player_sit = false
return
func _input_player(event):
# Managed zoom (FPS or TPS)
if near_boat != null and Input.is_action_just_pressed("board_ship"):
on_ship = true
player_sit = true
# emit_signal("switch_to_ship", near_boat)
# return
var ship_pos:Vector3 = near_boat.get_global_transform().origin #+ near_boat.get_position() #get_global_transform().basis # .get_position()
#var player_pos:Vector3 = get_position()
var player_pos:Vector3 = near_boat.get_global_transform().origin
#ship_pos = near_boat.global_translate
print("shi:", ship_pos)
print("pla:", player_pos)
var diff:Vector3 = player_pos - ship_pos
print ("dif:", diff )
print(get_position())
#translate(get_transform().basis. .xform(ship_pos))
#ranslate(diff)
# translate(ship_pos)
global_translate(diff)
print("res:", get_global_transform().origin)
return
if Input.is_action_just_pressed("switch_fps_tps"):
if tps:
camera_fps.rotate_x( -player_rotate_x )
player_rotate_x = 0
camera_fps.make_current()
tps = false
reconciliate_rotate_camera_player = false
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
$camera_root/horizontal_root.rotate_y( player_rotate_y - camera_rotate_y )
camera_rotate_y = player_rotate_y
else:
reconciliate_rotate_camera_player = true
tps = true
$camera_root/horizontal_root/vertical_root/Camera3D_TPS.make_current()
if Input.is_action_pressed("camera_zoom_in"):
if tps:
if zoom > ZOOM_MIN_Z:
@ -272,6 +340,17 @@ func _input(event):
func _physics_process(delta):
if !on_ship:
_physics_process_player(delta)
else:
_physics_process_in_ship(delta)
func _physics_process_in_ship(delta):
switch_animation(anim_sitting_ground_idle)
func _physics_process_player(delta):
# Add the gravity.
if stop_move:
return
@ -306,8 +385,10 @@ func _physics_process_walk(delta):
motion_velocity.y -= gravity * delta
# Handle Jump.
# if Input.is_action_just_pressed("ui_accept") and is_on_floor():
# motion_velocity.y = JUMP_FORCE
if !jump_disabled and Input.is_action_just_pressed("ui_accept") and is_on_floor():
motion_velocity.y = JUMP_FORCE
jump_disabled = true
$TimerJump.start()
# Get the input direction and handle the movement/deceleration.
if Input.is_action_pressed("ui_strafe"):
@ -884,3 +965,19 @@ func enter_underwater():
func exit_underwater():
# function called by Area3D (Water Object)
switch_state(StatePlayer.WALK)
func enter_boat(boat:Node3D):
print("enter_boat")
near_boat = boat
print(boat.name)
func exit_boat(boat:Node3D):
print("exit_boat")
if boat == near_boat:
near_boat = null
func _on_timer_jump_timeout():
jump_disabled = false

View file

@ -31,7 +31,6 @@ script = ExtResource( "1_myhjw" )
[node name="CollisionFly" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0.994976, -0.258262)
visible = false
shape = SubResource( "CapsuleShape3D_a1omj" )
disabled = true
@ -43,12 +42,10 @@ disabled = true
[node name="CollisionWalk" type="CollisionShape3D" parent="."]
transform = Transform3D(0.999787, 0, 0, 0, 0.589349, 0, 0, 0, 0.371542, 0, 0.836561, 0)
visible = false
shape = SubResource( "CapsuleShape3D_w6qjk" )
[node name="CollisionSwim" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0)
visible = false
shape = SubResource( "CapsuleShape3D_645as" )
disabled = true
@ -86,3 +83,9 @@ mesh = SubResource( "PlaneMesh_p36im" )
[node name="RayCastStep" type="RayCast3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0, 1, 0, -0.4, 0, 0, 0.4, 0)
[node name="TimerJump" type="Timer" parent="."]
wait_time = 5.0
one_shot = true
[connection signal="timeout" from="TimerJump" to="." method="_on_timer_jump_timeout"]

View file

@ -0,0 +1,59 @@
extends CharacterBody3D
const SPEED = 5.0
const JUMP_VELOCITY = 4.5
var tps:bool = true
var animation_object:AnimationPlayer = null
# Get the gravity from the project settings to be synced with RigidDynamicBody nodes.
var gravity = ProjectSettings.get_setting("physics/3d/default_gravity")
func _init():
tps = true
print("_init player_ship")
func _ready():
search_animation($character, "/")
$camera_root/horizontal_root/vertical_root/Camera3D_TPS.make_current()
print("_ready player_ship")
func search_animation( obj:Node , root:String = "/") -> bool:
var ret:bool = false
for i in obj.get_children():
print("DEBUG - search_animation: " + root + String(i.get_name()))
if i.get_name() == "AnimationPlayer" or i.get_name() == "animation_player":
animation_object = i
return true
else:
ret = search_animation(i, root + String(i.get_name()) + "/" )
if ret == true:
return ret
return false
func _physics_process(delta):
return
# Add the gravity.
if not is_on_floor():
motion_velocity.y -= gravity * delta
# Handle Jump.
if Input.is_action_just_pressed("ui_accept") and is_on_floor():
motion_velocity.y = JUMP_VELOCITY
# Get the input direction and handle the movement/deceleration.
# As good practice, you should replace UI actions with custom gameplay actions.
var input_dir = Input.get_vector("ui_left", "ui_right", "ui_up", "ui_down")
var direction = (transform.basis * Vector3(input_dir.x, 0, input_dir.y)).normalized()
if direction:
motion_velocity.x = direction.x * SPEED
motion_velocity.z = direction.z * SPEED
else:
motion_velocity.x = move_toward(motion_velocity.x, 0, SPEED)
motion_velocity.z = move_toward(motion_velocity.z, 0, SPEED)
move_and_slide()

View file

@ -0,0 +1,36 @@
[gd_scene load_steps=5 format=3 uid="uid://c5b2f1o0d36aj"]
[ext_resource type="Script" path="res://player/player_ship/player_ship.gd" id="1_16158"]
[ext_resource type="PackedScene" uid="uid://duptl2212yaxs" path="res://maps/delta_boat.tscn" id="2_bx1jl"]
[ext_resource type="PackedScene" uid="uid://cjklxedjnvc1c" path="res://player/character/character.tscn" id="3_4lkoo"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_llylc"]
radius = 0.638144
height = 2.57405
[node name="Node3D" type="CharacterBody3D"]
script = ExtResource( "1_16158" )
[node name="delta_boat" parent="." instance=ExtResource( "2_bx1jl" )]
transform = Transform3D(-1, 0, -1.50996e-07, 0, 1, 0, 1.50996e-07, 0, -1, 0, 0, 0)
[node name="character" parent="." instance=ExtResource( "3_4lkoo" )]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.126486, -0.179606)
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0.337255, 0)
shape = SubResource( "CapsuleShape3D_llylc" )
[node name="camera_root" type="Node3D" parent="."]
[node name="horizontal_root" type="Node3D" parent="camera_root"]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0)
[node name="vertical_root" type="Node3D" parent="camera_root/horizontal_root"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.35248, 0)
[node name="Camera3D_TPS" type="Camera3D" parent="camera_root/horizontal_root/vertical_root"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.74846e-07, 0, 2)
[node name="Camera3D_FPS" type="Camera3D" parent="camera_root"]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0.761588, 0)

View file

@ -86,7 +86,24 @@ switch_state_player={
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":67,"physical_keycode":0,"unicode":99,"echo":false,"script":null)
]
}
switch_fps_tps={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":86,"physical_keycode":0,"unicode":118,"echo":false,"script":null)
]
}
board_ship={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":70,"physical_keycode":0,"unicode":0,"echo":false,"script":null)
]
}
[internationalization]
locale/translations=PackedStringArray("res://locales/en.po", "res://locales/fr.po")
[layer_names]
3d_render/layer_1="Player"
3d_render/layer_2="Walls"
3d_render/layer_3="Enemies"
3d_render/layer_4="Boat"

58
scenes/main/main.gd Normal file
View file

@ -0,0 +1,58 @@
extends Node3D
var oldobject:Node3D = null
@onready var player_ptr = $player
# Called when the node enters the scene tree for the first time.
func _ready():
$player.connect("switch_to_ship", self.switch_to_ship.bind() )
# $player_ship.set_process(false)
# $player_ship.hide()
func change_creature( new_model_path ):
var new_model = load( new_model_path )
if new_model:
new_model = new_model.instantiate()
new_model.translate($player.get_position())
if $player:
print("Remove old")
var old_model = $player
self.remove_child( old_model )
#self.animation_object = null
old_model.queue_free()
if new_model:
print("Add new")
self.add_child( new_model )
#new_model.connect( "animation_finished", self, "_on_creature_animation_finished" )
# new_model.duplicate_meshes()
func switch_to_ship(near_boat):
near_boat.hide()
oldobject = near_boat
print("GO switch_to_ship:", str(near_boat))
var new_model = load( "res://player/player_ship/player_ship.tscn" )
if new_model:
new_model = new_model.instantiate()
print("A:", near_boat.get_position())
print("B:", near_boat.get_global_transform().origin )
var newpos:Vector3 = near_boat.get_global_transform().origin
new_model.translate(newpos)
if $player:
print("Remove old")
var old_model = $player
self.remove_child( old_model )
#self.animation_object = null
old_model.queue_free()
if new_model:
print("Add new")
self.add_child( new_model )
# $player.set_process(false)
# $player.hide()
# $player_ship.show()
# $player_ship.set_process(true)
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass

View file

@ -1,10 +1,12 @@
[gd_scene load_steps=4 format=3 uid="uid://cem7wppuuoabv"]
[gd_scene load_steps=5 format=3 uid="uid://cem7wppuuoabv"]
[ext_resource type="PackedScene" uid="uid://dwxrvijqyym70" path="res://player/player.tscn" id="1_btdsd"]
[ext_resource type="Script" path="res://scenes/main/main.gd" id="1_ld2xt"]
[ext_resource type="PackedScene" uid="uid://cvdmfc2hi172g" path="res://maps/basic_setup.tscn" id="2_jj4oa"]
[ext_resource type="PackedScene" uid="uid://cdyi1a858p7em" path="res://scenes/hud/hud.tscn" id="3_5vcj4"]
[node name="main_scene" type="Node3D"]
script = ExtResource( "1_ld2xt" )
[node name="player" parent="." instance=ExtResource( "1_btdsd" )]
transform = Transform3D(0.750872, 0, -0.660447, 0, 1, 0, 0.660447, 0, 0.750872, -3.68624, 0, -17.6199)