mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-29 16:18:01 +01:00
Rewrites GetExactComponent to be more readable (#84656)
## About The Pull Request Rewrites `GetExactComponent` to be 1641 compliant, and more readable ## Why It's Good For The Game This proc was quite unreadable, and less work to make the server run on 1641 ## Changelog 🆑 refactor: refactored `GetExactComponent` to be 1641 compatible /🆑
This commit is contained in:
@@ -273,18 +273,17 @@
|
||||
*/
|
||||
/datum/proc/GetExactComponent(datum/component/c_type)
|
||||
RETURN_TYPE(c_type)
|
||||
if(initial(c_type.dupe_mode) == COMPONENT_DUPE_ALLOWED || initial(c_type.dupe_mode) == COMPONENT_DUPE_SELECTIVE)
|
||||
var/initial_type_mode = initial(c_type.dupe_mode)
|
||||
if(initial_type_mode == COMPONENT_DUPE_ALLOWED || initial_type_mode == COMPONENT_DUPE_SELECTIVE)
|
||||
stack_trace("GetComponent was called to get a component of which multiple copies could be on an object. This can easily break and should be changed. Type: \[[c_type]\]")
|
||||
var/list/dc = _datum_components
|
||||
if(!dc)
|
||||
var/list/all_components = _datum_components
|
||||
if(!all_components)
|
||||
return null
|
||||
var/datum/component/C = dc[c_type]
|
||||
if(C)
|
||||
if(length(C))
|
||||
var/list/component_list = C
|
||||
C = component_list[1]
|
||||
if(C.type == c_type)
|
||||
return C
|
||||
var/datum/component/potential_component
|
||||
if(length(all_components))
|
||||
potential_component = all_components[c_type]
|
||||
if(potential_component?.type == c_type)
|
||||
return potential_component
|
||||
return null
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user