Removed a few now unneeded classes/scenes, and moved some of the around. Small tweaks/fixes and comments. Also updated modules to grab a few smaller fixes/improvements.

This commit is contained in:
Relintai 2020-07-18 18:30:39 +02:00
parent 5f8cfba661
commit 4084debdad
12 changed files with 19 additions and 335 deletions

2
HEADS
View File

@ -1 +1 @@
{"engine": {"3.2": "07b24de868457c0a190c88771e99ff09e5451c3b", "master": "8c73e813134001e575b6f59e3b0100471c007410"}, "world_generator": {"master": "873a5f3e4a88bbebdc317c2bd82d1ec0d045c9b5"}, "entity_spell_system": {"master": "af1bd74fbf38d0ac42d3cf203feb3c7212d01849"}, "ui_extensions": {"master": "6fe4f69fea8d71043b08d959b8085404c9c4fe47"}, "voxelman": {"master": "18ad178b1e73a3814749e921f3115ed52dc78b99"}, "texture_packer": {"master": "2993ed34f34cfa6a5e61b7913380231e9c55eda6"}, "fastnoise": {"master": "d0e3f1c759332cf0d9a5d7e0e71d0b0278310651"}, "mesh_data_resource": {"master": "85417ebee9198be3cd7cc643e0e0e934db64a620"}, "procedural_animations": {"master": "9226d21781ea05828570e592874aa319df0dc53d"}, "ess_data": {"master": "3bd637fdd3304b64a18287a49a6b7387acf2f5de"}, "props": {"master": "544654f49b13af2d25ac14152c8a5014474e6333"}, "mesh_utils": {"master": "4f69ec67b861ce4475cfd17946dfaa586c888d94"}, "broken_seals_module": {"master": "0e5c54a70f8e90f95cbf11419b959a5f67562d48"}, "thread_pool": {"master": "93320fe864128d706bcc47fc7ed0731e6e9bcf69"}}
{"engine": {"3.2": "07b24de868457c0a190c88771e99ff09e5451c3b", "master": "8c73e813134001e575b6f59e3b0100471c007410"}, "world_generator": {"master": "882008ac7f0b6edf3a1de4481cd41b23f621d25b"}, "entity_spell_system": {"master": "af1bd74fbf38d0ac42d3cf203feb3c7212d01849"}, "ui_extensions": {"master": "6fe4f69fea8d71043b08d959b8085404c9c4fe47"}, "voxelman": {"master": "698f6083ea537374740998b4fd8629e6a68e4fc6"}, "texture_packer": {"master": "2993ed34f34cfa6a5e61b7913380231e9c55eda6"}, "fastnoise": {"master": "d0e3f1c759332cf0d9a5d7e0e71d0b0278310651"}, "mesh_data_resource": {"master": "85417ebee9198be3cd7cc643e0e0e934db64a620"}, "procedural_animations": {"master": "9226d21781ea05828570e592874aa319df0dc53d"}, "ess_data": {"master": "3bd637fdd3304b64a18287a49a6b7387acf2f5de"}, "props": {"master": "544654f49b13af2d25ac14152c8a5014474e6333"}, "mesh_utils": {"master": "4f69ec67b861ce4475cfd17946dfaa586c888d94"}, "broken_seals_module": {"master": "0e5c54a70f8e90f95cbf11419b959a5f67562d48"}, "thread_pool": {"master": "93320fe864128d706bcc47fc7ed0731e6e9bcf69"}}

View File

@ -29,7 +29,7 @@ func _setup():
if !dd:
continue
var d : Dungeon = dd.instance()
d.posx = 0
d.posz = 0
@ -37,7 +37,6 @@ func _setup():
d.current_seed = current_seed
d.setup()
add_dungeon(d)
return
func _generate_chunk(chunk: VoxelChunk, spawn_mobs: bool) -> void:
# var chunk : VoxelChunk = chunk.get_chunk()

View File

@ -27,15 +27,17 @@ func _setup():
if data.get_biome_data_count() == 0:
return
var bdata : BiomeData = data.get_biome_data(0)
if !bdata:
return
var b : Biome = bdata.instance()
b.current_seed = current_seed
b.setup()
add_biome(b)
# if bdata.get_dungeon_data_count() == 0:
# return
#

View File

@ -37,7 +37,7 @@ _global_script_classes=[ {
"base": "VoxelMesherCubic",
"class": "GDCubicVoxelMesher",
"language": "GDScript",
"path": "res://voxelman/world/CubicVoxelMesher.gd"
"path": "res://voxelman/debug/CubicVoxelMesher.gd"
}, {
"base": "Resource",
"class": "GameModule",
@ -127,7 +127,7 @@ _global_script_classes=[ {
"base": "VoxelMesherMarchingCubes",
"class": "TestVoxelMesher",
"language": "GDScript",
"path": "res://voxelman/world/TestVoxelMesher.gd"
"path": "res://voxelman/debug/TestVoxelMesher.gd"
} ]
_global_script_class_icons={
"AuraGD": "",

View File

@ -39,11 +39,13 @@ func setup(world : VoxelWorld, level_seed : int, spawn_mobs : bool, library: Vox
_spawn_mobs = spawn_mobs
_library = library
if planet:
if planet != null:
_planet = planet.instance()
_planet.current_seed = _level_seed
_planet.setup()
_planet.setup_library(_library)
# This crashes, still need to figure out why
# _planet.setup_library(_library)
# create_planet()

View File

@ -1,141 +0,0 @@
[gd_scene load_steps=16 format=2]
[ext_resource path="res://voxelman/debug/FreeLookCam.tscn" type="PackedScene" id=1]
[ext_resource path="res://modules/core/materials/voxelman.tres" type="Material" id=2]
[ext_resource path="res://voxelman/FPSCounter.gd" type="Script" id=3]
[ext_resource path="res://voxelman/cubic_mesher/CubicVoxelWorld.tscn" type="PackedScene" id=4]
[ext_resource path="res://modules/planets/test_planet/voxel_library/textures/grass_mossy_albedo.png" type="Texture" id=5]
[sub_resource type="Environment" id=1]
ambient_light_color = Color( 1, 1, 1, 1 )
[sub_resource type="SpatialMaterial" id=2]
albedo_color = Color( 0.00392157, 0.105882, 0.0196078, 1 )
[sub_resource type="PlaneMesh" id=3]
[sub_resource type="SphereMesh" id=4]
[sub_resource type="SpatialMaterial" id=5]
albedo_color = Color( 1, 0.00392157, 0.00392157, 1 )
[sub_resource type="PrismMesh" id=6]
[sub_resource type="PrismMesh" id=7]
[sub_resource type="SpatialMaterial" id=8]
albedo_color = Color( 0.129412, 1, 0.0156863, 1 )
albedo_texture = ExtResource( 5 )
[sub_resource type="PrismMesh" id=9]
[sub_resource type="SpatialMaterial" id=10]
albedo_color = Color( 0.00784314, 0.0627451, 1, 1 )
albedo_texture = ExtResource( 5 )
[node name="MC_Test" type="Spatial"]
[node name="Camera" parent="." instance=ExtResource( 1 )]
transform = Transform( 0.844995, 0.247388, -0.474112, -0.0119927, 0.895109, 0.445686, 0.534639, -0.370917, 0.75933, -22.7583, 12.2082, 41.288 )
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
environment = SubResource( 1 )
[node name="DebugGeom" type="ImmediateGeometry" parent="."]
[node name="VoxelWorld" parent="." instance=ExtResource( 4 )]
[node name="DirectionalLight" type="DirectionalLight" parent="."]
transform = Transform( 1, 0, 0, 0, -0.236854, 0.971545, 0, -0.971545, -0.236854, 0, 41.8924, 0 )
[node name="DirectionalLight2" type="DirectionalLight" parent="."]
transform = Transform( -0.781917, -0.147651, 0.605645, -0.623383, 0.1852, -0.759667, 0, -0.971545, -0.236854, 0, 12.0807, 0 )
[node name="FPSCounter" type="Label" parent="."]
margin_right = 123.0
margin_bottom = 41.0
script = ExtResource( 3 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="MeshInstance" type="MeshInstance" parent="."]
transform = Transform( 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, -5, 0 )
material_override = SubResource( 2 )
mesh = SubResource( 3 )
material/0 = ExtResource( 2 )
[node name="gizmo" type="Spatial" parent="."]
[node name="MeshInstance2" type="MeshInstance" parent="gizmo"]
transform = Transform( 0.05, 0, 0, 0, 0.05, 0, 0, 0, 0.05, 0, 0, 0 )
mesh = SubResource( 4 )
material/0 = ExtResource( 2 )
[node name="MeshInstance6" type="MeshInstance" parent="gizmo"]
transform = Transform( 0.05, 0, 0, 0, 0.05, 0, 0, 0, 0.05, 1, 1, 1 )
mesh = SubResource( 4 )
material/0 = ExtResource( 2 )
[node name="MeshInstance7" type="MeshInstance" parent="gizmo"]
transform = Transform( 0.05, 0, 0, 0, 0.05, 0, 0, 0, 0.05, 0, 1, 1 )
mesh = SubResource( 4 )
material/0 = ExtResource( 2 )
[node name="MeshInstance8" type="MeshInstance" parent="gizmo"]
transform = Transform( 0.05, 0, 0, 0, 0.05, 0, 0, 0, 0.05, 1, 1, 0 )
mesh = SubResource( 4 )
material/0 = ExtResource( 2 )
[node name="MeshInstance9" type="MeshInstance" parent="gizmo"]
transform = Transform( 0.05, 0, 0, 0, 0.05, 0, 0, 0, 0.05, 1, 0, 1 )
mesh = SubResource( 4 )
material/0 = ExtResource( 2 )
[node name="MeshInstance3" type="MeshInstance" parent="gizmo"]
transform = Transform( 5.96244e-10, 0.05, 0, -0.05, 5.96244e-10, 0, 0, 0, 0.05, 1, 0, 0 )
material_override = SubResource( 5 )
mesh = SubResource( 6 )
material/0 = ExtResource( 2 )
[node name="MeshInstance4" type="MeshInstance" parent="gizmo"]
transform = Transform( 0.05, 0, 0, 0, 0.05, 0, 0, 0, 0.05, 0, 1, 0 )
mesh = SubResource( 7 )
material/0 = SubResource( 8 )
[node name="MeshInstance5" type="MeshInstance" parent="gizmo"]
transform = Transform( 0.05, 0, 0, 0, -2.18557e-09, -0.05, 0, 0.05, -2.18557e-09, 0, 0, 1 )
mesh = SubResource( 9 )
material/0 = SubResource( 10 )
[node name="gizmo2" type="Spatial" parent="."]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 53.2071, 8.56598, 59.3495 )
[node name="MeshInstance2" type="MeshInstance" parent="gizmo2"]
transform = Transform( 0.05, 0, 0, 0, 0.05, 0, 0, 0, 0.05, 0, 0, 0 )
mesh = SubResource( 4 )
material/0 = ExtResource( 2 )
[node name="MeshInstance3" type="MeshInstance" parent="gizmo2"]
transform = Transform( 5.96244e-10, 0.05, 0, -0.05, 5.96244e-10, 0, 0, 0, 0.05, 1, 0, 0 )
material_override = SubResource( 5 )
mesh = SubResource( 6 )
material/0 = ExtResource( 2 )
[node name="MeshInstance4" type="MeshInstance" parent="gizmo2"]
transform = Transform( 0.05, 0, 0, 0, 0.05, 0, 0, 0, 0.05, 0, 1, 0 )
mesh = SubResource( 7 )
material/0 = SubResource( 8 )
[node name="MeshInstance5" type="MeshInstance" parent="gizmo2"]
transform = Transform( 0.05, 0, 0, 0, -2.18557e-09, -0.05, 0, 0.05, -2.18557e-09, 0, 0, 1 )
mesh = SubResource( 9 )
material/0 = SubResource( 10 )

View File

@ -1,6 +1,6 @@
[gd_scene load_steps=18 format=2]
[ext_resource path="res://voxelman/world/TVVoxelWorld.tscn" type="PackedScene" id=1]
[ext_resource path="res://voxelman/debug/TVVoxelWorld.tscn" type="PackedScene" id=1]
[ext_resource path="res://modules/core/materials/voxelman.tres" type="Material" id=2]
[ext_resource path="res://voxelman/FPSCounter.gd" type="Script" id=3]
[ext_resource path="res://voxelman/debug/FreeLookCam.tscn" type="PackedScene" id=4]
@ -19,6 +19,7 @@
[sub_resource type="Environment" id=1]
ambient_light_color = Color( 1, 1, 1, 1 )

View File

@ -3,11 +3,7 @@
[ext_resource path="res://modules/planets/test_planet/voxel_library/1_main_lib_merger_empty.tres" type="VoxelmanLibraryMerger" id=1]
[ext_resource path="res://voxelman/world/TVVoxelWorld.gd" type="Script" id=2]
[node name="World" type="VoxelWorld"]
[node name="World" type="VoxelWorldDefault"]
library = ExtResource( 1 )
voxel_scale = 2.0
player_path = NodePath("Camera")

View File

@ -1,177 +0,0 @@
extends VoxelChunkDefault
#class_name TVVoxelChunk
var _prop_texture_packer : TexturePacker
var _textures : Array
var _prop_material : SpatialMaterial
var _entities_spawned : bool
func _create_meshers():
_prop_texture_packer = TexturePacker.new()
_prop_texture_packer.max_atlas_size = 1024
_prop_texture_packer.margin = 1
_prop_texture_packer.background_color = Color(0, 0, 0, 1)
_prop_texture_packer.texture_flags = Texture.FLAG_MIPMAPS
func spawn_prop_entities(parent_transform : Transform, prop : PropData):
for i in range(prop.get_prop_count()):
var p : PropDataEntry = prop.get_prop(i)
if p is PropDataEntity:
var pentity : PropDataEntity = p as PropDataEntity
if pentity.entity_data_id != 0:
ESS.spawn_mob(pentity.entity_data_id, pentity.level, parent_transform.origin)
if p is PropDataProp and p.prop != null:
var vmanpp : PropDataProp = p as PropDataProp
spawn_prop_entities(get_prop_mesh_transform(parent_transform * p.transform, vmanpp.snap_to_mesh, vmanpp.snap_axis), p.prop)
func build_phase_prop_mesh() -> void:
for i in range(get_mesher_count()):
get_mesher(i).reset()
if get_prop_count() == 0:
next_phase()
return
# if get_prop_mesh_rid() == RID():
# allocate_prop_mesh()
if _prop_material == null:
_prop_material = SpatialMaterial.new()
_prop_material.flags_vertex_lighting = true
_prop_material.vertex_color_use_as_albedo = true
_prop_material.params_specular_mode = SpatialMaterial.SPECULAR_DISABLED
_prop_material.metallic = 0
# VisualServer.instance_geometry_set_material_override(get_prop_mesh_instance_rid(), _prop_material.get_rid())
for i in range(get_mesher_count()):
get_mesher(i).material = _prop_material
for i in range(get_prop_count()):
var prop : VoxelChunkPropData = get_prop(i)
if prop.mesh != null and prop.mesh_texture != null:
var at : AtlasTexture = _prop_texture_packer.add_texture(prop.mesh_texture)
_textures.append(at)
if prop.prop != null:
prop.prop.add_textures_into(_prop_texture_packer)
if _prop_texture_packer.get_texture_count() > 0:
_prop_texture_packer.merge()
_prop_material.albedo_texture = _prop_texture_packer.get_generated_texture(0)
for i in range(get_prop_count()):
var prop : VoxelChunkPropData = get_prop(i)
if prop.mesh != null:
var t : Transform = get_prop_transform(prop, prop.snap_to_mesh, prop.snap_axis)
for j in range(get_mesher_count()):
prop.prop.add_meshes_into(get_mesher(j), _prop_texture_packer, t, get_voxel_world())
if prop.prop != null:
var vmanpp : PropData = prop.prop as PropData
var t : Transform = get_prop_transform(prop, vmanpp.snap_to_mesh, vmanpp.snap_axis)
for j in range(get_mesher_count()):
prop.prop.add_meshes_into(get_mesher(j), _prop_texture_packer, t, get_voxel_world())
for i in range(get_mesher_count()):
get_mesher(i).bake_colors(self)
# get_mesher(i).build_mesh(get_prop_mesh_rid())
get_mesher(i).material = null
if not _entities_spawned:
for i in range(get_prop_count()):
var prop : VoxelChunkPropData = get_prop(i)
if prop.prop != null:
spawn_prop_entities(get_prop_transform(prop, false, Vector3(0, -1, 0)), prop.prop)
next_phase()
func get_prop_transform(prop : VoxelChunkPropData, snap_to_mesh: bool, snap_axis: Vector3) -> Transform:
var pos : Vector3 = Vector3(prop.x * voxel_scale, prop.y * voxel_scale, prop.z * voxel_scale)
var t : Transform = Transform(Basis(prop.rotation).scaled(prop.scale), pos)
if snap_to_mesh:
var global_pos : Vector3 = get_voxel_world().to_global(t.origin)
var world_snap_axis : Vector3 = get_voxel_world().to_global(t.xform(snap_axis))
var world_snap_dir : Vector3 = (world_snap_axis - global_pos) * 100
var space_state : PhysicsDirectSpaceState = get_voxel_world().get_world().direct_space_state
var result : Dictionary = space_state.intersect_ray(global_pos - world_snap_dir, global_pos + world_snap_dir, [], 1)
if result.size() > 0:
t.origin = get_voxel_world().to_local(result["position"])
return t
func get_prop_mesh_transform(base_transform : Transform, snap_to_mesh: bool, snap_axis: Vector3) -> Transform:
if snap_to_mesh:
var pos : Vector3 = get_voxel_world().to_global(base_transform.origin)
var world_snap_axis : Vector3 = get_voxel_world().to_global(base_transform.xform(snap_axis))
var world_snap_dir : Vector3 = (world_snap_axis - pos) * 100
var space_state : PhysicsDirectSpaceState = get_voxel_world().get_world().direct_space_state
var result : Dictionary = space_state.intersect_ray(pos - world_snap_dir, pos + world_snap_dir, [], 1)
if result.size() > 0:
base_transform.origin = get_voxel_world().to_local(result["position"])
return base_transform
func _build_phase(phase):
if phase == VoxelChunk.BUILD_PHASE_PROP_MESH:
set_physics_process(true)
func _physics_process(delta):
if current_build_phase == VoxelChunk.BUILD_PHASE_PROP_MESH:
build_phase_prop_mesh()
set_physics_process(false)
next_phase()
#func visibility_changed() -> void:
# if get_prop_mesh_instance_rid() != RID():
# VisualServer.instance_set_visible(get_prop_mesh_instance_rid(), visible)
#
#
#func _notification(what: int) -> void:
# if what == NOTIFICATION_TRANSFORM_CHANGED:
# if get_prop_mesh_instance_rid() != RID():
# VisualServer.instance_set_transform(get_prop_mesh_instance_rid(), transform)
#
# if get_prop_body_rid() != RID():
# PhysicsServer.body_set_state(get_prop_body_rid(), PhysicsServer.BODY_STATE_TRANSFORM, transform)
func build_phase_lights() -> void:
var vl : VoxelLight = VoxelLight.new()
for i in range(get_prop_count()):
var prop : VoxelChunkPropData = get_prop(i)
if prop.light == null and prop.prop == null:
continue
var t : Transform = get_prop_transform(prop, prop.snap_to_mesh, prop.snap_axis)
if prop.light != null:
var pl : PropDataLight = prop.light
vl.set_world_position(prop.x + position_x * size_x, prop.y + position_y * size_y, prop.z + position_z * size_z)
vl.color = pl.light_color
vl.size = pl.light_size
bake_light(vl)
if prop.prop != null:
prop.prop.add_prop_lights_into(self, t, true)

View File

@ -49,14 +49,16 @@ var rc : int = 0
func _enter_tree():
if generate_on_ready and not Engine.is_editor_hint():
# This crases pretty reliably, when duplicatiog BiomeBase, not yet sure why exactly
# call_deferred("generate")
generate()
func generate():
if level_generator != null:
level_generator.setup(self, 80, false, library)
spawn()
func _process(delta):
if initial_generation: