diff --git a/code/game/objects/items/blueprints.dm b/code/game/objects/items/blueprints.dm index 40d2f968c5..ce74cc049f 100644 --- a/code/game/objects/items/blueprints.dm +++ b/code/game/objects/items/blueprints.dm @@ -33,6 +33,12 @@ // For the color overlays var/list/areaColor_turfs = list() + // Easy configuring of what we're allowed to do where or whatnot + var/can_create_areas_in = AREA_SPACE // Must be standing in space to create + var/can_create_areas_into = AREA_SPACE // New areas will only overwrite space area turfs. + var/can_expand_areas_in = AREA_STATION // Must be standing in station to expand + var/can_expand_areas_into = AREA_SPACE // Can expand station areas only into space. + var/can_rename_areas_in = AREA_STATION // Only station areas can be reanamed /obj/item/blueprints/attack_self(mob/M as mob) if (!istype(M,/mob/living/carbon/human)) @@ -49,17 +55,23 @@ return switch(href_list["action"]) if ("create_area") - if (get_area_type()!=AREA_SPACE) + if (!(get_area_type() & can_create_areas_in)) usr << "You can't make a new area here." interact() return create_area() if ("edit_area") - if (get_area_type()!=AREA_STATION) + if (!(get_area_type() & can_rename_areas_in)) usr << "You can't rename this area." interact() return edit_area() + if ("expand_area") + if (!(get_area_type() & can_expand_areas_in)) + usr << "You can't expand this area." + interact() + return + expand_area() /obj/item/blueprints/interact() var/area/A = get_area() @@ -80,9 +92,11 @@ return // Shouldn ever get here, just sanity check // Offer links for what user is allowed to do based on current area - if(curAreaType == AREA_SPACE) + if(curAreaType & can_create_areas_in) text += "
You can Mark this place as new area.
" - if(curAreaType == AREA_STATION) + if(curAreaType & can_expand_areas_in) + text += "You can expand the area.
" + if(curAreaType & can_rename_areas_in) text += "You can rename the area.
" text += "