diff --git a/code/__DEFINES/~skyrat_defines/signals.dm b/code/__DEFINES/~skyrat_defines/signals.dm index bb3e678bbf9..800ccfd8601 100644 --- a/code/__DEFINES/~skyrat_defines/signals.dm +++ b/code/__DEFINES/~skyrat_defines/signals.dm @@ -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" diff --git a/code/modules/unit_tests/turf_icons.dm b/code/modules/unit_tests/turf_icons.dm index e7b7d722ffb..f9d8296419e 100644 --- a/code/modules/unit_tests/turf_icons.dm +++ b/code/modules/unit_tests/turf_icons.dm @@ -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 diff --git a/modular_skyrat/modules/liquids/code/liquid_systems/liquid_controller.dm b/modular_skyrat/modules/liquids/code/liquid_systems/liquid_controller.dm index b53cbc3bf04..14a0173c723 100644 --- a/modular_skyrat/modules/liquids/code/liquid_systems/liquid_controller.dm +++ b/modular_skyrat/modules/liquids/code/liquid_systems/liquid_controller.dm @@ -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) diff --git a/modular_skyrat/modules/liquids/code/liquid_systems/liquid_effect.dm b/modular_skyrat/modules/liquids/code/liquid_systems/liquid_effect.dm index 443fa8bd35d..94680daf3d3 100644 --- a/modular_skyrat/modules/liquids/code/liquid_systems/liquid_effect.dm +++ b/modular_skyrat/modules/liquids/code/liquid_systems/liquid_effect.dm @@ -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() - - diff --git a/modular_skyrat/modules/liquids/code/liquid_systems/liquid_plumbers.dm b/modular_skyrat/modules/liquids/code/liquid_systems/liquid_plumbers.dm index dd764e2c564..c04676a7e37 100644 --- a/modular_skyrat/modules/liquids/code/liquid_systems/liquid_plumbers.dm +++ b/modular_skyrat/modules/liquids/code/liquid_systems/liquid_plumbers.dm @@ -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 + . = ..() diff --git a/modular_skyrat/modules/liquids/code/liquid_systems/liquid_turf.dm b/modular_skyrat/modules/liquids/code/liquid_systems/liquid_turf.dm index b23574e40ce..91fd436b217 100644 --- a/modular_skyrat/modules/liquids/code/liquid_systems/liquid_turf.dm +++ b/modular_skyrat/modules/liquids/code/liquid_systems/liquid_turf.dm @@ -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) diff --git a/modular_skyrat/modules/liquids/code/ocean_areas.dm b/modular_skyrat/modules/liquids/code/ocean_areas.dm index 47e5289c71d..ce9a64463c5 100644 --- a/modular_skyrat/modules/liquids/code/ocean_areas.dm +++ b/modular_skyrat/modules/liquids/code/ocean_areas.dm @@ -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 diff --git a/modular_skyrat/modules/liquids/code/ocean_biomes.dm b/modular_skyrat/modules/liquids/code/ocean_biomes.dm index 28e1c47d8f8..d49698f6caf 100644 --- a/modular_skyrat/modules/liquids/code/ocean_biomes.dm +++ b/modular_skyrat/modules/liquids/code/ocean_biomes.dm @@ -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 diff --git a/modular_skyrat/modules/liquids/code/ocean_flora.dm b/modular_skyrat/modules/liquids/code/ocean_flora.dm index a3f93496cfd..3cd2af2fa0a 100644 --- a/modular_skyrat/modules/liquids/code/ocean_flora.dm +++ b/modular_skyrat/modules/liquids/code/ocean_flora.dm @@ -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" diff --git a/modular_skyrat/modules/liquids/code/ocean_mapgen.dm b/modular_skyrat/modules/liquids/code/ocean_mapgen.dm index aaaef881cce..4f72a4a1b5a 100644 --- a/modular_skyrat/modules/liquids/code/ocean_mapgen.dm +++ b/modular_skyrat/modules/liquids/code/ocean_mapgen.dm @@ -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 diff --git a/modular_skyrat/modules/liquids/code/ocean_turfs.dm b/modular_skyrat/modules/liquids/code/ocean_turfs.dm index 356cda189a1..e0b94156f50 100644 --- a/modular_skyrat/modules/liquids/code/ocean_turfs.dm +++ b/modular_skyrat/modules/liquids/code/ocean_turfs.dm @@ -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" diff --git a/modular_skyrat/modules/liquids/icons/obj/effects/liquid.dmi b/modular_skyrat/modules/liquids/icons/obj/effects/liquid.dmi index 35ae915a4bf..6babb35b68e 100644 Binary files a/modular_skyrat/modules/liquids/icons/obj/effects/liquid.dmi and b/modular_skyrat/modules/liquids/icons/obj/effects/liquid.dmi differ