Files
Yogstation/code/modules/buildmode/buttons.dm
Crazy Lemon 1bd32985a1 Ports paradise's modular buildmode (#40105)
* Ports paradise's modular buildmode

* Axes logout callback of buildmode

* AnturK's changes

- Code formatting
- Gives mob to throw args
- Selection overlays are on ABOVE_LIGHTING_PLANE to be visible on space

Other:
- Doubleclicks of observers and AI no longer "double-tap" click
intercepts
2018-09-13 09:48:49 +01:00

90 lines
1.9 KiB
Plaintext

/obj/screen/buildmode
icon = 'icons/misc/buildmode.dmi'
var/datum/buildmode/bd
// If we don't do this, we get occluded by item action buttons
layer = ABOVE_HUD_LAYER
/obj/screen/buildmode/New(bld)
bd = bld
return ..()
/obj/screen/buildmode/Destroy()
bd = null
return ..()
/obj/screen/buildmode/mode
name = "Toggle Mode"
icon_state = "buildmode_basic"
screen_loc = "NORTH,WEST"
/obj/screen/buildmode/mode/Click(location, control, params)
var/list/pa = params2list(params)
if(pa.Find("left"))
bd.toggle_modeswitch()
else if(pa.Find("right"))
bd.mode.change_settings(usr.client)
update_icon()
return 1
/obj/screen/buildmode/mode/update_icon()
icon_state = bd.mode.get_button_iconstate()
/obj/screen/buildmode/help
icon_state = "buildhelp"
screen_loc = "NORTH,WEST+1"
name = "Buildmode Help"
/obj/screen/buildmode/help/Click(location, control, params)
bd.mode.show_help(usr.client)
return 1
/obj/screen/buildmode/bdir
icon_state = "build"
screen_loc = "NORTH,WEST+2"
name = "Change Dir"
/obj/screen/buildmode/bdir/update_icon()
dir = bd.build_dir
return
/obj/screen/buildmode/bdir/Click()
bd.toggle_dirswitch()
update_icon()
return 1
// used to switch between modes
/obj/screen/buildmode/modeswitch
var/datum/buildmode_mode/modetype
/obj/screen/buildmode/modeswitch/New(bld, mt)
modetype = mt
icon_state = "buildmode_[initial(modetype.key)]"
name = initial(modetype.key)
return ..(bld)
/obj/screen/buildmode/modeswitch/Click()
bd.change_mode(modetype)
return 1
// used to switch between dirs
/obj/screen/buildmode/dirswitch
icon_state = "build"
/obj/screen/buildmode/dirswitch/New(bld, dir)
src.dir = dir
name = dir2text(dir)
return ..(bld)
/obj/screen/buildmode/dirswitch/Click()
bd.change_dir(dir)
return 1
/obj/screen/buildmode/quit
icon_state = "buildquit"
screen_loc = "NORTH,WEST+3"
name = "Quit Buildmode"
/obj/screen/buildmode/quit/Click()
bd.quit()
return 1