/datum/buildmode_mode/advanced key = "advanced" var/obj_holder = null // FIXME: add logic which adds a button displaying the icon // of the currently selected path /datum/buildmode_mode/advanced/show_help(mob/user) to_chat(user, SPAN_NOTICE("***********************************************************")) to_chat(user, SPAN_NOTICE("Right Mouse Button on buildmode button = Set object type")) to_chat(user, "Left Mouse Button + alt on turf/obj = Copy object type") to_chat(user, SPAN_NOTICE("Left Mouse Button on turf/obj = Place objects")) to_chat(user, SPAN_NOTICE("Right Mouse Button = Delete objects")) to_chat(user, SPAN_NOTICE("Use the button in the upper left corner to")) to_chat(user, SPAN_NOTICE("change the direction of built objects.")) to_chat(user, SPAN_NOTICE("***********************************************************")) /datum/buildmode_mode/advanced/change_settings(mob/user) var/target_path = tgui_input_text(user, "Enter typepath:" , "Typepath", "/obj/structure/closet") obj_holder = text2path(target_path) if(!ispath(obj_holder)) obj_holder = pick_closest_path(target_path) if(!obj_holder) tgui_alert(user, "No path was selected") return else if(ispath(obj_holder, /area)) obj_holder = null tgui_alert(user,"That path is not allowed") return /datum/buildmode_mode/advanced/handle_click(user, params, obj/object) var/list/pa = params2list(params) var/left_click = pa.Find("left") var/right_click = pa.Find("right") var/alt_click = pa.Find("alt") if(left_click && alt_click) if(isturf(object) || isobj(object) || ismob(object)) obj_holder = object.type to_chat(user, SPAN_NOTICE("[initial(object.name)] ([object.type]) selected.")) else to_chat(user, SPAN_NOTICE("[initial(object.name)] is not a turf, object, or mob! Please select again.")) else if(left_click) if(ispath(obj_holder,/turf)) var/turf/T = get_turf(object) log_admin("Build Mode: [key_name(user)] modified [T] ([T.x],[T.y],[T.z]) to [obj_holder]") T.ChangeTurf(obj_holder) else if(!isnull(obj_holder)) //we only want to set the direction of mobs or objects, not turfs or areas. var/atom/movable/A = new obj_holder(get_turf(object)) A.admin_spawned = TRUE if(istype(A)) A.setDir(BM.build_dir) log_admin("Build Mode: [key_name(user)] modified [A]'s ([A.x],[A.y],[A.z]) dir to [BM.build_dir]") else to_chat(user, SPAN_WARNING("Select object type first.")) else if(right_click) if(isobj(object)) log_admin("Build Mode: [key_name(user)] deleted [object] at ([object.x],[object.y],[object.z])") qdel(object)