Implemented shell casings. Laid groundwork for separating client/server functinality and to handle a server-side player list. Fixed vignette on at start. FIxed pause menu on after startign the game. Lowered visual detail.
parent
a562929421
commit
595ff48d05
|
@ -1,17 +1,17 @@
|
||||||
[editor_metadata]
|
[editor_metadata]
|
||||||
|
|
||||||
executable_path="/data/Applications/Godot/4.0/godot"
|
executable_path="/data/Projects/Games/Liblast/Godot/godot"
|
||||||
|
|
||||||
[debug_options]
|
[debug_options]
|
||||||
|
|
||||||
run_live_debug=true
|
run_live_debug=true
|
||||||
run_reload_scripts=true
|
run_reload_scripts=true
|
||||||
run_debug_instances=1
|
run_debug_instances=2
|
||||||
|
|
||||||
[recent_files]
|
[recent_files]
|
||||||
|
|
||||||
scenes=[ "res://Main.tscn" ]
|
scenes=["res://Main.tscn", "res://Assets/Characters/Player.tscn", "res://Assets/HUD/HUD.tscn", "res://Map.tscn", "res://Server.tscn", "res://Assets/Weapons/Handgun/Flash.tscn", "res://Assets/Weapons/Handgun/Casing.tscn", "res://Assets/Weapons/Weapon.tscn", "res://Assets/Maps/DM1/DM1.glb", "res://Assets/Props/BeerCan.glb"]
|
||||||
scripts=[ "NetworkedMultiplayerPeer", "LightmapProbe", "Node3D", "res://Player.gd" ]
|
scripts=["Dictionary", "RigidBody3D", "OS", "Node3D", "Node", "MultiplayerAPI", "MeshInstance3D", "Input", "Callable", "@GlobalScope"]
|
||||||
|
|
||||||
[script_setup]
|
[script_setup]
|
||||||
|
|
||||||
|
@ -20,13 +20,14 @@ last_selected_language="GDScript"
|
||||||
|
|
||||||
[dialog_bounds]
|
[dialog_bounds]
|
||||||
|
|
||||||
project_settings=Rect2( 0, 29, 1920, 1006 )
|
search_help=Rect2(476, 495, 960, 540)
|
||||||
editor_settings=Rect2( 1920, 29, 1920, 1051 )
|
export=Rect2(533, 181, 900, 700)
|
||||||
|
project_settings=Rect2(0, 29, 1920, 1006)
|
||||||
|
|
||||||
[project_settings]
|
[project_settings]
|
||||||
|
|
||||||
advanced_mode=true
|
advanced_mode=true
|
||||||
|
|
||||||
[inspector_options]
|
[export_options]
|
||||||
|
|
||||||
material_preview_on_sphere=true
|
default_filename="Liblast Linux"
|
||||||
|
|
|
@ -1,14 +1,11 @@
|
||||||
extends CharacterBody3D
|
extends CharacterBody3D
|
||||||
|
|
||||||
@export var mouse_sensitivity := 0.35
|
@export var mouse_sensitivity := 0.35
|
||||||
#var speed := 15
|
|
||||||
|
|
||||||
@onready var hud = get_tree().root.get_node("Main").get_node("HUD")
|
@onready var hud = get_tree().root.get_node("Main").get_node("HUD")
|
||||||
@onready var crosshair = hud.get_node("Crosshair")
|
@onready var crosshair = hud.get_node("Crosshair")
|
||||||
@onready var vignette = hud.get_node("Vignette")
|
@onready var vignette = hud.get_node("Vignette")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@onready var head = $Head
|
@onready var head = $Head
|
||||||
@onready var camera = $Head/Camera
|
@onready var camera = $Head/Camera
|
||||||
@onready var tween = $Head/Camera/Tween
|
@onready var tween = $Head/Camera/Tween
|
||||||
|
@ -53,7 +50,9 @@ var input_active = false
|
||||||
var player_info: PlayerInfo
|
var player_info: PlayerInfo
|
||||||
|
|
||||||
var base_fov = 90
|
var base_fov = 90
|
||||||
var view_zoom := 1.0 :
|
var view_zoom_target := 1.0
|
||||||
|
var view_zoom_direction = true
|
||||||
|
var view_zoom := view_zoom_target :
|
||||||
set(zoom):
|
set(zoom):
|
||||||
view_zoom = zoom
|
view_zoom = zoom
|
||||||
camera.fov = base_fov / zoom
|
camera.fov = base_fov / zoom
|
||||||
|
@ -95,8 +94,12 @@ var jump := 14
|
||||||
var velocity := Vector3.ZERO
|
var velocity := Vector3.ZERO
|
||||||
var gravity_vec := Vector3.ZERO
|
var gravity_vec := Vector3.ZERO
|
||||||
|
|
||||||
@puppetsync func set_info(info):
|
@puppetsync func set_info(info) -> void:
|
||||||
player_info = PlayerInfo.new(info['name'], info['team'].to_int(), Color(info['color']))
|
player_info = PlayerInfo.new(info['name'], info['team'].to_int(), Color(info['color']))
|
||||||
|
print("set_info - rpc called from ", get_tree().get_rpc_sender_id())
|
||||||
|
|
||||||
|
@master func update_info() -> void:
|
||||||
|
rpc(&'set_info', player_info.serialize())
|
||||||
|
|
||||||
@master func generate_info() -> void:
|
@master func generate_info() -> void:
|
||||||
var player_name = ""
|
var player_name = ""
|
||||||
|
@ -112,7 +115,7 @@ var gravity_vec := Vector3.ZERO
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
#Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
|
#Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
|
||||||
view_zoom = 1.0
|
view_zoom_target = 1.0
|
||||||
|
|
||||||
generate_info()
|
generate_info()
|
||||||
|
|
||||||
|
@ -148,20 +151,18 @@ func _input(event) -> void:
|
||||||
# tween.remove_all()
|
# tween.remove_all()
|
||||||
# tween.interpolate_property(self, "view_zoom", view_zoom, 4.0, 0.5, Tween.TRANS_SINE, Tween.EASE_IN_OUT)
|
# tween.interpolate_property(self, "view_zoom", view_zoom, 4.0, 0.5, Tween.TRANS_SINE, Tween.EASE_IN_OUT)
|
||||||
# tween.start()
|
# tween.start()
|
||||||
|
view_zoom_direction = true
|
||||||
view_zoom = 4.0
|
view_zoom_target = 4.0
|
||||||
|
|
||||||
if Input.is_action_just_released("view_zoom"):
|
if Input.is_action_just_released("view_zoom"):
|
||||||
# tween.remove_all()
|
# tween.remove_all()
|
||||||
# tween.interpolate_property(self, "view_zoom", view_zoom, 1.0, 0.25, Tween.TRANS_SINE, Tween.EASE_IN_OUT)
|
# tween.interpolate_property(self, "view_zoom", view_zoom, 1.0, 0.25, Tween.TRANS_SINE, Tween.EASE_IN_OUT)
|
||||||
# tween.start()
|
# tween.start()
|
||||||
|
view_zoom_direction = false
|
||||||
|
view_zoom_target = 1.0
|
||||||
|
|
||||||
view_zoom = 1.0
|
|
||||||
|
|
||||||
# rpc_unreliable(&'aim', event)
|
|
||||||
aim(event)
|
aim(event)
|
||||||
# rpc(&'aim', event)
|
|
||||||
|
|
||||||
if Input.is_action_just_pressed("trigger_primary"):
|
if Input.is_action_just_pressed("trigger_primary"):
|
||||||
weapon.rpc(&'trigger', 0, true)
|
weapon.rpc(&'trigger', 0, true)
|
||||||
elif Input.is_action_just_released("trigger_primary"):
|
elif Input.is_action_just_released("trigger_primary"):
|
||||||
|
@ -170,7 +171,14 @@ func _input(event) -> void:
|
||||||
weapon.rpc(&'trigger', 1, true)
|
weapon.rpc(&'trigger', 1, true)
|
||||||
elif Input.is_action_just_released("trigger_secondary"):
|
elif Input.is_action_just_released("trigger_secondary"):
|
||||||
weapon.rpc(&'trigger', 1, false)
|
weapon.rpc(&'trigger', 1, false)
|
||||||
|
|
||||||
|
func _process(delta):
|
||||||
|
if view_zoom_direction and view_zoom < view_zoom_target:
|
||||||
|
view_zoom = min(view_zoom_target, view_zoom + delta * 4)
|
||||||
|
elif not view_zoom_direction and view_zoom > view_zoom_target:
|
||||||
|
view_zoom = max(view_zoom_target, view_zoom - delta * 4)
|
||||||
|
|
||||||
|
|
||||||
func _physics_process(delta):
|
func _physics_process(delta):
|
||||||
# rpc_unreliable(&'set_global_transform', global_transform)
|
# rpc_unreliable(&'set_global_transform', global_transform)
|
||||||
# head.rpc_unreliable(&'set_rotation', head.get_rotation())
|
# head.rpc_unreliable(&'set_rotation', head.get_rotation())
|
||||||
|
|
|
@ -133,6 +133,7 @@ stream = ExtResource( 3 )
|
||||||
script = null
|
script = null
|
||||||
|
|
||||||
[node name="Vignette" type="TextureRect" parent="."]
|
[node name="Vignette" type="TextureRect" parent="."]
|
||||||
|
modulate = Color(1, 1, 1, 0)
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
texture = ExtResource( 1 )
|
texture = ExtResource( 1 )
|
||||||
|
|
|
@ -8,7 +8,7 @@ func _ready():
|
||||||
$Back.hide()
|
$Back.hide()
|
||||||
|
|
||||||
func open_menu(path : String):
|
func open_menu(path : String):
|
||||||
var menu = load(path).instance()
|
var menu = load(path).instantiate()
|
||||||
menu.previous_menu = self
|
menu.previous_menu = self
|
||||||
get_parent().add_child(menu)
|
get_parent().add_child(menu)
|
||||||
hide()
|
hide()
|
||||||
|
|
|
@ -8,7 +8,7 @@ path="res://.godot/imported/Casing.gltf-2dbae5f7e896c690e0ad2c5617eec138.scn"
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://Assets/Weapons/Handgun/Casing.gltf"
|
source_file="res://Assets/Weapons/Handgun/Casing.gltf"
|
||||||
dest_files=[ "res://.godot/imported/Casing.gltf-2dbae5f7e896c690e0ad2c5617eec138.scn" ]
|
dest_files=["res://.godot/imported/Casing.gltf-2dbae5f7e896c690e0ad2c5617eec138.scn"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
|
@ -25,4 +25,14 @@ animation/import=true
|
||||||
animation/fps=15
|
animation/fps=15
|
||||||
import_script/path=""
|
import_script/path=""
|
||||||
_subresources={
|
_subresources={
|
||||||
|
"meshes": {
|
||||||
|
"Casing_Cylinder": {
|
||||||
|
"generate/lods": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nodes": {
|
||||||
|
"PATH:Casing_LOD1": {
|
||||||
|
"import/skip_import": true
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,19 +11,14 @@ radius = 0.0119513
|
||||||
height = 0.0560047
|
height = 0.0560047
|
||||||
|
|
||||||
[node name="Casing" type="RigidBody3D"]
|
[node name="Casing" type="RigidBody3D"]
|
||||||
mass = 0.1
|
mass = 0.01
|
||||||
physics_material_override = SubResource( 1 )
|
physics_material_override = SubResource( 1 )
|
||||||
continuous_cd = true
|
continuous_cd = true
|
||||||
script = null
|
script = null
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||||
transform = Transform3D( -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0, 1, 0, 0, 0 )
|
transform = Transform3D(-4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0, 1, 0, 0, 0)
|
||||||
shape = SubResource( 2 )
|
shape = SubResource( 2 )
|
||||||
script = null
|
script = null
|
||||||
|
|
||||||
[node name="Casing" parent="." instance=ExtResource( 1 )]
|
[node name="Casing" parent="." instance=ExtResource( 1 )]
|
||||||
|
|
||||||
[node name="Casing_LOD0" parent="Casing" index="0"]
|
|
||||||
visible = false
|
|
||||||
|
|
||||||
[editable path="Casing"]
|
|
||||||
|
|
|
@ -13,10 +13,10 @@ tracks/0/loop_wrap = true
|
||||||
tracks/0/imported = false
|
tracks/0/imported = false
|
||||||
tracks/0/enabled = true
|
tracks/0/enabled = true
|
||||||
tracks/0/keys = {
|
tracks/0/keys = {
|
||||||
"times": PackedFloat32Array( 0, 0.025, 0.1 ),
|
"times": PackedFloat32Array(0, 0.025, 0.1),
|
||||||
"transitions": PackedFloat32Array( 1, 0.420448, 1 ),
|
"transitions": PackedFloat32Array(1, 0.420448, 1),
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [ Color( 4, 4, 3, 1 ), Color( 4, 2, 0.3, 1 ), Color( 0, 0, 0, 1 ) ]
|
"values": [Color(4, 4, 3, 1), Color(4, 2, 0.3, 1), Color(0, 0, 0, 1)]
|
||||||
}
|
}
|
||||||
tracks/1/type = "value"
|
tracks/1/type = "value"
|
||||||
tracks/1/path = NodePath("MeshInstance3D:position")
|
tracks/1/path = NodePath("MeshInstance3D:position")
|
||||||
|
@ -25,10 +25,10 @@ tracks/1/loop_wrap = true
|
||||||
tracks/1/imported = false
|
tracks/1/imported = false
|
||||||
tracks/1/enabled = true
|
tracks/1/enabled = true
|
||||||
tracks/1/keys = {
|
tracks/1/keys = {
|
||||||
"times": PackedFloat32Array( 0, 0.025, 0.1 ),
|
"times": PackedFloat32Array(0, 0.025, 0.1),
|
||||||
"transitions": PackedFloat32Array( 1, 1, 1 ),
|
"transitions": PackedFloat32Array(1, 1, 1),
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [ Vector3( -0.535305, 0.124179, 0 ), Vector3( -0.620616, 0.124179, 0 ), Vector3( -1.57472, 0.124179, 0 ) ]
|
"values": [Vector3(-0.535305, 0.124179, 0), Vector3(-0.620616, 0.124179, 0), Vector3(-1.57472, 0.124179, 0)]
|
||||||
}
|
}
|
||||||
tracks/2/type = "value"
|
tracks/2/type = "value"
|
||||||
tracks/2/path = NodePath("MeshInstance3D:scale")
|
tracks/2/path = NodePath("MeshInstance3D:scale")
|
||||||
|
@ -37,10 +37,10 @@ tracks/2/loop_wrap = true
|
||||||
tracks/2/imported = false
|
tracks/2/imported = false
|
||||||
tracks/2/enabled = true
|
tracks/2/enabled = true
|
||||||
tracks/2/keys = {
|
tracks/2/keys = {
|
||||||
"times": PackedFloat32Array( 0, 0.025, 0.1 ),
|
"times": PackedFloat32Array(0, 0.025, 0.1),
|
||||||
"transitions": PackedFloat32Array( 1, 1, 1 ),
|
"transitions": PackedFloat32Array(1, 1, 1),
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [ Vector3( -0.336758, -0.0845939, -0.0845939 ), Vector3( -0.299894, -0.119659, -0.119659 ), Vector3( -0.197144, -0.00375807, -0.00375807 ) ]
|
"values": [Vector3(-0.336758, -0.0845939, -0.0845939), Vector3(-0.299894, -0.119659, -0.119659), Vector3(-0.197144, -0.00375807, -0.00375807)]
|
||||||
}
|
}
|
||||||
tracks/3/type = "value"
|
tracks/3/type = "value"
|
||||||
tracks/3/path = NodePath("OmniLight3D:light_color")
|
tracks/3/path = NodePath("OmniLight3D:light_color")
|
||||||
|
@ -49,10 +49,10 @@ tracks/3/loop_wrap = true
|
||||||
tracks/3/imported = false
|
tracks/3/imported = false
|
||||||
tracks/3/enabled = true
|
tracks/3/enabled = true
|
||||||
tracks/3/keys = {
|
tracks/3/keys = {
|
||||||
"times": PackedFloat32Array( 0, 0.025, 0.05, 0.1 ),
|
"times": PackedFloat32Array(0, 0.025, 0.05, 0.1),
|
||||||
"transitions": PackedFloat32Array( 1, 1, 1, 1 ),
|
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [ Color( 1, 1, 1, 1 ), Color( 1, 0.933333, 0.380392, 1 ), Color( 1, 0.637428, 0.415262, 1 ), Color( 0, 0, 0, 1 ) ]
|
"values": [Color(1, 1, 1, 1), Color(1, 0.933333, 0.380392, 1), Color(1, 0.637428, 0.415262, 1), Color(0, 0, 0, 1)]
|
||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id=2]
|
[sub_resource type="Animation" id=2]
|
||||||
|
@ -64,10 +64,10 @@ tracks/0/loop_wrap = true
|
||||||
tracks/0/imported = false
|
tracks/0/imported = false
|
||||||
tracks/0/enabled = true
|
tracks/0/enabled = true
|
||||||
tracks/0/keys = {
|
tracks/0/keys = {
|
||||||
"times": PackedFloat32Array( 0 ),
|
"times": PackedFloat32Array(0),
|
||||||
"transitions": PackedFloat32Array( 1 ),
|
"transitions": PackedFloat32Array(1),
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [ Color( 0, 0, 0, 1 ) ]
|
"values": [Color(0, 0, 0, 1)]
|
||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id=3]
|
[sub_resource type="Animation" id=3]
|
||||||
|
@ -79,10 +79,10 @@ tracks/0/loop_wrap = true
|
||||||
tracks/0/imported = false
|
tracks/0/imported = false
|
||||||
tracks/0/enabled = true
|
tracks/0/enabled = true
|
||||||
tracks/0/keys = {
|
tracks/0/keys = {
|
||||||
"times": PackedFloat32Array( 0 ),
|
"times": PackedFloat32Array(0),
|
||||||
"transitions": PackedFloat32Array( 1 ),
|
"transitions": PackedFloat32Array(1),
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [ Color( 4, 2, 0.3, 1 ) ]
|
"values": [Color(4, 2, 0.3, 1)]
|
||||||
}
|
}
|
||||||
tracks/1/type = "value"
|
tracks/1/type = "value"
|
||||||
tracks/1/path = NodePath("MeshInstance3D:position")
|
tracks/1/path = NodePath("MeshInstance3D:position")
|
||||||
|
@ -91,10 +91,10 @@ tracks/1/loop_wrap = true
|
||||||
tracks/1/imported = false
|
tracks/1/imported = false
|
||||||
tracks/1/enabled = true
|
tracks/1/enabled = true
|
||||||
tracks/1/keys = {
|
tracks/1/keys = {
|
||||||
"times": PackedFloat32Array( 0 ),
|
"times": PackedFloat32Array(0),
|
||||||
"transitions": PackedFloat32Array( 1 ),
|
"transitions": PackedFloat32Array(1),
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [ Vector3( -0.620616, 0.124179, 0 ) ]
|
"values": [Vector3(-0.620616, 0.124179, 0)]
|
||||||
}
|
}
|
||||||
tracks/2/type = "value"
|
tracks/2/type = "value"
|
||||||
tracks/2/path = NodePath("MeshInstance3D:scale")
|
tracks/2/path = NodePath("MeshInstance3D:scale")
|
||||||
|
@ -103,10 +103,10 @@ tracks/2/loop_wrap = true
|
||||||
tracks/2/imported = false
|
tracks/2/imported = false
|
||||||
tracks/2/enabled = true
|
tracks/2/enabled = true
|
||||||
tracks/2/keys = {
|
tracks/2/keys = {
|
||||||
"times": PackedFloat32Array( 0 ),
|
"times": PackedFloat32Array(0),
|
||||||
"transitions": PackedFloat32Array( 1 ),
|
"transitions": PackedFloat32Array(1),
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [ Vector3( -0.299894, -0.119659, -0.119659 ) ]
|
"values": [Vector3(-0.299894, -0.119659, -0.119659)]
|
||||||
}
|
}
|
||||||
tracks/3/type = "value"
|
tracks/3/type = "value"
|
||||||
tracks/3/path = NodePath("OmniLight3D:light_color")
|
tracks/3/path = NodePath("OmniLight3D:light_color")
|
||||||
|
@ -115,19 +115,19 @@ tracks/3/loop_wrap = true
|
||||||
tracks/3/imported = false
|
tracks/3/imported = false
|
||||||
tracks/3/enabled = true
|
tracks/3/enabled = true
|
||||||
tracks/3/keys = {
|
tracks/3/keys = {
|
||||||
"times": PackedFloat32Array( 0 ),
|
"times": PackedFloat32Array(0),
|
||||||
"transitions": PackedFloat32Array( 1 ),
|
"transitions": PackedFloat32Array(1),
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [ Color( 1, 1, 1, 1 ) ]
|
"values": [Color(1, 1, 1, 1)]
|
||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id=4]
|
[sub_resource type="StandardMaterial3D" id=4]
|
||||||
blend_mode = 1
|
blend_mode = 1
|
||||||
shading_mode = 0
|
shading_mode = 0
|
||||||
albedo_color = Color( 4, 2, 0.3, 1 )
|
albedo_color = Color(4, 2, 0.3, 1)
|
||||||
albedo_texture = ExtResource( 1 )
|
albedo_texture = ExtResource( 1 )
|
||||||
uv1_scale = Vector3( 0.25, 0.25, 0.25 )
|
uv1_scale = Vector3(0.25, 0.25, 0.25)
|
||||||
uv1_offset = Vector3( 0.25, 0.25, 0.25 )
|
uv1_offset = Vector3(0.25, 0.25, 0.25)
|
||||||
uv1_triplanar = true
|
uv1_triplanar = true
|
||||||
proximity_fade_distance = 3.94
|
proximity_fade_distance = 3.94
|
||||||
|
|
||||||
|
@ -140,7 +140,7 @@ rings = 8
|
||||||
blend_mode = 1
|
blend_mode = 1
|
||||||
shading_mode = 0
|
shading_mode = 0
|
||||||
vertex_color_use_as_albedo = true
|
vertex_color_use_as_albedo = true
|
||||||
albedo_color = Color( 3, 3, 3, 1 )
|
albedo_color = Color(3, 3, 3, 1)
|
||||||
albedo_texture = ExtResource( 1 )
|
albedo_texture = ExtResource( 1 )
|
||||||
billboard_mode = 3
|
billboard_mode = 3
|
||||||
particles_anim_h_frames = 2
|
particles_anim_h_frames = 2
|
||||||
|
@ -149,14 +149,14 @@ particles_anim_loop = false
|
||||||
|
|
||||||
[sub_resource type="QuadMesh" id=7]
|
[sub_resource type="QuadMesh" id=7]
|
||||||
material = SubResource( 6 )
|
material = SubResource( 6 )
|
||||||
size = Vector2( 0.3, 0.3 )
|
size = Vector2(0.3, 0.3)
|
||||||
|
|
||||||
[sub_resource type="Curve" id=8]
|
[sub_resource type="Curve" id=8]
|
||||||
_data = [ Vector2( 0, 0 ), 0.0, 8.69697, 0, 0, Vector2( 0.501742, 0.918182 ), -1.36667, -1.36667, 0, 0, Vector2( 1, 0.0363636 ), -3.03219, 0.0, 0, 0 ]
|
_data = [Vector2(0, 0), 0.0, 8.69697, 0, 0, Vector2(0.501742, 0.918182), -1.36667, -1.36667, 0, 0, Vector2(1, 0.0363636), -3.03219, 0.0, 0, 0]
|
||||||
|
|
||||||
[sub_resource type="Gradient" id=9]
|
[sub_resource type="Gradient" id=9]
|
||||||
offsets = PackedFloat32Array( 0, 0.0568182, 0.454545, 0.746212, 1 )
|
offsets = PackedFloat32Array(0, 0.0568182, 0.454545, 0.746212, 1)
|
||||||
colors = PackedColorArray( 1, 1, 1, 1, 2, 1.7, 0.7, 1, 1, 0.682129, 0.34375, 1, 0.675781, 0.355111, 0.0976715, 1, 0, 0, 0, 1 )
|
colors = PackedColorArray(1, 1, 1, 1, 2, 1.7, 0.7, 1, 1, 0.682129, 0.34375, 1, 0.675781, 0.355111, 0.0976715, 1, 0, 0, 0, 1)
|
||||||
|
|
||||||
[node name="Flash" type="Node3D"]
|
[node name="Flash" type="Node3D"]
|
||||||
script = ExtResource( 2 )
|
script = ExtResource( 2 )
|
||||||
|
@ -166,11 +166,11 @@ autoplay = "Off"
|
||||||
anims/Flash = SubResource( 1 )
|
anims/Flash = SubResource( 1 )
|
||||||
anims/Off = SubResource( 2 )
|
anims/Off = SubResource( 2 )
|
||||||
anims/RESET = SubResource( 3 )
|
anims/RESET = SubResource( 3 )
|
||||||
blend_times = [ ]
|
blend_times = []
|
||||||
script = null
|
script = null
|
||||||
|
|
||||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
||||||
transform = Transform3D( -0.299894, 0, 0, 0, -0.119659, 0, 0, 0, -0.119659, -0.620616, 0.124179, 0 )
|
transform = Transform3D(-0.299894, 0, 0, 0, -0.119659, 0, 0, 0, -0.119659, -0.620616, 0.124179, 0)
|
||||||
visible = false
|
visible = false
|
||||||
mesh = SubResource( 5 )
|
mesh = SubResource( 5 )
|
||||||
surface_material_override/0 = null
|
surface_material_override/0 = null
|
||||||
|
@ -185,9 +185,9 @@ lifetime_randomness = 0.2
|
||||||
fixed_fps = 120
|
fixed_fps = 120
|
||||||
mesh = SubResource( 7 )
|
mesh = SubResource( 7 )
|
||||||
particle_flag_rotate_y = true
|
particle_flag_rotate_y = true
|
||||||
direction = Vector3( 0, 1, 0 )
|
direction = Vector3(0, 1, 0)
|
||||||
spread = 0.0
|
spread = 0.0
|
||||||
gravity = Vector3( 0, 0, 0 )
|
gravity = Vector3(0, 0, 0)
|
||||||
initial_velocity = 12.0
|
initial_velocity = 12.0
|
||||||
initial_velocity_random = 0.9
|
initial_velocity_random = 0.9
|
||||||
damping = 100.0
|
damping = 100.0
|
||||||
|
@ -208,8 +208,9 @@ autostart = true
|
||||||
script = null
|
script = null
|
||||||
|
|
||||||
[node name="OmniLight3D" type="OmniLight3D" parent="."]
|
[node name="OmniLight3D" type="OmniLight3D" parent="."]
|
||||||
transform = Transform3D( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.230188, 0 )
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.160545, 0)
|
||||||
light_energy = 5.0
|
light_energy = 5.0
|
||||||
|
light_bake_mode = 0
|
||||||
shadow_enabled = true
|
shadow_enabled = true
|
||||||
shadow_blur = 8.0
|
shadow_blur = 8.0
|
||||||
omni_range = 100.0
|
omni_range = 100.0
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
extends Node3D
|
extends Node3D
|
||||||
|
#Hand Camera Head Player
|
||||||
|
@onready var player = get_parent().get_parent().get_parent().get_parent()
|
||||||
@onready var ejector = find_node("Ejector")
|
@onready var ejector = find_node("Ejector")
|
||||||
@onready var muzzle = find_node("Muzzle")
|
@onready var muzzle = find_node("Muzzle")
|
||||||
|
|
||||||
|
@ -13,7 +14,7 @@ var flash = preload("res://Assets/Weapons/Handgun/Flash.tscn")
|
||||||
#enum Trigger {TRIGGER_PRIMARY, TRIGGER_SECONDARY}
|
#enum Trigger {TRIGGER_PRIMARY, TRIGGER_SECONDARY}
|
||||||
|
|
||||||
@puppetsync func trigger(index: int, active: bool) -> void:
|
@puppetsync func trigger(index: int, active: bool) -> void:
|
||||||
print("Weapon " + str(name) + ", Trigger " + str(index) + ", active: " + str(active))
|
#print("Weapon " + str(name) + ", Trigger " + str(index) + ", active: " + str(active))
|
||||||
|
|
||||||
if index == 0 and active:
|
if index == 0 and active:
|
||||||
|
|
||||||
|
@ -27,6 +28,21 @@ var flash = preload("res://Assets/Weapons/Handgun/Flash.tscn")
|
||||||
|
|
||||||
get_parent().add_child(flash_effect)
|
get_parent().add_child(flash_effect)
|
||||||
flash_effect.global_transform = muzzle.global_transform
|
flash_effect.global_transform = muzzle.global_transform
|
||||||
|
|
||||||
|
var casing_instance
|
||||||
|
if casing.has_method(&"instance"):
|
||||||
|
casing_instance = casing.instance()
|
||||||
|
else:
|
||||||
|
casing_instance = casing.instantiate()
|
||||||
|
|
||||||
|
get_tree().root.add_child(casing_instance)
|
||||||
|
|
||||||
|
casing_instance.global_transform = ejector.global_transform.translated(player.linear_velocity / 30) #approximating delta
|
||||||
|
#casing_instance.rotate_object_local(Vector3.FORWARD, deg2rad(90))
|
||||||
|
#casing_instance.angular_velocity = - ejector.global_transform.basis[2] * randf_range(13, 17)
|
||||||
|
casing_instance.linear_velocity = ejector.global_transform.basis[0] * randf_range(6.2, 8.5)# - ejector.global_transform.basis[2] * randf_range(-1.2, -1.7) + player.linear_velocity
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# 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():
|
||||||
|
|
|
@ -12,21 +12,21 @@ tracks/0/interp = 1
|
||||||
tracks/0/loop_wrap = true
|
tracks/0/loop_wrap = true
|
||||||
tracks/0/imported = false
|
tracks/0/imported = false
|
||||||
tracks/0/enabled = true
|
tracks/0/enabled = true
|
||||||
tracks/0/keys = PackedFloat32Array( 0, 1, 0, 0, 0, 7.10543e-15, -5.04871e-29, -7.10543e-15, 1, 1, 1, 1, 0.0666667, 1, 0, -0.0742494, 0, 7.10543e-15, -5.04871e-29, -7.10543e-15, 1, 1, 1, 1, 0.133333, 1, 0, -0.0638517, -7.45058e-09, 4.61853e-14, -3.28166e-28, -7.10543e-15, 1, 1, 1, 1, 0.266667, 1, -1.49012e-08, -0.0154906, -7.45058e-09, 4.9738e-14, -1.06023e-27, -2.13163e-14, 1, 1, 1, 1, 0.333333, 1, -1.49012e-08, -0.000740513, -7.45058e-09, 7.10543e-15, -5.04871e-29, -7.10543e-15, 1, 1, 1, 1, 0.4, 1, 0, 0, 0, 7.10543e-15, -5.04871e-29, -7.10543e-15, 1, 1, 1, 1, 0.433333, 1, 0, 0, 0, 7.10543e-15, -5.04871e-29, -7.10543e-15, 1, 1, 1, 1 )
|
tracks/0/keys = PackedFloat32Array(0, 1, 0, 0, 0, 7.10543e-15, -5.04871e-29, -7.10543e-15, 1, 1, 1, 1, 0.0666667, 1, 0, -0.0742494, 0, 7.10543e-15, -5.04871e-29, -7.10543e-15, 1, 1, 1, 1, 0.133333, 1, 0, -0.0638517, -7.45058e-09, 4.61853e-14, -3.28166e-28, -7.10543e-15, 1, 1, 1, 1, 0.266667, 1, -1.49012e-08, -0.0154906, -7.45058e-09, 4.9738e-14, -1.06023e-27, -2.13163e-14, 1, 1, 1, 1, 0.333333, 1, -1.49012e-08, -0.000740513, -7.45058e-09, 7.10543e-15, -5.04871e-29, -7.10543e-15, 1, 1, 1, 1, 0.4, 1, 0, 0, 0, 7.10543e-15, -5.04871e-29, -7.10543e-15, 1, 1, 1, 1, 0.433333, 1, 0, 0, 0, 7.10543e-15, -5.04871e-29, -7.10543e-15, 1, 1, 1, 1)
|
||||||
tracks/1/type = "transform"
|
tracks/1/type = "transform"
|
||||||
tracks/1/path = NodePath("Handgun_Armature/Skeleton3D:Clip")
|
tracks/1/path = NodePath("Handgun_Armature/Skeleton3D:Clip")
|
||||||
tracks/1/interp = 1
|
tracks/1/interp = 1
|
||||||
tracks/1/loop_wrap = true
|
tracks/1/loop_wrap = true
|
||||||
tracks/1/imported = false
|
tracks/1/imported = false
|
||||||
tracks/1/enabled = true
|
tracks/1/enabled = true
|
||||||
tracks/1/keys = PackedFloat32Array( 0, 1, 0, 0, 0, -1.49012e-08, 7.45058e-09, -7.45058e-09, 1, 1, 1, 1, 0.433333, 1, 0, 0, 0, -1.49012e-08, 7.45058e-09, -7.45058e-09, 1, 1, 1, 1 )
|
tracks/1/keys = PackedFloat32Array(0, 1, 0, 0, 0, -1.49012e-08, 7.45058e-09, -7.45058e-09, 1, 1, 1, 1, 0.433333, 1, 0, 0, 0, -1.49012e-08, 7.45058e-09, -7.45058e-09, 1, 1, 1, 1)
|
||||||
tracks/2/type = "transform"
|
tracks/2/type = "transform"
|
||||||
tracks/2/path = NodePath("Handgun_Armature/Skeleton3D:Root")
|
tracks/2/path = NodePath("Handgun_Armature/Skeleton3D:Root")
|
||||||
tracks/2/interp = 1
|
tracks/2/interp = 1
|
||||||
tracks/2/loop_wrap = true
|
tracks/2/loop_wrap = true
|
||||||
tracks/2/imported = false
|
tracks/2/imported = false
|
||||||
tracks/2/enabled = true
|
tracks/2/enabled = true
|
||||||
tracks/2/keys = PackedFloat32Array( 0, 1, 0, 0, 0, 0, -2.52435e-29, 7.10543e-15, 1, 1, 1, 1, 0.0666667, 1, 0.00131352, 0.00153854, -0.00218139, 0.0163412, 1.22913e-08, 0.00983989, 0.999818, 1, 1, 1, 0.133333, 1, 0.00476759, 0.00558436, -0.00791762, 0.0593126, 5.85811e-08, 0.0357152, 0.9976, 1, 1, 1, 0.2, 1, 0.00591084, 0.00692347, -0.00981623, 0.0734948, 2.37198e-08, 0.0442549, 0.996313, 1, 1, 1, 0.333333, 1, 0.00017027, 0.000199437, -0.000282773, 0.00211715, 6.15582e-08, 0.00127486, 0.999997, 1, 1, 1, 0.4, 1, 0, 0, 0, 0, -2.52435e-29, 7.10543e-15, 1, 1, 1, 1, 0.433333, 1, 0, 0, 0, 0, -2.52435e-29, 7.10543e-15, 1, 1, 1, 1 )
|
tracks/2/keys = PackedFloat32Array(0, 1, 0, 0, 0, 0, -2.52435e-29, 7.10543e-15, 1, 1, 1, 1, 0.0666667, 1, 0.00131352, 0.00153854, -0.00218139, 0.0163412, 1.22913e-08, 0.00983989, 0.999818, 1, 1, 1, 0.133333, 1, 0.00476759, 0.00558436, -0.00791762, 0.0593126, 5.85811e-08, 0.0357152, 0.9976, 1, 1, 1, 0.2, 1, 0.00591084, 0.00692347, -0.00981623, 0.0734948, 2.37198e-08, 0.0442549, 0.996313, 1, 1, 1, 0.333333, 1, 0.00017027, 0.000199437, -0.000282773, 0.00211715, 6.15582e-08, 0.00127486, 0.999997, 1, 1, 1, 0.4, 1, 0, 0, 0, 0, -2.52435e-29, 7.10543e-15, 1, 1, 1, 1, 0.433333, 1, 0, 0, 0, 0, -2.52435e-29, 7.10543e-15, 1, 1, 1, 1)
|
||||||
|
|
||||||
[node name="Weapon" type="Node3D"]
|
[node name="Weapon" type="Node3D"]
|
||||||
script = ExtResource( 2 )
|
script = ExtResource( 2 )
|
||||||
|
@ -34,13 +34,13 @@ script = ExtResource( 2 )
|
||||||
[node name="Handgun" parent="." instance=ExtResource( 1 )]
|
[node name="Handgun" parent="." instance=ExtResource( 1 )]
|
||||||
|
|
||||||
[node name="Skeleton3D" parent="Handgun/Handgun_Armature" index="0"]
|
[node name="Skeleton3D" parent="Handgun/Handgun_Armature" index="0"]
|
||||||
bones/0/pose = Transform3D( 1, -1.42109e-14, -5.04871e-29, 1.42109e-14, 1, -3.58732e-43, 5.04871e-29, -3.58732e-43, 1, 0, 0, 0 )
|
bones/0/pose = Transform3D(1, -1.42109e-14, -5.04871e-29, 1.42109e-14, 1, -3.58732e-43, 5.04871e-29, -3.58732e-43, 1, 0, 0, 0)
|
||||||
bones/1/pose = Transform3D( 1, 1.42109e-14, -2.01948e-28, -1.42109e-14, 1, -1.42109e-14, 0, 1.42109e-14, 1, 0, 0, 0 )
|
bones/1/pose = Transform3D(1, 1.42109e-14, -2.01948e-28, -1.42109e-14, 1, -1.42109e-14, 0, 1.42109e-14, 1, 0, 0, 0)
|
||||||
bones/2/pose = Transform3D( 1, 1.49012e-08, 1.49012e-08, -1.49012e-08, 1, 2.98023e-08, -1.49012e-08, -2.98023e-08, 1, 0, 0, 0 )
|
bones/2/pose = Transform3D(1, 1.49012e-08, 1.49012e-08, -1.49012e-08, 1, 2.98023e-08, -1.49012e-08, -2.98023e-08, 1, 0, 0, 0)
|
||||||
|
|
||||||
[node name="AnimationPlayer" parent="Handgun" index="4"]
|
[node name="AnimationPlayer" parent="Handgun" index="4"]
|
||||||
autoplay = "Default"
|
autoplay = "Default"
|
||||||
anims/Default = SubResource( 1 )
|
anims/Default = SubResource( 1 )
|
||||||
blend_times = [ ]
|
blend_times = []
|
||||||
|
|
||||||
[editable path="Handgun"]
|
[editable path="Handgun"]
|
||||||
|
|
56
Game/Main.gd
56
Game/Main.gd
|
@ -1,12 +1,18 @@
|
||||||
extends Node
|
extends Node
|
||||||
|
|
||||||
enum GameFocus {MENU, GAME, CHAT, AWAY}
|
enum GameFocus {MENU, GAME, CHAT, AWAY}
|
||||||
|
enum NetworkRole {NONE, CLIENT, SERVER, DEDICATED_SERVER, RELAY_SERVER}
|
||||||
|
|
||||||
const NET_PORT = 12597
|
const NET_PORT = 12597
|
||||||
const NET_SERVER = "localhost" #liblast.unfa.xyz"
|
const NET_SERVER = "localhost" #liblast.unfa.xyz"
|
||||||
|
|
||||||
var peer = NetworkedMultiplayerENet.new()
|
var peer = NetworkedMultiplayerENet.new()
|
||||||
|
|
||||||
|
var role = NetworkRole.NONE:
|
||||||
|
set(new_role):
|
||||||
|
role = new_role
|
||||||
|
print("Network Role changed to ", NetworkRole.keys()[new_role])
|
||||||
|
|
||||||
var player_scene = preload("res://Assets/Characters/Player.tscn")
|
var player_scene = preload("res://Assets/Characters/Player.tscn")
|
||||||
|
|
||||||
@onready var gui = $GUI
|
@onready var gui = $GUI
|
||||||
|
@ -14,6 +20,25 @@ var player_scene = preload("res://Assets/Characters/Player.tscn")
|
||||||
@onready var chat = hud.get_node("Chat")
|
@onready var chat = hud.get_node("Chat")
|
||||||
var local_player: Node = null
|
var local_player: Node = null
|
||||||
|
|
||||||
|
|
||||||
|
class PlayerList:
|
||||||
|
var items = {}
|
||||||
|
|
||||||
|
func store(pid, item):
|
||||||
|
items[pid] = item
|
||||||
|
|
||||||
|
func erase(pid):
|
||||||
|
items.erase(pid)
|
||||||
|
|
||||||
|
func update(pid, item):
|
||||||
|
if items[pid]:
|
||||||
|
items[pid] = item
|
||||||
|
|
||||||
|
func get():
|
||||||
|
return items
|
||||||
|
|
||||||
|
var player_list = []
|
||||||
|
|
||||||
var focus = GameFocus.MENU :
|
var focus = GameFocus.MENU :
|
||||||
set(new_focus):
|
set(new_focus):
|
||||||
match new_focus:
|
match new_focus:
|
||||||
|
@ -36,6 +61,8 @@ var focus = GameFocus.MENU :
|
||||||
|
|
||||||
focus = new_focus
|
focus = new_focus
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
func _input(_event) -> void:
|
func _input(_event) -> void:
|
||||||
if Input.is_action_just_pressed("ui_cancel"):
|
if Input.is_action_just_pressed("ui_cancel"):
|
||||||
if focus == GameFocus.GAME:
|
if focus == GameFocus.GAME:
|
||||||
|
@ -65,19 +92,25 @@ func create_player(id: int, is_local: bool) -> void:
|
||||||
$Players.get_node(str(id) + "/Head/Camera").current = false
|
$Players.get_node(str(id) + "/Head/Camera").current = false
|
||||||
if local_player:
|
if local_player:
|
||||||
local_player.get_node("Head/Camera").current = true
|
local_player.get_node("Head/Camera").current = true
|
||||||
|
|
||||||
|
$NetworkTesting/TextEdit.text = local_player.player_info.name
|
||||||
|
$NetworkTesting/ColorPickerButton.color = local_player.player_info.color
|
||||||
|
|
||||||
func start_dedicated_server():
|
func start_dedicated_server():
|
||||||
|
role = NetworkRole.DEDICATED_SERVER
|
||||||
peer.create_server(NET_PORT, 16)
|
peer.create_server(NET_PORT, 16)
|
||||||
get_tree().network_peer = peer
|
get_tree().network_peer = peer
|
||||||
#create_player(1, true)
|
#create_player(1, true)
|
||||||
|
|
||||||
func _on_Host_pressed():
|
func _on_Host_pressed():
|
||||||
|
role = NetworkRole.SERVER
|
||||||
$NetworkTesting/Host.disabled = true
|
$NetworkTesting/Host.disabled = true
|
||||||
$NetworkTesting/Connect.disabled = true
|
$NetworkTesting/Connect.disabled = true
|
||||||
|
|
||||||
peer.create_server(NET_PORT, 16)
|
peer.create_server(NET_PORT, 16)
|
||||||
get_tree().network_peer = peer
|
get_tree().network_peer = peer
|
||||||
create_player(1, true)
|
create_player(1, true)
|
||||||
|
focus = GameFocus.GAME
|
||||||
|
|
||||||
func _on_Connect_pressed():
|
func _on_Connect_pressed():
|
||||||
$NetworkTesting/Host.disabled = true
|
$NetworkTesting/Host.disabled = true
|
||||||
|
@ -86,31 +119,46 @@ func _on_Connect_pressed():
|
||||||
peer.create_client(NET_SERVER, NET_PORT)
|
peer.create_client(NET_SERVER, NET_PORT)
|
||||||
get_tree().network_peer = peer
|
get_tree().network_peer = peer
|
||||||
|
|
||||||
|
|
||||||
func _player_connected(id) -> void:
|
func _player_connected(id) -> void:
|
||||||
print("player connected, id: ", id)
|
print("player connected, id: ", id)
|
||||||
create_player(id, false)
|
create_player(id, false)
|
||||||
|
if local_player:
|
||||||
|
local_player.rpc(&"update_info")
|
||||||
|
|
||||||
func _player_disconnected(id) -> void:
|
func _player_disconnected(id) -> void:
|
||||||
print("player disconnected, id: ", id)
|
print("player disconnected, id: ", id)
|
||||||
|
|
||||||
|
|
||||||
func _connected_ok() -> void:
|
func _connected_ok() -> void:
|
||||||
print("connected to server")
|
print("connected to server")
|
||||||
var id = get_tree().get_network_unique_id()
|
var id = get_tree().get_network_unique_id()
|
||||||
create_player(id, true)
|
create_player(id, true)
|
||||||
|
focus = GameFocus.GAME
|
||||||
|
role = NetworkRole.CLIENT
|
||||||
|
|
||||||
func _connected_fail() -> void:
|
func _connected_fail() -> void:
|
||||||
print("connection to server failed")
|
print("connection to server failed")
|
||||||
|
|
||||||
func _server_disconnected() -> void:
|
func _server_disconnected() -> void:
|
||||||
print("server disconnected")
|
print("server disconnected")
|
||||||
|
|
||||||
|
role = NetworkRole.NONE
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
|
|
||||||
|
print("Commandline arguments: ", OS.get_cmdline_args())
|
||||||
|
|
||||||
get_tree().connect("network_peer_connected", self._player_connected)
|
get_tree().connect("network_peer_connected", self._player_connected)
|
||||||
get_tree().connect("network_peer_disconnected", self._player_disconnected)
|
get_tree().connect("network_peer_disconnected", self._player_disconnected)
|
||||||
get_tree().connect("connected_to_server", self._connected_ok)
|
get_tree().connect("connected_to_server", self._connected_ok)
|
||||||
get_tree().connect("connection_failed", self._connected_fail)
|
get_tree().connect("connection_failed", self._connected_fail)
|
||||||
get_tree().connect("server_disconnected", self._server_disconnected)
|
get_tree().connect("server_disconnected", self._server_disconnected)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_TextEdit_text_submitted(new_text):
|
||||||
|
local_player.player_info.name = new_text
|
||||||
|
local_player.update_info()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_ColorPickerButton_color_changed(color):
|
||||||
|
local_player.player_info.color = color
|
||||||
|
local_player.update_info()
|
||||||
|
|
|
@ -10,6 +10,19 @@ script = ExtResource( 3 )
|
||||||
|
|
||||||
[node name="HUD" parent="." instance=ExtResource( 4 )]
|
[node name="HUD" parent="." instance=ExtResource( 4 )]
|
||||||
|
|
||||||
|
[node name="AnimationPlayer" parent="HUD/Crosshair" index="1"]
|
||||||
|
blend_times = []
|
||||||
|
|
||||||
|
[node name="ChatHistory" parent="HUD/Chat/VBoxContainer" index="0"]
|
||||||
|
custom_effects = []
|
||||||
|
structured_text_bidi_override_options = []
|
||||||
|
|
||||||
|
[node name="Label" parent="HUD/Chat/VBoxContainer/Typing" index="0"]
|
||||||
|
structured_text_bidi_override_options = []
|
||||||
|
|
||||||
|
[node name="Editor" parent="HUD/Chat/VBoxContainer/Typing" index="1"]
|
||||||
|
structured_text_bidi_override_options = []
|
||||||
|
|
||||||
[node name="GUI" parent="." instance=ExtResource( 2 )]
|
[node name="GUI" parent="." instance=ExtResource( 2 )]
|
||||||
|
|
||||||
[node name="Players" type="Node3D" parent="."]
|
[node name="Players" type="Node3D" parent="."]
|
||||||
|
@ -19,9 +32,10 @@ script = null
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1)
|
||||||
|
|
||||||
[node name="NetworkTesting" type="VBoxContainer" parent="."]
|
[node name="NetworkTesting" type="VBoxContainer" parent="."]
|
||||||
anchor_bottom = 1.0
|
anchor_left = 1.0
|
||||||
offset_right = 100.0
|
anchor_right = 1.0
|
||||||
offset_bottom = -500.0
|
offset_left = -100.0
|
||||||
|
offset_bottom = 132.0
|
||||||
script = null
|
script = null
|
||||||
__meta__ = {
|
__meta__ = {
|
||||||
"_edit_use_anchors_": false
|
"_edit_use_anchors_": false
|
||||||
|
@ -43,19 +57,20 @@ __meta__ = {
|
||||||
"_edit_use_anchors_": false
|
"_edit_use_anchors_": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[node name="TextEdit" type="TextEdit" parent="NetworkTesting"]
|
[node name="TextEdit" type="LineEdit" parent="NetworkTesting"]
|
||||||
offset_top = 66.0
|
offset_top = 66.0
|
||||||
offset_right = 100.0
|
offset_right = 100.0
|
||||||
offset_bottom = 96.0
|
offset_bottom = 99.0
|
||||||
rect_min_size = Vector2(100, 30)
|
rect_min_size = Vector2(100, 30)
|
||||||
text = "name"
|
text = "name"
|
||||||
structured_text_bidi_override_options = []
|
structured_text_bidi_override_options = []
|
||||||
script = null
|
script = null
|
||||||
|
|
||||||
[node name="ColorPickerButton" type="ColorPickerButton" parent="NetworkTesting"]
|
[node name="ColorPickerButton" type="ColorPickerButton" parent="NetworkTesting"]
|
||||||
offset_top = 100.0
|
offset_top = 103.0
|
||||||
offset_right = 100.0
|
offset_right = 100.0
|
||||||
offset_bottom = 129.0
|
offset_bottom = 132.0
|
||||||
|
edit_alpha = false
|
||||||
script = null
|
script = null
|
||||||
__meta__ = {
|
__meta__ = {
|
||||||
"_edit_use_anchors_": false
|
"_edit_use_anchors_": false
|
||||||
|
@ -63,3 +78,7 @@ __meta__ = {
|
||||||
|
|
||||||
[connection signal="pressed" from="NetworkTesting/Host" to="." method="_on_Host_pressed"]
|
[connection signal="pressed" from="NetworkTesting/Host" to="." method="_on_Host_pressed"]
|
||||||
[connection signal="pressed" from="NetworkTesting/Connect" to="." method="_on_Connect_pressed"]
|
[connection signal="pressed" from="NetworkTesting/Connect" to="." method="_on_Connect_pressed"]
|
||||||
|
[connection signal="text_submitted" from="NetworkTesting/TextEdit" to="." method="_on_TextEdit_text_submitted"]
|
||||||
|
[connection signal="color_changed" from="NetworkTesting/ColorPickerButton" to="." method="_on_ColorPickerButton_color_changed"]
|
||||||
|
|
||||||
|
[editable path="HUD"]
|
||||||
|
|
|
@ -19,7 +19,6 @@ ss_reflections_enabled = true
|
||||||
ssao_enabled = true
|
ssao_enabled = true
|
||||||
ssao_radius = 8.0
|
ssao_radius = 8.0
|
||||||
ssao_intensity = 1.0
|
ssao_intensity = 1.0
|
||||||
sdfgi_enabled = true
|
|
||||||
sdfgi_use_occlusion = true
|
sdfgi_use_occlusion = true
|
||||||
sdfgi_read_sky_light = true
|
sdfgi_read_sky_light = true
|
||||||
sdfgi_bounce_feedback = 1.24
|
sdfgi_bounce_feedback = 1.24
|
||||||
|
@ -83,7 +82,7 @@ script = null
|
||||||
[node name="StaticBody3D" type="StaticBody3D" parent="DM1/Main" index="0"]
|
[node name="StaticBody3D" type="StaticBody3D" parent="DM1/Main" index="0"]
|
||||||
script = null
|
script = null
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="DM1/Main/StaticBody3D" index="0"]
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="DM1/Main/StaticBody3D"]
|
||||||
shape = SubResource( 5 )
|
shape = SubResource( 5 )
|
||||||
script = null
|
script = null
|
||||||
|
|
||||||
|
|
|
@ -124,15 +124,12 @@ say_cancel={
|
||||||
|
|
||||||
[rendering]
|
[rendering]
|
||||||
|
|
||||||
|
environment/ssao/quality=0
|
||||||
anti_aliasing/screen_space_roughness_limiter/enabled=false
|
anti_aliasing/screen_space_roughness_limiter/enabled=false
|
||||||
environment/glow/use_high_quality=true
|
|
||||||
environment/screen_space_reflection/roughness_quality=2
|
|
||||||
global_illumination/sdfgi/probe_ray_count=2
|
global_illumination/sdfgi/probe_ray_count=2
|
||||||
global_illumination/sdfgi/frames_to_converge=0
|
global_illumination/sdfgi/frames_to_converge=0
|
||||||
global_illumination/sdfgi/frames_to_update_lights=4
|
global_illumination/sdfgi/frames_to_update_lights=4
|
||||||
anti_aliasing/quality/msaa=2
|
anti_aliasing/quality/msaa=1
|
||||||
anti_aliasing/quality/screen_space_aa=1
|
|
||||||
anti_aliasing/quality/use_debanding=true
|
|
||||||
occlusion_culling/use_occlusion_culling=true
|
occlusion_culling/use_occlusion_culling=true
|
||||||
mesh_lod/lod_change/threshold_pixels=3.0
|
mesh_lod/lod_change/threshold_pixels=3.0
|
||||||
environment/defaults/default_environment="res://default_env.tres"
|
environment/defaults/default_environment="res://default_env.tres"
|
||||||
|
|
Reference in New Issue