bazar_alea/client/player/character.gd

148 lines
4.2 KiB
GDScript

extends CharacterBody3D
@export var speed = 5.0
@export var jump_velocity = 4.5
var camrot_h:float = 0.0
var camrot_v:float = 0.0
@export var h_acceleration:float = 10.0
@export var v_acceleration:float = 10.0
@export var h_sensitivity:float = 0.5
@export var v_sensitivity:float = 0.5
var save_rot:Vector3
var tick:int = 0
# Get the gravity from the project settings to be synced with RigidBody nodes.
var gravity = ProjectSettings.get_setting("physics/3d/default_gravity")
@export var otherplayer:bool = true:
get:
return otherplayer
set(value):
otherplayer = value
func set_otherplayer(value:bool):
otherplayer = value
#
#func _set(property:String, value) -> bool:
# if property == "position":
# print("changed position ",value)
# return false
func _ready():
$SpringArm3D/Camera3D.set_current(false)
set_process(false)
# $CameraComponent.set_process(false)
# $PlayerController.set_process(false)
# $PlayerNetworkingComponent.set_process(false)
# $CharacterMovementComponent.set_process(false)
# $TargetingComponent.set_process(false)
# $CombatSystem.set_process(false)
# $AttributesManager.set_process(false)
# $AttributesManager/HealthAttribute.set_process(false)
# $AttributesManager/StaminaAttribute.set_process(false)
#$PlayerGameplayComponent.update_animations()
func get_my_position() -> Vector3:
#return $SpringArm3D/Camera3D.get_global_position()
return self.get_global_position()
func get_my_rotation() -> Vector3:
#return $SpringArm3D/Camera3D.get_global_rotation()
#return $Armature/Skeleton3D.get_global_rotation()
#print($Armature/Skeleton3D.get_global_rotation(), "---", $Armature.get_global_rotation())
return $Armature.get_global_rotation()
func update_player(ctick:int, pos:Vector3, rot:Vector3):
#print(tick, " - ", ctick)
if tick != ctick:
set_my_position(pos)
set_my_rotation(rot)
tick = ctick
func set_my_position(pos:Vector3):
self.set_global_position(pos)
func set_my_rotation(rot:Vector3):
save_rot = rot
print("Update ->" + str(rot))
$Armature.set_global_rotation(rot)
#$CharacterMovementComponent.input_direction = rot
pass
func set_current_camera() -> void:
$SpringArm3D/Camera3D.set_current(true)
func set_id(value:int) -> void:
$PlayerNetworkingComponent.set_id(value)
func set_activate() -> void:
#$AnimationTree.set_active(true)
#$AnimationTree.set("parameters/Transition/transition_request","Idle")
set_process(true)
#func set_animation_tree_blend_positions(input_vector: Vector2) -> void:
# #print("Blend Position: ", input_vector)
# $AnimationTree.set("parameters/Idle/blend_position", input_vector)
# $AnimationTree.set("parameters/Walk/blend_position", input_vector)
func get_comment() -> String:
return str(save_rot) + \
" -> " + str($PlayerNetworkingComponent.is_local_authority()) + \
" -> " + str($CharacterMovementComponent.input_direction)
func get_animation() -> String:
return $AnimationTree.get("parameters/Transition/current_state") + \
", " + str($AnimationTree.get("parameters/InAir/blend_amount"))
# return $AnimationTree.get("parameters/Transition/current_state") + \
# ", " + str($AnimationTree.get("parameters/InAir/blend_amount")) + \
# ", active:" + str($AnimationTree.is_active()) + \
# ", " + str($AnimationPlayer.get_current_animation()) + \
# ", " + str($AnimationPlayer.get_current_animation_position()) + \
# ", " + str($AnimationPlayer.get_autoplay()) + \
# ", playing:" + str($AnimationPlayer.is_playing()) + \
# ", " + str($AnimationTree.get("parameters/Transition/current_state")) + \
# ", " + str($AnimationTree.get("parameters/Transition/current_index"))
func get_gait() -> String:
return Global.GAIT.keys()[$CharacterMovementComponent.gait]
func get_stance() -> String:
return Global.STANCE.keys()[$CharacterMovementComponent.stance]
func get_rotation_mode() -> String:
return Global.ROTATION_MODE.keys()[$CharacterMovementComponent.rotation_mode]
func get_movement_state() -> String:
return Global.MOVEMENT_STATE.keys()[$CharacterMovementComponent.movement_state]
#
func _process(_delta):
if ! $PlayerNetworkingComponent.is_local_authority():
if get_my_rotation() != save_rot:
print("Ohhhhhh : " + str( get_my_rotation()) + " != " + str(save_rot))
print("Ohhhhhh")
else:
print("Superrrr")
# $Armature.set_global_rotation(save_rot)