bazar_alea/client/player/character.gd

188 lines
5.6 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
#var jump:Vector3 = Vector3(0.0, 0.0, 0.0)
#var tickjump: 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)
$CharacterMovementComponent.start_jump.connect(_on_start_jump)
# $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 _on_start_jump(vertical_velocity:Vector3):
$PlayerNetworkingComponent.start_jump(vertical_velocity)
func get_my_position() -> Vector3:
return $PlayerNetworkingComponent.get_my_position()
#return self.get_global_position()
func get_my_rotation() -> Vector3:
return $PlayerNetworkingComponent.get_my_rotation()
#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 is_jump() -> bool:
#return jump != Vector3( 0.0, 0.0, 0.0)
return $PlayerNetworkingComponent.is_jump()
func get_jump() -> Vector3:
# var ret:Vector3 = jump
# jump = Vector3(0.0, 0.0, 0.0)
# return ret
return $PlayerNetworkingComponent.get_jump()
func get_tickjump() -> int:
# return tickjump
return $PlayerNetworkingComponent.get_tickjump()
func set_first_position_player(ctick:int, pos:Vector3, rot:Vector3):
# set_my_position(pos)
# set_my_rotation(rot)
$PlayerNetworkingComponent.set_first_position_player(ctick, pos, rot)
func update_player(ctick:int, pos:Vector3, rot:Vector3, extra:int, ctickjump:int, vel:Vector3):
$PlayerNetworkingComponent.update_player(ctick, pos, rot, extra, ctickjump, vel)
# #print(tick, " - ", ctick)
# if tick != ctick:
# #set_my_rotation(rot)
# print("extra:", extra, " ctickjump:", ctickjump, " tickjump:", tickjump)
# if extra & 1:
# set_my_position_onlyground(pos)
# if tickjump == ctickjump:
# print("Already Jump")
# return
# tickjump = ctickjump - 1
# $CharacterMovementComponent.jump()
# print("Go Jump")
# elif tickjump == 0 or $GroundCheck.is_colliding():
# print("No Jump")
# tickjump = 0
# set_my_position(pos)
# set_my_rotation(rot)
# else:
# #set_my_position_onlyground(pos)
# print("Always Jump")
# tick = ctick
#
#func set_my_position(pos:Vector3):
# self.set_global_position(pos)
#
#
#func set_my_position_onlyground(pos:Vector3):
# var newpos:Vector3 = Vector3(pos.x, self.get_global_position().y ,pos.z)
# self.set_global_position(newpos)
#
#func set_my_rotation(rot:Vector3):
# save_rot = rot
# print("Update ->" + str(rot), " ", $Armature.get_global_rotation())
# $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 $PlayerNetworkingComponent.get_comment() + \
" -> " + 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]