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:
BluBerry016
2024-07-10 18:45:10 -04:00
committed by GitHub
parent 6e105de3a1
commit d53d0d799c
12 changed files with 234 additions and 82 deletions
@@ -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"
+1 -1
View File
@@ -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