mirror of
https://github.com/Relintai/broken_seals.git
synced 2025-02-26 03:24:19 +01:00
Added chunk spawn range, and chunk lod falloff (this is where lod level 0 changes to lod level 1) to the settings, and increased spawn height so mountains are not cut off anymore, and a few small tweaks. Also updated Voxelman to get the lod falloff property.
This commit is contained in:
parent
1e264ec9c8
commit
4e3e9d4bbf
2
HEADS
2
HEADS
@ -1 +1 @@
|
|||||||
{"engine": {"3.2": "36b746d90393299b81ecb991f4aa94a8d742fd11", "master": "8c73e813134001e575b6f59e3b0100471c007410"}, "world_generator": {"master": "bc2ee7171a29d02a4687eaddd91374e127cf2b88"}, "entity_spell_system": {"master": "0ac9a8770e1855613bdfbffc5c5e0095a2058717"}, "ui_extensions": {"master": "ca7df8435154d1146be36c4fc97e6cc7092d3eb9"}, "voxelman": {"master": "768728139ede479dad006913e2f86d3f85edae57"}, "texture_packer": {"master": "f98b7410cd3f2a743cb57456910ad9f93ef89937"}, "fastnoise": {"master": "d0e3f1c759332cf0d9a5d7e0e71d0b0278310651"}, "mesh_data_resource": {"master": "a9bab9896de71966b9c9056869871e618c64cba7"}, "procedural_animations": {"master": "8426e2c976e9f9cb82bca636c0ec6e79ad7b3bcb"}, "ess_data": {"master": "3bd637fdd3304b64a18287a49a6b7387acf2f5de"}, "props": {"master": "0ed644e4a4e7867a49fbe7c727b500305f7077f8"}, "mesh_utils": {"master": "65a802ff39a601bd1a55675023871e09500943ef"}, "broken_seals_module": {"master": "8c4b32d3932ccb043b8f6c92c1277547750fe391"}, "thread_pool": {"master": "164ad82feb05842cb944c2907b65e521f8c7c465"}}
|
{"engine": {"3.2": "36b746d90393299b81ecb991f4aa94a8d742fd11", "master": "8c73e813134001e575b6f59e3b0100471c007410"}, "world_generator": {"master": "2b17341ac2b22d766d6f90426f161f04d9ddc599"}, "entity_spell_system": {"master": "65782c63d5e9fea43ce32701af6fe1c97f0bf0a6"}, "ui_extensions": {"master": "ca7df8435154d1146be36c4fc97e6cc7092d3eb9"}, "voxelman": {"master": "b95f055acd4fe5032f5f24008ff238a59810672f"}, "texture_packer": {"master": "f98b7410cd3f2a743cb57456910ad9f93ef89937"}, "fastnoise": {"master": "d0e3f1c759332cf0d9a5d7e0e71d0b0278310651"}, "mesh_data_resource": {"master": "a9bab9896de71966b9c9056869871e618c64cba7"}, "procedural_animations": {"master": "8426e2c976e9f9cb82bca636c0ec6e79ad7b3bcb"}, "ess_data": {"master": "3bd637fdd3304b64a18287a49a6b7387acf2f5de"}, "props": {"master": "0ed644e4a4e7867a49fbe7c727b500305f7077f8"}, "mesh_utils": {"master": "65a802ff39a601bd1a55675023871e09500943ef"}, "broken_seals_module": {"master": "8c4b32d3932ccb043b8f6c92c1277547750fe391"}, "thread_pool": {"master": "164ad82feb05842cb944c2907b65e521f8c7c465"}}
|
@ -584,11 +584,14 @@ max_concurrent_generations = 1
|
|||||||
library = ExtResource( 17 )
|
library = ExtResource( 17 )
|
||||||
level_generator = SubResource( 1 )
|
level_generator = SubResource( 1 )
|
||||||
voxel_scale = 1.6
|
voxel_scale = 1.6
|
||||||
chunk_spawn_range = 1
|
chunk_spawn_range = 2
|
||||||
build_flags = 255
|
build_flags = 255
|
||||||
|
chunk_lod_falloff = 1
|
||||||
script = ExtResource( 16 )
|
script = ExtResource( 16 )
|
||||||
show_loading_screen = false
|
show_loading_screen = false
|
||||||
generate_on_ready = true
|
generate_on_ready = true
|
||||||
|
spawn_height = 2
|
||||||
|
use_global_chunk_settings = false
|
||||||
|
|
||||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="World"]
|
[node name="WorldEnvironment" type="WorldEnvironment" parent="World"]
|
||||||
environment = SubResource( 3 )
|
environment = SubResource( 3 )
|
||||||
|
@ -207,6 +207,11 @@ profiles/automatic_save=true
|
|||||||
level/max_character_level=60
|
level/max_character_level=60
|
||||||
level/max_class_level=60
|
level/max_class_level=60
|
||||||
|
|
||||||
|
[game]
|
||||||
|
|
||||||
|
chunk_lod_falloff=2
|
||||||
|
chunk_spawn_range=8
|
||||||
|
|
||||||
[importer_defaults]
|
[importer_defaults]
|
||||||
|
|
||||||
texture_array={
|
texture_array={
|
||||||
|
@ -42,6 +42,10 @@ var _settings : Dictionary = {
|
|||||||
"use_vsync" : ProjectSettings.get("display/window/vsync/use_vsync"),
|
"use_vsync" : ProjectSettings.get("display/window/vsync/use_vsync"),
|
||||||
"vsync_via_compositor" : ProjectSettings.get("display/window/vsync/vsync_via_compositor"),
|
"vsync_via_compositor" : ProjectSettings.get("display/window/vsync/vsync_via_compositor"),
|
||||||
},
|
},
|
||||||
|
"game" : {
|
||||||
|
"chunk_spawn_range" : ProjectSettings.get("game/chunk_spawn_range"),
|
||||||
|
"chunk_lod_falloff" : ProjectSettings.get("game/chunk_lod_falloff"),
|
||||||
|
},
|
||||||
"ui" : {
|
"ui" : {
|
||||||
"touchscreen_mode" : OS.has_touchscreen_ui_hint(),
|
"touchscreen_mode" : OS.has_touchscreen_ui_hint(),
|
||||||
"ui_scale" : ProjectSettings.get("display/window/size/ui_scale"),
|
"ui_scale" : ProjectSettings.get("display/window/size/ui_scale"),
|
||||||
|
@ -122,6 +122,35 @@ property_category = "rendering"
|
|||||||
property_name = "vsync_via_compositor"
|
property_name = "vsync_via_compositor"
|
||||||
property_label = "VSync Via Compositor"
|
property_label = "VSync Via Compositor"
|
||||||
|
|
||||||
|
[node name="Game" type="VBoxContainer" parent="PanelContainer/VBoxContainer/TabContainer"]
|
||||||
|
visible = false
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
margin_left = 4.0
|
||||||
|
margin_top = 31.0
|
||||||
|
margin_right = -4.0
|
||||||
|
margin_bottom = -4.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
|
||||||
|
[node name="OptionsSpinboxRow" parent="PanelContainer/VBoxContainer/TabContainer/Game" instance=ExtResource( 8 )]
|
||||||
|
margin_top = 0.0
|
||||||
|
margin_bottom = 24.0
|
||||||
|
property_category = "game"
|
||||||
|
property_name = "chunk_spawn_range"
|
||||||
|
property_label = "Chunk Spawn Range"
|
||||||
|
min_value = 2.0
|
||||||
|
max_value = 30.0
|
||||||
|
step = 1.0
|
||||||
|
|
||||||
|
[node name="OptionsSpinboxRow2" parent="PanelContainer/VBoxContainer/TabContainer/Game" instance=ExtResource( 8 )]
|
||||||
|
margin_top = 32.0
|
||||||
|
margin_bottom = 56.0
|
||||||
|
property_category = "game"
|
||||||
|
property_name = "chunk_lod_falloff"
|
||||||
|
property_label = "Chunk Lod Falloff"
|
||||||
|
max_value = 30.0
|
||||||
|
step = 1.0
|
||||||
|
|
||||||
[node name="Interface" type="VBoxContainer" parent="PanelContainer/VBoxContainer/TabContainer"]
|
[node name="Interface" type="VBoxContainer" parent="PanelContainer/VBoxContainer/TabContainer"]
|
||||||
visible = false
|
visible = false
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
|
@ -11,7 +11,15 @@ script = ExtResource( 1 )
|
|||||||
__meta__ = {
|
__meta__ = {
|
||||||
"_edit_use_anchors_": false
|
"_edit_use_anchors_": false
|
||||||
}
|
}
|
||||||
|
property_category = ""
|
||||||
|
property_name = ""
|
||||||
|
property_label = ""
|
||||||
|
min_value = 0.0
|
||||||
|
max_value = 100.0
|
||||||
step = 0.0
|
step = 0.0
|
||||||
|
rounded = true
|
||||||
|
prefix = ""
|
||||||
|
suffix = ""
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="."]
|
[node name="Label" type="Label" parent="."]
|
||||||
margin_top = 5.0
|
margin_top = 5.0
|
||||||
|
File diff suppressed because one or more lines are too long
@ -30,6 +30,10 @@ export(bool) var editor_generate : bool = false setget set_editor_generate, get_
|
|||||||
export(bool) var show_loading_screen : bool = true
|
export(bool) var show_loading_screen : bool = true
|
||||||
export(bool) var generate_on_ready : bool = false
|
export(bool) var generate_on_ready : bool = false
|
||||||
|
|
||||||
|
export(int) var spawn_height : int = 5
|
||||||
|
|
||||||
|
export(bool) var use_global_chunk_settings : bool = true
|
||||||
|
|
||||||
export(PropData) var test_prop : PropData
|
export(PropData) var test_prop : PropData
|
||||||
|
|
||||||
var initial_generation : bool = true
|
var initial_generation : bool = true
|
||||||
@ -48,9 +52,32 @@ var _max_frame_chunk_build_temp : int
|
|||||||
var rc : int = 0
|
var rc : int = 0
|
||||||
|
|
||||||
func _enter_tree():
|
func _enter_tree():
|
||||||
|
if !Engine.is_editor_hint() && use_global_chunk_settings:
|
||||||
|
Settings.connect("setting_changed", self, "on_setting_changed")
|
||||||
|
Settings.connect("settings_loaded", self, "on_settings_loaded")
|
||||||
|
|
||||||
|
if Settings.loaded:
|
||||||
|
on_settings_loaded()
|
||||||
|
|
||||||
if generate_on_ready and not Engine.is_editor_hint():
|
if generate_on_ready and not Engine.is_editor_hint():
|
||||||
# call_deferred("generate")
|
# call_deferred("generate")
|
||||||
generate()
|
generate()
|
||||||
|
|
||||||
|
func on_setting_changed(section, key, value):
|
||||||
|
if section == "game":
|
||||||
|
if key == "chunk_spawn_range":
|
||||||
|
chunk_spawn_range = value
|
||||||
|
|
||||||
|
if key == "chunk_lod_falloff":
|
||||||
|
chunk_lod_falloff = value
|
||||||
|
|
||||||
|
|
||||||
|
func on_settings_loaded():
|
||||||
|
chunk_spawn_range = Settings.get_value("game", "chunk_spawn_range")
|
||||||
|
chunk_lod_falloff = Settings.get_value("game", "chunk_lod_falloff")
|
||||||
|
|
||||||
|
|
||||||
|
vis_update += VIS_UPDATE_INTERVAL
|
||||||
|
|
||||||
func generate():
|
func generate():
|
||||||
if level_generator != null:
|
if level_generator != null:
|
||||||
@ -72,7 +99,7 @@ func _process(delta):
|
|||||||
if vis_update >= VIS_UPDATE_INTERVAL:
|
if vis_update >= VIS_UPDATE_INTERVAL:
|
||||||
vis_update = 0
|
vis_update = 0
|
||||||
|
|
||||||
var ppos : Vector3 = _player.get_transform_3d().origin
|
var ppos : Vector3 = _player.get_body_3d().transform.origin
|
||||||
|
|
||||||
var cpos : Vector3 = ppos
|
var cpos : Vector3 = ppos
|
||||||
var ppx : int = int(cpos.x / (chunk_size_x * voxel_scale))
|
var ppx : int = int(cpos.x / (chunk_size_x * voxel_scale))
|
||||||
@ -114,9 +141,15 @@ func _process(delta):
|
|||||||
i += 1
|
i += 1
|
||||||
|
|
||||||
|
|
||||||
for x in range(-chunk_spawn_range + int(cpos.x), chunk_spawn_range + int(cpos.x)):
|
for x in range(int(cpos.x) - chunk_spawn_range, chunk_spawn_range + int(cpos.x)):
|
||||||
for z in range(-chunk_spawn_range + int(cpos.z), chunk_spawn_range + int(cpos.z)):
|
for z in range(int(cpos.z) - chunk_spawn_range, chunk_spawn_range + int(cpos.z)):
|
||||||
for y in range(-1, 2):
|
|
||||||
|
var l : float = (Vector2(cpos.x, cpos.z) - Vector2(x, z)).length()
|
||||||
|
|
||||||
|
if l > chunk_spawn_range:
|
||||||
|
continue
|
||||||
|
|
||||||
|
for y in range(-1 + cpos.y, spawn_height + cpos.y):
|
||||||
if not has_chunk(x, y, z):
|
if not has_chunk(x, y, z):
|
||||||
# print("spawn " + str(Vector3(x, y, z)))
|
# print("spawn " + str(Vector3(x, y, z)))
|
||||||
create_chunk(x, y, z)
|
create_chunk(x, y, z)
|
||||||
@ -179,10 +212,18 @@ func spawn(start_x : int, start_y : int, start_z : int) -> void:
|
|||||||
if not Engine.editor_hint:
|
if not Engine.editor_hint:
|
||||||
_max_frame_chunk_build_temp = max_frame_chunk_build_steps
|
_max_frame_chunk_build_temp = max_frame_chunk_build_steps
|
||||||
max_frame_chunk_build_steps = 0
|
max_frame_chunk_build_steps = 0
|
||||||
|
|
||||||
|
var spv : Vector2 = Vector2(start_x, start_z)
|
||||||
|
|
||||||
for x in range(-chunk_spawn_range + start_x, chunk_spawn_range + start_x):
|
for x in range(start_x - chunk_spawn_range, chunk_spawn_range + start_x):
|
||||||
for z in range(-chunk_spawn_range + start_z, chunk_spawn_range + start_z):
|
for z in range(start_z - chunk_spawn_range, chunk_spawn_range + start_z):
|
||||||
for y in range(-1 + start_y, 2 + start_y):
|
|
||||||
|
var l : float = (spv - Vector2(x, z)).length()
|
||||||
|
|
||||||
|
if l > chunk_spawn_range:
|
||||||
|
continue
|
||||||
|
|
||||||
|
for y in range(-1 + start_y, spawn_height + start_y):
|
||||||
create_chunk(x, y, z)
|
create_chunk(x, y, z)
|
||||||
|
|
||||||
# add_prop(Transform().translated(Vector3(0, 2, 0)), test_prop)
|
# add_prop(Transform().translated(Vector3(0, 2, 0)), test_prop)
|
||||||
|
Loading…
Reference in New Issue
Block a user