mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 10:21:11 +00:00
- Admin who sinned renamed to Badmin - Admin observer renamed to Moderator (the rank won't be used anyway) - Punnished Admin renamed to Admin observer (as i sorta switched these two around by accident) git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1322 316c924e-a436-60f5-8080-3fe189b3f50e
273 lines
9.1 KiB
Plaintext
273 lines
9.1 KiB
Plaintext
/proc/togglebuildmode(mob/M as mob in world)
|
|
set name = "Toggle Build Mode"
|
|
set category = "Special Verbs"
|
|
if(M.client)
|
|
if(M.client.buildmode)
|
|
log_admin("[key_name(usr)] has left build mode.")
|
|
M.client.buildmode = 0
|
|
M.client.show_popup_menus = 1
|
|
for(var/obj/buildholder/H)
|
|
if(H.cl == M.client)
|
|
del(H)
|
|
else
|
|
log_admin("[key_name(usr)] has entered build mode.")
|
|
M.client.buildmode = 1
|
|
M.client.show_popup_menus = 0
|
|
|
|
var/obj/buildholder/H = new/obj/buildholder()
|
|
var/obj/builddir/A = new/obj/builddir(H)
|
|
A.master = H
|
|
var/obj/buildhelp/B = new/obj/buildhelp(H)
|
|
B.master = H
|
|
var/obj/buildmode/C = new/obj/buildmode(H)
|
|
C.master = H
|
|
var/obj/buildquit/D = new/obj/buildquit(H)
|
|
D.master = H
|
|
|
|
H.builddir = A
|
|
H.buildhelp = B
|
|
H.buildmode = C
|
|
H.buildquit = D
|
|
M.client.screen += A
|
|
M.client.screen += B
|
|
M.client.screen += C
|
|
M.client.screen += D
|
|
H.cl = M.client
|
|
|
|
/obj/builddir
|
|
density = 1
|
|
anchored = 1
|
|
layer = 20
|
|
dir = NORTH
|
|
icon = 'buildmode.dmi'
|
|
icon_state = "build"
|
|
screen_loc = "NORTH,WEST"
|
|
var/obj/buildholder/master = null
|
|
/obj/buildhelp
|
|
density = 1
|
|
anchored = 1
|
|
layer = 20
|
|
dir = NORTH
|
|
icon = 'buildmode.dmi'
|
|
icon_state = "buildhelp"
|
|
screen_loc = "NORTH,WEST+1"
|
|
var/obj/buildholder/master = null
|
|
/obj/buildmode
|
|
density = 1
|
|
anchored = 1
|
|
layer = 20
|
|
dir = NORTH
|
|
icon = 'buildmode.dmi'
|
|
icon_state = "buildmode1"
|
|
screen_loc = "NORTH,WEST+2"
|
|
var/obj/buildholder/master = null
|
|
var/varholder = "name"
|
|
var/valueholder = "derp"
|
|
var/objholder = "/obj/closet"
|
|
/obj/buildquit
|
|
density = 1
|
|
anchored = 1
|
|
layer = 20
|
|
dir = NORTH
|
|
icon = 'buildmode.dmi'
|
|
icon_state = "buildquit"
|
|
screen_loc = "NORTH,WEST+3"
|
|
var/obj/buildholder/master = null
|
|
|
|
/obj/buildquit/Click()
|
|
togglebuildmode(master.cl.mob)
|
|
|
|
/obj/buildholder
|
|
density = 0
|
|
anchored = 1
|
|
var/client/cl = null
|
|
var/obj/builddir/builddir = null
|
|
var/obj/buildhelp/buildhelp = null
|
|
var/obj/buildmode/buildmode = null
|
|
var/obj/buildquit/buildquit = null
|
|
|
|
/obj/builddir/Click()
|
|
switch(dir)
|
|
if(NORTH)
|
|
dir = EAST
|
|
if(EAST)
|
|
dir = SOUTH
|
|
if(SOUTH)
|
|
dir = WEST
|
|
if(WEST)
|
|
dir = NORTHWEST
|
|
if(NORTHWEST)
|
|
dir = NORTH
|
|
|
|
/obj/buildhelp/Click()
|
|
switch(master.cl.buildmode)
|
|
if(1)
|
|
usr << "\blue ***********************************************************"
|
|
usr << "\blue Left Mouse Button = Construct / Upgrade"
|
|
usr << "\blue Right Mouse Button = Deconstruct / Delete / Downgrade"
|
|
usr << "\blue Left Mouse Button + ctrl = R-Window"
|
|
usr << "\blue Left Mouse Button + alt = Airlock"
|
|
usr << ""
|
|
usr << "\blue Use the button in the upper left corner to"
|
|
usr << "\blue change the direction of built objects."
|
|
usr << "\blue ***********************************************************"
|
|
if(2)
|
|
usr << "\blue ***********************************************************"
|
|
usr << "\blue Right Mouse Button on buildmode button = Set object type"
|
|
usr << "\blue Left Mouse Button on turf/obj = Place objects"
|
|
usr << "\blue Right Mouse Button = Delete objects"
|
|
usr << ""
|
|
usr << "\blue Use the button in the upper left corner to"
|
|
usr << "\blue change the direction of built objects."
|
|
usr << "\blue ***********************************************************"
|
|
if(3)
|
|
usr << "\blue ***********************************************************"
|
|
usr << "\blue Right Mouse Button on buildmode button = Select var(type) & value"
|
|
usr << "\blue Left Mouse Button on turf/obj/mob = Set var(type) & value"
|
|
usr << "\blue Right Mouse Button on turf/obj/mob = Reset var's value"
|
|
usr << "\blue ***********************************************************"
|
|
|
|
/obj/buildmode/Click(location, control, params)
|
|
var/list/pa = params2list(params)
|
|
|
|
if(pa.Find("left"))
|
|
switch(master.cl.buildmode)
|
|
if(1)
|
|
master.cl.buildmode = 2
|
|
src.icon_state = "buildmode2"
|
|
if(2)
|
|
master.cl.buildmode = 3
|
|
src.icon_state = "buildmode3"
|
|
if(3)
|
|
master.cl.buildmode = 1
|
|
src.icon_state = "buildmode1"
|
|
else if(pa.Find("right"))
|
|
switch(master.cl.buildmode)
|
|
if(1)
|
|
return
|
|
if(2)
|
|
objholder = input(usr,"Enter typepath:" ,"Typepath","/obj/closet")
|
|
var/list/removed_paths = list("/obj/bhole")
|
|
if(objholder in removed_paths)
|
|
alert("That path is not allowed.")
|
|
objholder = "/obj/closet"
|
|
else if (dd_hasprefix(objholder, "/mob") && !(usr.client.holder.rank in list("Game Master", "Game Admin", "Badmin")))
|
|
objholder = "/obj/closet"
|
|
if(3)
|
|
var/list/locked = list("vars", "key", "ckey", "client", "firemut", "ishulk", "telekinesis", "xray", "virus", "cuffed", "ka", "last_eaten", "urine")
|
|
|
|
master.buildmode.varholder = input(usr,"Enter variable name:" ,"Name", "name")
|
|
if(master.buildmode.varholder in locked && !(usr.client.holder.rank in list("Game Master", "Game Admin")))
|
|
return
|
|
var/thetype = input(usr,"Select variable type:" ,"Type") in list("text","number","mob-reference","obj-reference","turf-reference")
|
|
if(!thetype) return
|
|
switch(thetype)
|
|
if("text")
|
|
master.buildmode.valueholder = input(usr,"Enter variable value:" ,"Value", "value") as text
|
|
if("number")
|
|
master.buildmode.valueholder = input(usr,"Enter variable value:" ,"Value", 123) as num
|
|
if("mob-reference")
|
|
master.buildmode.valueholder = input(usr,"Enter variable value:" ,"Value") as mob in world
|
|
if("obj-reference")
|
|
master.buildmode.valueholder = input(usr,"Enter variable value:" ,"Value") as obj in world
|
|
if("turf-reference")
|
|
master.buildmode.valueholder = input(usr,"Enter variable value:" ,"Value") as turf in world
|
|
|
|
|
|
/proc/build_click(var/mob/user, buildmode, location, control, params, var/obj/object)
|
|
|
|
var/obj/buildholder/holder = null
|
|
|
|
for(var/obj/buildholder/H)
|
|
if(H.cl == user.client)
|
|
holder = H
|
|
break
|
|
|
|
if(!holder) return
|
|
var/list/pa = params2list(params)
|
|
|
|
|
|
switch(buildmode)
|
|
|
|
if(1)
|
|
if(istype(object,/turf) && pa.Find("left") && !pa.Find("alt") && !pa.Find("ctrl") )
|
|
if(istype(object,/turf/space))
|
|
var/turf/T = object
|
|
T.ReplaceWithFloor()
|
|
return
|
|
else if(istype(object,/turf/simulated/floor))
|
|
var/turf/T = object
|
|
T.ReplaceWithWall()
|
|
return
|
|
else if(istype(object,/turf/simulated/wall))
|
|
var/turf/T = object
|
|
T.ReplaceWithRWall()
|
|
return
|
|
|
|
else if(pa.Find("right"))
|
|
if(istype(object,/turf/simulated/wall))
|
|
var/turf/T = object
|
|
T.ReplaceWithFloor()
|
|
return
|
|
else if(istype(object,/turf/simulated/floor))
|
|
var/turf/T = object
|
|
T.ReplaceWithSpace()
|
|
return
|
|
else if(istype(object,/turf/simulated/wall/r_wall))
|
|
var/turf/T = object
|
|
T.ReplaceWithWall()
|
|
return
|
|
else if(istype(object,/obj))
|
|
del(object)
|
|
return
|
|
|
|
else if(istype(object,/turf) && pa.Find("alt") && pa.Find("left"))
|
|
new/obj/machinery/door/airlock(get_turf(object))
|
|
|
|
else if(istype(object,/turf) && pa.Find("ctrl") && pa.Find("left"))
|
|
switch(holder.builddir.dir)
|
|
if(NORTH)
|
|
var/obj/window/reinforced/WIN = new/obj/window/reinforced(get_turf(object))
|
|
WIN.dir = NORTH
|
|
if(SOUTH)
|
|
var/obj/window/reinforced/WIN = new/obj/window/reinforced(get_turf(object))
|
|
WIN.dir = SOUTH
|
|
if(EAST)
|
|
var/obj/window/reinforced/WIN = new/obj/window/reinforced(get_turf(object))
|
|
WIN.dir = EAST
|
|
if(WEST)
|
|
var/obj/window/reinforced/WIN = new/obj/window/reinforced(get_turf(object))
|
|
WIN.dir = WEST
|
|
if(NORTHWEST)
|
|
var/obj/window/reinforced/WIN = new/obj/window/reinforced(get_turf(object))
|
|
WIN.dir = NORTHWEST
|
|
if(2)
|
|
if(pa.Find("left"))
|
|
var/obj/A = new holder.buildmode.objholder (get_turf(object))
|
|
A.dir = holder.builddir.dir
|
|
blink(A)
|
|
else if(pa.Find("right"))
|
|
if(isobj(object)) del(object)
|
|
|
|
if(3)
|
|
if(pa.Find("left")) //I cant believe this shit actually compiles.
|
|
if(object.vars.Find(holder.buildmode.varholder))
|
|
log_admin("[key_name(usr)] modified [object.name]'s [holder.buildmode.varholder] to [holder.buildmode.valueholder]")
|
|
// message_admins("[key_name_admin(usr)] modified [object.name]'s [holder.buildmode.varholder] to [holder.buildmode.valueholder]", 1)
|
|
object.vars[holder.buildmode.varholder] = holder.buildmode.valueholder
|
|
blink(object)
|
|
else
|
|
usr << "\red [initial(object.name)] does not have a var called '[holder.buildmode.varholder]'"
|
|
if(pa.Find("right"))
|
|
if(object.vars.Find(holder.buildmode.varholder))
|
|
log_admin("[key_name(usr)] modified [object.name]'s [holder.buildmode.varholder] to [holder.buildmode.valueholder]")
|
|
// message_admins("[key_name_admin(usr)] modified [object.name]'s [holder.buildmode.varholder] to [holder.buildmode.valueholder]", 1)
|
|
object.vars[holder.buildmode.varholder] = initial(object.vars[holder.buildmode.varholder])
|
|
blink(object)
|
|
else
|
|
usr << "\red [initial(object.name)] does not have a var called '[holder.buildmode.varholder]'"
|
|
|
|
/proc/blink(atom/A)
|
|
A.icon += rgb(0,75,75)
|
|
spawn(10) A.icon = initial(A.icon)
|