This repository has been archived on 2023-04-11. You can view files and clone it, but cannot push or open issues or pull requests.
2020-05-04 06:42:47 -04:00

54 lines
1.4 KiB
GDScript

extends KinematicBody2D
const BASE_SPEED : float = 50.0
export var user : String = ""
var main : bool = false
var input_locks = 0
const SPEED_VAL = 75
func set_main():
main = true
$Label.hide()
$Camera.show()
$Camera.current = true
$"/root/ImportantEntities".main_player = self
func _ready():
$Camera.hide()
set_username("")
func set_username(username):
user = username
$Label.text = user
func update_position(pos : Vector2):
if not main or abs(abs(pos.x) - abs(position.x)) > SPEED_VAL or abs(abs(pos.y) - abs(position.y)) > SPEED_VAL:
position = pos
var velocity : Vector2 = Vector2(0,0)
func _process(delta):
if main and input_locks <= 0:
var relative_movement : Vector2 = Vector2(0,0)
if(Input.is_action_pressed("ui_up")):
relative_movement.y = relative_movement.y - 1
if(Input.is_action_pressed("ui_down")):
relative_movement.y = relative_movement.y + 1
if(Input.is_action_pressed("ui_right")):
relative_movement.x = relative_movement.x + 1
if(Input.is_action_pressed("ui_left")):
relative_movement.x = relative_movement.x - 1
if relative_movement != Vector2.ZERO:
move_and_collide(relative_movement * delta * BASE_SPEED)
var dest = $"/root/ImportantEntities".tile_map.world_to_map(self.position)
dest = dest + (position - (dest * 16))/16
$"/root/NetworkManager".move_player(dest.x, dest.y)
func lock_input():
input_locks = input_locks + 1
func unlock_input():
input_locks = input_locks - 1