mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-15 20:22:07 +00:00
* [MDB IGNORE] You can have your cake and eat it too. Remake of #66406 (Splitting up areas.dmi + code related stuff) (#66726) Areas.dmi right now houses all of our mapped turfs icons (which is roughly 400 icons). Not an issue, but it's incredibly large and clunky to navigate right now. This isn't an issue for the average coder and/or player code diving, but it is for mappers wanting to add new turfs. Currently, the file has some organization, but its still an overall mess. This PR aims to slice the behemoth with multiple .dmi files corresponding to specific areas. I also plan to repath /area/* -> /area/station/* for station turf only. This is to clean it up, as most other turfs follow this format (that being /area/turf_zone/*). I'm also writing an update paths file as I go along. * fixbatch 1 * fug Co-authored-by: Jolly <70232195+Jolly-66@users.noreply.github.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.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/area/areas_misc.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].")
|
|
|