From d577f0c35d167b1c8871c0f9c469aa39cb01e19e Mon Sep 17 00:00:00 2001 From: Marc Gilleron Date: Mon, 2 Jan 2017 05:47:51 +0100 Subject: [PATCH] Update to match module changes --- project/debug_camera.gd | 2 -- project/generator.gd | 35 +++++++++++++++++++++++++++++------ project/launcher.tscn | 2 ++ project/new_scene.tscn | 8 ++++---- project/provider.gd | 17 +++++++++++++++++ project/voxel_map.gd | 19 ++++++++----------- 6 files changed, 60 insertions(+), 23 deletions(-) create mode 100644 project/provider.gd diff --git a/project/debug_camera.gd b/project/debug_camera.gd index 6701b5e..6ab0cf9 100644 --- a/project/debug_camera.gd +++ b/project/debug_camera.gd @@ -91,5 +91,3 @@ func _input(event): if event.pressed and event.scancode == KEY_ESCAPE: # Get the mouse back Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE) - - diff --git a/project/generator.gd b/project/generator.gd index 09da730..53af24d 100644 --- a/project/generator.gd +++ b/project/generator.gd @@ -40,7 +40,13 @@ class Grid extends _Base: class Heightmap extends _Base: + var _noise2 = OsnNoise.new() + + func _init(): + _noise2.set_seed(_noise.get_seed() + 1) + func generate(voxels, offset): + offset *= 16 var ox = offset.x var oy = offset.y var oz = offset.z @@ -50,31 +56,48 @@ class Heightmap extends _Base: var dirt = 1 if oy < 0: dirt = 2 + + var air = 0 + if oy < 0: + air = 4 var bs = voxels.get_size_x() var noise1 = OsnFractalNoise.new() noise1.set_source_noise(_noise) - noise1.set_period(128) - noise1.set_octaves(4) + noise1.set_period(150) + noise1.set_octaves(5) + + var noise2 = OsnFractalNoise.new() + noise2.set_source_noise(_noise2) + noise2.set_period(256) + noise2.set_octaves(5) for z in range(0, bs): for x in range(0, bs): - var h = floor(16.0 * noise1.get_noise_2d(ox+x, oz+z) - oy) + #var n2 = noise2.get_noise_2d(ox+x, oz+z) +# n2 = (n2+0.5)*8 - 1 +# if n2 > 0.0: +# n2 = 0.0 + + var n1 = noise1.get_noise_2d(ox+x, oz+z) + + var h = floor(64.0 * n1 - oy) if h >= 0: if h < bs: voxels.fill_area(dirt, Vector3(x,0,z), Vector3(x+1,h,z+1)) - voxels.fill_area(0, Vector3(x,h,z), Vector3(x+1,bs,z+1)) + voxels.fill_area(air, Vector3(x,h,z), Vector3(x+1,bs,z+1)) else: voxels.fill_area(dirt, Vector3(x,0,z), Vector3(x+1,bs,z+1)) else: - voxels.fill_area(0, Vector3(x,0,z), Vector3(x+1,bs,z+1)) + voxels.fill_area(air, Vector3(x,0,z), Vector3(x+1,bs,z+1)) class Volume extends _Base: func generate(voxels, offset): + offset *= 16 var ox = offset.x var oy = offset.y var oz = offset.z @@ -95,7 +118,7 @@ class Volume extends _Base: for y in range(0, bs): var gy = y+oy var h = noise1.get_noise_3d(x+ox+2, gy, z+oz) - if h < 1-gy*0.01 - 1: + if h < 1-gy*0.005 - 1: voxels.set_voxel(dirt, x, y, z) empty = false else: diff --git a/project/launcher.tscn b/project/launcher.tscn index d519d9e..083f2d1 100644 --- a/project/launcher.tscn +++ b/project/launcher.tscn @@ -13,6 +13,8 @@ margin/top = 116.0 margin/right = 394.0 margin/bottom = 156.0 toggle_mode = false +enabled_focus_mode = 2 +shortcut = null text = "Start" flat = false script/script = ExtResource( 1 ) diff --git a/project/new_scene.tscn b/project/new_scene.tscn index 10b82ea..a90bb2a 100644 --- a/project/new_scene.tscn +++ b/project/new_scene.tscn @@ -93,7 +93,7 @@ background/energy = 1.0 background/scale = 1.0 background/glow = 0.0 background/canvas_max_layer = null -glow/enabled = true +glow/enabled = false glow/blur_passes = 1 glow/blur_scale = 1 glow/blur_strength = 1 @@ -114,10 +114,10 @@ hdr/min_luminance = 0.4 hdr/max_luminance = 8.0 hdr/exposure_adj_speed = 0.5 fog/enabled = true -fog/begin = 0.01 +fog/begin = 32.0 fog/begin_color = Color( 0, 0, 0, 1 ) fog/end_color = Color( 0.443137, 0.643137, 0.670588, 1 ) -fog/attenuation = 0.707107 +fog/attenuation = 2.14355 fog/bg = true bcs/enabled = false bcs/brightness = 1.0 @@ -129,6 +129,7 @@ srgb/enabled = false [node name="Camera" type="Camera" parent="."] +editor/display_folded = true _import_transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 ) transform/local = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4, 0 ) projection = 0 @@ -142,7 +143,6 @@ environment = null h_offset = 0.0 v_offset = 0.0 script/script = ExtResource( 1 ) -__meta__ = { "_editor_collapsed":true } sensitivity = 0.4 min_angle = -90 max_angle = 90 diff --git a/project/provider.gd b/project/provider.gd new file mode 100644 index 0000000..747cc2a --- /dev/null +++ b/project/provider.gd @@ -0,0 +1,17 @@ +extends VoxelProvider + +const Generators = preload("generator.gd") + +var _generator = null + + +func _init(): + _generator = Generators.Volume.new() + + +func emerge_block(out_buffer, block_pos): + _generator.generate(out_buffer, block_pos) + + +#func immerge_block(buffer, bock_pos): +# pass diff --git a/project/voxel_map.gd b/project/voxel_map.gd index 01eb083..60d873a 100644 --- a/project/voxel_map.gd +++ b/project/voxel_map.gd @@ -1,6 +1,8 @@ extends VoxelTerrain +const CustomProvider = preload("provider.gd") + export(Material) var solid_material = null export(Material) var transparent_material = null @@ -9,9 +11,6 @@ var _generator = null func _ready(): - var gen = preload("generator.gd") - _generator = gen.Heightmap.new() - _library.set_atlas_size(4) _library.create_voxel(0, "air").set_transparent() _library.create_voxel(1, "grass_dirt").set_cube_geometry().set_cube_uv_tbs_sides(Vector2(0,0), Vector2(0,1), Vector2(1,0)) @@ -23,14 +22,12 @@ func _ready(): mesher.set_library(_library) mesher.set_material(solid_material, 0) mesher.set_material(transparent_material, 1) + + set_provider(CustomProvider.new()) - force_load_blocks(Vector3(0,0,0), Vector3(8,3,8)) - - -# TODO option to execute this method in a thread -func _generate_block(voxels, block_pos): - #print("Generating block " + str(block_pos)) - var offset = block_to_voxel(block_pos) - _generator.generate(voxels, offset) + force_load_blocks(Vector3(0,0,0), Vector3(12,4,12)) +# var Testouille = preload("debug_camera.gd") +# var t = Testouille.new() +# t.lolance()