From 67229229aecbdca5d247847eceda456770a486f4 Mon Sep 17 00:00:00 2001 From: Molti Date: Mon, 1 Apr 2024 23:38:10 -0500 Subject: [PATCH 1/7] reduce backrooms lag --- .../maintenance_generator.dm | 20 ++++++++++++++++--- .../maintenance.dm | 2 ++ 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_generator.dm b/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_generator.dm index 1c14c5d96714..a2233d0fa675 100644 --- a/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_generator.dm +++ b/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_generator.dm @@ -6,14 +6,21 @@ weighted_closed_turf_types = list(/turf/closed/wall = 5, /turf/closed/wall/rust = 2 ) room_datum_path = /datum/dungeon_room/maintenance room_theme_path = /datum/dungeon_room_theme/maintenance + + ///Boolean, whether or not firelocks are added to the maintenance + var/include_firelocks = TRUE + ///Boolean, wether or not apcs are added to the maintenance + var/include_apcs = TRUE //var/list/used_spawn_points = list() /datum/map_generator/dungeon_generator/maintenance/build_dungeon() . = ..() - add_firelocks() - add_apcs() - wire_apcs() + if(include_firelocks) + add_firelocks() + if(include_apcs) + add_apcs() + wire_apcs() add_maint_loot() /datum/map_generator/dungeon_generator/maintenance/proc/add_firelocks() @@ -261,3 +268,10 @@ //what the fuck how did you get here brazil = TRUE return "blocked directions: [blocked_directions], against a wall: [against_wall], in a one tile hallway: [blocking_passage], brazil: [brazil]" + +//////////////////////////////////////////////////////////////// +//------------Generator specifically for the Z level----------// +//////////////////////////////////////////////////////////////// +/datum/map_generator/dungeon_generator/maintenance/backrooms //this is an entire Z level, so we need to be mindful of how many machines and mobs we spawn + include_firelocks = FALSE + include_apcs = FALSE diff --git a/code/game/area/areas/procedurally_generated_areas/maintenance.dm b/code/game/area/areas/procedurally_generated_areas/maintenance.dm index af39f5e9ac52..f76f5ab9eeda 100644 --- a/code/game/area/areas/procedurally_generated_areas/maintenance.dm +++ b/code/game/area/areas/procedurally_generated_areas/maintenance.dm @@ -168,4 +168,6 @@ /area/procedurally_generated/maintenance/the_backrooms name = "The Backrooms" + requires_power = FALSE + map_generator = /datum/map_generator/dungeon_generator/maintenance/backrooms From d4bd7279939ab03b3fe4db8c7852d0913a4ac67c Mon Sep 17 00:00:00 2001 From: Molti Date: Tue, 2 Apr 2024 00:00:58 -0500 Subject: [PATCH 2/7] indestructible --- .../maintenance_generator.dm | 7 +++++++ .../maintenance_room_theme.dm | 20 +++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_generator.dm b/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_generator.dm index a2233d0fa675..5304483c0a7b 100644 --- a/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_generator.dm +++ b/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_generator.dm @@ -273,5 +273,12 @@ //------------Generator specifically for the Z level----------// //////////////////////////////////////////////////////////////// /datum/map_generator/dungeon_generator/maintenance/backrooms //this is an entire Z level, so we need to be mindful of how many machines and mobs we spawn + + //since there are no firelocks, the place needs to be impossible to space + weighted_possible_floor_types = list(/turf/open/floor/plasteel/dark/indestructible = 1, /turf/open/floor/plating/indestructible = 5) + weighted_closed_turf_types = list(/turf/closed/indestructible = 1) + + room_theme_path = /datum/dungeon_room_theme/maintenance/backrooms + include_firelocks = FALSE include_apcs = FALSE diff --git a/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_room_theme.dm b/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_room_theme.dm index b51a885a3455..0f3171801439 100644 --- a/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_room_theme.dm +++ b/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_room_theme.dm @@ -10,3 +10,23 @@ weighted_possible_door_types = list(/obj/machinery/door/airlock/maintenance_hatch = 1) feature_weight = 80 mob_spawn_chance = 50 + +/datum/dungeon_room_theme/maintenance/backrooms + room_type = ROOM_TYPE_RANDOM + room_danger_level = ROOM_RATING_SAFE | ROOM_RATING_HOSTILE + + weighted_possible_floor_types = list(/turf/open/floor/plasteel/dark/indestructible = 5, /turf/open/floor/plating/indestructible = 5) + weighted_possible_window_types = list(/turf/closed/indestructible/opsglass = 1) + window_weight = 10 + + weighted_possible_door_types = list(/obj/machinery/door/airlock/maintenance_hatch = 1) + feature_weight = 80 + mob_spawn_chance = 50 + +/turf/open/floor/plasteel/dark/indestructible + baseturfs = /turf/open/floor/plating/indestructible + +/turf/open/floor/plating/indestructible + baseturfs = /turf/open/floor/plating/indestructible + planetary_atmos = TRUE + made_baseturf = TRUE // prevent spacing backrooms From 1a523362d0355c1a597273739737c598c2a1d464 Mon Sep 17 00:00:00 2001 From: Molti Date: Tue, 2 Apr 2024 00:08:40 -0500 Subject: [PATCH 3/7] fix --- .../maintenance_generator/maintenance_generator.dm | 5 ++++- .../maintenance_generator/maintenance_room_theme.dm | 3 +-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_generator.dm b/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_generator.dm index 5304483c0a7b..f647cf6dba17 100644 --- a/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_generator.dm +++ b/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_generator.dm @@ -275,7 +275,10 @@ /datum/map_generator/dungeon_generator/maintenance/backrooms //this is an entire Z level, so we need to be mindful of how many machines and mobs we spawn //since there are no firelocks, the place needs to be impossible to space - weighted_possible_floor_types = list(/turf/open/floor/plasteel/dark/indestructible = 1, /turf/open/floor/plating/indestructible = 5) + weighted_open_turf_types = list( + /turf/open/floor/plating/indestructible = 10, + /turf/open/floor/plasteel/dark/indestructible = 1, + ) weighted_closed_turf_types = list(/turf/closed/indestructible = 1) room_theme_path = /datum/dungeon_room_theme/maintenance/backrooms diff --git a/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_room_theme.dm b/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_room_theme.dm index 0f3171801439..2f02b18dd821 100644 --- a/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_room_theme.dm +++ b/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_room_theme.dm @@ -28,5 +28,4 @@ /turf/open/floor/plating/indestructible baseturfs = /turf/open/floor/plating/indestructible - planetary_atmos = TRUE - made_baseturf = TRUE // prevent spacing backrooms + planetary_atmos = TRUE // prevent spacing backrooms From db9a19061a2543849411522be77da7f79a69176c Mon Sep 17 00:00:00 2001 From: Molti Date: Tue, 2 Apr 2024 01:07:31 -0500 Subject: [PATCH 4/7] subtypes --- .../maintenance_generator.dm | 10 +++++++++- .../maintenance_room_theme.dm | 19 ------------------- 2 files changed, 9 insertions(+), 20 deletions(-) diff --git a/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_generator.dm b/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_generator.dm index f647cf6dba17..ea8ea1967c23 100644 --- a/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_generator.dm +++ b/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_generator.dm @@ -277,7 +277,7 @@ //since there are no firelocks, the place needs to be impossible to space weighted_open_turf_types = list( /turf/open/floor/plating/indestructible = 10, - /turf/open/floor/plasteel/dark/indestructible = 1, + /turf/open/floor/plating/rust/indestructible = 1, ) weighted_closed_turf_types = list(/turf/closed/indestructible = 1) @@ -285,3 +285,11 @@ include_firelocks = FALSE include_apcs = FALSE + +/turf/open/floor/plating/rust/indestructible + baseturfs = /turf/open/floor/plating/indestructible + planetary_atmos = TRUE // prevent spacing backrooms + +/turf/open/floor/plating/indestructible + baseturfs = /turf/open/floor/plating/indestructible + planetary_atmos = TRUE // prevent spacing backrooms diff --git a/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_room_theme.dm b/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_room_theme.dm index 2f02b18dd821..b51a885a3455 100644 --- a/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_room_theme.dm +++ b/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_room_theme.dm @@ -10,22 +10,3 @@ weighted_possible_door_types = list(/obj/machinery/door/airlock/maintenance_hatch = 1) feature_weight = 80 mob_spawn_chance = 50 - -/datum/dungeon_room_theme/maintenance/backrooms - room_type = ROOM_TYPE_RANDOM - room_danger_level = ROOM_RATING_SAFE | ROOM_RATING_HOSTILE - - weighted_possible_floor_types = list(/turf/open/floor/plasteel/dark/indestructible = 5, /turf/open/floor/plating/indestructible = 5) - weighted_possible_window_types = list(/turf/closed/indestructible/opsglass = 1) - window_weight = 10 - - weighted_possible_door_types = list(/obj/machinery/door/airlock/maintenance_hatch = 1) - feature_weight = 80 - mob_spawn_chance = 50 - -/turf/open/floor/plasteel/dark/indestructible - baseturfs = /turf/open/floor/plating/indestructible - -/turf/open/floor/plating/indestructible - baseturfs = /turf/open/floor/plating/indestructible - planetary_atmos = TRUE // prevent spacing backrooms From 015fe8b45f8bdbadf8ba5acee68beeedcb89b515 Mon Sep 17 00:00:00 2001 From: Molti Date: Tue, 2 Apr 2024 01:08:47 -0500 Subject: [PATCH 5/7] Update maintenance_generator.dm --- .../maintenance_generator/maintenance_generator.dm | 2 -- 1 file changed, 2 deletions(-) diff --git a/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_generator.dm b/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_generator.dm index ea8ea1967c23..5354053a1c32 100644 --- a/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_generator.dm +++ b/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_generator.dm @@ -281,8 +281,6 @@ ) weighted_closed_turf_types = list(/turf/closed/indestructible = 1) - room_theme_path = /datum/dungeon_room_theme/maintenance/backrooms - include_firelocks = FALSE include_apcs = FALSE From e90766820d194432ac18e5222fcc10338d32b105 Mon Sep 17 00:00:00 2001 From: Molti Date: Tue, 2 Apr 2024 01:34:52 -0500 Subject: [PATCH 6/7] tweaks --- .../maintenance_generator.dm | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_generator.dm b/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_generator.dm index 5354053a1c32..768ecb5c6285 100644 --- a/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_generator.dm +++ b/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_generator.dm @@ -274,20 +274,19 @@ //////////////////////////////////////////////////////////////// /datum/map_generator/dungeon_generator/maintenance/backrooms //this is an entire Z level, so we need to be mindful of how many machines and mobs we spawn - //since there are no firelocks, the place needs to be impossible to space + //since there are no firelocks, the place needs to be hard to space and replenish air automatically weighted_open_turf_types = list( - /turf/open/floor/plating/indestructible = 10, - /turf/open/floor/plating/rust/indestructible = 1, + /turf/open/floor/plating/backrooms = 10, + /turf/open/floor/plating/rust/backrooms = 1, ) - weighted_closed_turf_types = list(/turf/closed/indestructible = 1) include_firelocks = FALSE include_apcs = FALSE -/turf/open/floor/plating/rust/indestructible - baseturfs = /turf/open/floor/plating/indestructible +/turf/open/floor/plating/rust/backrooms + baseturfs = /turf/open/floor/plating/backrooms planetary_atmos = TRUE // prevent spacing backrooms -/turf/open/floor/plating/indestructible - baseturfs = /turf/open/floor/plating/indestructible +/turf/open/floor/plating/backrooms + baseturfs = /turf/open/floor/plating/backrooms planetary_atmos = TRUE // prevent spacing backrooms From de92d05aaaacaaf7ad49e7edcf6534c4c40ad227 Mon Sep 17 00:00:00 2001 From: Molti Date: Tue, 2 Apr 2024 01:38:07 -0500 Subject: [PATCH 7/7] Update maintenance_generator.dm --- .../maintenance_generator/maintenance_generator.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_generator.dm b/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_generator.dm index 768ecb5c6285..b35a1cb80b89 100644 --- a/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_generator.dm +++ b/code/datums/mapgen/dungeon_generators/maintenance_generator/maintenance_generator.dm @@ -272,7 +272,7 @@ //////////////////////////////////////////////////////////////// //------------Generator specifically for the Z level----------// //////////////////////////////////////////////////////////////// -/datum/map_generator/dungeon_generator/maintenance/backrooms //this is an entire Z level, so we need to be mindful of how many machines and mobs we spawn +/datum/map_generator/dungeon_generator/maintenance/backrooms //since there are no firelocks, the place needs to be hard to space and replenish air automatically weighted_open_turf_types = list( @@ -280,6 +280,7 @@ /turf/open/floor/plating/rust/backrooms = 1, ) + //removes firelocks and apcs as the area is large enough that it annihilates the server if it has a bunch of firelocks include_firelocks = FALSE include_apcs = FALSE