forked from unfa/liblast
Added list of connected people
parent
1fc1edc6c1
commit
59a6a2e1d6
|
@ -2,16 +2,16 @@
|
||||||
|
|
||||||
[ext_resource path="res://Fonts/Roboto_Condensed/RobotoCondensed-Regular-dynamic.tres" type="DynamicFont" id=1]
|
[ext_resource path="res://Fonts/Roboto_Condensed/RobotoCondensed-Regular-dynamic.tres" type="DynamicFont" id=1]
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id=2]
|
[sub_resource type="StyleBoxFlat" id=1]
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id=3]
|
[sub_resource type="StyleBoxFlat" id=2]
|
||||||
bg_color = Color( 0.113725, 0.0784314, 0.0392157, 0.513726 )
|
bg_color = Color( 0.113725, 0.0784314, 0.0392157, 0.513726 )
|
||||||
corner_radius_top_left = 5
|
corner_radius_top_left = 5
|
||||||
corner_radius_top_right = 5
|
corner_radius_top_right = 5
|
||||||
corner_radius_bottom_right = 5
|
corner_radius_bottom_right = 5
|
||||||
corner_radius_bottom_left = 5
|
corner_radius_bottom_left = 5
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id=1]
|
[sub_resource type="StyleBoxFlat" id=3]
|
||||||
bg_color = Color( 0.172549, 0.109804, 0.109804, 0.372549 )
|
bg_color = Color( 0.172549, 0.109804, 0.109804, 0.372549 )
|
||||||
border_width_left = 5
|
border_width_left = 5
|
||||||
border_width_top = 5
|
border_width_top = 5
|
||||||
|
@ -57,10 +57,11 @@ Button/colors/font_color_pressed = Color( 1, 1, 1, 1 )
|
||||||
Button/constants/hseparation = 2
|
Button/constants/hseparation = 2
|
||||||
Button/fonts/font = null
|
Button/fonts/font = null
|
||||||
Button/styles/disabled = null
|
Button/styles/disabled = null
|
||||||
Button/styles/focus = SubResource( 2 )
|
Button/styles/focus = SubResource( 1 )
|
||||||
Button/styles/hover = SubResource( 3 )
|
Button/styles/hover = SubResource( 2 )
|
||||||
Button/styles/normal = SubResource( 1 )
|
Button/styles/normal = SubResource( 3 )
|
||||||
Button/styles/pressed = SubResource( 4 )
|
Button/styles/pressed = SubResource( 4 )
|
||||||
|
LineEdit/colors/Test = Color( 0, 0, 0, 1 )
|
||||||
LineEdit/colors/clear_button_color = Color( 0.88, 0.88, 0.88, 1 )
|
LineEdit/colors/clear_button_color = Color( 0.88, 0.88, 0.88, 1 )
|
||||||
LineEdit/colors/clear_button_color_pressed = Color( 1, 1, 1, 1 )
|
LineEdit/colors/clear_button_color_pressed = Color( 1, 1, 1, 1 )
|
||||||
LineEdit/colors/cursor_color = Color( 0.94, 0.94, 0.94, 1 )
|
LineEdit/colors/cursor_color = Color( 0.94, 0.94, 0.94, 1 )
|
||||||
|
|
75
Game.gd
75
Game.gd
|
@ -19,6 +19,10 @@ var settingmap = {
|
||||||
onready var peer = NetworkedMultiplayerENet.new()
|
onready var peer = NetworkedMultiplayerENet.new()
|
||||||
var local_player = null setget set_local_player
|
var local_player = null setget set_local_player
|
||||||
|
|
||||||
|
func set_local_player(player):
|
||||||
|
local_player = player
|
||||||
|
player.set_local_player()
|
||||||
|
|
||||||
# Called when the node enters the scene tree for the first time.
|
# Called when the node enters the scene tree for the first time.
|
||||||
func _ready():
|
func _ready():
|
||||||
$MenuContainer/ConnectMenu/Destination/IPAdress.set_text(SERVER_IP)
|
$MenuContainer/ConnectMenu/Destination/IPAdress.set_text(SERVER_IP)
|
||||||
|
@ -29,11 +33,6 @@ func _ready():
|
||||||
if auto_host:
|
if auto_host:
|
||||||
initialize_server(false)
|
initialize_server(false)
|
||||||
|
|
||||||
func set_local_player(player):
|
|
||||||
local_player = player
|
|
||||||
player.set_local_player()
|
|
||||||
player.rpc("set_nickname", $MenuContainer/MainMenu/Name.text)
|
|
||||||
|
|
||||||
func load_settings():
|
func load_settings():
|
||||||
var load_settings = File.new()
|
var load_settings = File.new()
|
||||||
load_settings.open("user://settings.save", File.READ)
|
load_settings.open("user://settings.save", File.READ)
|
||||||
|
@ -75,8 +74,13 @@ func _input(event):
|
||||||
var buttons = child.get_children()
|
var buttons = child.get_children()
|
||||||
for button in buttons:
|
for button in buttons:
|
||||||
if button.name == "Back":
|
if button.name == "Back":
|
||||||
print(child.name)
|
|
||||||
button.emit_signal("pressed")
|
button.emit_signal("pressed")
|
||||||
|
|
||||||
|
if event.is_action_pressed("ShowPlayerList") and !$MenuContainer.visible:
|
||||||
|
$PlayerListContainer.show()
|
||||||
|
|
||||||
|
if event.is_action_released("ShowPlayerList"):
|
||||||
|
$PlayerListContainer.hide()
|
||||||
|
|
||||||
func open_menus():
|
func open_menus():
|
||||||
GAME_MODE = "MENU"
|
GAME_MODE = "MENU"
|
||||||
|
@ -107,8 +111,8 @@ func join_test_server():
|
||||||
SERVER_IP = "unfa.xyz"
|
SERVER_IP = "unfa.xyz"
|
||||||
initialize_client()
|
initialize_client()
|
||||||
|
|
||||||
sync func set_player_name(player, name):
|
#sync func set_player_name(player, name):
|
||||||
print(name)
|
# print(name)
|
||||||
|
|
||||||
func join_home():
|
func join_home():
|
||||||
SERVER_IP = "127.0.0.1"
|
SERVER_IP = "127.0.0.1"
|
||||||
|
@ -167,11 +171,13 @@ func initialize_server(join=true):
|
||||||
peer.create_server(SERVER_PORT, MAX_PLAYERS)
|
peer.create_server(SERVER_PORT, MAX_PLAYERS)
|
||||||
get_tree().connect("network_peer_connected", self, "on_peer_connected")
|
get_tree().connect("network_peer_connected", self, "on_peer_connected")
|
||||||
get_tree().connect("network_peer_disconnected", self, "on_peer_disconnected")
|
get_tree().connect("network_peer_disconnected", self, "on_peer_disconnected")
|
||||||
|
get_tree().network_peer = peer
|
||||||
|
|
||||||
initialize()
|
initialize()
|
||||||
|
|
||||||
if join:
|
if join:
|
||||||
add_player(1, false)
|
join_game()
|
||||||
|
#add_player(peer.get_unique_id(), false)
|
||||||
|
|
||||||
func initialize_client():
|
func initialize_client():
|
||||||
peer.create_client(SERVER_IP, SERVER_PORT)
|
peer.create_client(SERVER_IP, SERVER_PORT)
|
||||||
|
@ -188,7 +194,6 @@ func initialize():
|
||||||
$MenuContainer/MainMenu/Disconnect.show()
|
$MenuContainer/MainMenu/Disconnect.show()
|
||||||
|
|
||||||
close_menus()
|
close_menus()
|
||||||
set_nickname($MenuContainer/MainMenu/Name.text)
|
|
||||||
|
|
||||||
func free_client():
|
func free_client():
|
||||||
$MenuContainer/MainMenu/Connect.show()
|
$MenuContainer/MainMenu/Connect.show()
|
||||||
|
@ -197,6 +202,9 @@ func free_client():
|
||||||
for player in $Players.get_children():
|
for player in $Players.get_children():
|
||||||
player.queue_free()
|
player.queue_free()
|
||||||
|
|
||||||
|
for player_list_item in $PlayerListContainer/Panel/PlayerList.get_children():
|
||||||
|
player_list_item.queue_free()
|
||||||
|
|
||||||
peer.close_connection()
|
peer.close_connection()
|
||||||
|
|
||||||
func quit():
|
func quit():
|
||||||
|
@ -220,6 +228,7 @@ sync func check_players(player_data):
|
||||||
var player = player_scene.instance()
|
var player = player_scene.instance()
|
||||||
|
|
||||||
player.name = player_name
|
player.name = player_name
|
||||||
|
player.set_network_master(int(player_name))
|
||||||
|
|
||||||
$Players.add_child(player)
|
$Players.add_child(player)
|
||||||
player.translation += Vector3(0.0, 3.0, 0.0)
|
player.translation += Vector3(0.0, 3.0, 0.0)
|
||||||
|
@ -227,36 +236,54 @@ sync func check_players(player_data):
|
||||||
var data = player_data[player_name]
|
var data = player_data[player_name]
|
||||||
player.set_nickname(data["nickname"])
|
player.set_nickname(data["nickname"])
|
||||||
|
|
||||||
if player_name == str(get_tree().get_network_unique_id()):
|
on_player_added(player)
|
||||||
set_local_player(player)
|
|
||||||
|
|
||||||
func add_player(id, check=true):
|
func join_game():
|
||||||
var player = player_scene.instance()
|
var player = player_scene.instance()
|
||||||
|
var id = peer.get_unique_id()
|
||||||
|
|
||||||
player.name = str(id)
|
player.name = str(id)
|
||||||
$Players.add_child(player)
|
|
||||||
player.set_network_master(id)
|
player.set_network_master(id)
|
||||||
player.translation += Vector3(0.0, 0.0, 0.0)
|
|
||||||
|
|
||||||
if check:
|
$Players.add_child(player)
|
||||||
var player_data = get_player_data()
|
set_local_player(player)
|
||||||
rpc("check_players", player_data)
|
|
||||||
else:
|
var nickname = $MenuContainer/MainMenu/Name.text
|
||||||
set_local_player(player)
|
set_nickname(nickname)
|
||||||
|
player.set_nickname(nickname)
|
||||||
|
on_player_added(player)
|
||||||
|
|
||||||
|
var player_data = get_player_data()
|
||||||
|
|
||||||
|
rpc("set_player_data", player_data)
|
||||||
|
|
||||||
|
func on_player_added(player):
|
||||||
|
var player_list_item = preload("res://PlayerListItem.tscn").instance()
|
||||||
|
$PlayerListContainer/Panel/PlayerList.add_child(player_list_item)
|
||||||
|
player_list_item.player = player
|
||||||
|
|
||||||
sync func remove_player(id):
|
sync func remove_player(id):
|
||||||
|
for player_list_item in $PlayerListContainer/Panel/PlayerList.get_children():
|
||||||
|
if player_list_item.network_id == str(id):
|
||||||
|
player_list_item.queue_free()
|
||||||
|
|
||||||
for player in $Players.get_children():
|
for player in $Players.get_children():
|
||||||
if player.name == str(id):
|
if player.name == str(id):
|
||||||
$Players.remove_child(player)
|
player.queue_free()
|
||||||
|
|
||||||
func get_spawn_point():
|
func get_spawn_point():
|
||||||
return $Level/SpawnPoint
|
return $Level/SpawnPoint
|
||||||
|
|
||||||
func on_peer_connected(id):
|
func on_peer_connected(id):
|
||||||
print("Peer connected with id ", id)
|
print("Peer connected with id ", id)
|
||||||
|
|
||||||
|
master func set_player_data(player_data):
|
||||||
|
check_players(player_data)
|
||||||
|
var new_player_data = get_player_data()
|
||||||
|
|
||||||
add_player(id)
|
print(new_player_data)
|
||||||
|
|
||||||
|
rpc("check_players", new_player_data)
|
||||||
|
|
||||||
func on_peer_disconnected(id):
|
func on_peer_disconnected(id):
|
||||||
print("Peer disconnected with id ", id)
|
print("Peer disconnected with id ", id)
|
||||||
|
@ -264,7 +291,7 @@ func on_peer_disconnected(id):
|
||||||
rpc("remove_player", id)
|
rpc("remove_player", id)
|
||||||
|
|
||||||
func on_connection_established():
|
func on_connection_established():
|
||||||
print("Connection has been established")
|
join_game()
|
||||||
|
|
||||||
func on_connection_failed():
|
func on_connection_failed():
|
||||||
print("Connection has failed")
|
print("Connection has failed")
|
||||||
|
|
19
Game.tscn
19
Game.tscn
|
@ -264,6 +264,25 @@ margin_top = 24.0
|
||||||
margin_right = 300.0
|
margin_right = 300.0
|
||||||
margin_bottom = 64.0
|
margin_bottom = 64.0
|
||||||
text = "Fullscreen"
|
text = "Fullscreen"
|
||||||
|
|
||||||
|
[node name="PlayerListContainer" type="CenterContainer" parent="."]
|
||||||
|
visible = false
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
theme = ExtResource( 1 )
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="Panel" type="Panel" parent="PlayerListContainer"]
|
||||||
|
margin_left = 262.0
|
||||||
|
margin_top = 49.0
|
||||||
|
margin_right = 762.0
|
||||||
|
margin_bottom = 549.0
|
||||||
|
rect_min_size = Vector2( 500, 500 )
|
||||||
|
|
||||||
|
[node name="PlayerList" type="VBoxContainer" parent="PlayerListContainer/Panel"]
|
||||||
|
alignment = 1
|
||||||
[connection signal="pressed" from="MenuContainer/MainMenu/QuickConnect" to="." method="join_test_server"]
|
[connection signal="pressed" from="MenuContainer/MainMenu/QuickConnect" to="." method="join_test_server"]
|
||||||
[connection signal="pressed" from="MenuContainer/MainMenu/Connect" to="." method="open_menu" binds= [ "ConnectMenu" ]]
|
[connection signal="pressed" from="MenuContainer/MainMenu/Connect" to="." method="open_menu" binds= [ "ConnectMenu" ]]
|
||||||
[connection signal="pressed" from="MenuContainer/MainMenu/Disconnect" to="." method="free_client"]
|
[connection signal="pressed" from="MenuContainer/MainMenu/Disconnect" to="." method="free_client"]
|
||||||
|
|
52
Level.tscn
52
Level.tscn
|
@ -1,27 +1,23 @@
|
||||||
[gd_scene load_steps=14 format=2]
|
[gd_scene load_steps=12 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://LevelComponents/Killfloor.tscn" type="PackedScene" id=1]
|
[ext_resource path="res://LevelComponents/Killfloor.tscn" type="PackedScene" id=1]
|
||||||
[ext_resource path="res://LevelComponents/SpawnPoint.tscn" type="PackedScene" id=2]
|
[ext_resource path="res://LevelComponents/SpawnPoint.tscn" type="PackedScene" id=2]
|
||||||
[ext_resource path="res://LevelComponents/LevelGeometry.gd" type="Script" id=3]
|
[ext_resource path="res://LevelComponents/LevelGeometry.gd" type="Script" id=3]
|
||||||
|
|
||||||
[sub_resource type="BoxShape" id=1]
|
[sub_resource type="VisualShaderNodeTextureUniformTriplanar" id=1]
|
||||||
|
|
||||||
[sub_resource type="CubeMesh" id=2]
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeTextureUniformTriplanar" id=3]
|
|
||||||
output_port_for_preview = 0
|
output_port_for_preview = 0
|
||||||
uniform_name = "BaseTexture"
|
uniform_name = "BaseTexture"
|
||||||
texture_type = 1
|
texture_type = 1
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeTextureUniformTriplanar" id=4]
|
[sub_resource type="VisualShaderNodeTextureUniformTriplanar" id=2]
|
||||||
output_port_for_preview = 0
|
output_port_for_preview = 0
|
||||||
uniform_name = "BaseTextureNormal"
|
uniform_name = "BaseTextureNormal"
|
||||||
texture_type = 2
|
texture_type = 2
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeScalarUniform" id=5]
|
[sub_resource type="VisualShaderNodeScalarUniform" id=3]
|
||||||
uniform_name = "ScalarUniform"
|
uniform_name = "ScalarUniform"
|
||||||
|
|
||||||
[sub_resource type="VisualShader" id=6]
|
[sub_resource type="VisualShader" id=4]
|
||||||
code = "shader_type spatial;
|
code = "shader_type spatial;
|
||||||
render_mode specular_schlick_ggx, world_vertex_coords;
|
render_mode specular_schlick_ggx, world_vertex_coords;
|
||||||
|
|
||||||
|
@ -93,59 +89,49 @@ void light() {
|
||||||
graph_offset = Vector2( -531, 641.5 )
|
graph_offset = Vector2( -531, 641.5 )
|
||||||
flags/world_vertex_coords = true
|
flags/world_vertex_coords = true
|
||||||
nodes/fragment/0/position = Vector2( 220, 100 )
|
nodes/fragment/0/position = Vector2( 220, 100 )
|
||||||
nodes/fragment/3/node = SubResource( 3 )
|
nodes/fragment/3/node = SubResource( 1 )
|
||||||
nodes/fragment/3/position = Vector2( -640, 20 )
|
nodes/fragment/3/position = Vector2( -640, 20 )
|
||||||
nodes/fragment/5/node = SubResource( 4 )
|
nodes/fragment/5/node = SubResource( 2 )
|
||||||
nodes/fragment/5/position = Vector2( -280, 500 )
|
nodes/fragment/5/position = Vector2( -280, 500 )
|
||||||
nodes/fragment/6/node = SubResource( 5 )
|
nodes/fragment/6/node = SubResource( 3 )
|
||||||
nodes/fragment/6/position = Vector2( -140, 200 )
|
nodes/fragment/6/position = Vector2( -140, 200 )
|
||||||
nodes/fragment/connections = PoolIntArray( 3, 0, 0, 0, 5, 0, 0, 8, 6, 0, 0, 3 )
|
nodes/fragment/connections = PoolIntArray( 3, 0, 0, 0, 5, 0, 0, 8, 6, 0, 0, 3 )
|
||||||
|
|
||||||
[sub_resource type="OpenSimplexNoise" id=7]
|
[sub_resource type="OpenSimplexNoise" id=5]
|
||||||
octaves = 7
|
octaves = 7
|
||||||
period = 256.0
|
period = 256.0
|
||||||
persistence = 0.859
|
persistence = 0.859
|
||||||
lacunarity = 4.0
|
lacunarity = 4.0
|
||||||
|
|
||||||
[sub_resource type="NoiseTexture" id=8]
|
[sub_resource type="NoiseTexture" id=6]
|
||||||
seamless = true
|
seamless = true
|
||||||
noise = SubResource( 7 )
|
noise = SubResource( 5 )
|
||||||
|
|
||||||
[sub_resource type="NoiseTexture" id=9]
|
[sub_resource type="NoiseTexture" id=7]
|
||||||
seamless = true
|
seamless = true
|
||||||
as_normalmap = true
|
as_normalmap = true
|
||||||
bump_strength = 4.0
|
bump_strength = 4.0
|
||||||
noise = SubResource( 7 )
|
noise = SubResource( 5 )
|
||||||
|
|
||||||
[sub_resource type="ShaderMaterial" id=10]
|
[sub_resource type="ShaderMaterial" id=8]
|
||||||
shader = SubResource( 6 )
|
shader = SubResource( 4 )
|
||||||
shader_param/ScalarUniform = 0.4
|
shader_param/ScalarUniform = 0.4
|
||||||
shader_param/triplanar_scale = Vector3( 0.1, 0.1, 0.1 )
|
shader_param/triplanar_scale = Vector3( 0.1, 0.1, 0.1 )
|
||||||
shader_param/triplanar_offset = null
|
shader_param/triplanar_offset = null
|
||||||
shader_param/triplanar_sharpness = 0.5
|
shader_param/triplanar_sharpness = 0.5
|
||||||
shader_param/BaseTexture = SubResource( 8 )
|
shader_param/BaseTexture = SubResource( 6 )
|
||||||
shader_param/BaseTextureNormal = SubResource( 9 )
|
shader_param/BaseTextureNormal = SubResource( 7 )
|
||||||
|
|
||||||
[node name="Level" type="Spatial"]
|
[node name="Level" type="Spatial"]
|
||||||
|
|
||||||
[node name="Node" type="Node" parent="."]
|
[node name="Node" type="Node" parent="."]
|
||||||
|
|
||||||
[node name="DirectionalLight" type="DirectionalLight" parent="Node"]
|
[node name="DirectionalLight" type="DirectionalLight" parent="Node"]
|
||||||
transform = Transform( 1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 24.5477, 7 )
|
transform = Transform( 0.41961, 0.641844, -0.641844, 0, 0.707107, 0.707107, 0.907704, -0.296709, 0.296709, 0, 24.5477, 7 )
|
||||||
shadow_enabled = true
|
shadow_enabled = true
|
||||||
|
|
||||||
[node name="RigidBody" type="RigidBody" parent="."]
|
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4.22547, 0 )
|
|
||||||
|
|
||||||
[node name="CollisionShape" type="CollisionShape" parent="RigidBody"]
|
|
||||||
shape = SubResource( 1 )
|
|
||||||
|
|
||||||
[node name="MeshInstance" type="MeshInstance" parent="RigidBody"]
|
|
||||||
mesh = SubResource( 2 )
|
|
||||||
material/0 = null
|
|
||||||
|
|
||||||
[node name="CSGCombiner" type="CSGCombiner" parent="."]
|
[node name="CSGCombiner" type="CSGCombiner" parent="."]
|
||||||
material_override = SubResource( 10 )
|
material_override = SubResource( 8 )
|
||||||
use_collision = true
|
use_collision = true
|
||||||
script = ExtResource( 3 )
|
script = ExtResource( 3 )
|
||||||
|
|
||||||
|
|
|
@ -57,10 +57,13 @@ func set_health(value):
|
||||||
$Billboard.rpc("set_health", value)
|
$Billboard.rpc("set_health", value)
|
||||||
#$Billboard.set_health(value)
|
#$Billboard.set_health(value)
|
||||||
|
|
||||||
sync func set_nickname(_nickname):
|
func set_nickname(_nickname):
|
||||||
$Billboard.set_nickname(_nickname)
|
$Billboard.set_nickname(_nickname)
|
||||||
nickname = _nickname
|
nickname = _nickname
|
||||||
|
|
||||||
|
remote func set_player_data(player):
|
||||||
|
nickname = player.nickname
|
||||||
|
|
||||||
func gravity():
|
func gravity():
|
||||||
if not is_on_floor():
|
if not is_on_floor():
|
||||||
self.velocity.y -= GRAVITY
|
self.velocity.y -= GRAVITY
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
extends HBoxContainer
|
||||||
|
|
||||||
|
var player setget set_player
|
||||||
|
var network_id
|
||||||
|
|
||||||
|
func set_player(player):
|
||||||
|
$Nickname.text = player.nickname
|
||||||
|
network_id = player.name
|
|
@ -0,0 +1,15 @@
|
||||||
|
[gd_scene load_steps=2 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://PlayerListItem.gd" type="Script" id=1]
|
||||||
|
|
||||||
|
[node name="Player" type="HBoxContainer"]
|
||||||
|
margin_bottom = 14.0
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="Nickname" type="Label" parent="."]
|
||||||
|
margin_right = 28.0
|
||||||
|
margin_bottom = 14.0
|
||||||
|
text = "TEST"
|
|
@ -75,6 +75,11 @@ ToggleMenu={
|
||||||
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777217,"unicode":0,"echo":false,"script":null)
|
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777217,"unicode":0,"echo":false,"script":null)
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
ShowPlayerList={
|
||||||
|
"deadzone": 0.5,
|
||||||
|
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777218,"unicode":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
[rendering]
|
[rendering]
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue