mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-31 09:08:30 +01:00
[MIRROR] Adds two modes for BuildMode [MDB IGNORE] (#16123)
* Adds two modes for BuildMode (#69428) Adds two modes for BuildMode, with personal icons Tweak Components Rating - for easier upgrade of machinery. ProcCall - for fast ProcCall on objects. * Adds two modes for BuildMode Co-authored-by: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com>
This commit is contained in:
co-authored by
Yaroslav Nurkov
parent
d8a9db818d
commit
0baa74dc8d
@@ -0,0 +1,49 @@
|
||||
/datum/buildmode_mode/proccall
|
||||
key = "proccall"
|
||||
///The procedure itself, which we will call in the future. For example "qdel"
|
||||
var/proc_name = null
|
||||
///The list of arguments for the procedure. They may not be. They are selected in the same way in the game, and can be a datum, and other types.
|
||||
var/list/proc_args = null
|
||||
|
||||
/datum/buildmode_mode/proccall/show_help(client/target_client)
|
||||
to_chat(target_client, span_notice("***********************************************************\n\
|
||||
Right Mouse Button on buildmode button = Choose procedure and arguments\n\
|
||||
Left Mouse Button on machinery = Apply procedure on object.\n\
|
||||
***********************************************************"))
|
||||
|
||||
/datum/buildmode_mode/proccall/change_settings(client/target_client)
|
||||
if(!check_rights_for(target_client, R_DEBUG))
|
||||
return
|
||||
|
||||
proc_name = input("Proc name, eg: fake_blood", "Proc:", null) as text|null
|
||||
if(!proc_name)
|
||||
return
|
||||
|
||||
proc_args = target_client.get_callproc_args()
|
||||
if(!proc_args)
|
||||
return
|
||||
|
||||
/datum/buildmode_mode/proccall/handle_click(client/target_client, params, datum/object as null|area|mob|obj|turf)
|
||||
if(!proc_name || !proc_args)
|
||||
tgui_alert(target_client, "Undefined ProcCall or arguments.")
|
||||
return
|
||||
|
||||
if(!hascall(object, proc_name))
|
||||
to_chat(target_client, span_warning("Error: callproc_datum(): type [object.type] has no proc named [proc_name]."), confidential = TRUE)
|
||||
return
|
||||
|
||||
if(!is_valid_src(object))
|
||||
to_chat(target_client, span_warning("Error: callproc_datum(): owner of proc no longer exists."), confidential = TRUE)
|
||||
return
|
||||
|
||||
|
||||
var/msg = "[key_name(target_client)] called [object]'s [proc_name]() with [proc_args.len ? "the arguments [list2params(proc_args)]":"no arguments"]."
|
||||
log_admin(msg)
|
||||
message_admins(msg)
|
||||
admin_ticket_log(object, msg)
|
||||
SSblackbox.record_feedback("tally", "admin_verb", 1, "Atom ProcCall") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
var/returnval = WrapAdminProcCall(object, proc_name, proc_args) // Pass the lst as an argument list to the proc
|
||||
. = target_client.get_callproc_returnval(returnval, proc_name)
|
||||
if(.)
|
||||
to_chat(target_client, ., confidential = TRUE)
|
||||
@@ -0,0 +1,36 @@
|
||||
/datum/buildmode_mode/tweakcomps
|
||||
key = "tweakcomps"
|
||||
/// This variable is responsible for the rating of the components themselves. Literally tiers of components, where 1 is standard, 4 is bluespace.
|
||||
var/rating = null
|
||||
|
||||
/datum/buildmode_mode/tweakcomps/show_help(client/target_client)
|
||||
to_chat(target_client, span_notice("***********************************************************\n\
|
||||
Right Mouse Button on buildmode button = Choose the rating of the components.\n\
|
||||
Left Mouse Button on machinery = Sets the chosen rating of the components on the machinery.\n\
|
||||
***********************************************************"))
|
||||
|
||||
/datum/buildmode_mode/tweakcomps/change_settings(client/target_client)
|
||||
var/rating_to_choose = input(target_client, "Enter number of rating", "Number", "1")
|
||||
rating_to_choose = text2num(rating_to_choose)
|
||||
if(!isnum(rating_to_choose))
|
||||
tgui_alert(target_client, "Input a number.")
|
||||
return
|
||||
|
||||
rating = rating_to_choose
|
||||
|
||||
/datum/buildmode_mode/tweakcomps/handle_click(client/target_client, params, obj/machinery/object)
|
||||
if(!ismachinery(object))
|
||||
to_chat(target_client, span_warning("This isn't machinery!"))
|
||||
return
|
||||
|
||||
if(!object.component_parts)
|
||||
to_chat(target_client, span_warning("This machinery doesn't have components!"))
|
||||
return
|
||||
|
||||
for(var/obj/item/stock_parts/P in object.component_parts)
|
||||
P.rating = rating
|
||||
object.RefreshParts()
|
||||
|
||||
SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Machine Upgrade", "[rating]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
|
||||
Reference in New Issue
Block a user