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]