/turf/open/openspace name = "open space" desc = "Watch your step!" icon_state = "grey" baseturfs = /turf/open/openspace CanAtmosPassVertical = ATMOS_PASS_YES //mouse_opacity = MOUSE_OPACITY_TRANSPARENT var/can_cover_up = TRUE var/can_build_on = TRUE /turf/open/openspace/debug/update_multiz() ..() return TRUE /turf/open/openspace/Initialize() // handle plane and layer here so that they don't cover other obs/turfs in Dream Maker . = ..() plane = FLOOR_OPENSPACE_PLANE layer = OPENSPACE_LAYER return INITIALIZE_HINT_LATELOAD /turf/open/openspace/LateInitialize() update_multiz(TRUE, TRUE) /turf/open/openspace/Destroy() vis_contents.len = 0 return ..() /turf/open/openspace/update_multiz(prune_on_fail = FALSE, init = FALSE) . = ..() var/turf/T = below() if(!T) vis_contents.len = 0 if(prune_on_fail) ChangeTurf(/turf/open/floor/plating) return FALSE if(init) vis_contents += T return TRUE /turf/open/openspace/multiz_turf_del(turf/T, dir) if(dir != DOWN) return update_multiz() /turf/open/openspace/multiz_turf_new(turf/T, dir) if(dir != DOWN) return update_multiz() /turf/open/openspace/zAirIn() return TRUE /turf/open/openspace/zAirOut() return TRUE /turf/open/openspace/zPassIn(atom/movable/A, direction, turf/source) return TRUE /turf/open/openspace/zPassOut(atom/movable/A, direction, turf/destination) if(A.anchored) return FALSE for(var/obj/O in contents) if(O.obj_flags & BLOCK_Z_FALL) return FALSE return TRUE /turf/open/openspace/proc/CanCoverUp() return can_cover_up /turf/open/openspace/proc/CanBuildHere() return can_build_on /turf/open/openspace/attackby(obj/item/C, mob/user, params) ..() if(!CanBuildHere()) return if(istype(C, /obj/item/stack/rods)) var/obj/item/stack/rods/R = C var/obj/structure/lattice/L = locate(/obj/structure/lattice, src) var/obj/structure/lattice/catwalk/W = locate(/obj/structure/lattice/catwalk, src) if(W) to_chat(user, "There is already a catwalk here!") return if(L) if(R.use(1)) to_chat(user, "You construct a catwalk.") playsound(src, 'sound/weapons/genhit.ogg', 50, 1) new/obj/structure/lattice/catwalk(src) else to_chat(user, "You need two rods to build a catwalk!") return if(R.use(1)) to_chat(user, "You construct a lattice.") playsound(src, 'sound/weapons/genhit.ogg', 50, 1) ReplaceWithLattice() else to_chat(user, "You need one rod to build a lattice.") return if(istype(C, /obj/item/stack/tile/plasteel)) if(!CanCoverUp()) return var/obj/structure/lattice/L = locate(/obj/structure/lattice, src) if(L) var/obj/item/stack/tile/plasteel/S = C if(S.use(1)) qdel(L) playsound(src, 'sound/weapons/genhit.ogg', 50, 1) to_chat(user, "You build a floor.") PlaceOnTop(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR) else to_chat(user, "You need one floor tile to build a floor!") else to_chat(user, "The plating is going to need some support! Place metal rods first.") /turf/open/openspace/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd) if(!CanBuildHere()) return FALSE switch(the_rcd.mode) if(RCD_FLOORWALL) var/obj/structure/lattice/L = locate(/obj/structure/lattice, src) if(L) return list("mode" = RCD_FLOORWALL, "delay" = 0, "cost" = 1) else return list("mode" = RCD_FLOORWALL, "delay" = 0, "cost" = 3) return FALSE /turf/open/openspace/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, passed_mode) switch(passed_mode) if(RCD_FLOORWALL) to_chat(user, "You build a floor.") PlaceOnTop(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR) return TRUE return FALSE