mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-29 19:11:51 +00:00
* Refactors most spans into span procs * AA * a * AAAAAAAAAAAAAAAAAAAAAA * Update species.dm Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com> Co-authored-by: Gandalf <jzo123@hotmail.com>
77 lines
2.8 KiB
Plaintext
77 lines
2.8 KiB
Plaintext
/datum/buildmode_mode/area_edit
|
|
key = "areaedit"
|
|
use_corner_selection = TRUE
|
|
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/buildmode/BM)
|
|
BM.holder.images += areaimage
|
|
|
|
/datum/buildmode_mode/area_edit/exit_mode(datum/buildmode/BM)
|
|
areaimage.loc = null // de-color the area
|
|
BM.holder.images -= areaimage
|
|
return ..()
|
|
|
|
/datum/buildmode_mode/area_edit/Destroy()
|
|
QDEL_NULL(areaimage)
|
|
storedarea = null
|
|
return ..()
|
|
|
|
/datum/buildmode_mode/area_edit/show_help(client/c)
|
|
to_chat(c, span_notice("***********************************************************"))
|
|
to_chat(c, span_notice("Left Mouse Button on obj/turf/mob = Select corner"))
|
|
to_chat(c, "<span class='notice'>Left Mouse Button + Alt on turf/obj/mob = Paint area/span>")
|
|
to_chat(c, span_notice("Right Mouse Button on obj/turf/mob = Select area to paint"))
|
|
to_chat(c, span_notice("Right Mouse Button on buildmode button = Create new area"))
|
|
to_chat(c, span_notice("***********************************************************"))
|
|
|
|
/datum/buildmode_mode/area_edit/change_settings(client/c)
|
|
var/target_path = input(c, "Enter typepath:", "Typepath", "/area")
|
|
var/areatype = text2path(target_path)
|
|
if(ispath(areatype,/area))
|
|
var/areaname = input(c, "Enter area name:", "Area name", "Area")
|
|
if(!areaname || !length(areaname))
|
|
return
|
|
storedarea = new areatype
|
|
storedarea.power_equip = 0
|
|
storedarea.power_light = 0
|
|
storedarea.power_environ = 0
|
|
storedarea.always_unpowered = 0
|
|
storedarea.name = areaname
|
|
areaimage.loc = storedarea // color our area
|
|
|
|
/datum/buildmode_mode/area_edit/handle_click(client/c, params, object)
|
|
var/list/modifiers = params2list(params)
|
|
|
|
if(LAZYACCESS(modifiers, LEFT_CLICK))
|
|
if(!storedarea)
|
|
to_chat(c, span_warning("Configure or select the area you want to paint first!"))
|
|
return
|
|
if(LAZYACCESS(modifiers, ALT_CLICK))
|
|
var/turf/T = get_turf(object)
|
|
if(get_area(T) != storedarea)
|
|
log_admin("Build Mode: [key_name(c)] added [AREACOORD(T)] to [storedarea]")
|
|
storedarea.contents.Add(T)
|
|
return
|
|
return ..()
|
|
else if(LAZYACCESS(modifiers, RIGHT_CLICK))
|
|
var/turf/T = get_turf(object)
|
|
storedarea = get_area(T)
|
|
areaimage.loc = storedarea // color our area
|
|
|
|
/datum/buildmode_mode/area_edit/handle_selected_area(client/c, params)
|
|
var/list/modifiers = params2list(params)
|
|
|
|
if(LAZYACCESS(modifiers, LEFT_CLICK))
|
|
var/choice = alert("Are you sure you want to fill area?", "Area Fill Confirmation", "Yes", "No")
|
|
if(choice != "Yes")
|
|
return
|
|
for(var/turf/T in block(get_turf(cornerA),get_turf(cornerB)))
|
|
storedarea.contents.Add(T)
|
|
log_admin("Build Mode: [key_name(c)] set the area of the region from [AREACOORD(cornerA)] through [AREACOORD(cornerB)] to [storedarea].")
|
|
|