mirror of
https://github.com/kristoferssolo/FuncIt.git
synced 2025-10-21 19:30:35 +00:00
[Major] Finished product development - Stage II
This commit is contained in:
parent
0c38e87bb1
commit
688cf43dea
@ -11,13 +11,20 @@ config_version=4
|
|||||||
[application]
|
[application]
|
||||||
|
|
||||||
config/name="Game"
|
config/name="Game"
|
||||||
run/main_scene="res://source/levels/trinity_site/trinity-site-level.tscn"
|
run/main_scene="res://source/scenes/GUI/main_menu.tscn"
|
||||||
config/icon="res://icon.png"
|
config/icon="res://icon.png"
|
||||||
|
|
||||||
|
[autoload]
|
||||||
|
|
||||||
|
Network="*res://source/assets/scripts/server-handlers/network_processors/network.gd"
|
||||||
|
Global="*res://source/assets/scripts/server-handlers/global.gd"
|
||||||
|
PersistentNodes="*res://source/scenes/OVERLAY/elements/persistent_nodes.tscn"
|
||||||
|
|
||||||
[display]
|
[display]
|
||||||
|
|
||||||
window/size/width=1920
|
window/size/width=1920
|
||||||
window/size/height=1080
|
window/size/height=1080
|
||||||
|
window/size/resizable=false
|
||||||
window/size/test_width=1024
|
window/size/test_width=1024
|
||||||
window/size/test_height=600
|
window/size/test_height=600
|
||||||
window/stretch/mode="2d"
|
window/stretch/mode="2d"
|
||||||
|
|||||||
@ -1,148 +0,0 @@
|
|||||||
extends KinematicBody2D
|
|
||||||
|
|
||||||
# Instance of data pre-processors
|
|
||||||
var VDIR_preset_pre_processor_instance = preload("res://source/assets/scripts/pre-processors/vdir_pre-processor.gd").new()
|
|
||||||
var UIN_preset_pre_processor_instance = preload("res://source/assets/scripts/pre-processors/uin_pre-processor.gd").new()
|
|
||||||
|
|
||||||
# Local class constants
|
|
||||||
|
|
||||||
# Local class variables
|
|
||||||
var VDIR = {}
|
|
||||||
var user_input = {}
|
|
||||||
var user_state = {}
|
|
||||||
var dimensions = {}
|
|
||||||
var gravityVector = Vector2(0,0)
|
|
||||||
var movementVector = Vector2(0,0)
|
|
||||||
var movementSpeed = 0
|
|
||||||
var maxMovementSpeed = 60
|
|
||||||
var accelerationSpeed = 3.5
|
|
||||||
var deccelerationSpeed = 4.25
|
|
||||||
var jumpState = false
|
|
||||||
var jumpSpeed = 0
|
|
||||||
var maxJumpSpeed = 400
|
|
||||||
var time = 0
|
|
||||||
var timeOut = 1
|
|
||||||
var timedOut = true
|
|
||||||
var movementRight = false
|
|
||||||
var movementLeft = true
|
|
||||||
|
|
||||||
func _ready():
|
|
||||||
# Allow update process override.
|
|
||||||
set_process(true)
|
|
||||||
$"player-animated-sprite".play("idle")
|
|
||||||
pass
|
|
||||||
|
|
||||||
func get_user_state():
|
|
||||||
# Create a dictionary of all variables that relate to clients' active state.
|
|
||||||
var user_state = {
|
|
||||||
"global_position": global_transform.origin
|
|
||||||
}
|
|
||||||
return user_state
|
|
||||||
|
|
||||||
func get_dimensions():
|
|
||||||
# Create a dictionary of all (required) sizes in regards to the client.
|
|
||||||
var dimensions = {
|
|
||||||
"sprite": {
|
|
||||||
"width":$"player-sprite".texture.get_width(),
|
|
||||||
"height":$"player-sprite".texture.get_height(),
|
|
||||||
"scale":$"player-sprite".scale,
|
|
||||||
},
|
|
||||||
"collider": {
|
|
||||||
"shape":$"player-collider".get_shape(),
|
|
||||||
"radius":$"player-collider".get_shape().get_radius()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return dimensions
|
|
||||||
|
|
||||||
func process_rotation():
|
|
||||||
var VDIR_ray_positive_y = VDIR["1"]["1"]["ray"]["position"].y - user_state["global_position"].y
|
|
||||||
var VDIR_ray_negative_y = VDIR["1"]["2"]["ray"]["position"].y - user_state["global_position"].y
|
|
||||||
var VDIR_ray_positive_x = VDIR["1"]["1"]["ray"]["position"].x - user_state["global_position"].x
|
|
||||||
var VDIR_ray_negative_x = VDIR["1"]["2"]["ray"]["position"].x - user_state["global_position"].x
|
|
||||||
var VDIR_ray_offset = sqrt(VDIR_ray_positive_y * VDIR_ray_positive_y + VDIR_ray_positive_x * VDIR_ray_positive_x) - sqrt(VDIR_ray_negative_y * VDIR_ray_negative_y + VDIR_ray_negative_x * VDIR_ray_negative_x)
|
|
||||||
if VDIR_ray_offset > 1:
|
|
||||||
rotation_degrees += VDIR_ray_offset / 10
|
|
||||||
if VDIR_ray_offset < 1:
|
|
||||||
rotation_degrees += VDIR_ray_offset / 10
|
|
||||||
|
|
||||||
func _process(delta):
|
|
||||||
user_input = UIN_preset_pre_processor_instance.update()
|
|
||||||
user_state = get_user_state()
|
|
||||||
dimensions = get_dimensions()
|
|
||||||
time += delta
|
|
||||||
VDIR = VDIR_preset_pre_processor_instance.update(user_state, dimensions)
|
|
||||||
for vector_type in VDIR:
|
|
||||||
var v_t = str(vector_type)
|
|
||||||
for vector in VDIR[v_t]:
|
|
||||||
var v = str(vector)
|
|
||||||
if v_t == "1":
|
|
||||||
var space_state = get_world_2d().direct_space_state
|
|
||||||
var ray_cast = space_state.intersect_ray((VDIR[v_t][v]["start"] - user_state["global_position"]).rotated(rotation) + user_state["global_position"],(VDIR[v_t][v]["end"] - user_state["global_position"]).rotated(rotation) + user_state["global_position"],[self])
|
|
||||||
if "position" in ray_cast:
|
|
||||||
VDIR[v_t][v]["ray"]["position"] = ray_cast.position
|
|
||||||
VDIR[v_t][v]["ray"]["length"] = sqrt((VDIR[v_t][v]["ray"]["position"].y - user_state["global_position"].y)*(VDIR[v_t][v]["ray"]["position"].y - user_state["global_position"].y)+(VDIR[v_t][v]["ray"]["position"].x - user_state["global_position"].x)*(VDIR[v_t][v]["ray"]["position"].x - user_state["global_position"].x))
|
|
||||||
VDIR[v_t][v]["ray"]["offset"] = dimensions["collider"]["radius"] - VDIR[v_t][v]["ray"]["length"]
|
|
||||||
VDIR[v_t][v]["ray"]["collided"] = true
|
|
||||||
else:
|
|
||||||
VDIR[v_t][v]["ray"]["position"] = (VDIR[v_t][v]["end"] - user_state["global_position"]).rotated(rotation) + user_state["global_position"]
|
|
||||||
VDIR[v_t][v]["ray"]["length"] = sqrt((VDIR[v_t][v]["ray"]["position"].y - user_state["global_position"].y)*(VDIR[v_t][v]["ray"]["position"].y - user_state["global_position"].y)+(VDIR[v_t][v]["ray"]["position"].x - user_state["global_position"].x)*(VDIR[v_t][v]["ray"]["position"].x - user_state["global_position"].x))
|
|
||||||
VDIR[v_t][v]["ray"]["offset"] = dimensions["collider"]["radius"] - VDIR[v_t][v]["ray"]["length"]
|
|
||||||
VDIR[v_t][v]["ray"]["collided"] = false
|
|
||||||
update()
|
|
||||||
process_rotation()
|
|
||||||
|
|
||||||
func _physics_process(delta):
|
|
||||||
if "0" in VDIR:
|
|
||||||
if VDIR["1"]["0"]["ray"]["length"] - dimensions["collider"]["radius"] > 2 and jumpState == false:
|
|
||||||
gravityVector = (VDIR["1"]["0"]["ray"]["position"] - user_state["global_position"]).normalized()
|
|
||||||
elif jumpState == false:
|
|
||||||
gravityVector = Vector2(0,0)
|
|
||||||
movementVector = Vector2(0,0)
|
|
||||||
if user_input["right"] == true:
|
|
||||||
movementVector = Vector2(1,0)
|
|
||||||
elif user_input["left"] == true:
|
|
||||||
movementVector = Vector2(-1,0)
|
|
||||||
else:
|
|
||||||
movementVector = Vector2(0,0)
|
|
||||||
if movementVector.x == 1 and movementRight == false:
|
|
||||||
movementRight = true
|
|
||||||
movementLeft = false
|
|
||||||
$"player-animated-sprite".flip_h = true
|
|
||||||
elif movementVector.x == -1 and movementLeft == false:
|
|
||||||
movementLeft = true
|
|
||||||
movementRight = false
|
|
||||||
$"player-animated-sprite".flip_h = false
|
|
||||||
if movementVector != Vector2(0,0) and jumpState == false:
|
|
||||||
movementSpeed = move_toward(movementSpeed, maxMovementSpeed, accelerationSpeed)
|
|
||||||
elif movementVector != Vector2(0,0) and jumpState == true:
|
|
||||||
movementSpeed = move_toward(movementSpeed, maxMovementSpeed * 2, accelerationSpeed)
|
|
||||||
else:
|
|
||||||
movementSpeed = move_toward(movementSpeed, 0, deccelerationSpeed)
|
|
||||||
if timedOut == true and user_input["up"] == true and jumpState == false and VDIR["1"]["0"]["ray"]["length"] - dimensions["collider"]["radius"] < 2:
|
|
||||||
gravityVector = (VDIR["1"]["0"]["ray"]["position"] - user_state["global_position"]).normalized() * -1
|
|
||||||
jumpSpeed = 0
|
|
||||||
jumpState = true
|
|
||||||
time = 0
|
|
||||||
if jumpState == true and jumpSpeed < maxJumpSpeed:
|
|
||||||
rotation_degrees = move_toward(rotation_degrees, 0, accelerationSpeed/10)
|
|
||||||
jumpSpeed = move_toward(jumpSpeed, maxJumpSpeed, accelerationSpeed * 10)
|
|
||||||
else:
|
|
||||||
jumpState = false
|
|
||||||
jumpSpeed = 100
|
|
||||||
if user_input["boost"] == true:
|
|
||||||
maxMovementSpeed = move_toward(maxMovementSpeed,120,accelerationSpeed)
|
|
||||||
else:
|
|
||||||
maxMovementSpeed = move_toward(maxMovementSpeed,60,deccelerationSpeed)
|
|
||||||
if time < timeOut:
|
|
||||||
timedOut = false
|
|
||||||
else:
|
|
||||||
timedOut = true
|
|
||||||
move_and_slide(gravityVector * jumpSpeed + movementVector.rotated(rotation).normalized() * movementSpeed)
|
|
||||||
|
|
||||||
func _draw():
|
|
||||||
for vector_type in VDIR:
|
|
||||||
var v_t = str(vector_type)
|
|
||||||
for vector in VDIR[v_t]:
|
|
||||||
var v = str(vector)
|
|
||||||
if v_t == "1":
|
|
||||||
draw_line(VDIR[v_t][v]["start"] - user_state["global_position"],(VDIR[v_t][v]["ray"]["position"] - user_state["global_position"]).rotated(-rotation),Color(255,255,255,1),1)
|
|
||||||
@ -0,0 +1,229 @@
|
|||||||
|
extends KinematicBody2D
|
||||||
|
|
||||||
|
var username_text = load("res://source/scenes/OVERLAY/elements/username_text.tscn")
|
||||||
|
var username setget username_set
|
||||||
|
var username_text_instance = null
|
||||||
|
|
||||||
|
puppet var puppet_position = Vector2(0, 0) setget puppet_position_set
|
||||||
|
puppet var puppet_velocity = Vector2()
|
||||||
|
puppet var puppet_rotaion = 0
|
||||||
|
puppet var puppet_username = "" setget puppet_username_set
|
||||||
|
|
||||||
|
onready var tween = $Tween
|
||||||
|
|
||||||
|
|
||||||
|
# Instance of data pre_processors
|
||||||
|
var VDIR_preset_pre_processor_instance = preload("res://source/assets/scripts/pre_processors/vdir_pre_processor.gd").new()
|
||||||
|
var UIN_preset_pre_processor_instance = preload("res://source/assets/scripts/pre_processors/uin_pre_processor.gd").new()
|
||||||
|
|
||||||
|
# Local class constants
|
||||||
|
|
||||||
|
# Local class variables
|
||||||
|
var VDIR = {}
|
||||||
|
var user_input = {}
|
||||||
|
var user_state = {}
|
||||||
|
var dimensions = {}
|
||||||
|
var gravityVector = Vector2(0,0)
|
||||||
|
var movementVector = Vector2(0,0)
|
||||||
|
var movementSpeed = 0
|
||||||
|
var maxMovementSpeed = 200
|
||||||
|
var accelerationSpeed = 5
|
||||||
|
var deccelerationSpeed = 4.25
|
||||||
|
var jumpState = false
|
||||||
|
var jumpSpeed = 0
|
||||||
|
var maxJumpSpeed = 400
|
||||||
|
var time = 0
|
||||||
|
var timeOut = 1
|
||||||
|
var timedOut = true
|
||||||
|
var movementRight = false
|
||||||
|
var movementLeft = true
|
||||||
|
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
get_tree().connect("network_peer_connected", self, "_network_peer_connected")
|
||||||
|
username_text_instance = Global.instance_node_at_location(username_text, PersistentNodes, global_position)
|
||||||
|
username_text_instance.player_following = self
|
||||||
|
|
||||||
|
# Allow update process override.
|
||||||
|
set_process(true)
|
||||||
|
$player_animated_sprite.play("idle")
|
||||||
|
|
||||||
|
|
||||||
|
func get_user_state():
|
||||||
|
# Create a dictionary of all variables that relate to clients' active state.
|
||||||
|
var user_state = {
|
||||||
|
"global_position": global_transform.origin
|
||||||
|
}
|
||||||
|
return user_state
|
||||||
|
|
||||||
|
|
||||||
|
func get_dimensions():
|
||||||
|
# Create a dictionary of all (required) sizes in regards to the client.
|
||||||
|
var dimensions = {
|
||||||
|
"sprite": {
|
||||||
|
"width":$player_sprite.texture.get_width(),
|
||||||
|
"height":$player_sprite.texture.get_height(),
|
||||||
|
"scale":$player_sprite.scale,
|
||||||
|
},
|
||||||
|
"collider": {
|
||||||
|
"shape":$player_collider.get_shape(),
|
||||||
|
"radius":$player_collider.get_shape().get_radius()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return dimensions
|
||||||
|
|
||||||
|
|
||||||
|
func process_rotation():
|
||||||
|
var VDIR_ray_positive_y = VDIR["1"]["1"]["ray"]["position"].y - user_state["global_position"].y
|
||||||
|
var VDIR_ray_negative_y = VDIR["1"]["2"]["ray"]["position"].y - user_state["global_position"].y
|
||||||
|
var VDIR_ray_positive_x = VDIR["1"]["1"]["ray"]["position"].x - user_state["global_position"].x
|
||||||
|
var VDIR_ray_negative_x = VDIR["1"]["2"]["ray"]["position"].x - user_state["global_position"].x
|
||||||
|
var VDIR_ray_offset = sqrt(VDIR_ray_positive_y * VDIR_ray_positive_y + VDIR_ray_positive_x * VDIR_ray_positive_x) - sqrt(VDIR_ray_negative_y * VDIR_ray_negative_y + VDIR_ray_negative_x * VDIR_ray_negative_x)
|
||||||
|
if VDIR_ray_offset > 1:
|
||||||
|
rotation_degrees += VDIR_ray_offset / 10
|
||||||
|
if VDIR_ray_offset < 1:
|
||||||
|
rotation_degrees += VDIR_ray_offset / 10
|
||||||
|
|
||||||
|
|
||||||
|
func _process(delta: float) -> void:
|
||||||
|
if username_text_instance != null:
|
||||||
|
username_text_instance.name = "username" + name
|
||||||
|
|
||||||
|
user_input = UIN_preset_pre_processor_instance.update()
|
||||||
|
user_state = get_user_state()
|
||||||
|
dimensions = get_dimensions()
|
||||||
|
time += delta
|
||||||
|
VDIR = VDIR_preset_pre_processor_instance.update(user_state, dimensions)
|
||||||
|
for vector_type in VDIR:
|
||||||
|
var v_t = str(vector_type)
|
||||||
|
for vector in VDIR[v_t]:
|
||||||
|
var v = str(vector)
|
||||||
|
if v_t == "1":
|
||||||
|
var space_state = get_world_2d().direct_space_state
|
||||||
|
var ray_cast = space_state.intersect_ray((VDIR[v_t][v]["start"] - user_state["global_position"]).rotated(rotation) + user_state["global_position"],(VDIR[v_t][v]["end"] - user_state["global_position"]).rotated(rotation) + user_state["global_position"],[self])
|
||||||
|
if "position" in ray_cast:
|
||||||
|
VDIR[v_t][v]["ray"]["position"] = ray_cast.position
|
||||||
|
VDIR[v_t][v]["ray"]["length"] = sqrt((VDIR[v_t][v]["ray"]["position"].y - user_state["global_position"].y)*(VDIR[v_t][v]["ray"]["position"].y - user_state["global_position"].y)+(VDIR[v_t][v]["ray"]["position"].x - user_state["global_position"].x)*(VDIR[v_t][v]["ray"]["position"].x - user_state["global_position"].x))
|
||||||
|
VDIR[v_t][v]["ray"]["offset"] = dimensions["collider"]["radius"] - VDIR[v_t][v]["ray"]["length"]
|
||||||
|
VDIR[v_t][v]["ray"]["collided"] = true
|
||||||
|
else:
|
||||||
|
VDIR[v_t][v]["ray"]["position"] = (VDIR[v_t][v]["end"] - user_state["global_position"]).rotated(rotation) + user_state["global_position"]
|
||||||
|
VDIR[v_t][v]["ray"]["length"] = sqrt((VDIR[v_t][v]["ray"]["position"].y - user_state["global_position"].y)*(VDIR[v_t][v]["ray"]["position"].y - user_state["global_position"].y)+(VDIR[v_t][v]["ray"]["position"].x - user_state["global_position"].x)*(VDIR[v_t][v]["ray"]["position"].x - user_state["global_position"].x))
|
||||||
|
VDIR[v_t][v]["ray"]["offset"] = dimensions["collider"]["radius"] - VDIR[v_t][v]["ray"]["length"]
|
||||||
|
VDIR[v_t][v]["ray"]["collided"] = false
|
||||||
|
update()
|
||||||
|
process_rotation()
|
||||||
|
|
||||||
|
|
||||||
|
func _physics_process(delta):
|
||||||
|
if get_tree().has_network_peer():
|
||||||
|
if is_network_master():
|
||||||
|
if "0" in VDIR:
|
||||||
|
if VDIR["1"]["0"]["ray"]["length"] - dimensions["collider"]["radius"] > 2 and jumpState == false:
|
||||||
|
gravityVector = (VDIR["1"]["0"]["ray"]["position"] - user_state["global_position"]).normalized()
|
||||||
|
elif jumpState == false:
|
||||||
|
gravityVector = Vector2(0,0)
|
||||||
|
movementVector = Vector2(0,0)
|
||||||
|
if user_input["right"] == true:
|
||||||
|
movementVector = Vector2(1,0)
|
||||||
|
elif user_input["left"] == true:
|
||||||
|
movementVector = Vector2(-1,0)
|
||||||
|
else:
|
||||||
|
movementVector = Vector2(0,0)
|
||||||
|
if movementVector.x == 1 and movementRight == false:
|
||||||
|
movementRight = true
|
||||||
|
movementLeft = false
|
||||||
|
$player_animated_sprite.flip_h = true
|
||||||
|
elif movementVector.x == -1 and movementLeft == false:
|
||||||
|
movementLeft = true
|
||||||
|
movementRight = false
|
||||||
|
$player_animated_sprite.flip_h = false
|
||||||
|
if movementVector != Vector2(0,0) and jumpState == false:
|
||||||
|
movementSpeed = move_toward(movementSpeed, maxMovementSpeed, accelerationSpeed)
|
||||||
|
elif movementVector != Vector2(0,0) and jumpState == true:
|
||||||
|
movementSpeed = move_toward(movementSpeed, maxMovementSpeed * 2, accelerationSpeed)
|
||||||
|
else:
|
||||||
|
movementSpeed = move_toward(movementSpeed, 0, deccelerationSpeed)
|
||||||
|
if timedOut == true and user_input["up"] == true and jumpState == false and VDIR["1"]["0"]["ray"]["length"] - dimensions["collider"]["radius"] < 2:
|
||||||
|
gravityVector = (VDIR["1"]["0"]["ray"]["position"] - user_state["global_position"]).normalized() * -1
|
||||||
|
jumpSpeed = 0
|
||||||
|
jumpState = true
|
||||||
|
time = 0
|
||||||
|
if jumpState == true and jumpSpeed < maxJumpSpeed:
|
||||||
|
rotation_degrees = move_toward(rotation_degrees, 0, accelerationSpeed/10)
|
||||||
|
jumpSpeed = move_toward(jumpSpeed, maxJumpSpeed, accelerationSpeed * 10)
|
||||||
|
else:
|
||||||
|
jumpState = false
|
||||||
|
jumpSpeed = 100
|
||||||
|
if user_input["boost"] == true:
|
||||||
|
maxMovementSpeed = move_toward(maxMovementSpeed,120,accelerationSpeed)
|
||||||
|
else:
|
||||||
|
maxMovementSpeed = move_toward(maxMovementSpeed,60,deccelerationSpeed)
|
||||||
|
if time < timeOut:
|
||||||
|
timedOut = false
|
||||||
|
else:
|
||||||
|
timedOut = true
|
||||||
|
move_and_slide(gravityVector * jumpSpeed + movementVector.rotated(rotation).normalized() * movementSpeed)
|
||||||
|
|
||||||
|
|
||||||
|
func _draw():
|
||||||
|
for vector_type in VDIR:
|
||||||
|
var v_t = str(vector_type)
|
||||||
|
for vector in VDIR[v_t]:
|
||||||
|
var v = str(vector)
|
||||||
|
if v_t == "1":
|
||||||
|
draw_line(VDIR[v_t][v]["start"] - user_state["global_position"],(VDIR[v_t][v]["ray"]["position"] - user_state["global_position"]).rotated(-rotation),Color(255,255,255,1),1)
|
||||||
|
|
||||||
|
|
||||||
|
func puppet_position_set(new_value) -> void:
|
||||||
|
puppet_position = new_value
|
||||||
|
tween.interpolate_property(self, "global_position", global_position, puppet_position, 0.1)
|
||||||
|
tween.start()
|
||||||
|
|
||||||
|
|
||||||
|
func username_set(new_value) -> void:
|
||||||
|
username = new_value
|
||||||
|
if is_network_master() and username_text_instance != null:
|
||||||
|
username_text_instance.text = username
|
||||||
|
rset("puppet_username", username)
|
||||||
|
|
||||||
|
|
||||||
|
func puppet_username_set(new_value) -> void:
|
||||||
|
puppet_username = new_value
|
||||||
|
if not is_network_master() and username_text_instance != null:
|
||||||
|
username_text_instance.text = puppet_username
|
||||||
|
|
||||||
|
|
||||||
|
func _network_peer_connected(id) -> void:
|
||||||
|
rset_id(id, "puppet_username", username)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_network_tick_rate_timeout():
|
||||||
|
if get_tree().has_network_peer():
|
||||||
|
if is_network_master():
|
||||||
|
rset_unreliable("puppet_position", global_position)
|
||||||
|
#rset_unreliable("puppet_velocity", movementVector)
|
||||||
|
#rset_unreliable("puppet_rotation", rotation_degrees)
|
||||||
|
|
||||||
|
|
||||||
|
sync func update_position(pos):
|
||||||
|
global_position = pos
|
||||||
|
puppet_position = pos
|
||||||
|
|
||||||
|
|
||||||
|
sync func destroy() -> void:
|
||||||
|
username_text_instance.visible = false
|
||||||
|
visible = false
|
||||||
|
$player_collider.disabled = true
|
||||||
|
Global.alive_players.erase(self)
|
||||||
|
|
||||||
|
if get_tree().has_network_peer():
|
||||||
|
if is_network_master():
|
||||||
|
Global.player_master = null
|
||||||
|
|
||||||
|
|
||||||
|
func _exit_tree() -> void:
|
||||||
|
Global.alive_players.erase(self)
|
||||||
|
if get_tree().has_network_peer():
|
||||||
|
if is_network_master():
|
||||||
|
Global.player_master = null
|
||||||
15
Game/source/assets/scripts/server-handlers/global.gd
Normal file
15
Game/source/assets/scripts/server-handlers/global.gd
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
extends Node
|
||||||
|
|
||||||
|
var player_master = null
|
||||||
|
var ui = null
|
||||||
|
var alive_players = []
|
||||||
|
|
||||||
|
func instance_node_at_location(node: Object, parent: Object, location: Vector2) -> Object:
|
||||||
|
var node_instance = instance_node(node, parent)
|
||||||
|
node_instance.global_position = location
|
||||||
|
return node_instance
|
||||||
|
|
||||||
|
func instance_node(node: Object, parent: Object) -> Object:
|
||||||
|
var node_instance = node.instance()
|
||||||
|
parent.add_child(node_instance)
|
||||||
|
return node_instance
|
||||||
@ -1,6 +1,6 @@
|
|||||||
extends Node
|
extends Node
|
||||||
|
|
||||||
const DEFAULT_PORT = 28960
|
const DEFAULT_PORT = 28914
|
||||||
const MAX_CLIENTS = 4
|
const MAX_CLIENTS = 4
|
||||||
|
|
||||||
var server = null
|
var server = null
|
||||||
@ -37,7 +37,7 @@ func create_server() -> void:
|
|||||||
server = NetworkedMultiplayerENet.new()
|
server = NetworkedMultiplayerENet.new()
|
||||||
server.create_server(DEFAULT_PORT, MAX_CLIENTS)
|
server.create_server(DEFAULT_PORT, MAX_CLIENTS)
|
||||||
get_tree().set_network_peer(server)
|
get_tree().set_network_peer(server)
|
||||||
Global.instance_node(load("res://scenes/server_advertiser.tscn"), get_tree().current_scene)
|
Global.instance_node(load("res://source/scenes/GUI/server_handlers/server_advertiser.tscn"), get_tree().current_scene)
|
||||||
|
|
||||||
|
|
||||||
func join_server() -> void:
|
func join_server() -> void:
|
||||||
@ -69,7 +69,7 @@ func _server_disconnected() -> void:
|
|||||||
reset_network_connections()
|
reset_network_connections()
|
||||||
|
|
||||||
if Global.ui != null:
|
if Global.ui != null:
|
||||||
var prompt = Global.instance_node(load("res://scenes/simple_prompt.tscn"), Global.ui)
|
var prompt = Global.instance_node(load("res://source/scenes/OVERLAY/elements/simple_prompt.tscn"), Global.ui)
|
||||||
prompt.set_text("Disconnected from server")
|
prompt.set_text("Disconnected from server")
|
||||||
|
|
||||||
|
|
||||||
@ -78,7 +78,7 @@ func _client_connection_timeout():
|
|||||||
print("Client has been timed out")
|
print("Client has been timed out")
|
||||||
reset_network_connection()
|
reset_network_connection()
|
||||||
|
|
||||||
var connection_timeout_prompt = Global.instance_node(load("res://scenes/simple_prompt.tscn"), get_tree().current_scene)
|
var connection_timeout_prompt = Global.instance_node(load("res://source/scenes/OVERLAY/elements/simple_prompt.tscn"), get_tree().current_scene)
|
||||||
connection_timeout_prompt.set_text("Connection timed out")
|
connection_timeout_prompt.set_text("Connection timed out")
|
||||||
|
|
||||||
|
|
||||||
@ -89,7 +89,7 @@ func _connection_failed():
|
|||||||
reset_network_connection()
|
reset_network_connection()
|
||||||
|
|
||||||
if Global.ui != null:
|
if Global.ui != null:
|
||||||
var prompt = Global.instance_node(load("res://scenes/simple_prompt.tscn"), Global.ui)
|
var prompt = Global.instance_node(load("res://source/scenes/OVERLAY/elements/simple_prompt.tscn"), Global.ui)
|
||||||
prompt.set_text("Connection failed")
|
prompt.set_text("Connection failed")
|
||||||
|
|
||||||
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
extends Control
|
extends Control
|
||||||
|
|
||||||
var player = load("res://scenes/player.tscn")
|
var player = load("res://source/entities/player/player_node.tscn")
|
||||||
|
|
||||||
var current_spawn_location_instance_number = 1
|
var current_spawn_location_instance_number = 1
|
||||||
var current_player_for_spawn_location_number = null
|
var current_player_for_spawn_location_number = null
|
||||||
@ -66,7 +66,7 @@ func _on_join_server_pressed():
|
|||||||
if username_text_edit.text != "":
|
if username_text_edit.text != "":
|
||||||
multiplayer_config_ui.hide()
|
multiplayer_config_ui.hide()
|
||||||
username_text_edit.hide()
|
username_text_edit.hide()
|
||||||
Global.instance_node(load("res://scenes/server_browser.tscn"), self)
|
Global.instance_node(load("res://source/scenes/GUI/server_handlers/server_browser.tscn"), self)
|
||||||
|
|
||||||
|
|
||||||
func _connected_to_server() -> void:
|
func _connected_to_server() -> void:
|
||||||
@ -74,7 +74,6 @@ func _connected_to_server() -> void:
|
|||||||
instance_player(get_tree().get_network_unique_id())
|
instance_player(get_tree().get_network_unique_id())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
func instance_player(id) -> void:
|
func instance_player(id) -> void:
|
||||||
var player_instance = Global.instance_node_at_location(player, PersistentNodes, Vector2(rand_range(0, 1920), rand_range(0, 1080)))
|
var player_instance = Global.instance_node_at_location(player, PersistentNodes, Vector2(rand_range(0, 1920), rand_range(0, 1080)))
|
||||||
player_instance.name = str(id)
|
player_instance.name = str(id)
|
||||||
@ -88,4 +87,4 @@ func _on_start_game_pressed():
|
|||||||
|
|
||||||
|
|
||||||
sync func switch_to_game() -> void:
|
sync func switch_to_game() -> void:
|
||||||
get_tree().change_scene("res://scenes/game.tscn")
|
get_tree().change_scene("res://source/levels/trinity_site/trinity_site_level.tscn")
|
||||||
@ -11,14 +11,14 @@ func _ready() -> void:
|
|||||||
|
|
||||||
|
|
||||||
func _on_server_listener_new_server(serverInfo):
|
func _on_server_listener_new_server(serverInfo):
|
||||||
var server_node = Global.instance_node(load("res://scenes/server_display.tscn"), server_container)
|
var server_node = Global.instance_node(load("res://source/scenes/GUI/server-handlers/server_display.tscn"), server_container)
|
||||||
server_node.text = "%s - %s" % [serverInfo.ip, serverInfo.name]
|
server_node.text = "%s - %s" % [serverInfo.ip, serverInfo.name]
|
||||||
server_node.ip_address = str(serverInfo.ip)
|
server_node.ip_address = str(serverInfo.ip)
|
||||||
|
|
||||||
|
|
||||||
func _on_server_listener_remove_server(serverIp):
|
func _on_server_listener_remove_server(serverIp):
|
||||||
for serverNode in server_container.get_children():
|
for serverNode in server_container.get_children():
|
||||||
if serverNode.is_in_group("server_display"):
|
if serverNode.is_in_group("Server_display"):
|
||||||
if serverNode.ip_address == serverIp:
|
if serverNode.ip_address == serverIp:
|
||||||
serverNode.queue_free()
|
serverNode.queue_free()
|
||||||
break
|
break
|
||||||
@ -0,0 +1,27 @@
|
|||||||
|
extends Node2D
|
||||||
|
|
||||||
|
var current_spawn_location_instance_number = 1
|
||||||
|
var current_player_location_instance_number = null
|
||||||
|
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
get_tree().connect("network_peer_disconnected", self, "_player_disconnected")
|
||||||
|
|
||||||
|
if get_tree().is_network_server():
|
||||||
|
setup_player_positions()
|
||||||
|
|
||||||
|
|
||||||
|
func setup_player_positions() -> void:
|
||||||
|
for player in PersistentNodes.get_children():
|
||||||
|
if player.is_in_group("Player"):
|
||||||
|
for spawn_location in $spawn_locations.get_children():
|
||||||
|
if int(spawn_location.name) == current_spawn_location_instance_number and current_player_location_instance_number != player:
|
||||||
|
player.rpc("update_position", spawn_location.global_position)
|
||||||
|
current_spawn_location_instance_number += 1
|
||||||
|
current_player_location_instance_number = player
|
||||||
|
|
||||||
|
|
||||||
|
func _player_disconnected(id) -> void:
|
||||||
|
if PersistentNodes.has_node(str(id)):
|
||||||
|
PersistentNodes.get_node(str(id)).username_text_instance.queue_free()
|
||||||
|
PersistentNodes.get_node(str(id)).queue_free()
|
||||||
@ -2,8 +2,7 @@ extends Control
|
|||||||
|
|
||||||
|
|
||||||
func _on_ok_pressed():
|
func _on_ok_pressed():
|
||||||
get_tree().change_scene("res://scenes/main_menu.tscn")
|
get_tree().change_scene("res://source/scenes/GUI/main_menu.tscn")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
func set_text(text) -> void:
|
func set_text(text) -> void:
|
||||||
@ -1,46 +1,51 @@
|
|||||||
[gd_scene load_steps=18 format=2]
|
[gd_scene load_steps=18 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://source/assets/sprites/character/player/player_main_body_default_sprite.png" type="Texture" id=1]
|
[ext_resource path="res://source/assets/sprites/character/player/animation/idle/player_main_body_default_sprite_idle_animation – 4.png" type="Texture" id=1]
|
||||||
[ext_resource path="res://source/assets/sprites/character/player/animation/idle/player_main_body_default_sprite_idle_animation – 9.png" type="Texture" id=2]
|
[ext_resource path="res://source/assets/scripts/player_handlers/player_collider_handler.gd" type="Script" id=2]
|
||||||
[ext_resource path="res://source/assets/sprites/character/player/animation/idle/player_main_body_default_sprite_idle_animation – 11.png" type="Texture" id=3]
|
[ext_resource path="res://source/assets/sprites/character/player/animation/idle/player_main_body_default_sprite_idle_animation – 1.png" type="Texture" id=3]
|
||||||
[ext_resource path="res://source/assets/sprites/character/player/animation/idle/player_main_body_default_sprite_idle_animation – 10.png" type="Texture" id=4]
|
[ext_resource path="res://source/assets/sprites/character/player/animation/idle/player_main_body_default_sprite_idle_animation – 3.png" type="Texture" id=4]
|
||||||
[ext_resource path="res://source/assets/sprites/character/player/animation/idle/player_main_body_default_sprite_idle_animation.png" type="Texture" id=5]
|
[ext_resource path="res://source/assets/sprites/character/player/player_main_body_default_sprite.png" type="Texture" id=5]
|
||||||
[ext_resource path="res://source/assets/sprites/character/player/animation/idle/player_main_body_default_sprite_idle_animation – 8.png" type="Texture" id=6]
|
[ext_resource path="res://source/assets/sprites/character/player/animation/idle/player_main_body_default_sprite_idle_animation – 8.png" type="Texture" id=6]
|
||||||
[ext_resource path="res://source/assets/sprites/character/player/animation/idle/player_main_body_default_sprite_idle_animation – 4.png" type="Texture" id=7]
|
[ext_resource path="res://source/assets/sprites/character/player/animation/idle/player_main_body_default_sprite_idle_animation.png" type="Texture" id=7]
|
||||||
[ext_resource path="res://source/assets/sprites/character/player/animation/idle/player_main_body_default_sprite_idle_animation – 1.png" type="Texture" id=8]
|
[ext_resource path="res://source/assets/sprites/character/player/animation/idle/player_main_body_default_sprite_idle_animation – 9.png" type="Texture" id=8]
|
||||||
[ext_resource path="res://source/assets/sprites/character/player/animation/idle/player_main_body_default_sprite_idle_animation – 3.png" type="Texture" id=9]
|
[ext_resource path="res://source/assets/sprites/character/player/animation/idle/player_main_body_default_sprite_idle_animation – 10.png" type="Texture" id=9]
|
||||||
[ext_resource path="res://source/assets/sprites/character/player/animation/idle/player_main_body_default_sprite_idle_animation – 5.png" type="Texture" id=10]
|
[ext_resource path="res://source/assets/sprites/character/player/animation/idle/player_main_body_default_sprite_idle_animation – 11.png" type="Texture" id=10]
|
||||||
[ext_resource path="res://source/assets/sprites/character/player/animation/idle/player_main_body_default_sprite_idle_animation – 6.png" type="Texture" id=11]
|
[ext_resource path="res://source/assets/scripts/player_handlers/player_body_handler.gd" type="Script" id=11]
|
||||||
[ext_resource path="res://source/assets/sprites/character/player/animation/idle/player_main_body_default_sprite_idle_animation – 7.png" type="Texture" id=12]
|
[ext_resource path="res://source/assets/sprites/character/player/animation/idle/player_main_body_default_sprite_idle_animation – 5.png" type="Texture" id=12]
|
||||||
[ext_resource path="res://source/assets/sprites/character/player/animation/idle/player_main_body_default_sprite_idle_animation – 2.png" type="Texture" id=13]
|
[ext_resource path="res://source/assets/sprites/character/player/animation/idle/player_main_body_default_sprite_idle_animation – 2.png" type="Texture" id=13]
|
||||||
[ext_resource path="res://source/assets/scripts/player-handlers/player-collider-handler.gd" type="Script" id=14]
|
[ext_resource path="res://source/assets/sprites/character/player/animation/idle/player_main_body_default_sprite_idle_animation – 6.png" type="Texture" id=14]
|
||||||
[ext_resource path="res://source/assets/scripts/player-handlers/player-body-handler.gd" type="Script" id=15]
|
[ext_resource path="res://source/assets/sprites/character/player/animation/idle/player_main_body_default_sprite_idle_animation – 7.png" type="Texture" id=15]
|
||||||
|
|
||||||
[sub_resource type="CircleShape2D" id=1]
|
[sub_resource type="CircleShape2D" id=1]
|
||||||
|
|
||||||
[sub_resource type="SpriteFrames" id=2]
|
[sub_resource type="SpriteFrames" id=2]
|
||||||
animations = [ {
|
animations = [ {
|
||||||
"frames": [ ExtResource( 8 ), ExtResource( 13 ), ExtResource( 9 ), ExtResource( 7 ), ExtResource( 10 ), ExtResource( 11 ), ExtResource( 12 ), ExtResource( 6 ), ExtResource( 2 ), ExtResource( 4 ), ExtResource( 3 ), ExtResource( 5 ) ],
|
"frames": [ ExtResource( 3 ), ExtResource( 13 ), ExtResource( 4 ), ExtResource( 1 ), ExtResource( 12 ), ExtResource( 14 ), ExtResource( 15 ), ExtResource( 6 ), ExtResource( 8 ), ExtResource( 9 ), ExtResource( 10 ), ExtResource( 7 ) ],
|
||||||
"loop": true,
|
"loop": true,
|
||||||
"name": "idle",
|
"name": "idle",
|
||||||
"speed": 65.0
|
"speed": 65.0
|
||||||
} ]
|
} ]
|
||||||
|
|
||||||
[node name="player-node" type="Node2D"]
|
[node name="player" type="KinematicBody2D" groups=[
|
||||||
|
"Net",
|
||||||
|
"Player",
|
||||||
|
]]
|
||||||
|
script = ExtResource( 11 )
|
||||||
|
|
||||||
[node name="player-body" type="KinematicBody2D" parent="."]
|
[node name="player_collider" type="CollisionShape2D" parent="."]
|
||||||
script = ExtResource( 15 )
|
|
||||||
|
|
||||||
[node name="player-collider" type="CollisionShape2D" parent="player-body"]
|
|
||||||
shape = SubResource( 1 )
|
shape = SubResource( 1 )
|
||||||
script = ExtResource( 14 )
|
script = ExtResource( 2 )
|
||||||
|
|
||||||
[node name="player-animated-sprite" type="AnimatedSprite" parent="player-body"]
|
[node name="player_animated_sprite" type="AnimatedSprite" parent="."]
|
||||||
scale = Vector2( 0.3, 0.3 )
|
scale = Vector2( 0.2, 0.2 )
|
||||||
frames = SubResource( 2 )
|
frames = SubResource( 2 )
|
||||||
animation = "idle"
|
animation = "idle"
|
||||||
|
|
||||||
[node name="player-sprite" type="Sprite" parent="player-body"]
|
[node name="player_sprite" type="Sprite" parent="."]
|
||||||
visible = false
|
visible = false
|
||||||
scale = Vector2( 0.3, 0.3 )
|
scale = Vector2( 0.2, 0.2 )
|
||||||
texture = ExtResource( 1 )
|
texture = ExtResource( 5 )
|
||||||
|
|
||||||
|
[node name="Tween" type="Tween" parent="."]
|
||||||
|
|
||||||
|
[node name="network_tick_rate" type="Timer" parent="."]
|
||||||
14
Game/source/floor.tscn
Normal file
14
Game/source/floor.tscn
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
[gd_scene load_steps=3 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://source/sprites/floor.svg" type="Texture" id=1]
|
||||||
|
|
||||||
|
[sub_resource type="RectangleShape2D" id=1]
|
||||||
|
extents = Vector2( 960, 24 )
|
||||||
|
|
||||||
|
[node name="floor" type="StaticBody2D"]
|
||||||
|
|
||||||
|
[node name="floor" type="Sprite" parent="."]
|
||||||
|
texture = ExtResource( 1 )
|
||||||
|
|
||||||
|
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||||
|
shape = SubResource( 1 )
|
||||||
@ -1,6 +1,6 @@
|
|||||||
[gd_resource type="DynamicFont" load_steps=2 format=2]
|
[gd_resource type="DynamicFont" load_steps=2 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://font/Roboto-Regular.ttf" type="DynamicFontData" id=1]
|
[ext_resource path="res://source/fonts/roboto/Roboto-Regular.ttf" type="DynamicFontData" id=1]
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
size = 64
|
size = 64
|
||||||
|
|||||||
@ -1,26 +1,42 @@
|
|||||||
[gd_scene load_steps=3 format=2]
|
[gd_scene load_steps=4 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://source/entities/player/player-node.tscn" type="PackedScene" id=1]
|
[ext_resource path="res://source/assets/scripts/server-handlers/trinity_site_level.gd" type="Script" id=1]
|
||||||
[ext_resource path="res://source/levels/trinity_site/images/trinity_site_level_layout-monochrome.png" type="Texture" id=2]
|
[ext_resource path="res://source/assets/scripts/ui_element_handlers/UI.gd" type="Script" id=2]
|
||||||
|
[ext_resource path="res://source/levels/trinity_site/images/trinity_site_level_layout-monochrome.png" type="Texture" id=3]
|
||||||
|
|
||||||
[node name="trinity-site" type="Node2D"]
|
[node name="trinity-site" type="Node2D"]
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
|
||||||
[node name="player-node" parent="." instance=ExtResource( 1 )]
|
[node name="trinity_site_body" type="StaticBody2D" parent="."]
|
||||||
position = Vector2( 373.976, 533.394 )
|
|
||||||
|
|
||||||
[node name="trinity-site-body" type="StaticBody2D" parent="."]
|
[node name="trinity_site_level_layout-monochrome" type="Sprite" parent="trinity_site_body"]
|
||||||
|
position = Vector2( 960.281, 540 )
|
||||||
|
scale = Vector2( 1.5, 1.42857 )
|
||||||
|
texture = ExtResource( 3 )
|
||||||
|
|
||||||
[node name="trinity_site_level_layout-monochrome" type="Sprite" parent="trinity-site-body"]
|
[node name="trinity_site_outer_collider" type="CollisionPolygon2D" parent="trinity_site_body"]
|
||||||
position = Vector2( 953.868, 573.156 )
|
|
||||||
scale = Vector2( 1.49915, 1.42561 )
|
|
||||||
texture = ExtResource( 2 )
|
|
||||||
|
|
||||||
[node name="trinity_site_outer_collider" type="CollisionPolygon2D" parent="trinity-site-body"]
|
|
||||||
position = Vector2( 2.62201, 1.49829 )
|
position = Vector2( 2.62201, 1.49829 )
|
||||||
scale = Vector2( 1.84456, 1.84456 )
|
scale = Vector2( 1.84456, 1.84456 )
|
||||||
polygon = PoolVector2Array( 511.775, 1.29255e-07, 508.374, 81.3459, 502, 79.9369, 496.101, 77.9311, 489.258, 74.6276, 482.533, 69.3183, 475.336, 62.4752, 467.903, 57.2839, 459.526, 52.6825, 452.748, 49.4016, 445.163, 46.405, 438.233, 43.8766, 430.086, 42.4719, 423.063, 41.5355, 414.635, 40.88, 406.488, 41.4419, 398.434, 42.8465, 391.318, 44.0639, 384.669, 45.7495, 379.237, 47.716, 373.712, 49.7762, 365.753, 53.7093, 359.666, 57.455, 353.017, 62.1372, 347.867, 66.8194, 342.81, 72.2508, 337.847, 77.2139, 334.101, 82.1771, 329.606, 88.3576, 326.516, 93.3207, 321.74, 98.1902, 317.245, 102.123, 311.345, 106.15, 304.977, 108.866, 296.362, 111.3, 288.964, 112.424, 280.536, 112.05, 272.483, 110.364, 264.336, 108.304, 255.627, 106.525, 247.948, 105.401, 238.397, 104.183, 229.875, 103.903, 222.009, 103.528, 214.986, 103.903, 207.4, 104.183, 200.377, 104.933, 193.916, 105.588, 185.675, 106.806, 178.183, 108.304, 168.819, 110.926, 161.983, 112.986, 154.96, 115.421, 146.532, 118.324, 139.696, 121.695, 132.11, 125.628, 126.304, 129.093, 119.937, 132.745, 112.539, 136.491, 106.826, 140.705, 100.833, 145.574, 94.7464, 150.35, 90.8133, 153.815, 85.6629, 158.029, 81.0743, 162.617, 76.5794, 166.925, 73.1146, 170.577, 68.4324, 175.915, 65.1548, 179.754, 61.5061, 185.562, 56.3556, 193.866, 51.4153, 201.329, 46.0546, 208.582, 42.1655, 216.15, 38.8019, 224.349, 35.3332, 232.127, 32.4952, 239.695, 30.498, 246.002, 28.3958, 254.201, 26.9242, 261.348, 25.5578, 268.075, 24.4015, 274.382, 23.2453, 282.265, 23.2453, 288.887, 22.1942, 297.402, 22.2993, 305.705, 22.6146, 313.168, 23.3504, 322.103, 24.4488, 330.903, 25.1043, 337.552, 26.6026, 345.044, 28.1009, 352.254, 29.9738, 357.686, 31.8467, 363.398, 34.5624, 372.388, 37.559, 379.692, 40.0874, 386.435, 42.9903, 391.96, 46.2679, 398.515, 49.3581, 403.571, 53.8531, 410.782, 57.8798, 416.307, 61.3446, 422.488, 65.9332, 427.825, 72.301, 434.942, 77.2641, 440.186, 84.1938, 447.584, 89.7188, 452.922, 96.7421, 458.447, 103.297, 463.317, 110.227, 468.561, 117.344, 473.243, 125.023, 477.925, 132.421, 481.952, 140.193, 485.417, 147.123, 488.039, 156.3, 491.223, 163.042, 493.564, 171.564, 496.186, 180.46, 498.527, 189.918, 499.931, 198.814, 501.43, 207.898, 502.273, 218.199, 502.928, 226.72, 502.928, 234.586, 502.647, 242.452, 501.711, 248.165, 500.962, 255.904, 499.956, 265.225, 497.832, 275.843, 495.354, 283.978, 493.966, 292.715, 494.529, 301.092, 496.652, 308.525, 499.248, 314.778, 503.259, 320.913, 507.861, 325.397, 513.406, 331.178, 521.901, 337.785, 530.16, 343.448, 535.823, 351.707, 542.43, 359.966, 548.565, 369.523, 554.701, 378, 558.75, 387, 561.625, 396, 563.75, 406.125, 564.75, 418.125, 565.625, 429.125, 564.375, 438, 562.125, 446.875, 559.25, 458, 555.125, 466.25, 550.375, 471.875, 546.5, 477.125, 542.5, 483, 537, 488.875, 533.25, 494.25, 529.875, 500.25, 527.875, 507.5, 526.375, 514.375, 526.375, 520.125, 527, 530.125, 528.875, 539.625, 533.25, 544.25, 537.125, 552, 544, 557.625, 547.875, 565.875, 552.875, 573.125, 556.25, 580.5, 559.625, 588.125, 562.25, 595.875, 563.625, 605.125, 564.875, 613.25, 565.5, 622.875, 565.125, 631.875, 563.625, 641.5, 561.5, 647.5, 560.25, 655.375, 556.625, 662.625, 553, 670, 547.75, 678.625, 540.625, 685.625, 534.875, 691.125, 528.875, 696.625, 520, 701.625, 512.375, 707.375, 506.625, 713.75, 502.125, 723.75, 497.375, 735.458, 494.76, 745.863, 495.206, 757.607, 498.327, 772.918, 501.003, 783.472, 502.192, 794.621, 502.936, 809.04, 503.382, 822.567, 502.936, 834.905, 501.895, 849.621, 498.625, 864.486, 495.354, 874.595, 491.341, 886.487, 485.692, 898.23, 479.3, 912.798, 471.719, 923.946, 463.543, 933.163, 456.854, 943.271, 448.232, 951.298, 440.056, 957.839, 432.029, 968.857, 418.87, 978.034, 403.185, 983.874, 391.672, 989.046, 379.492, 992.383, 369.648, 999.224, 351.627, 1002.23, 337.278, 1003.4, 321.927, 1004.56, 307.911, 1004.4, 296.231, 1003.73, 280.714, 1001.06, 265.864, 998.056, 252.682, 994.385, 239.334, 988.546, 224.65, 982.872, 212.637, 975.865, 199.789, 968.69, 187.275, 960.013, 177.764, 951.337, 167.419, 943.828, 158.075, 934.818, 151.067, 925.141, 144.727, 913.127, 134.883, 900.947, 127.374, 887.932, 120.366, 873.582, 114.86, 859.4, 110.522, 847.052, 107.351, 832.369, 105.683, 817.352, 104.181, 801.167, 103.514, 786.484, 104.515, 772.969, 105.683, 761.122, 108.186, 748.942, 111.857, 741.099, 113.358, 729.757, 111.82, 718.178, 107.489, 706.776, 99.7108, 699.794, 91.4023, 694.225, 82.3867, 684.39, 70.9989, 676.071, 63.0041, 661.343, 53.1236, 650.831, 47.6174, 640.152, 44.2803, 626.804, 41.6106, 614.123, 41.2769, 600.607, 41.6106, 588.594, 43.7797, 576.747, 47.7843, 565.067, 52.623, 558.226, 57.1281, 551.385, 61.6332, 544.377, 67.9737, 539.538, 72.6456, 533.198, 76.9839, 522.686, 80.321, 511.173, 81.6558, 511.775, 1.29255e-07, 1040.9, 1.29255e-07, 1040.9, 585.505, 1.29255e-07, 585.505, 1.29255e-07, 1.29255e-07 )
|
polygon = PoolVector2Array( 511.775, 1.29255e-07, 508.374, 81.3459, 502, 79.9369, 496.101, 77.9311, 489.258, 74.6276, 482.533, 69.3183, 475.336, 62.4752, 467.903, 57.2839, 459.526, 52.6825, 452.748, 49.4016, 445.163, 46.405, 438.233, 43.8766, 430.086, 42.4719, 423.063, 41.5355, 414.635, 40.88, 406.488, 41.4419, 398.434, 42.8465, 391.318, 44.0639, 384.669, 45.7495, 379.237, 47.716, 373.712, 49.7762, 365.753, 53.7093, 359.666, 57.455, 353.017, 62.1372, 347.867, 66.8194, 342.81, 72.2508, 337.847, 77.2139, 334.101, 82.1771, 329.606, 88.3576, 326.516, 93.3207, 321.74, 98.1902, 317.245, 102.123, 311.345, 106.15, 304.977, 108.866, 296.362, 111.3, 288.964, 112.424, 280.536, 112.05, 272.483, 110.364, 264.336, 108.304, 255.627, 106.525, 247.948, 105.401, 238.397, 104.183, 229.875, 103.903, 222.009, 103.528, 214.986, 103.903, 207.4, 104.183, 200.377, 104.933, 193.916, 105.588, 185.675, 106.806, 178.183, 108.304, 168.819, 110.926, 161.983, 112.986, 154.96, 115.421, 146.532, 118.324, 139.696, 121.695, 132.11, 125.628, 126.304, 129.093, 119.937, 132.745, 112.539, 136.491, 106.826, 140.705, 100.833, 145.574, 94.7464, 150.35, 90.8133, 153.815, 85.6629, 158.029, 81.0743, 162.617, 76.5794, 166.925, 73.1146, 170.577, 68.4324, 175.915, 65.1548, 179.754, 61.5061, 185.562, 56.3556, 193.866, 51.4153, 201.329, 46.0546, 208.582, 42.1655, 216.15, 38.8019, 224.349, 35.3332, 232.127, 32.4952, 239.695, 30.498, 246.002, 28.3958, 254.201, 26.9242, 261.348, 25.5578, 268.075, 24.4015, 274.382, 23.2453, 282.265, 23.2453, 288.887, 22.1942, 297.402, 22.2993, 305.705, 22.6146, 313.168, 23.3504, 322.103, 24.4488, 330.903, 25.1043, 337.552, 26.6026, 345.044, 28.1009, 352.254, 29.9738, 357.686, 31.8467, 363.398, 34.5624, 372.388, 37.559, 379.692, 40.0874, 386.435, 42.9903, 391.96, 46.2679, 398.515, 49.3581, 403.571, 53.8531, 410.782, 57.8798, 416.307, 61.3446, 422.488, 65.9332, 427.825, 72.301, 434.942, 77.2641, 440.186, 84.1938, 447.584, 89.7188, 452.922, 96.7421, 458.447, 103.297, 463.317, 103.89, 450.137, 113.627, 456.831, 127.473, 464.894, 140.827, 470.781, 159.064, 477.243, 179.885, 481.694, 198.312, 484.823, 212.315, 486.189, 227.171, 486.36, 238.441, 486.019, 252.615, 484.14, 268.837, 480.554, 284.826, 476.266, 299.358, 478.413, 312.009, 483.314, 320.114, 488.598, 328.196, 497.952, 333.395, 504.822, 338.391, 511.108, 344.355, 517.716, 351.179, 523.073, 357.096, 527.591, 364.519, 532.109, 377.585, 538.784, 384.652, 541.412, 392.16, 543.492, 402.653, 545.392, 412.918, 546.09, 423.973, 546.204, 434.23, 545.179, 445.843, 542.69, 462.506, 536.773, 472.007, 531.261, 481.838, 524.33, 489.253, 517.399, 500.189, 512.454, 510.687, 509.268, 520.951, 508.061, 530.671, 509.57, 544.625, 514.743, 553.771, 522.547, 562.47, 528.815, 575.245, 536.534, 588.352, 541.663, 599.065, 544.74, 614.109, 546.564, 629.477, 546.658, 641.63, 544.611, 654.895, 541.292, 666.587, 537.075, 683.506, 526.07, 691.029, 519.688, 696.271, 514.445, 702.653, 507.151, 710.403, 495.298, 720.091, 486.979, 735.168, 479.494, 751.061, 477.351, 767.868, 481.01, 785.623, 484.534, 802.293, 485.618, 817.473, 485.889, 836.991, 484.72, 850.653, 483.429, 863.239, 480.632, 875.395, 477.62, 892.423, 471.861, 903.923, 466.973, 916.574, 460.456, 926.438, 455.115, 933.037, 450.953, 949.48, 438.321, 957.212, 431.491, 968.857, 418.87, 978.034, 403.185, 983.874, 391.672, 989.046, 379.492, 992.383, 369.648, 999.224, 351.627, 1002.23, 337.278, 1003.4, 321.927, 1004.56, 307.911, 1004.4, 296.231, 1003.73, 280.714, 1001.06, 265.864, 998.056, 252.682, 994.385, 239.334, 988.546, 224.65, 982.872, 212.637, 975.865, 199.789, 968.69, 187.275, 960.013, 177.764, 951.337, 167.419, 943.828, 158.075, 934.818, 151.067, 925.141, 144.727, 913.127, 134.883, 900.947, 127.374, 887.932, 120.366, 873.582, 114.86, 859.4, 110.522, 847.052, 107.351, 832.369, 105.683, 817.352, 104.181, 801.167, 103.514, 786.484, 104.515, 772.969, 105.683, 761.122, 108.186, 748.942, 111.857, 741.099, 113.358, 729.757, 111.82, 718.178, 107.489, 706.776, 99.7108, 699.794, 91.4023, 694.225, 82.3867, 684.39, 70.9989, 676.071, 63.0041, 661.343, 53.1236, 650.831, 47.6174, 640.152, 44.2803, 626.804, 41.6106, 614.123, 41.2769, 600.607, 41.6106, 588.594, 43.7797, 576.747, 47.7843, 565.067, 52.623, 558.226, 57.1281, 551.385, 61.6332, 544.377, 67.9737, 539.538, 72.6456, 533.198, 76.9839, 522.686, 80.321, 511.173, 81.6558, 511.775, 1.29255e-07, 1040.9, 1.29255e-07, 1040.9, 585.505, 1.29255e-07, 585.505, 1.29255e-07, 1.29255e-07 )
|
||||||
|
|
||||||
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="trinity-site-body"]
|
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="trinity_site_body"]
|
||||||
position = Vector2( 0.794176, -14.9406 )
|
position = Vector2( 9.53674e-07, -16 )
|
||||||
scale = Vector2( 1.86858, 1.83741 )
|
scale = Vector2( 1.86858, 1.83741 )
|
||||||
polygon = PoolVector2Array( 411.392, 250.341, 409.273, 253.255, 403.446, 255.638, 394.971, 258.552, 386.76, 263.055, 380.138, 269.146, 374.576, 276.298, 368.484, 285.568, 365.571, 297.222, 365.041, 307.817, 366.1, 318.147, 371.927, 329.536, 376.96, 336.422, 384.111, 343.309, 394.706, 348.341, 403.446, 351.785, 412.187, 356.552, 414.836, 362.379, 417.749, 372.444, 424.371, 382.774, 429.403, 388.866, 438.144, 395.223, 449.798, 398.931, 461.187, 400.785, 474.96, 401.579, 483.171, 398.666, 490.852, 393.898, 497.739, 389.925, 508.598, 385.952, 519.193, 386.217, 527.668, 389.396, 534.025, 392.574, 544.09, 397.606, 554.685, 400.52, 564.485, 402.109, 577.463, 400.785, 586.204, 396.282, 594.415, 391.779, 601.036, 385.952, 606.599, 378.801, 609.247, 370.325, 613.485, 359.995, 618.782, 353.374, 629.112, 350.99, 639.972, 345.428, 647.388, 338.541, 656.128, 328.741, 660.366, 320.001, 663.28, 307.022, 661.691, 296.693, 659.307, 285.038, 653.536, 274.373, 644.209, 264.114, 633.35, 258.817, 622.132, 254.55, 613.891, 248.982, 609.777, 238.952, 606.069, 229.417, 599.859, 219.36, 587.793, 210.611, 572.166, 204.519, 557.598, 203.725, 544.09, 206.373, 537.734, 209.552, 537.734, 209.552, 531.377, 214.319, 522.901, 218.557, 512.306, 220.411, 505.155, 218.557, 491.117, 212.995, 479.728, 207.698, 471.252, 205.314, 459.333, 203.46, 445.295, 206.109, 433.376, 212.995, 426.755, 218.557, 418.544, 227.298, 414.571, 238.157 )
|
polygon = PoolVector2Array( 411.392, 250.341, 409.273, 253.255, 403.446, 255.638, 394.971, 258.552, 386.76, 263.055, 380.138, 269.146, 374.576, 276.298, 368.484, 285.568, 365.571, 297.222, 365.041, 307.817, 366.1, 318.147, 371.927, 329.536, 376.96, 336.422, 384.111, 343.309, 394.706, 348.341, 403.446, 351.785, 412.187, 356.552, 414.836, 362.379, 417.749, 372.444, 424.371, 382.774, 429.403, 388.866, 438.144, 395.223, 449.798, 398.931, 461.187, 400.785, 474.96, 401.579, 483.171, 398.666, 490.852, 393.898, 497.739, 389.925, 508.598, 385.952, 519.193, 386.217, 527.668, 389.396, 534.025, 392.574, 544.09, 397.606, 554.685, 400.52, 564.485, 402.109, 577.463, 400.785, 586.204, 396.282, 594.415, 391.779, 601.036, 385.952, 606.599, 378.801, 609.247, 370.325, 613.485, 359.995, 618.782, 353.374, 629.112, 350.99, 639.972, 345.428, 647.388, 338.541, 656.128, 328.741, 660.366, 320.001, 663.28, 307.022, 661.691, 296.693, 659.307, 285.038, 653.536, 274.373, 644.209, 264.114, 633.35, 258.817, 622.132, 254.55, 613.891, 248.982, 609.777, 238.952, 606.069, 229.417, 599.859, 219.36, 587.793, 210.611, 572.166, 204.519, 557.598, 203.725, 544.09, 206.373, 537.734, 209.552, 537.734, 209.552, 531.377, 214.319, 522.901, 218.557, 512.306, 220.411, 505.155, 218.557, 491.117, 212.995, 479.728, 207.698, 471.252, 205.314, 459.333, 203.46, 445.295, 206.109, 433.376, 212.995, 426.755, 218.557, 418.544, 227.298, 414.571, 238.157 )
|
||||||
|
|
||||||
|
[node name="spawn_locations" type="Node" parent="."]
|
||||||
|
|
||||||
|
[node name="1" type="Position2D" parent="spawn_locations"]
|
||||||
|
position = Vector2( 395.113, 723.483 )
|
||||||
|
|
||||||
|
[node name="2" type="Position2D" parent="spawn_locations"]
|
||||||
|
position = Vector2( 962.095, 904.443 )
|
||||||
|
|
||||||
|
[node name="3" type="Position2D" parent="spawn_locations"]
|
||||||
|
position = Vector2( 1780.68, 680.768 )
|
||||||
|
|
||||||
|
[node name="4" type="Position2D" parent="spawn_locations"]
|
||||||
|
position = Vector2( 946.144, 307.022 )
|
||||||
|
|
||||||
|
[node name="UI" type="CanvasLayer" parent="."]
|
||||||
|
script = ExtResource( 2 )
|
||||||
@ -1,8 +1,16 @@
|
|||||||
[gd_scene load_steps=4 format=2]
|
[gd_scene load_steps=7 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://font/roboto.tres" type="DynamicFont" id=1]
|
[ext_resource path="res://source/fonts/roboto/roboto.tres" type="DynamicFont" id=1]
|
||||||
[ext_resource path="res://code/server/network_setup.gd" type="Script" id=2]
|
[ext_resource path="res://source/assets/scripts/server-handlers/network_processors/network_setup.gd" type="Script" id=2]
|
||||||
[ext_resource path="res://code/UI.gd" type="Script" id=3]
|
[ext_resource path="res://source/assets/scripts/ui_element_handlers/UI.gd" type="Script" id=3]
|
||||||
|
[ext_resource path="res://source/floor.tscn" type="PackedScene" id=4]
|
||||||
|
[ext_resource path="res://font/Roboto-Regular.ttf" type="DynamicFontData" id=5]
|
||||||
|
|
||||||
|
[sub_resource type="DynamicFont" id=1]
|
||||||
|
size = 64
|
||||||
|
use_mipmaps = true
|
||||||
|
use_filter = true
|
||||||
|
font_data = ExtResource( 5 )
|
||||||
|
|
||||||
[node name="network_setup" type="Control"]
|
[node name="network_setup" type="Control"]
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
@ -70,9 +78,9 @@ script = ExtResource( 3 )
|
|||||||
|
|
||||||
[node name="start_game" type="Button" parent="UI"]
|
[node name="start_game" type="Button" parent="UI"]
|
||||||
margin_left = 27.0
|
margin_left = 27.0
|
||||||
margin_top = 27.0
|
margin_top = 24.7551
|
||||||
margin_right = 391.0
|
margin_right = 391.0
|
||||||
margin_bottom = 158.0
|
margin_bottom = 155.755
|
||||||
custom_fonts/font = ExtResource( 1 )
|
custom_fonts/font = ExtResource( 1 )
|
||||||
text = "Start game"
|
text = "Start game"
|
||||||
__meta__ = {
|
__meta__ = {
|
||||||
@ -84,13 +92,17 @@ anchor_top = 1.0
|
|||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
margin_top = -150.0
|
margin_top = -150.0
|
||||||
custom_fonts/font = ExtResource( 1 )
|
custom_fonts/font = SubResource( 1 )
|
||||||
align = 1
|
align = 1
|
||||||
valign = 1
|
valign = 1
|
||||||
__meta__ = {
|
__meta__ = {
|
||||||
"_edit_use_anchors_": false
|
"_edit_use_anchors_": false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[node name="floor" parent="." instance=ExtResource( 4 )]
|
||||||
|
position = Vector2( 1048.45, 986.437 )
|
||||||
|
scale = Vector2( 2, 1 )
|
||||||
|
|
||||||
[connection signal="pressed" from="multiplayer_configure/create_server" to="." method="_on_create_server_pressed"]
|
[connection signal="pressed" from="multiplayer_configure/create_server" to="." method="_on_create_server_pressed"]
|
||||||
[connection signal="pressed" from="multiplayer_configure/join_server" to="." method="_on_join_server_pressed"]
|
[connection signal="pressed" from="multiplayer_configure/join_server" to="." method="_on_join_server_pressed"]
|
||||||
[connection signal="pressed" from="UI/start_game" to="." method="_on_start_game_pressed"]
|
[connection signal="pressed" from="UI/start_game" to="." method="_on_start_game_pressed"]
|
||||||
@ -1,6 +0,0 @@
|
|||||||
[gd_scene load_steps=2 format=2]
|
|
||||||
|
|
||||||
[ext_resource path="res://code/server/server_advertiser.gd" type="Script" id=1]
|
|
||||||
|
|
||||||
[node name="server_advertiser" type="Node"]
|
|
||||||
script = ExtResource( 1 )
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
[gd_scene load_steps=2 format=2]
|
|
||||||
|
|
||||||
[ext_resource path="res://code/server/server_listener.gd" type="Script" id=1]
|
|
||||||
|
|
||||||
[node name="server_listener" type="Node"]
|
|
||||||
script = ExtResource( 1 )
|
|
||||||
@ -0,0 +1,6 @@
|
|||||||
|
[gd_scene load_steps=2 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://source/assets/scripts/server-handlers/server_processors/server_advertiser.gd" type="Script" id=1]
|
||||||
|
|
||||||
|
[node name="server_advertiser" type="Node"]
|
||||||
|
script = ExtResource( 1 )
|
||||||
@ -1,8 +1,8 @@
|
|||||||
[gd_scene load_steps=5 format=2]
|
[gd_scene load_steps=5 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://font/roboto.tres" type="DynamicFont" id=1]
|
[ext_resource path="res://source/fonts/roboto/roboto.tres" type="DynamicFont" id=1]
|
||||||
[ext_resource path="res://scenes/server_listener.tscn" type="PackedScene" id=2]
|
[ext_resource path="res://source/scenes/GUI/server_handlers/server_listener.tscn" type="PackedScene" id=2]
|
||||||
[ext_resource path="res://code/server/server_browser.gd" type="Script" id=3]
|
[ext_resource path="res://source/assets/scripts/server-handlers/server_processors/server_browser.gd" type="Script" id=3]
|
||||||
|
|
||||||
[sub_resource type="Animation" id=1]
|
[sub_resource type="Animation" id=1]
|
||||||
resource_name = "searching_for_servers"
|
resource_name = "searching_for_servers"
|
||||||
@ -1,7 +1,7 @@
|
|||||||
[gd_scene load_steps=3 format=2]
|
[gd_scene load_steps=3 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://font/roboto.tres" type="DynamicFont" id=1]
|
[ext_resource path="res://source/fonts/roboto/roboto.tres" type="DynamicFont" id=1]
|
||||||
[ext_resource path="res://code/server/server_display.gd" type="Script" id=2]
|
[ext_resource path="res://source/assets/scripts/server-handlers/server_processors/server_display.gd" type="Script" id=2]
|
||||||
|
|
||||||
[node name="server_display" type="Label"]
|
[node name="server_display" type="Label"]
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
@ -18,7 +18,7 @@ __meta__ = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
[node name="join_button" type="Button" parent="." groups=[
|
[node name="join_button" type="Button" parent="." groups=[
|
||||||
"server_display",
|
"Server_display",
|
||||||
]]
|
]]
|
||||||
anchor_left = 1.0
|
anchor_left = 1.0
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
@ -28,5 +28,8 @@ margin_top = 13.0
|
|||||||
margin_bottom = -13.0
|
margin_bottom = -13.0
|
||||||
custom_fonts/font = ExtResource( 1 )
|
custom_fonts/font = ExtResource( 1 )
|
||||||
text = "Join"
|
text = "Join"
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
[connection signal="pressed" from="join_button" to="." method="_on_join_button_pressed"]
|
[connection signal="pressed" from="join_button" to="." method="_on_join_button_pressed"]
|
||||||
@ -0,0 +1,6 @@
|
|||||||
|
[gd_scene load_steps=2 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://source/assets/scripts/server-handlers/server_processors/server_listener.gd" type="Script" id=1]
|
||||||
|
|
||||||
|
[node name="server_listener" type="Node"]
|
||||||
|
script = ExtResource( 1 )
|
||||||
@ -0,0 +1,3 @@
|
|||||||
|
[gd_scene format=2]
|
||||||
|
|
||||||
|
[node name="persistent_nodes" type="Node"]
|
||||||
@ -1,19 +1,14 @@
|
|||||||
[gd_scene load_steps=5 format=2]
|
[gd_scene load_steps=5 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://font/Roboto-Regular.ttf" type="DynamicFontData" id=1]
|
[ext_resource path="res://source/fonts/roboto/roboto.tres" type="DynamicFont" id=1]
|
||||||
[ext_resource path="res://code/simple_prompt.gd" type="Script" id=2]
|
[ext_resource path="res://source/assets/scripts/ui_element_handlers/simple_prompt.gd" type="Script" id=2]
|
||||||
|
[ext_resource path="res://source/fonts/roboto/Roboto-Regular.ttf" type="DynamicFontData" id=3]
|
||||||
|
|
||||||
[sub_resource type="DynamicFont" id=1]
|
[sub_resource type="DynamicFont" id=1]
|
||||||
size = 100
|
size = 100
|
||||||
use_mipmaps = true
|
use_mipmaps = true
|
||||||
use_filter = true
|
use_filter = true
|
||||||
font_data = ExtResource( 1 )
|
font_data = ExtResource( 3 )
|
||||||
|
|
||||||
[sub_resource type="DynamicFont" id=2]
|
|
||||||
size = 100
|
|
||||||
use_mipmaps = true
|
|
||||||
use_filter = true
|
|
||||||
font_data = ExtResource( 1 )
|
|
||||||
|
|
||||||
[node name="simple_prompt" type="Control"]
|
[node name="simple_prompt" type="Control"]
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
@ -45,7 +40,7 @@ margin_left = -257.0
|
|||||||
margin_top = -310.0
|
margin_top = -310.0
|
||||||
margin_right = 257.0
|
margin_right = 257.0
|
||||||
margin_bottom = -113.0
|
margin_bottom = -113.0
|
||||||
custom_fonts/font = SubResource( 1 )
|
custom_fonts/font = ExtResource( 1 )
|
||||||
text = "OK"
|
text = "OK"
|
||||||
__meta__ = {
|
__meta__ = {
|
||||||
"_edit_use_anchors_": false
|
"_edit_use_anchors_": false
|
||||||
@ -59,8 +54,8 @@ anchor_bottom = 0.5
|
|||||||
margin_left = -516.0
|
margin_left = -516.0
|
||||||
margin_top = -155.5
|
margin_top = -155.5
|
||||||
margin_right = 516.0
|
margin_right = 516.0
|
||||||
margin_bottom = -68.5
|
margin_bottom = -37.5
|
||||||
custom_fonts/font = SubResource( 2 )
|
custom_fonts/font = SubResource( 1 )
|
||||||
text = "Simple prompt"
|
text = "Simple prompt"
|
||||||
align = 1
|
align = 1
|
||||||
valign = 1
|
valign = 1
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
[gd_scene load_steps=3 format=2]
|
[gd_scene load_steps=3 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://font/roboto.tres" type="DynamicFont" id=1]
|
[ext_resource path="res://source/fonts/roboto/roboto.tres" type="DynamicFont" id=1]
|
||||||
[ext_resource path="res://code/username_text.gd" type="Script" id=2]
|
[ext_resource path="res://source/assets/scripts/ui_element_handlers/username_text.gd" type="Script" id=2]
|
||||||
|
|
||||||
[node name="username_text" type="Node2D" groups=[
|
[node name="username_text" type="Node2D" groups=[
|
||||||
"Net",
|
"Net",
|
||||||
|
|||||||
51
Game/source/sprites/floor.svg
Normal file
51
Game/source/sprites/floor.svg
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
width="1920"
|
||||||
|
height="48"
|
||||||
|
viewBox="0 0 508.00001 12.7"
|
||||||
|
version="1.1"
|
||||||
|
id="svg5"
|
||||||
|
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
|
||||||
|
sodipodi:docname="floor.svg"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview7"
|
||||||
|
pagecolor="#505050"
|
||||||
|
bordercolor="#ffffff"
|
||||||
|
borderopacity="1"
|
||||||
|
inkscape:pageshadow="0"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pagecheckerboard="1"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
showgrid="false"
|
||||||
|
width="7256.6929px"
|
||||||
|
units="px"
|
||||||
|
inkscape:zoom="0.14030934"
|
||||||
|
inkscape:cx="416.9359"
|
||||||
|
inkscape:cy="1297.1339"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="1006"
|
||||||
|
inkscape:window-x="1920"
|
||||||
|
inkscape:window-y="45"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="layer1" />
|
||||||
|
<defs
|
||||||
|
id="defs2" />
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1">
|
||||||
|
<rect
|
||||||
|
style="fill:#b4cffa;stroke-width:0.259237;fill-opacity:1"
|
||||||
|
id="rect31"
|
||||||
|
width="508"
|
||||||
|
height="12.7"
|
||||||
|
x="0"
|
||||||
|
y="0" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.4 KiB |
34
Game/source/sprites/floor.svg.import
Normal file
34
Game/source/sprites/floor.svg.import
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/floor.svg-86da9fb94a8a492527a026759e2d9055.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://source/sprites/floor.svg"
|
||||||
|
dest_files=[ "res://.import/floor.svg-86da9fb94a8a492527a026759e2d9055.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=true
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
||||||
Loading…
Reference in New Issue
Block a user