Decal API additions and fixes
The current Decal API is neglected and missing features to be considered complete, here are a few requests/suggestions and fixes.
- HandleAddDecal & AddDecal return the DecalId, They should do this so we can remove them using RemoveDecals
- Access to RemoveDecals and its subsidiaries in other classes, They should allow this in parallel with the above suggestion for obvious reasons
- A new method CreateDecal(float rotation, float minSize, float maxSize, float depth...) or similar, They should add this for the ability for modders to create unique decals without having to define a new decal for each rotation/size/depth
- Ability to change properties of an existing decal EditDecal(unit id, MyDecalMaterialDesc data, float size...)
- Ability to get existing decals on a DecalProxy entity
- Ability when creating a decal (perhaps through CreateDecal) to define the color of that decal much like the billboards
- Re allow decals to render on projection grids
- Allow more then 30 decals per block and 512 decals loaded at once, decals cost almost nothing in performance
These changes to the decal API would give it the ability for modders to use decals in ways that where never realized during the creation of the API
Side note: Decals have a built in expiration date but it is always set to int.MaxValue. Having access the the expiration time in the API would also be appreciated.