diff --git a/game/scripts/dungeons/dungeon.gd b/game/scripts/dungeons/dungeon.gd index 1381d87a..10b75109 100644 --- a/game/scripts/dungeons/dungeon.gd +++ b/game/scripts/dungeons/dungeon.gd @@ -4,6 +4,7 @@ extends Spatial export(bool) var generate_on_ready : bool = true export(PropData) var start_room : PropData export(Array, PropData) var rooms : Array +export(PropData) var plug : PropData export(bool) var generate : bool setget set_generate, get_generate #todo calc aabbs and store in PropData during prop conversion @@ -121,15 +122,17 @@ func generate() -> void: spawn_room(Transform(), start_room) - func spawn_room(room_lworld_transform : Transform, room : PropData, level : int = 0, current_portal : PropDataPortal = null) -> void: if level > 4: + var plugi : PropInstanceMerger = PropInstanceMerger.new() + plugi.prop_data = plug + add_child(plugi) + plugi.transform = room_lworld_transform + + #test_spawn_pos(room_lworld_transform) + return - - var sr : PropInstanceMerger = PropInstanceMerger.new() - sr.prop_data = room - add_child(sr) - + var orig_room_lworld_transform : Transform = room_lworld_transform if current_portal: @@ -140,6 +143,9 @@ func spawn_room(room_lworld_transform : Transform, room : PropData, level : int lworld_curr_portal.basis = lworld_curr_portal.basis.rotated(Vector3(0, 1, 0), PI) room_lworld_transform = room_lworld_transform * lworld_curr_portal.inverse() + var sr : PropInstanceMerger = PropInstanceMerger.new() + sr.prop_data = room + add_child(sr) sr.transform = room_lworld_transform var cab : PoolVector2Array = room_hulls[room] @@ -154,8 +160,8 @@ func spawn_room(room_lworld_transform : Transform, room : PropData, level : int current_aabbs.push_back(ctfab) - if Engine.editor_hint and debug: - sr.owner = get_tree().edited_scene_root + #if Engine.editor_hint and debug: + # sr.owner = get_tree().edited_scene_root for pe in room.props: if pe is PropDataPortal: @@ -236,6 +242,12 @@ func spawn_room(room_lworld_transform : Transform, room : PropData, level : int if can_spawn: spawn_room(offset_current_portal_lworld_position, new_room, level + 1, new_room_portal) + else: + var plugi : PropInstanceMerger = PropInstanceMerger.new() + plugi.prop_data = plug + add_child(plugi) + plugi.transform = offset_current_portal_lworld_position + #test_spawn_pos(offset_current_portal_lworld_position) func clear() -> void: if Engine.editor_hint and debug: diff --git a/game/test_dungeon/Dungeon.tscn b/game/test_dungeon/Dungeon.tscn index eab7fb86..eef88e91 100644 --- a/game/test_dungeon/Dungeon.tscn +++ b/game/test_dungeon/Dungeon.tscn @@ -1,12 +1,14 @@ -[gd_scene load_steps=6 format=2] +[gd_scene load_steps=7 format=2] [ext_resource path="res://scripts/dungeons/dungeon.gd" type="Script" id=1] [ext_resource path="res://test_rooms/Room5.tres" type="PropData" id=2] [ext_resource path="res://test_rooms/Room4.tres" type="PropData" id=3] [ext_resource path="res://test_rooms/Room3.tres" type="PropData" id=4] [ext_resource path="res://test_rooms/Room1.tres" type="PropData" id=5] +[ext_resource path="res://test_rooms/RoomPlug.tres" type="PropData" id=6] [node name="Dungeon" type="Spatial"] script = ExtResource( 1 ) start_room = ExtResource( 5 ) rooms = [ ExtResource( 4 ), ExtResource( 3 ), ExtResource( 2 ) ] +plug = ExtResource( 6 ) diff --git a/game/test_rooms/RoomPlug.tres b/game/test_rooms/RoomPlug.tres new file mode 100644 index 00000000..77f6fdab --- /dev/null +++ b/game/test_rooms/RoomPlug.tres @@ -0,0 +1,11 @@ +[gd_resource type="PropData" load_steps=3 format=2] + +[ext_resource path="res://test_rooms/test2_tiledwalldata.tres" type="TiledWallData" id=1] + +[sub_resource type="PropDataTiledWall" id=1] +transform = Transform( -1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0.5, -1, 0 ) +heigth = 2 +data = ExtResource( 1 ) + +[resource] +props = [ SubResource( 1 ) ] diff --git a/game/test_rooms/RoomPlug.tscn b/game/test_rooms/RoomPlug.tscn new file mode 100644 index 00000000..8f2d5f31 --- /dev/null +++ b/game/test_rooms/RoomPlug.tscn @@ -0,0 +1,10 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://test_rooms/test2_tiledwalldata.tres" type="TiledWallData" id=10] + +[node name="RoomPLug" type="Spatial"] + +[node name="Floor" type="TiledWall" parent="."] +transform = Transform( -1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0.5, -1, 0 ) +heigth = 2 +data = ExtResource( 10 ) diff --git a/game/test_rooms/test2_tiledwalldata.tres b/game/test_rooms/test2_tiledwalldata.tres index 4eac7ee1..9065f2c0 100644 --- a/game/test_rooms/test2_tiledwalldata.tres +++ b/game/test_rooms/test2_tiledwalldata.tres @@ -1,9 +1,7 @@ -[gd_resource type="TiledWallData" load_steps=3 format=2] +[gd_resource type="TiledWallData" load_steps=2 format=2] -[ext_resource path="res://modules/core/materials/6_standard_material_prop_nouv2.tres" type="Material" id=5] [ext_resource path="res://modules/planets/test_planet/voxel_library/textures/stone_dungeon_1_albedo.png" type="Texture" id=6] [resource] tiling_type = 3 textures = [ ExtResource( 6 ) ] -materials = [ ExtResource( 5 ) ] diff --git a/game/tw/TerraWorldBlocky.tscn b/game/tw/TerraWorldBlocky.tscn index 25264b80..e0669d3d 100644 --- a/game/tw/TerraWorldBlocky.tscn +++ b/game/tw/TerraWorldBlocky.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=10 format=2] +[gd_scene load_steps=11 format=2] [ext_resource path="res://tw/new_terramanlibrarymergerpcm.tres" type="TerramanLibraryMergerPCM" id=1] [ext_resource path="res://tw/TerraWorldBlocky.gd" type="Script" id=2] @@ -6,6 +6,7 @@ [ext_resource path="res://scripts/settings/DirectionalLightSettings.gd" type="Script" id=4] [ext_resource path="res://test_props/MeshDataInstance.tres" type="PropData" id=5] [ext_resource path="res://modules/planets/test_planet/DungeonPlanetData.tres" type="Planet" id=6] +[ext_resource path="res://test_dungeon/Dungeon.tscn" type="PackedScene" id=7] [sub_resource type="TerramanLevelGenerator" id=1] script = ExtResource( 3 ) @@ -79,3 +80,6 @@ light_energy = 0.87 light_specular = 0.65 shadow_bias = 0.07 script = ExtResource( 4 ) + +[node name="Dungeon" parent="." instance=ExtResource( 7 )] +transform = Transform( 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 99, 0 )