mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-20 12:35:33 +01:00
Assorted Liquids Patches (#28714)
* Resurrects Liquidscode
Fixes everything broken with liquidscode; with a heavy emphasis on making oceans work again. This makes it possible via signal for atoms to react to liquids updating on a turf nearby, fixes immutable turf rendering; fixes liquid plumbing('s rendering - we're still working on getting the input and outputs themselves fixed and is our biggest "we need this done" rn, the recent plumbing refactor fucked us here); fixes ocean area's icons; redoes liquids spawners' hierarchy and gives them a new sprite, and finally fixes trench mapgen & ocean turfs (while implementing some new subtypes we needed).
Co-Authored-By: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Co-Authored-By: Ivory <47710522+distributivgesetz@users.noreply.github.com>
* I fucked this one up; oopsies.
* I regex'd for this!! How did this slip through??
* This one's more understandable though.
* Update ocean_turfs.dm
Real "ghosts in the machine" vibe to this one; why specifically does THIS one fail but the rest don't. I don't get it. Worked on our code.
---------
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Co-authored-by: Ivory <47710522+distributivgesetz@users.noreply.github.com>
Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com>
This commit is contained in:
@@ -47,6 +47,8 @@
|
||||
#define COMSIG_TURF_MOB_FALL "turf_mob_fall"
|
||||
///from base of /obj/effect/abstract/liquid_turf/Initialize() (/obj/effect/abstract/liquid_turf/liquids)
|
||||
#define COMSIG_TURF_LIQUIDS_CREATION "turf_liquids_creation"
|
||||
/// From base of /turf/proc/liquids_change(new_state)
|
||||
#define COMSIG_TURF_LIQUIDS_CHANGE "turf_liquids_change"
|
||||
|
||||
/// listens to wet_stacks, if wetting a mob above 10 stacks it will signal the akula race trait to apply its buffs and nerfs
|
||||
#define COMSIG_MOB_TRIGGER_WET_SKIN "mob_trigger_wet_skin"
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
//ignored_types += typesof(YOUR_DOWNSTREAM_TYPEPATH(s)_HERE) //MODULARITY SUPPORT. If you have snowflake typepaths that are blacklisted in, for example, create & destroy unit test because they require certain SS's being init, use this to blacklist them.
|
||||
//SKYRAT EDIT START
|
||||
ignored_types += typesof(/turf/open/openspace/ocean)
|
||||
ignored_types += typesof(/turf/open/floor/plating/ocean)
|
||||
ignored_types += typesof(/turf/open/misc/ocean)
|
||||
// SKYRAT EDIT END
|
||||
|
||||
|
||||
|
||||
@@ -17,15 +17,22 @@ SUBSYSTEM_DEF(liquids)
|
||||
var/list/processing_fire = list()
|
||||
var/fire_counter = 0 //Only process fires on intervals
|
||||
|
||||
// format: list[path, list[str, instance]]
|
||||
var/list/singleton_immutables = list()
|
||||
|
||||
var/run_type = SSLIQUIDS_RUN_TYPE_TURFS
|
||||
|
||||
/datum/controller/subsystem/liquids/proc/get_immutable(type)
|
||||
if(!singleton_immutables[type])
|
||||
var/obj/effect/abstract/liquid_turf/immutable/new_one = new type()
|
||||
singleton_immutables[type] = new_one
|
||||
return singleton_immutables[type]
|
||||
/datum/controller/subsystem/liquids/proc/get_immutable(type, turf/reference_turf)
|
||||
if(isnull(singleton_immutables[type]))
|
||||
singleton_immutables[type] = list()
|
||||
|
||||
var/offset = GET_TURF_PLANE_OFFSET(reference_turf)
|
||||
|
||||
if(!("[offset]" in singleton_immutables[type]))
|
||||
var/obj/effect/abstract/liquid_turf/immutable/new_one = new type(null, offset)
|
||||
singleton_immutables[type]["[offset]"] = new_one
|
||||
|
||||
return singleton_immutables[type]["[offset]"]
|
||||
|
||||
|
||||
/datum/controller/subsystem/liquids/stat_entry(msg)
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
anchored = TRUE
|
||||
plane = FLOOR_PLANE
|
||||
layer = ABOVE_OPEN_TURF_LAYER
|
||||
appearance_flags = TILE_BOUND
|
||||
color = "#DDF"
|
||||
|
||||
//For being on fire
|
||||
@@ -222,15 +223,17 @@
|
||||
/obj/effect/abstract/liquid_turf/proc/make_state_layer(state, has_top)
|
||||
PRIVATE_PROC(TRUE)
|
||||
|
||||
. = list(make_liquid_overlay("stage[state]_bottom", ABOVE_MOB_LAYER, ABOVE_GAME_PLANE))
|
||||
. = list(make_liquid_overlay("stage[state]_bottom", ABOVE_MOB_LAYER, GAME_PLANE))
|
||||
|
||||
if(!has_top)
|
||||
return
|
||||
|
||||
. += make_liquid_overlay("stage[state]_top", BELOW_OBJ_LAYER, GAME_PLANE)
|
||||
. += make_liquid_overlay("stage[state]_top", TABLE_LAYER + 0.05, GAME_PLANE)
|
||||
|
||||
/obj/effect/abstract/liquid_turf/proc/set_new_liquid_state(new_state)
|
||||
liquid_state = new_state
|
||||
if(!isnull(my_turf))
|
||||
my_turf.liquids_change(new_state)
|
||||
update_icon(UPDATE_OVERLAYS)
|
||||
|
||||
/obj/effect/abstract/liquid_turf/update_overlays()
|
||||
@@ -651,8 +654,8 @@
|
||||
smoothing_flags = NONE
|
||||
icon_state = "ocean"
|
||||
base_icon_state = "ocean"
|
||||
plane = DEFAULT_PLANE //Same as weather, etc.
|
||||
layer = ABOVE_MOB_LAYER
|
||||
layer = FLY_LAYER
|
||||
plane = ABOVE_GAME_PLANE
|
||||
starting_temp = T20C-150
|
||||
no_effects = TRUE
|
||||
vis_flags = NONE
|
||||
@@ -660,8 +663,9 @@
|
||||
/obj/effect/abstract/liquid_turf/immutable/ocean/warm
|
||||
starting_temp = T20C+20
|
||||
|
||||
/obj/effect/abstract/liquid_turf/immutable/Initialize(mapload)
|
||||
/obj/effect/abstract/liquid_turf/immutable/Initialize(mapload, plane_offset)
|
||||
. = ..()
|
||||
SET_PLANE_W_SCALAR(src, initial(plane), plane_offset)
|
||||
reagent_list = starting_mixture.Copy()
|
||||
total_reagents = 0
|
||||
for(var/key in reagent_list)
|
||||
@@ -669,5 +673,3 @@
|
||||
temp = starting_temp
|
||||
calculate_height()
|
||||
set_reagent_color_for_liquid()
|
||||
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
/obj/machinery/plumbing/floor_pump/update_appearance(updates)
|
||||
. = ..()
|
||||
layer = tile_placed ? GAS_SCRUBBER_LAYER : BELOW_OBJ_LAYER
|
||||
plane = tile_placed ? FLOOR_PLANE : GAME_PLANE
|
||||
SET_PLANE_IMPLICIT(src, tile_placed ? FLOOR_PLANE : GAME_PLANE)
|
||||
|
||||
/obj/machinery/plumbing/floor_pump/update_icon_state()
|
||||
. = ..()
|
||||
@@ -294,6 +294,12 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/plumbing/floor_pump/output/on, 0)
|
||||
|
||||
MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/plumbing/floor_pump/output/on/supply, 0)
|
||||
|
||||
// Stops at 30 height - perfect for automatically refilling pools and other water fixtures.
|
||||
/obj/machinery/plumbing/floor_pump/output/on/supply/waist_deep
|
||||
height_regulator = 30
|
||||
|
||||
MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/plumbing/floor_pump/output/on/supply/waist_deep, 0)
|
||||
|
||||
/obj/item/construction/plumbing/engineering
|
||||
name = "engineering plumbing constructor"
|
||||
desc = "A type of plumbing constructor designed to rapidly deploy the machines needed for logistics regarding fluids."
|
||||
@@ -335,9 +341,25 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/plumbing/floor_pump/output/on/supply,
|
||||
|
||||
// Helpers for maps
|
||||
/obj/machinery/duct/supply
|
||||
color = COLOR_CYAN
|
||||
duct_color = COLOR_CYAN
|
||||
duct_layer = FOURTH_DUCT_LAYER
|
||||
pixel_x = 5
|
||||
pixel_y = 5
|
||||
|
||||
/obj/machinery/duct/supply/Initialize(mapload)
|
||||
pixel_x = 0
|
||||
pixel_y = 0
|
||||
. = ..()
|
||||
|
||||
/obj/machinery/duct/waste
|
||||
color = COLOR_BROWN
|
||||
duct_color = COLOR_BROWN
|
||||
duct_layer = SECOND_DUCT_LAYER
|
||||
pixel_x = -5
|
||||
pixel_y = -5
|
||||
|
||||
/obj/machinery/duct/waste/Initialize(mapload)
|
||||
pixel_x = 0
|
||||
pixel_y = 0
|
||||
. = ..()
|
||||
|
||||
@@ -22,6 +22,10 @@
|
||||
lgroup.remove_from_group(src)
|
||||
SSliquids.add_active_turf(src)
|
||||
|
||||
/// Called when liquids flow or otherwise update - intercept COMSIG_TURF_LIQUIDS_CHANGE to react.
|
||||
/turf/proc/liquids_change(new_state)
|
||||
SEND_SIGNAL(src, COMSIG_TURF_LIQUIDS_CHANGE, new_state)
|
||||
|
||||
/obj/effect/abstract/liquid_turf/proc/liquid_simple_delete_flat(flat_amount)
|
||||
if(flat_amount >= total_reagents)
|
||||
qdel(src, TRUE)
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
/area/ocean
|
||||
name = "Ocean"
|
||||
icon_state = "space"
|
||||
icon = 'icons/area/areas_station.dmi'
|
||||
icon_state = "explored"
|
||||
requires_power = TRUE
|
||||
always_unpowered = TRUE
|
||||
power_light = FALSE
|
||||
@@ -12,6 +13,7 @@
|
||||
sound_environment = SOUND_AREA_SPACE
|
||||
|
||||
/area/ocean/generated
|
||||
icon_state = "unexplored"
|
||||
map_generator = /datum/map_generator/ocean_generator
|
||||
|
||||
/area/ocean/trench
|
||||
@@ -19,6 +21,7 @@
|
||||
name = "The Trench"
|
||||
|
||||
/area/ocean/trench/generated
|
||||
icon_state = "unexplored"
|
||||
map_generator = /datum/map_generator/cave_generator/trench
|
||||
|
||||
/area/ruin/ocean
|
||||
|
||||
@@ -1,34 +1,34 @@
|
||||
/datum/biome/ocean_sand
|
||||
turf_type = /turf/open/floor/plating/ocean
|
||||
turf_type = /turf/open/misc/ocean
|
||||
flora_types = list(/obj/effect/spawner/ocean_curio, /obj/structure/flora/rock, /obj/structure/flora/rock/pile, /obj/structure/flora/ocean/glowweed, /obj/structure/flora/ocean/seaweed, /obj/structure/flora/ocean/longseaweed)
|
||||
flora_density = 10
|
||||
|
||||
/datum/biome/ocean_sand_flora
|
||||
turf_type = /turf/open/floor/plating/ocean
|
||||
turf_type = /turf/open/misc/ocean
|
||||
flora_types = list(/obj/effect/spawner/ocean_curio, /obj/structure/flora/rock/pile, /obj/structure/flora/ocean/glowweed, /obj/structure/flora/ocean/seaweed, /obj/structure/flora/ocean/longseaweed, /obj/structure/flora/ocean/coral)
|
||||
flora_density = 25
|
||||
fauna_density = 0.03
|
||||
fauna_types = list(/mob/living/basic/carp)
|
||||
|
||||
/datum/biome/ocean_redsand
|
||||
turf_type = /turf/open/floor/plating/ocean/ironsand
|
||||
turf_type = /turf/open/misc/ironsand/ocean
|
||||
flora_types = list(/obj/effect/spawner/ocean_curio, /obj/structure/flora/rock/pile, /obj/structure/flora/ocean/glowweed, /obj/structure/flora/ocean/seaweed, /obj/structure/flora/ocean/longseaweed, /obj/structure/flora/ocean/coral)
|
||||
flora_density = 40
|
||||
fauna_density = 0.06
|
||||
fauna_types = list(/mob/living/basic/carp)
|
||||
|
||||
/datum/biome/ocean_rocklight
|
||||
turf_type = /turf/open/floor/plating/ocean/rock
|
||||
turf_type = /turf/open/misc/ocean/rock
|
||||
flora_types = list(/obj/effect/spawner/ocean_curio/rock, /obj/structure/flora/rock, /obj/structure/flora/rock/pile)
|
||||
flora_density = 3
|
||||
|
||||
/datum/biome/ocean_rockmed
|
||||
turf_type = /turf/open/floor/plating/ocean/rock/medium
|
||||
turf_type = /turf/open/misc/ocean/rock/medium
|
||||
flora_types = list(/obj/effect/spawner/ocean_curio/rock, /obj/structure/flora/rock, /obj/structure/flora/rock/pile)
|
||||
flora_density = 5
|
||||
|
||||
/datum/biome/ocean_rockheavy
|
||||
turf_type = /turf/open/floor/plating/ocean/rock/heavy
|
||||
turf_type = /turf/open/misc/ocean/rock/heavy
|
||||
flora_types = list(/obj/effect/spawner/ocean_curio/rock, /obj/structure/flora/rock, /obj/structure/flora/rock/pile)
|
||||
flora_density = 7
|
||||
|
||||
|
||||
@@ -81,7 +81,10 @@
|
||||
#undef SCRAP_METAL_YIELD_HIGH
|
||||
|
||||
/obj/effect/spawner/liquids_spawner
|
||||
name = "Liquids Spawner"
|
||||
name = "Liquids Spawner (Water, Waist-Deep)"
|
||||
icon = 'modular_skyrat/modules/liquids/icons/obj/effects/liquid.dmi'
|
||||
icon_state = "spawner"
|
||||
color = "#AAAAAA77"
|
||||
var/reagent_list = list(/datum/reagent/water = ONE_LIQUIDS_HEIGHT*LIQUID_WAIST_LEVEL_HEIGHT)
|
||||
var/temp = T20C
|
||||
|
||||
@@ -93,11 +96,21 @@
|
||||
var/turf/T = loc
|
||||
T.add_liquid_list(reagent_list, FALSE, temp)
|
||||
|
||||
/obj/effect/spawner/liquids_spawner/acid_puddle
|
||||
reagent_list = list(/datum/reagent/toxin/acid = ONE_LIQUIDS_HEIGHT)
|
||||
/obj/effect/spawner/liquids_spawner/puddle
|
||||
name = "Liquids Spawner (Water, Puddle)"
|
||||
reagent_list = list(/datum/reagent/water = ONE_LIQUIDS_HEIGHT)
|
||||
|
||||
/obj/effect/spawner/liquids_spawner/acid_waist
|
||||
reagent_list = list(/datum/reagent/toxin/acid = ONE_LIQUIDS_HEIGHT*LIQUID_WAIST_LEVEL_HEIGHT)
|
||||
/obj/effect/spawner/liquids_spawner/ankles
|
||||
name = "Liquids Spawner (Water, Ankle-Deep)"
|
||||
reagent_list = list(/datum/reagent/water = ONE_LIQUIDS_HEIGHT*LIQUID_ANKLES_LEVEL_HEIGHT)
|
||||
|
||||
/obj/effect/spawner/liquids_spawner/shoulders
|
||||
name = "Liquids Spawner (Water, Shoulder-Deep)"
|
||||
reagent_list = list(/datum/reagent/water = ONE_LIQUIDS_HEIGHT*LIQUID_SHOULDERS_LEVEL_HEIGHT)
|
||||
|
||||
/obj/effect/spawner/liquids_spawner/fulltile
|
||||
name = "Liquids Spawner (Water, Fulltile)"
|
||||
reagent_list = list(/datum/reagent/water = ONE_LIQUIDS_HEIGHT*LIQUID_FULLTILE_LEVEL_HEIGHT)
|
||||
|
||||
/obj/effect/spawner/ocean_curio
|
||||
name = "Ocean Curio Spawner"
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
for(var/t in turfs) //Go through all the turfs and generate them
|
||||
var/turf/gen_turf = t
|
||||
|
||||
if(istype(gen_turf, /turf/open/space/mirage) || istype(gen_turf, /turf/open/openspace/ocean))
|
||||
if(istype(gen_turf, /turf/open/openspace/ocean))
|
||||
continue
|
||||
|
||||
var/drift_x = (gen_turf.x + rand(-BIOME_RANDOM_SQUARE_DRIFT, BIOME_RANDOM_SQUARE_DRIFT)) / perlin_zoom
|
||||
@@ -85,15 +85,25 @@
|
||||
|
||||
/datum/map_generator/cave_generator/trench
|
||||
name = "Trench Generator"
|
||||
open_turf_types = list(/turf/open/floor/plating/ocean/rock/heavy = 1)
|
||||
closed_turf_types = list(/turf/closed/mineral/random/ocean = 1)
|
||||
weighted_open_turf_types = list(/turf/open/misc/ocean/rock/heavy = 1)
|
||||
weighted_closed_turf_types = list(/turf/closed/mineral/random/ocean = 1)
|
||||
|
||||
feature_spawn_list = null
|
||||
|
||||
mob_spawn_list = list(/mob/living/basic/carp = 1)
|
||||
weighted_mob_spawn_list = list(/mob/living/basic/carp = 1)
|
||||
mob_spawn_chance = 1
|
||||
///Note that this spawn list is also in the lavaland generator
|
||||
weighted_feature_spawn_list = list(
|
||||
/obj/structure/geyser/hollowwater = 10, \
|
||||
/obj/structure/geyser/plasma_oxide = 10, \
|
||||
/obj/structure/geyser/protozine = 10, \
|
||||
/obj/structure/geyser/random = 2, \
|
||||
/obj/structure/geyser/wittel = 10, \
|
||||
)
|
||||
|
||||
|
||||
flora_spawn_chance = 4
|
||||
flora_spawn_list = list(/obj/structure/flora/rock = 1, /obj/structure/flora/rock/pile = 1)
|
||||
weighted_flora_spawn_list = list(
|
||||
/obj/structure/flora/rock = 1, \
|
||||
/obj/structure/flora/rock/pile = 1, \
|
||||
)
|
||||
|
||||
#undef BIOME_RANDOM_SQUARE_DRIFT
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
name = "ocean"
|
||||
planetary_atmos = TRUE
|
||||
baseturfs = /turf/open/openspace/ocean
|
||||
var/replacement_turf = /turf/open/floor/plating/ocean
|
||||
var/replacement_turf = /turf/open/misc/ocean
|
||||
|
||||
/turf/open/openspace/ocean/Initialize(mapload)
|
||||
. = ..()
|
||||
@@ -10,16 +10,20 @@
|
||||
for(var/obj/structure/flora/plant in contents)
|
||||
qdel(plant)
|
||||
var/turf/T = GET_TURF_BELOW(src)
|
||||
if(T)
|
||||
if(T.turf_flags & NO_RUINS)
|
||||
ChangeTurf(replacement_turf, null, CHANGETURF_IGNORE_AIR)
|
||||
return
|
||||
if(!ismineralturf(T))
|
||||
return
|
||||
var/turf/closed/mineral/M = T
|
||||
M.mineralAmt = 0
|
||||
M.gets_drilled()
|
||||
baseturfs = /turf/open/openspace/ocean //This is to ensure that IF random turf generation produces a openturf, there won't be other turfs assigned other than openspace.
|
||||
//I wonder if I should error here
|
||||
if(!T)
|
||||
return
|
||||
if(T.turf_flags & NO_RUINS)
|
||||
var/turf/newturf = ChangeTurf(replacement_turf, null, CHANGETURF_IGNORE_AIR)
|
||||
if(!isopenspaceturf(newturf)) // only openspace turfs should be returning INITIALIZE_HINT_LATELOAD
|
||||
return INITIALIZE_HINT_NORMAL
|
||||
return
|
||||
if(!ismineralturf(T))
|
||||
return
|
||||
var/turf/closed/mineral/M = T
|
||||
M.mineralAmt = 0
|
||||
M.gets_drilled()
|
||||
baseturfs = /turf/open/openspace/ocean //This is to ensure that IF random turf generation produces a openturf, there won't be other turfs assigned other than openspace.
|
||||
|
||||
/turf/open/openspace/ocean/Initialize(mapload)
|
||||
. = ..()
|
||||
@@ -31,26 +35,36 @@
|
||||
var/obj/effect/abstract/liquid_turf/immutable/new_immmutable = SSliquids.get_immutable(/obj/effect/abstract/liquid_turf/immutable/ocean)
|
||||
new_immmutable.add_turf(src)
|
||||
|
||||
/turf/open/floor/plating/ocean/ironsand
|
||||
baseturfs = /turf/open/floor/plating/ocean/ironsand
|
||||
icon_state = "ironsand1"
|
||||
base_icon_state = "ironsand"
|
||||
rand_variants = 15
|
||||
rand_chance = 100
|
||||
/turf/open/misc/ironsand/ocean
|
||||
planetary_atmos = TRUE
|
||||
baseturfs = /turf/open/misc/ocean
|
||||
|
||||
/turf/open/floor/plating/ocean/rock
|
||||
/turf/open/misc/ironsand/ocean/Initialize(mapload)
|
||||
. = ..()
|
||||
if(liquids)
|
||||
if(liquids.immutable)
|
||||
liquids.remove_turf(src)
|
||||
else
|
||||
qdel(liquids, TRUE)
|
||||
var/obj/effect/abstract/liquid_turf/immutable/new_immmutable = SSliquids.get_immutable(/obj/effect/abstract/liquid_turf/immutable/ocean, src)
|
||||
new_immmutable.add_turf(src)
|
||||
|
||||
|
||||
/turf/open/misc/ocean/rock
|
||||
name = "rock"
|
||||
baseturfs = /turf/open/floor/plating/ocean/rock
|
||||
desc = "Polished over centuries of undersea weather conditions and a distinct lack of light."
|
||||
baseturfs = /turf/open/misc/ocean/rock
|
||||
icon = 'modular_skyrat/modules/liquids/icons/turf/seafloor.dmi'
|
||||
icon_state = "seafloor"
|
||||
base_icon_state = "seafloor"
|
||||
rand_variants = 0
|
||||
|
||||
/turf/open/floor/plating/ocean/rock/warm
|
||||
/turf/open/misc/ocean/rock/warm
|
||||
liquid_type = /obj/effect/abstract/liquid_turf/immutable/ocean/warm
|
||||
|
||||
/turf/open/floor/plating/ocean/rock/warm/fissure
|
||||
/turf/open/misc/ocean/rock/warm/fissure
|
||||
name = "fissure"
|
||||
desc = "A comfortable, warm tempature eminates from these - followed immediately after by toxic chemicals in liquid or gaseous forms; but warmth all the same!"
|
||||
icon = 'modular_skyrat/modules/liquids/icons/turf/fissure.dmi'
|
||||
icon_state = "fissure-0"
|
||||
base_icon_state = "fissure"
|
||||
@@ -60,20 +74,21 @@
|
||||
light_range = 3
|
||||
light_color = LIGHT_COLOR_LAVA
|
||||
|
||||
/turf/open/floor/plating/ocean/rock/medium
|
||||
/turf/open/misc/ocean/rock/medium
|
||||
icon_state = "seafloor_med"
|
||||
base_icon_state = "seafloor_med"
|
||||
baseturfs = /turf/open/floor/plating/ocean/rock/medium
|
||||
baseturfs = /turf/open/misc/ocean/rock/medium
|
||||
|
||||
/turf/open/floor/plating/ocean/rock/heavy
|
||||
/turf/open/misc/ocean/rock/heavy
|
||||
icon_state = "seafloor_heavy"
|
||||
base_icon_state = "seafloor_heavy"
|
||||
baseturfs = /turf/open/floor/plating/ocean/rock/heavy
|
||||
baseturfs = /turf/open/misc/ocean/rock/heavy
|
||||
|
||||
/turf/open/floor/plating/ocean
|
||||
/turf/open/misc/ocean
|
||||
gender = PLURAL
|
||||
name = "ocean sand"
|
||||
baseturfs = /turf/open/floor/plating/ocean
|
||||
desc = "If you can't escape sandstorms underwater, is anywhere safe?"
|
||||
baseturfs = /turf/open/misc/ocean
|
||||
icon = 'icons/turf/floors.dmi'
|
||||
icon_state = "asteroid"
|
||||
base_icon_state = "asteroid"
|
||||
@@ -86,24 +101,24 @@
|
||||
var/rand_chance = 30
|
||||
var/liquid_type = /obj/effect/abstract/liquid_turf/immutable/ocean
|
||||
|
||||
/turf/open/floor/plating/ocean/Initialize(mapload)
|
||||
/turf/open/misc/ocean/Initialize(mapload)
|
||||
. = ..()
|
||||
if(liquids)
|
||||
if(liquids.immutable)
|
||||
liquids.remove_turf(src)
|
||||
else
|
||||
qdel(liquids, TRUE)
|
||||
var/obj/effect/abstract/liquid_turf/immutable/new_immmutable = SSliquids.get_immutable(liquid_type)
|
||||
var/obj/effect/abstract/liquid_turf/immutable/new_immmutable = SSliquids.get_immutable(liquid_type, src)
|
||||
new_immmutable.add_turf(src)
|
||||
|
||||
if(rand_variants && prob(rand_chance))
|
||||
var/random = rand(1,rand_variants)
|
||||
icon_state = "[base_icon_state][random]"
|
||||
base_icon_state = "[base_icon_state][random]"
|
||||
icon_state = "[icon_state][random]"
|
||||
base_icon_state = "[icon_state][random]"
|
||||
|
||||
/turf/open/floor/plating/ocean_plating
|
||||
planetary_atmos = TRUE
|
||||
baseturfs = /turf/open/floor/plating/ocean_plating
|
||||
baseturfs = /turf/open/misc/ocean
|
||||
|
||||
/turf/open/floor/plating/ocean_plating/Initialize(mapload)
|
||||
. = ..()
|
||||
@@ -112,12 +127,12 @@
|
||||
liquids.remove_turf(src)
|
||||
else
|
||||
qdel(liquids, TRUE)
|
||||
var/obj/effect/abstract/liquid_turf/immutable/new_immmutable = SSliquids.get_immutable(/obj/effect/abstract/liquid_turf/immutable/ocean)
|
||||
var/obj/effect/abstract/liquid_turf/immutable/new_immmutable = SSliquids.get_immutable(/obj/effect/abstract/liquid_turf/immutable/ocean, src)
|
||||
new_immmutable.add_turf(src)
|
||||
|
||||
/turf/open/floor/iron/ocean
|
||||
planetary_atmos = TRUE
|
||||
baseturfs = /turf/open/floor/iron/ocean
|
||||
baseturfs = /turf/open/floor/plating/ocean_plating
|
||||
|
||||
/turf/open/floor/iron/ocean/Initialize(mapload)
|
||||
. = ..()
|
||||
@@ -126,36 +141,109 @@
|
||||
liquids.remove_turf(src)
|
||||
else
|
||||
qdel(liquids, TRUE)
|
||||
var/obj/effect/abstract/liquid_turf/immutable/new_immmutable = SSliquids.get_immutable(/obj/effect/abstract/liquid_turf/immutable/ocean)
|
||||
var/obj/effect/abstract/liquid_turf/immutable/new_immmutable = SSliquids.get_immutable(/obj/effect/abstract/liquid_turf/immutable/ocean, src)
|
||||
new_immmutable.add_turf(src)
|
||||
|
||||
/turf/open/floor/iron/solarpanel/ocean
|
||||
planetary_atmos = TRUE
|
||||
baseturfs = /turf/open/floor/plating/ocean_plating
|
||||
|
||||
/turf/open/floor/iron/solarpanel/ocean/Initialize(mapload)
|
||||
. = ..()
|
||||
if(liquids)
|
||||
if(liquids.immutable)
|
||||
liquids.remove_turf(src)
|
||||
else
|
||||
qdel(liquids, TRUE)
|
||||
var/obj/effect/abstract/liquid_turf/immutable/new_immmutable = SSliquids.get_immutable(/obj/effect/abstract/liquid_turf/immutable/ocean, src)
|
||||
new_immmutable.add_turf(src)
|
||||
|
||||
/turf/open/floor/engine/hull/reinforced/ocean
|
||||
initial_gas_mix = OPENTURF_DEFAULT_ATMOS
|
||||
temperature = T20C
|
||||
planetary_atmos = TRUE
|
||||
baseturfs = /turf/open/misc/ocean
|
||||
|
||||
/turf/open/floor/engine/hull/reinforced/ocean/Initialize(mapload)
|
||||
. = ..()
|
||||
if(liquids)
|
||||
if(liquids.immutable)
|
||||
liquids.remove_turf(src)
|
||||
else
|
||||
qdel(liquids, TRUE)
|
||||
var/obj/effect/abstract/liquid_turf/immutable/new_immmutable = SSliquids.get_immutable(/obj/effect/abstract/liquid_turf/immutable/ocean, src)
|
||||
new_immmutable.add_turf(src)
|
||||
|
||||
/turf/open/floor/glass/reinforced/ocean
|
||||
planetary_atmos = TRUE
|
||||
baseturfs = /turf/open/floor/plating/ocean_plating
|
||||
|
||||
/turf/open/floor/glass/reinforced/ocean/Initialize(mapload)
|
||||
. = ..()
|
||||
if(liquids)
|
||||
if(liquids.immutable)
|
||||
liquids.remove_turf(src)
|
||||
else
|
||||
qdel(liquids, TRUE)
|
||||
var/obj/effect/abstract/liquid_turf/immutable/new_immmutable = SSliquids.get_immutable(/obj/effect/abstract/liquid_turf/immutable/ocean, src)
|
||||
new_immmutable.add_turf(src)
|
||||
|
||||
/turf/open/floor/glass/plasma/ocean
|
||||
planetary_atmos = TRUE
|
||||
baseturfs = /turf/open/floor/plating/ocean_plating
|
||||
|
||||
/turf/open/floor/glass/plasma/ocean/Initialize(mapload)
|
||||
. = ..()
|
||||
if(liquids)
|
||||
if(liquids.immutable)
|
||||
liquids.remove_turf(src)
|
||||
else
|
||||
qdel(liquids, TRUE)
|
||||
var/obj/effect/abstract/liquid_turf/immutable/new_immmutable = SSliquids.get_immutable(/obj/effect/abstract/liquid_turf/immutable/ocean, src)
|
||||
new_immmutable.add_turf(src)
|
||||
|
||||
/turf/open/floor/glass/reinforced/plasma/ocean
|
||||
planetary_atmos = TRUE
|
||||
baseturfs = /turf/open/floor/plating/ocean_plating
|
||||
|
||||
/turf/open/floor/glass/reinforced/plasma/ocean/Initialize(mapload)
|
||||
. = ..()
|
||||
if(liquids)
|
||||
if(liquids.immutable)
|
||||
liquids.remove_turf(src)
|
||||
else
|
||||
qdel(liquids, TRUE)
|
||||
var/obj/effect/abstract/liquid_turf/immutable/new_immmutable = SSliquids.get_immutable(/obj/effect/abstract/liquid_turf/immutable/ocean, src)
|
||||
new_immmutable.add_turf(src)
|
||||
|
||||
/turf/closed/mineral/random/ocean
|
||||
baseturfs = /turf/open/floor/plating/ocean/rock/heavy
|
||||
turf_type = /turf/open/floor/plating/ocean/rock/heavy
|
||||
baseturfs = /turf/open/misc/ocean/rock/heavy
|
||||
turf_type = /turf/open/misc/ocean/rock/heavy
|
||||
color = "#58606b"
|
||||
|
||||
/turf/closed/mineral/random/high_chance/ocean
|
||||
baseturfs = /turf/open/floor/plating/ocean/rock/heavy
|
||||
turf_type = /turf/open/floor/plating/ocean/rock/heavy
|
||||
baseturfs = /turf/open/misc/ocean/rock/heavy
|
||||
turf_type = /turf/open/misc/ocean/rock/heavy
|
||||
color = "#58606b"
|
||||
|
||||
/turf/closed/mineral/random/low_chance/ocean
|
||||
baseturfs = /turf/open/floor/plating/ocean/rock/heavy
|
||||
turf_type = /turf/open/floor/plating/ocean/rock/heavy
|
||||
baseturfs = /turf/open/misc/ocean/rock/heavy
|
||||
turf_type = /turf/open/misc/ocean/rock/heavy
|
||||
color = "#58606b"
|
||||
|
||||
/turf/closed/mineral/random/stationside/ocean
|
||||
baseturfs = /turf/open/floor/plating/ocean/rock/heavy
|
||||
turf_type = /turf/open/floor/plating/ocean/rock/heavy
|
||||
baseturfs = /turf/open/misc/ocean/rock/heavy
|
||||
turf_type = /turf/open/misc/ocean/rock/heavy
|
||||
color = "#58606b"
|
||||
|
||||
/obj/effect/abstract/liquid_turf/immutable/canal
|
||||
starting_mixture = list(/datum/reagent/water = 100)
|
||||
|
||||
/turf/open/floor/plating/canal
|
||||
/turf/open/misc/canal
|
||||
gender = PLURAL
|
||||
name = "canal"
|
||||
baseturfs = /turf/open/floor/plating/canal
|
||||
desc = "A section of the earth given way to form a natural aqueduct."
|
||||
baseturfs = /turf/open/misc/canal
|
||||
icon = 'icons/turf/floors.dmi'
|
||||
icon_state = "asteroid"
|
||||
base_icon_state = "asteroid"
|
||||
@@ -166,20 +254,21 @@
|
||||
liquid_height = -30
|
||||
turf_height = -30
|
||||
|
||||
/turf/open/floor/plating/canal/Initialize(mapload)
|
||||
/turf/open/misc/canal/Initialize(mapload)
|
||||
. = ..()
|
||||
if(liquids)
|
||||
if(liquids.immutable)
|
||||
liquids.remove_turf(src)
|
||||
else
|
||||
qdel(liquids, TRUE)
|
||||
var/obj/effect/abstract/liquid_turf/immutable/new_immmutable = SSliquids.get_immutable(/obj/effect/abstract/liquid_turf/immutable/canal)
|
||||
var/obj/effect/abstract/liquid_turf/immutable/new_immmutable = SSliquids.get_immutable(/obj/effect/abstract/liquid_turf/immutable/canal, src)
|
||||
new_immmutable.add_turf(src)
|
||||
|
||||
/turf/open/floor/plating/canal_mutable
|
||||
/turf/open/misc/canal_mutable
|
||||
gender = PLURAL
|
||||
name = "canal"
|
||||
baseturfs = /turf/open/floor/plating/canal_mutable
|
||||
desc = "A section of the earth given way to form a natural aqueduct."
|
||||
baseturfs = /turf/open/misc/canal_mutable
|
||||
icon = 'icons/turf/floors.dmi'
|
||||
icon_state = "asteroid"
|
||||
base_icon_state = "asteroid"
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 12 KiB |
Reference in New Issue
Block a user