ACE3/docs/wiki/framework/attach-framework.md
Crowdedlight 548ab810df
Attach - Add config property to set object orientation (#9623)
* added possibility to define orientation on attach items in config

* added documentation on attach framework

* whitespace

* changed to use roll and yaw parameters instead of vectordir for easier usage, and to support placement view with rolled objects. Changed vector calculations

* Update addons/attach/functions/fnc_attach.sqf

* Docs and comments

* fix derp

* Update docs/wiki/framework/attach-framework.md

* Update attach-framework.md

---------

Co-authored-by: Grim <69561145+LinkIsGrim@users.noreply.github.com>
2023-11-10 21:04:22 -03:00

2.3 KiB

layout title description group order parent mod version
wiki Attach Framework Explains how to add items to the ACE Attach Framework. framework 0 wiki ace
major minor patch
3 17 0

1. Config Values

1.1 Make item attachable

An item can be added to the ACE Attach framework by adding the ACE_attachable property to a class in CfgWeapons or CfgMagazines. The value must be the classname of a valid class in CfgVehicles:

class CfgWeapons {
    class attach_item: CBA_MiscItem {
        ACE_attachable = "new_attachable_item_classname";
    };
};

class CfgVehicles {
    class ThingX;
    class new_attachable_item_classname: ThingX {
        scope = 1; // Should be 1 (private) or 2 (public), scope 0 will cause errors on object creation
        displayName = "New ACE attachable item";
        model = "\path\to\my\model.p3d";
		vehicleClass = "";
    };
};

1.2 Define attach orientation for non-symmetric items

In the case the item needs to have a particular orientation when attached, add the config value: ace_attach_orientation which is an array describing the roll and yaw orientation of the object.
The default value is: [0,0].

Example:

class CfgWeapons {
    class attach_item: CBA_MiscItem {
        ACE_attachable = "new_attachable_item_classname";
        ace_attach_orientation[] = {0,180}; // 180deg yaw
    };
};

2. Event Handlers

2.1 Listenable Events

Event Key Parameters Locality Description
ace_attach_attached [_attachedObject, _itemClassname, _temporary] Local Called after an item is attached to an object. _temporary flag means the item is being re-attached (after a unit is exiting a vehicle, for example)
ace_attach_detaching [_attachedObject, _itemClassname, _temporary] Local Called just before an item is detached/removed from an object. _temporary flag means the item will be reattached later, see above.

2.2 Other events for attached objects

Use CBA Extended Event Handlers. Note that objects attached to units will be deleted/created upon entering/exiting vehicles and should be handled accordingly.