item_scaling
Element for scaling item appearances in the overworld or in inventory/storage.
This bespoke element allows for items to have varying sizes depending on their location. The overworld simply refers to items being on a turf. Inventory includes HUD item slots, and storage is anywhere a storage component is used. Scaling should affect the item's icon and all attached overlays (such as blood decals).
Vars | |
overworld_scaling | Scaling value when the attached item is in the overworld (on a turf). |
---|---|
storage_scaling | Scaling value when the attached item is in a storage component or inventory slot. |
Procs | |
Attach | Attach proc for the item_scaling element |
Detach | Detach proc for the item_scaling element. |
scale | Scales the attached item's matrix. |
scale_overworld | Signal handler for COMSIG_ITEM_DROPPED or COMSIG_ATOM_EXITED |
scale_storage | Signal handler for COMSIG_ITEM_EQUIPPED or COMSIG_ATOM_ENTERED. |
Var Details
overworld_scaling
Scaling value when the attached item is in the overworld (on a turf).
storage_scaling
Scaling value when the attached item is in a storage component or inventory slot.
Proc Details
Attach
Attach proc for the item_scaling element
The proc checks the target's type before attaching. It then initializes the target to overworld scaling. The target should then rescale if it is placed in inventory/storage on initialization. Relevant signals are registered to listen for pickup/drop or storage events. Scaling values of 1 will result in items returning to their original size. Arguments:
- target - Datum to attach the element to.
- overworld_scaling - Integer or float to scale the item in the overworld.
- storage_scaling - Integer or float to scale the item in storage/inventory.
Detach
Detach proc for the item_scaling element.
All registered signals are unregistered, and the attached element is removed from the target datum. Arguments:
- target - Datum which the element is attached to.
scale
Scales the attached item's matrix.
The proc first narrows the type of the source to (datums do not have a transform matrix). It then creates an identity matrix, M, which is transformed by the scaling value. The object's transform variable (matrix) is then set to the resulting value of M. Arguments:
- source - Source datum which sent the signal.
- scaling - Integer or float to scale the item's matrix.
scale_overworld
Signal handler for COMSIG_ITEM_DROPPED or COMSIG_ATOM_EXITED
Longer detailed paragraph about the proc including any relevant detail Arguments:
- source - Source datum which sent the signal.
scale_storage
Signal handler for COMSIG_ITEM_EQUIPPED or COMSIG_ATOM_ENTERED.
Longer detailed paragraph about the proc including any relevant detail Arguments:
- source - Source datum which sent the signal.