Update to match module changes
parent
5c4a798892
commit
d577f0c35d
|
@ -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)
|
||||
|
||||
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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 )
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -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()
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue