mirror of
https://github.com/Citadel-Station-13/Citadel-Station-13-RP.git
synced 2026-08-21 07:16:55 +01:00
- all cells in the game are now small, medium, large - super, hyper capacity cells, device, and weapon cells are all removed - cells now have standardized variants, some of which are printable by R&D - energy weapons rebalanced - **advanced energy guns and stun revolvers removed** - use the new modular weapon system and microfission cells. --------- Co-authored-by: silicons <silicons@silicons.dev>
39 lines
1.1 KiB
Plaintext
39 lines
1.1 KiB
Plaintext
//* This file is explicitly licensed under the MIT license. *//
|
|
//* Copyright (c) 2024 Citadel Station Developers *//
|
|
|
|
/**
|
|
* Lightweight variant of a callback.
|
|
*
|
|
* ! SECURITY WARNING: Do not allow arbitrarily passing things in when making this. !
|
|
* ! It is VV and proccall guarded, but we cannot stop other functions from making !
|
|
* ! one while being proccalled, as there are legitimate use cases for that!! !
|
|
*/
|
|
/datum/bound_proc
|
|
/// target; either a /datum or [GLOBAL_PROC]
|
|
var/delegate
|
|
/// proc reference of what to call on target
|
|
var/binding
|
|
|
|
/datum/bound_proc/New(delegate, binding)
|
|
src.delegate = delegate
|
|
src.binding = binding
|
|
|
|
/datum/bound_proc/proc/invoke(...)
|
|
if(delegate == GLOBAL_PROC)
|
|
call(binding)(arglist(args))
|
|
else
|
|
call(delegate, binding)(arglist(args))
|
|
|
|
/datum/bound_proc/proc/invoke_async(...)
|
|
ASYNC
|
|
if(delegate == GLOBAL_PROC)
|
|
call(binding)(arglist(args))
|
|
else
|
|
call(delegate, binding)(arglist(args))
|
|
|
|
/datum/bound_proc/CanProcCall(procname)
|
|
return FALSE
|
|
|
|
/datum/bound_proc/vv_edit_var(var_name, var_value, mass_edit, raw_edit)
|
|
return FALSE
|