Ports https://github.com/tgstation/TerraGov-Marine-Corps/pull/3528
Credit goes to original coders. This PR makes large objects transparent
when something important is behind it.
For now the list of large objects and the things make them transparent
by using this component as follows:
Large objects:
- Trees
- Cranes
- Old shipping containers (new ones doesn't allow anything to go behind
it)
The things make them transparent:
- Mobs
- Carts
- Portable generators
- Nuke
## Images
https://github.com/user-attachments/assets/a4f8ddfc-0fde-4b2d-8bd8-d15e1c6e8e0b
### Asset Licenses
The following assets that **have not** been created by myself are
included in this PR:
| Path | Original Author | License |
| --- | --- | --- |
| code/datums/components/large_object_transparency.dm | nemvar (TGMC) |
AGPLv3 |
Refactored the abstract meta propriety into defines.
It's now more easy to spot/see abstract types thanks to the macro that
defines them.
Added a check on initialization of atoms to avoid spawning abstract
types.
Made the spawn_atom proc check for abstractness.
Made the spawn_atom proc use tgui_list for types list shorter than 1000
elements, which enables to search in them. It's too laggy on larger
lists so above 1000 it uses the builtin input.
Made the spawn_atom use a list subtraction instead of a double list,
it's lighter on memory and processing.
* pain
* sadfas
* sdfa
* sdfasf
* sfa
* sdf
* might the lord have mercy on our soul
* i cri everidai
* adeste fideles
* sdf
* where will this lead, what's coming next, from your inventions
* dear lord
* gjvhk
* i cri everidai
* fsgf
* sdfa
* sdaf
* hiuhi