Improved performance

This commit is contained in:
Eduard Urbach 2024-02-17 19:43:47 +01:00
parent cb066f409a
commit 2bc4200f5b
Signed by: akyoto
GPG Key ID: C874F672B1AF20C0
12 changed files with 228 additions and 116 deletions

View File

@ -1,11 +1,13 @@
extends Node
func _ready():
pause(true)
%Login.success.connect(on_login)
%Logout.success.connect(on_logout)
@export var ui: UIManager
func _enter_tree():
connect_main()
connect_ui()
pause(true)
func _ready():
var args := OS.get_cmdline_args()
var offline := args.has("--offline")
@ -24,16 +26,16 @@ func _input(event):
get_viewport().set_input_as_handled()
func on_login():
print("[%s] Login succeeded." % Global.account.name)
print("[%s] ID: %s" % [Global.account.name, Global.account.id])
print("[%s] Auth token: %s" % [Global.account.name, Global.account.auth_token])
%Client.log("Login succeeded.")
%Client.log("ID: %s" % Global.account.id)
%Client.log("Auth token: %s" % Global.account.auth_token)
DisplayServer.window_set_title("%s - %s" % [Global.account.name, Global.account.id])
DisplayServer.window_set_position(Vector2((Global.instance_id % 2) * 960, (Global.instance_id / 2 % 2) * 540))
pause(false)
func on_logout():
print("[%s] Logout." % Global.account.name)
%Client.log("[%s] Logout." % Global.account.name)
pause(true)
func pause(enabled: bool):
@ -44,6 +46,18 @@ func mute_audio(enabled: bool):
var master_sound = AudioServer.get_bus_index("Master")
AudioServer.set_bus_mute(master_sound, enabled)
func connect_main():
%Login.success.connect(on_login)
%Logout.success.connect(on_logout)
func connect_ui():
ui.login = %Login.success
ui.logout = %Logout.success
ui.ping_changed = %Ping.changed
ui.download_changed = %Client.download_changed
ui.upload_changed = %Client.upload_changed
ui.message_received = %Chat.message_received
func toggle_fullscreen():
var mode = DisplayServer.window_get_mode()

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=29 format=3 uid="uid://b40y7iuskv1ar"]
[gd_scene load_steps=30 format=3 uid="uid://b40y7iuskv1ar"]
[ext_resource type="Script" path="res://Main.gd" id="1_cw3ws"]
[ext_resource type="Script" path="res://network/Client.gd" id="2_8hxcx"]
@ -14,23 +14,16 @@
[ext_resource type="Script" path="res://world/Sun.gd" id="11_4jb08"]
[ext_resource type="Script" path="res://network/PlayerUseSkill.gd" id="11_gyiep"]
[ext_resource type="PackedScene" uid="uid://cpdoq0oh84mfw" path="res://camera/Camera.tscn" id="12_aljdh"]
[ext_resource type="Environment" uid="uid://dixa0yso2s1u3" path="res://world/Environment.tres" id="12_cscto"]
[ext_resource type="Environment" uid="uid://dixa0yso2s1u3" path="res://world/Environment.tres" id="14_kuej8"]
[ext_resource type="Script" path="res://world/Generate.gd" id="15_25nmg"]
[ext_resource type="PackedScene" uid="uid://cb2t7bvvf3gwh" path="res://enemy/slime/Slime.tscn" id="15_hgl78"]
[ext_resource type="Script" path="res://world/PlayerManager.gd" id="16_dp6bj"]
[ext_resource type="PackedScene" uid="uid://dagn5bf7ou3sd" path="res://ui/UI.tscn" id="17_43qhq"]
[ext_resource type="PackedScene" uid="uid://hnn0n1xc2qt7" path="res://assets/tree/Tree.blend" id="18_6ab5t"]
[ext_resource type="Material" uid="uid://bdsblfaxbipaa" path="res://world/grass/GrassMaterial.tres" id="18_tja64"]
[ext_resource type="MultiMesh" uid="uid://dog5aq5n2q025" path="res://assets/grass/grass.multimesh" id="19_ae26a"]
[ext_resource type="FastNoiseLite" uid="uid://d3f4lk8q04haa" path="res://world/trees/TreeNoise.tres" id="19_ctwmw"]
[ext_resource type="PackedScene" uid="uid://djilgnhedvmtm" path="res://world/house/House.tscn" id="20_xjraj"]
[ext_resource type="PackedScene" uid="uid://cuuwwdce1u8n8" path="res://world/trees/Sapling.tscn" id="22_5yt7w"]
[sub_resource type="FastNoiseLite" id="FastNoiseLite_ql20k"]
seed = 1337
frequency = 0.05
[sub_resource type="FastNoiseLite" id="FastNoiseLite_yp2fx"]
seed = 100
frequency = 0.1
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_he5c5"]
diffuse_mode = 3
@ -43,8 +36,16 @@ size = Vector2(1, 1)
[sub_resource type="BoxShape3D" id="BoxShape3D_yg2lt"]
[node name="Main" type="Node"]
[sub_resource type="FastNoiseLite" id="FastNoiseLite_xy4ll"]
seed = 300
[sub_resource type="FastNoiseLite" id="FastNoiseLite_yp2fx"]
seed = 100
frequency = 0.1
[node name="Main" type="Node" node_paths=PackedStringArray("ui")]
script = ExtResource("1_cw3ws")
ui = NodePath("UI")
[node name="Client" type="Node" parent="."]
unique_name_in_owner = true
@ -105,10 +106,8 @@ autostart = true
[node name="World" type="Node3D" parent="."]
[node name="Follow" parent="World" instance=ExtResource("12_aljdh")]
[node name="Environment" type="WorldEnvironment" parent="World"]
environment = ExtResource("12_cscto")
environment = ExtResource("14_kuej8")
[node name="Sun" type="DirectionalLight3D" parent="World/Environment"]
transform = Transform3D(-0.350207, 0.827032, -0.439741, 0, 0.469472, 0.882948, 0.936672, 0.309215, -0.164412, 0, 3, 0)
@ -116,30 +115,6 @@ light_energy = 1.8
shadow_enabled = true
script = ExtResource("11_4jb08")
[node name="Trees" type="Node3D" parent="World"]
script = ExtResource("15_25nmg")
scene = ExtResource("22_5yt7w")
noise = SubResource("FastNoiseLite_ql20k")
size_x = 100.0
size_z = 100.0
step = 5.0
density = 0.3
[node name="Enemies" type="Node3D" parent="World"]
script = ExtResource("15_25nmg")
scene = ExtResource("15_hgl78")
noise = SubResource("FastNoiseLite_yp2fx")
size_x = 100.0
size_z = 100.0
step = 2.0
density = 0.3
[node name="Grass" type="MultiMeshInstance3D" parent="World"]
layers = 2
material_override = ExtResource("18_tja64")
cast_shadow = 0
multimesh = ExtResource("19_ae26a")
[node name="Floor" type="MeshInstance3D" parent="World"]
transform = Transform3D(1000, 0, 0, 0, 1000, 0, 0, 0, 1000, 0, 0, 0)
mesh = SubResource("PlaneMesh_lb6xk")
@ -150,8 +125,41 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.5, 0)
[node name="CollisionShape3D" type="CollisionShape3D" parent="World/Floor/StaticBody3D"]
shape = SubResource("BoxShape3D_yg2lt")
[node name="House" parent="World" instance=ExtResource("20_xjraj")]
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, -6, 0, -6)
[node name="Grass" type="MultiMeshInstance3D" parent="World"]
layers = 2
material_override = ExtResource("18_tja64")
cast_shadow = 0
multimesh = ExtResource("19_ae26a")
[node name="Houses" type="Node3D" parent="World"]
script = ExtResource("15_25nmg")
scene = ExtResource("20_xjraj")
noise = SubResource("FastNoiseLite_xy4ll")
size_x = 100.0
size_z = 100.0
step = 10.0
density = 0.3
position_randomness = 0.0
[node name="Trees" type="Node3D" parent="World"]
script = ExtResource("15_25nmg")
scene = ExtResource("18_6ab5t")
noise = ExtResource("19_ctwmw")
size_x = 100.0
size_z = 100.0
step = 5.0
density = 0.4
[node name="Enemies" type="Node3D" parent="World"]
script = ExtResource("15_25nmg")
scene = ExtResource("15_hgl78")
noise = SubResource("FastNoiseLite_yp2fx")
size_x = 100.0
size_z = 100.0
step = 2.0
density = 0.25
[node name="Follow" parent="World" instance=ExtResource("12_aljdh")]
[node name="Players" type="Node3D" parent="."]
unique_name_in_owner = true
@ -163,4 +171,3 @@ process_mode = 3
[connection signal="timeout" from="Client/Ping/Timer" to="Client/Ping" method="send_ping"]
[connection signal="timeout" from="Client/Login/Timer" to="Client/Login" method="send_login"]
[connection signal="timeout" from="Client/Statistics" to="Client" method="update_statistics"]
[connection signal="chat_message_submitted" from="UI" to="Client/Chat" method="send_message"]

View File

@ -3,6 +3,7 @@
[ext_resource type="Script" path="res://Start.gd" id="1_8y1vx"]
[node name="Start" type="CanvasLayer" node_paths=PackedStringArray("progress_bar", "modulate")]
layer = 128
script = ExtResource("1_8y1vx")
scene_path = "Main.tscn"
progress_bar = NodePath("MarginContainer/Progress")

View File

@ -70,30 +70,34 @@ script = ExtResource("1_8gebs")
[node name="Armature" parent="Model/Female" index="0"]
transform = Transform3D(0.999999, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.000305099, -0.000408816)
[node name="Body" parent="Model/Female/Armature/GeneralSkeleton" index="0"]
[node name="Chest" parent="Model/Female/Armature/GeneralSkeleton" index="1"]
visible = false
[node name="BoneAttachment3D" type="BoneAttachment3D" parent="Model/Female/Armature/GeneralSkeleton" index="2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.57651e-10, 1.37156, -0.0247111)
bone_name = "Head"
bone_idx = 12
[node name="Face" parent="Model/Female/Armature/GeneralSkeleton" index="2"]
[node name="PonyTail" parent="Model/Female/Armature/GeneralSkeleton/BoneAttachment3D" instance=ExtResource("3_umw6q")]
[node name="Hips" parent="Model/Female/Armature/GeneralSkeleton" index="4"]
[node name="Hips" parent="Model/Female/Armature/GeneralSkeleton" index="3"]
visible = false
[node name="Hoodie" type="MeshInstance3D" parent="Model/Female/Armature/GeneralSkeleton" index="5"]
[node name="Hoodie" type="MeshInstance3D" parent="Model/Female/Armature/GeneralSkeleton" index="4"]
layers = 512
mesh = ExtResource("5_mkrgn")
skin = ExtResource("4_b1tg1")
[node name="BoneAttachment3D2" type="BoneAttachment3D" parent="Model/Female/Armature/GeneralSkeleton" index="6"]
[node name="Hair" type="BoneAttachment3D" parent="Model/Female/Armature/GeneralSkeleton" index="5"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.57651e-10, 1.37156, -0.0247111)
bone_name = "Head"
bone_idx = 12
[node name="PonyTail" parent="Model/Female/Armature/GeneralSkeleton/Hair" instance=ExtResource("3_umw6q")]
[node name="Weapon" type="BoneAttachment3D" parent="Model/Female/Armature/GeneralSkeleton" index="6"]
transform = Transform3D(0, -1, 0, 0, 0, -1, 1, 0, 0, -0.609469, 1.26691, -0.0234125)
bone_name = "RightMiddleProximal"
bone_idx = 44
[node name="Heirloom" parent="Model/Female/Armature/GeneralSkeleton/BoneAttachment3D2" instance=ExtResource("7_u8433")]
[node name="Heirloom" parent="Model/Female/Armature/GeneralSkeleton/Weapon" instance=ExtResource("7_u8433")]
transform = Transform3D(-4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0, 1, 0.197644, 0, 0)
[node name="Collision" type="CollisionShape3D" parent="."]

View File

@ -31,12 +31,17 @@ gdscript/warnings/integer_division=0
window/size/viewport_width=1920
window/size/viewport_height=1080
window/size/mode=3
window/size/window_width_override=960
window/size/window_height_override=540
window/stretch/mode="canvas_items"
window/stretch/aspect="expand"
window/vsync/vsync_mode=0
[editor]
run/main_run_args="--offline"
[gui]
theme/custom="res://ui/theme/theme.tres"

View File

@ -0,0 +1,83 @@
extends Node3D
@export var tree: Mesh
@export var leaves: Mesh
@export var noise: Noise
@export var size_x: float
@export var size_z: float
@export var step: float = 1
@export var density: float
@export var position_randomness := 1.0
const TILE_SIZE := 10
func _ready():
if !visible:
return
var total_count := 0
var tile_count := 0
var old_tile_x := NAN
var old_tile_z := NAN
var offsets: Array[Vector3] = []
for x in range(-size_x, size_x, step):
for z in range(-size_z, size_z, step):
if noise.get_noise_2d(x, z) < 1 - density * 2:
continue
var tile_x := x / TILE_SIZE
var tile_z := z / TILE_SIZE
if tile_x != old_tile_x || tile_z != old_tile_z:
if tile_count > 0:
var tile := make_tile(old_tile_x, old_tile_z)
tile.multimesh.instance_count = tile_count
tile.multimesh.visible_instance_count = tile_count
for i in range(tile_count):
tile.multimesh.set_instance_transform(i, Transform3D(Basis(), offsets[i] - tile.position))
add_child(tile)
var tile2 := make_tile(old_tile_x, old_tile_z)
tile2.multimesh.mesh = leaves
tile2.multimesh.instance_count = tile_count
tile2.multimesh.visible_instance_count = tile_count
for i in range(tile_count):
tile2.multimesh.set_instance_transform(i, Transform3D(Basis(), offsets[i] - tile.position))
add_child(tile2)
tile_count = 0
offsets.resize(0)
old_tile_x = tile_x
old_tile_z = tile_z
var offset := Vector3.ZERO
offset.x = x + (randf() - 0.5) * position_randomness
offset.z = z + (randf() - 0.5) * position_randomness
offsets.append(offset)
tile_count += 1
total_count += 1
print("Generated %d trees" % total_count)
func make_tile(x, z) -> MultiMeshInstance3D:
prints("Tile:", x * TILE_SIZE, z * TILE_SIZE)
var instance := MultiMeshInstance3D.new()
instance.multimesh = MultiMesh.new()
instance.multimesh.mesh = tree
instance.multimesh.transform_format = MultiMesh.TRANSFORM_3D
var safe_area := Vector3(0, 0, 0)
instance.position = Vector3(x * TILE_SIZE, 0, z * TILE_SIZE)
instance.custom_aabb.position = -safe_area
instance.custom_aabb.size = Vector3(TILE_SIZE, 30, TILE_SIZE) + safe_area * 2
return instance

View File

@ -1,5 +1,5 @@
class_name UIManager
extends Control
extends Node
signal chat_message_submitted(message: String)
@ -11,23 +11,13 @@ signal chat_message_submitted(message: String)
@export var message_received: Signal
func _enter_tree():
if get_node_or_null("/root/Main"):
connect_main_scene()
else:
if !get_node_or_null("/root/Main"):
connect_fake()
func connect_main_scene():
login = %Login.success
logout = %Logout.success
ping_changed = %Ping.changed
download_changed = %Client.download_changed
upload_changed = %Client.upload_changed
message_received = %Chat.message_received
func connect_fake():
for property in get_property_list():
if property.type != TYPE_SIGNAL:
continue
add_user_signal(property.name)
set(property.name, Signal(self, property.name))
set(property.name, Signal(self, property.name))

View File

@ -16,25 +16,21 @@
[ext_resource type="Script" path="res://ui/debug/StateLabel.gd" id="12_rr0mv"]
[ext_resource type="PackedScene" uid="uid://y6kdpmp5glv0" path="res://ui/inventory/Inventory.tscn" id="13_1fc2b"]
[node name="UI" type="Control"]
layout_mode = 3
anchors_preset = 0
[node name="UI" type="CanvasLayer"]
script = ExtResource("1_l5b6o")
[node name="Canvas" type="CanvasLayer" parent="."]
[node name="TopLeft" type="MarginContainer" parent="Canvas"]
[node name="TopLeft" type="MarginContainer" parent="."]
offset_right = 40.0
offset_bottom = 50.0
[node name="VBoxContainer" type="VBoxContainer" parent="Canvas/TopLeft"]
[node name="VBoxContainer" type="VBoxContainer" parent="TopLeft"]
layout_mode = 2
[node name="FPS" parent="Canvas/TopLeft/VBoxContainer" instance=ExtResource("1_7s8uu")]
[node name="FPS" parent="TopLeft/VBoxContainer" instance=ExtResource("1_7s8uu")]
layout_mode = 2
script = ExtResource("2_i200p")
[node name="Process" parent="Canvas/TopLeft/VBoxContainer" instance=ExtResource("1_7s8uu")]
[node name="Process" parent="TopLeft/VBoxContainer" instance=ExtResource("1_7s8uu")]
layout_mode = 2
script = ExtResource("5_ab7ln")
monitor = 1
@ -42,7 +38,7 @@ multiply = 1000.0
precision = 0.1
suffix = " ms"
[node name="Physics" parent="Canvas/TopLeft/VBoxContainer" instance=ExtResource("1_7s8uu")]
[node name="Physics" parent="TopLeft/VBoxContainer" instance=ExtResource("1_7s8uu")]
layout_mode = 2
script = ExtResource("5_ab7ln")
monitor = 2
@ -50,7 +46,7 @@ multiply = 1000.0
precision = 0.1
suffix = " ms"
[node name="Draw calls" parent="Canvas/TopLeft/VBoxContainer" instance=ExtResource("1_7s8uu")]
[node name="Draw calls" parent="TopLeft/VBoxContainer" instance=ExtResource("1_7s8uu")]
layout_mode = 2
script = ExtResource("5_ab7ln")
monitor = 13
@ -58,7 +54,7 @@ multiply = 1.0
precision = 1.0
suffix = ""
[node name="BottomLeft" type="MarginContainer" parent="Canvas"]
[node name="BottomLeft" type="MarginContainer" parent="."]
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
@ -66,22 +62,22 @@ offset_top = -134.0
offset_right = 263.0
grow_vertical = 0
[node name="Chat" type="VBoxContainer" parent="Canvas/BottomLeft"]
[node name="Chat" type="VBoxContainer" parent="BottomLeft"]
layout_mode = 2
alignment = 2
[node name="ChatBox" type="RichTextLabel" parent="Canvas/BottomLeft/Chat"]
[node name="ChatBox" type="RichTextLabel" parent="BottomLeft/Chat"]
layout_mode = 2
size_flags_vertical = 3
bbcode_enabled = true
scroll_following = true
script = ExtResource("5_43juw")
[node name="ChatInput" type="LineEdit" parent="Canvas/BottomLeft/Chat"]
[node name="ChatInput" type="LineEdit" parent="BottomLeft/Chat"]
layout_mode = 2
script = ExtResource("6_cg2h5")
[node name="BottomRight" type="MarginContainer" parent="Canvas"]
[node name="BottomRight" type="MarginContainer" parent="."]
anchors_preset = 3
anchor_left = 1.0
anchor_top = 1.0
@ -92,26 +88,26 @@ offset_top = -54.0
grow_horizontal = 0
grow_vertical = 0
[node name="VBoxContainer" type="VBoxContainer" parent="Canvas/BottomRight"]
[node name="VBoxContainer" type="VBoxContainer" parent="BottomRight"]
layout_mode = 2
alignment = 2
[node name="Ping" parent="Canvas/BottomRight/VBoxContainer" instance=ExtResource("1_7s8uu")]
[node name="Ping" parent="BottomRight/VBoxContainer" instance=ExtResource("1_7s8uu")]
layout_mode = 2
alignment = 2
script = ExtResource("3_xjdws")
[node name="Send" parent="Canvas/BottomRight/VBoxContainer" instance=ExtResource("1_7s8uu")]
[node name="Send" parent="BottomRight/VBoxContainer" instance=ExtResource("1_7s8uu")]
layout_mode = 2
alignment = 2
script = ExtResource("7_cfnpx")
[node name="Receive" parent="Canvas/BottomRight/VBoxContainer" instance=ExtResource("1_7s8uu")]
[node name="Receive" parent="BottomRight/VBoxContainer" instance=ExtResource("1_7s8uu")]
layout_mode = 2
alignment = 2
script = ExtResource("8_ogt38")
[node name="TopRight" type="MarginContainer" parent="Canvas"]
[node name="TopRight" type="MarginContainer" parent="."]
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
@ -119,25 +115,25 @@ offset_left = -79.0
offset_bottom = 102.0
grow_horizontal = 0
[node name="VBoxContainer" type="VBoxContainer" parent="Canvas/TopRight"]
[node name="VBoxContainer" type="VBoxContainer" parent="TopRight"]
layout_mode = 2
[node name="State" parent="Canvas/TopRight/VBoxContainer" instance=ExtResource("1_7s8uu")]
[node name="State" parent="TopRight/VBoxContainer" instance=ExtResource("1_7s8uu")]
layout_mode = 2
alignment = 2
script = ExtResource("12_rr0mv")
[node name="Position" parent="Canvas/TopRight/VBoxContainer" instance=ExtResource("1_7s8uu")]
[node name="Position" parent="TopRight/VBoxContainer" instance=ExtResource("1_7s8uu")]
layout_mode = 2
alignment = 2
script = ExtResource("4_beqf6")
[node name="Velocity" parent="Canvas/TopRight/VBoxContainer" instance=ExtResource("1_7s8uu")]
[node name="Velocity" parent="TopRight/VBoxContainer" instance=ExtResource("1_7s8uu")]
layout_mode = 2
alignment = 2
script = ExtResource("5_8lm6a")
[node name="ConnectPanel" type="Panel" parent="Canvas"]
[node name="ConnectPanel" type="Panel" parent="."]
visible = false
anchors_preset = 15
anchor_right = 1.0
@ -146,7 +142,7 @@ grow_horizontal = 2
grow_vertical = 2
script = ExtResource("11_cwl0t")
[node name="ConnectLabel" type="Label" parent="Canvas/ConnectPanel"]
[node name="ConnectLabel" type="Label" parent="ConnectPanel"]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
@ -161,12 +157,12 @@ grow_horizontal = 2
grow_vertical = 2
text = "Connecting..."
[node name="Settings" parent="Canvas" instance=ExtResource("11_rt7sl")]
[node name="Settings" parent="." instance=ExtResource("11_rt7sl")]
visible = false
anchor_left = 0.3
anchor_right = 0.7
[node name="Inventory" parent="Canvas" instance=ExtResource("13_1fc2b")]
[node name="Inventory" parent="." instance=ExtResource("13_1fc2b")]
visible = false
anchors_preset = -1
anchor_left = 0.25
@ -174,6 +170,11 @@ anchor_top = 0.25
anchor_right = 0.75
anchor_bottom = 0.75
[connection signal="focus_entered" from="Canvas/BottomLeft/Chat/ChatInput" to="Canvas/BottomLeft/Chat/ChatInput" method="_on_focus_entered"]
[connection signal="focus_exited" from="Canvas/BottomLeft/Chat/ChatInput" to="Canvas/BottomLeft/Chat/ChatInput" method="_on_focus_exited"]
[connection signal="text_submitted" from="Canvas/BottomLeft/Chat/ChatInput" to="Canvas/BottomLeft/Chat/ChatInput" method="_on_text_submitted"]
[node name="UI" type="Control" parent="."]
layout_mode = 3
anchors_preset = 0
script = ExtResource("1_l5b6o")
[connection signal="focus_entered" from="BottomLeft/Chat/ChatInput" to="BottomLeft/Chat/ChatInput" method="_on_focus_entered"]
[connection signal="focus_exited" from="BottomLeft/Chat/ChatInput" to="BottomLeft/Chat/ChatInput" method="_on_focus_exited"]
[connection signal="text_submitted" from="BottomLeft/Chat/ChatInput" to="BottomLeft/Chat/ChatInput" method="_on_text_submitted"]

View File

@ -1,14 +1,11 @@
[gd_resource type="Environment" load_steps=3 format=3 uid="uid://dixa0yso2s1u3"]
[gd_resource type="Environment" load_steps=2 format=3 uid="uid://dixa0yso2s1u3"]
[ext_resource type="Material" uid="uid://chtgn5pdoof5e" path="res://world/sky/PanoramaSkyMaterial.tres" id="1_vb3or"]
[sub_resource type="Sky" id="Sky_2vfia"]
sky_material = ExtResource("1_vb3or")
[ext_resource type="Sky" uid="uid://chqkkvnsudiww" path="res://world/Sky.tres" id="1_akiwh"]
[resource]
background_mode = 2
background_color = Color(0.317647, 0.541176, 0.713726, 1)
sky = SubResource("Sky_2vfia")
sky = ExtResource("1_akiwh")
ambient_light_source = 3
ambient_light_color = Color(0.5, 0.5, 0.5, 1)
ambient_light_sky_contribution = 0.3
@ -16,16 +13,12 @@ ambient_light_energy = 3.0
reflected_light_source = 2
tonemap_mode = 2
tonemap_white = 6.0
ssao_enabled = true
ssil_enabled = true
sdfgi_use_occlusion = true
glow_enabled = true
glow_intensity = 0.1
glow_strength = 1.07
glow_bloom = 0.2
glow_blend_mode = 1
glow_hdr_threshold = 0.7
volumetric_fog_enabled = true
volumetric_fog_density = 0.005
volumetric_fog_emission = Color(0.45098, 0.690196, 1, 1)
adjustment_enabled = true

View File

@ -9,6 +9,9 @@ extends Node3D
@export var position_randomness := 1.0
func _ready():
if !visible:
return
for x in range(-size_x, size_x, step):
for z in range(-size_z, size_z, step):
if noise.get_noise_2d(x, z) < 1 - density * 2:

6
client/world/Sky.tres Normal file
View File

@ -0,0 +1,6 @@
[gd_resource type="Sky" load_steps=2 format=3 uid="uid://chqkkvnsudiww"]
[ext_resource type="Material" uid="uid://chtgn5pdoof5e" path="res://world/sky/PanoramaSkyMaterial.tres" id="1_e3kjt"]
[resource]
sky_material = ExtResource("1_e3kjt")

View File

@ -0,0 +1,5 @@
[gd_resource type="FastNoiseLite" format=3 uid="uid://d3f4lk8q04haa"]
[resource]
seed = 1337
frequency = 0.05