diff --git a/code/game/objects/items/holosign_creator.dm b/code/game/objects/items/holosign_creator.dm index eb58089293..e92c9b2d2e 100644 --- a/code/game/objects/items/holosign_creator.dm +++ b/code/game/objects/items/holosign_creator.dm @@ -78,12 +78,20 @@ /obj/item/holosign_creator/atmos name = "ATMOS holofan projector" - desc = "A holographic projector that creates holographic barriers that prevent changes in atmosphere conditions." + desc = "A holographic projector that creates holographic fans that prevent changes in atmosphere conditions. Somehow." icon_state = "signmaker_atmos" holosign_type = /obj/structure/holosign/barrier/atmos creation_time = 0 max_signs = 3 +/obj/item/holosign_creator/firelock + name = "ATMOS holofirelock projector" + desc = "A holographic projector that creates holographic barriers that prevent changes in temperature conditions." + icon_state = "signmaker_engi" + holosign_type = /obj/structure/holosign/barrier/firelock + creation_time = 0 + max_signs = 3 + /obj/item/holosign_creator/medical name = "\improper PENLITE barrier projector" desc = "A holographic projector that creates PENLITE holobarriers. Useful during quarantines since they halt those with malicious diseases." diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm index 579b1444a5..c26dc78e52 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm @@ -91,6 +91,7 @@ new /obj/item/tank/internals/emergency_oxygen/engi(src) new /obj/item/analyzer(src) new /obj/item/holosign_creator/atmos(src) + new /obj/item/holosign_creator/firelock(src) new /obj/item/watertank/atmos(src) new /obj/item/clothing/suit/fire/atmos(src) new /obj/item/clothing/head/hardhat/atmos(src) diff --git a/code/game/objects/structures/holosign.dm b/code/game/objects/structures/holosign.dm index 1f007b6993..69ad9f1567 100644 --- a/code/game/objects/structures/holosign.dm +++ b/code/game/objects/structures/holosign.dm @@ -69,9 +69,9 @@ rad_insulation = RAD_LIGHT_INSULATION /obj/structure/holosign/barrier/atmos - name = "holo firelock" - desc = "A holographic barrier resembling a firelock. Though it does not prevent solid objects from passing through, gas is kept out." - icon_state = "holo_firelock" + name = "holo fan" + desc = "A holographic barrier resembling a tiny fan. Though it does not prevent solid objects from passing through, gas is kept out. Somehow." + icon_state = "holo_fan" density = FALSE anchored = TRUE CanAtmosPass = ATMOS_PASS_NO @@ -81,6 +81,18 @@ . = ..() air_update_turf(TRUE) +/obj/structure/holosign/barrier/firelock + name = "holo firelock" + desc = "A holographic barrier resembling a firelock. Though it does not prevent solid objects or gas from passing through, temperature changes are kept out." + icon_state = "holo_firelock" + density = FALSE + anchored = TRUE + alpha = 150 + resistance_flags = FIRE_PROOF + +/obj/structure/holosign/barrier/firelock/blocksTemperature() + return TRUE + /obj/structure/holosign/barrier/cyborg name = "Energy Field" desc = "A fragile energy field that blocks movement. Excels at blocking lethal projectiles." diff --git a/code/modules/atmospherics/environmental/LINDA_turf_tile.dm b/code/modules/atmospherics/environmental/LINDA_turf_tile.dm index 196bf70fdc..389f1a69f3 100644 --- a/code/modules/atmospherics/environmental/LINDA_turf_tile.dm +++ b/code/modules/atmospherics/environmental/LINDA_turf_tile.dm @@ -358,6 +358,9 @@ SSair.excited_groups -= src ////////////////////////SUPERCONDUCTIVITY///////////////////////////// +/atom/movable/proc/blocksTemperature() + return FALSE + /turf/proc/conductivity_directions() if(archived_cycle < SSair.times_fired) archive() @@ -372,6 +375,9 @@ . |= direction /turf/proc/neighbor_conduct_with_src(turf/open/other) + for (var/atom/movable/G in src) + if (G.blocksTemperature()) + return if(!other.blocks_air) //Open but neighbor is solid other.temperature_share_open_to_solid(src) else //Both tiles are solid @@ -382,7 +388,9 @@ if(blocks_air) ..() return - + for (var/atom/movable/G in src) + if (G.blocksTemperature()) + return if(!other.blocks_air) //Both tiles are open var/turf/open/T = other T.air.temperature_share(air, WINDOW_HEAT_TRANSFER_COEFFICIENT) @@ -401,10 +409,8 @@ if(!neighbor.thermal_conductivity) continue - if(neighbor.archived_cycle < SSair.times_fired) neighbor.archive() - neighbor.neighbor_conduct_with_src(src) neighbor.consider_superconductivity() diff --git a/code/modules/research/designs/misc_designs.dm b/code/modules/research/designs/misc_designs.dm index 5f7648b245..302ac345b7 100644 --- a/code/modules/research/designs/misc_designs.dm +++ b/code/modules/research/designs/misc_designs.dm @@ -364,6 +364,16 @@ category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING +/datum/design/holosignfirelock + name = "ATMOS Holofirelock Projector" + desc = "A holographic projector that creates holographic barriers that prevent changes in temperature conditions." + id = "holosignfirelock" + build_type = PROTOLATHE + materials = list(MAT_METAL = 5000, MAT_GLASS = 1000, MAT_GOLD = 1000, MAT_SILVER = 1000) + build_path = /obj/item/holosign_creator/firelock + category = list("Equipment") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING + /datum/design/forcefield_projector name = "Forcefield Projector" desc = "A device which can project temporary forcefields to seal off an area." diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index a44495fccb..bb6d233145 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -430,7 +430,7 @@ display_name = "Electromagnetic Theory" description = "Study into usage of frequencies in the electromagnetic spectrum." prereq_ids = list("base") - design_ids = list("holosign", "holosignsec", "holosignengi", "holosignatmos", "inducer", "tray_goggles", "holopad") + design_ids = list("holosign", "holosignsec", "holosignengi", "holosignatmos", "holosignfirelock", "inducer", "tray_goggles", "holopad") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000