mirror of
https://github.com/Relintai/broken_seals.git
synced 2024-11-10 08:42:11 +01:00
The dungeon will now spawn plugs.
This commit is contained in:
parent
d6ba00be37
commit
4b5f6253db
@ -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:
|
||||
|
@ -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 )
|
||||
|
11
game/test_rooms/RoomPlug.tres
Normal file
11
game/test_rooms/RoomPlug.tres
Normal file
@ -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 ) ]
|
10
game/test_rooms/RoomPlug.tscn
Normal file
10
game/test_rooms/RoomPlug.tscn
Normal file
@ -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 )
|
@ -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 ) ]
|
||||
|
@ -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 )
|
||||
|
Loading…
Reference in New Issue
Block a user