/datum/buildmode_mode/area_edit
key = "areaedit"
var/area/storedarea
var/image/areaimage
/datum/buildmode_mode/area_edit/New()
areaimage = image('icons/turf/areas.dmi', null, "yellow")
..()
/datum/buildmode_mode/area_edit/enter_mode(datum/click_intercept/buildmode/BM)
BM.holder.images += areaimage
/datum/buildmode_mode/area_edit/exit_mode(datum/click_intercept/buildmode/BM)
areaimage.loc = null // de-color the area
BM.holder.images -= areaimage
return ..()
/datum/buildmode_mode/area_edit/Destroy()
QDEL_NULL(areaimage)
return ..()
/datum/buildmode_mode/area_edit/show_help(mob/user)
to_chat(user, "***********************************************************")
to_chat(user, "Left Mouse Button on obj/turf/mob = Paint area")
to_chat(user, "Right Mouse Button on obj/turf/mob = Select area to paint")
to_chat(user, "Right Mouse Button on buildmode button = Create new area")
to_chat(user, "***********************************************************")
/datum/buildmode_mode/area_edit/change_settings(mob/user)
var/target_path = input(user,"Enter typepath:", "Typepath", "/area")
var/areatype = text2path(target_path)
if(ispath(areatype,/area))
var/areaname = input(user,"Enter area name:", "Area name", "Area")
if(!areaname || !length(areaname))
return
storedarea = new areatype
storedarea.powernet.equipment_powered = FALSE
storedarea.powernet.lighting_powered = FALSE
storedarea.powernet.environment_powered = FALSE
storedarea.always_unpowered = FALSE
storedarea.name = areaname
areaimage.loc = storedarea // color our area
/datum/buildmode_mode/area_edit/handle_click(user, params, object)
var/list/pa = params2list(params)
var/left_click = pa.Find("left")
var/right_click = pa.Find("right")
if(left_click)
if(!storedarea)
to_chat(user, "Configure or select the area you want to paint first!")
return
var/turf/T = get_turf(object)
if(get_area(T) != storedarea)
storedarea.contents.Add(T)
else if(right_click)
var/turf/T = get_turf(object)
storedarea = get_area(T)
areaimage.loc = storedarea // color our area