mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Add Camping Light interaction (#6078)
* Add camping light interaction * Add dragging * Add cargo loading * Handle Camping_Light_off objects * Fix work in MP * Replace action with command
This commit is contained in:
parent
d4825f920f
commit
a2804f6097
@ -421,7 +421,6 @@ class CfgVehicles {
|
||||
};
|
||||
|
||||
// objects
|
||||
class Lamps_base_F;
|
||||
class RoadCone_F: ThingX {
|
||||
GVAR(size) = 1;
|
||||
GVAR(canLoad) = 1;
|
||||
@ -429,10 +428,22 @@ class CfgVehicles {
|
||||
class RoadBarrier_F: RoadCone_F {
|
||||
GVAR(size) = 2;
|
||||
};
|
||||
|
||||
class Lamps_base_F;
|
||||
class Land_PortableLight_single_F: Lamps_base_F {
|
||||
GVAR(size) = 1;
|
||||
GVAR(size) = 2;
|
||||
GVAR(canLoad) = 1;
|
||||
};
|
||||
class FloatingStructure_F;
|
||||
class Land_Camping_Light_F: FloatingStructure_F {
|
||||
GVAR(size) = 0.2;
|
||||
GVAR(canLoad) = 1;
|
||||
};
|
||||
class Land_Camping_Light_off_F: ThingX {
|
||||
GVAR(size) = 0.2;
|
||||
GVAR(canLoad) = 1;
|
||||
};
|
||||
|
||||
|
||||
class Scrapyard_base_F;
|
||||
class Land_PaperBox_closed_F: Scrapyard_base_F {
|
||||
|
@ -38,6 +38,11 @@ class Extended_Init_EventHandlers {
|
||||
init = QUOTE(_this call DFUNC(initObject));
|
||||
};
|
||||
};
|
||||
class Land_Camping_Light_F {
|
||||
class ADDON {
|
||||
init = QUOTE(_this call DFUNC(initObject));
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_Killed_EventHandlers {
|
||||
|
@ -249,4 +249,24 @@ class CfgVehicles {
|
||||
GVAR(dragPosition)[] = {0,1.2,0};
|
||||
GVAR(dragDirection) = 180;
|
||||
};
|
||||
class FloatingStructure_F;
|
||||
class Land_Camping_Light_F: FloatingStructure_F {
|
||||
GVAR(canCarry) = 1;
|
||||
// if y < 0.9 player gets damage
|
||||
GVAR(carryPosition)[] = {0,0.9,1};
|
||||
GVAR(carryDirection) = 0;
|
||||
|
||||
GVAR(canDrag) = 1;
|
||||
GVAR(dragPosition)[] = {0,0.7,0};
|
||||
GVAR(dragDirection) = 0;
|
||||
};
|
||||
class Land_Camping_Light_off_F: ThingX {
|
||||
GVAR(canCarry) = 1;
|
||||
GVAR(carryPosition)[] = {0,0.9,1};
|
||||
GVAR(carryDirection) = 0;
|
||||
|
||||
GVAR(canDrag) = 1;
|
||||
GVAR(dragPosition)[] = {0,0.7,0};
|
||||
GVAR(dragDirection) = 0;
|
||||
};
|
||||
};
|
||||
|
@ -640,37 +640,48 @@ class CfgVehicles {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
scope = 2;
|
||||
class ACE_Actions {
|
||||
class ACE_MainActions {
|
||||
displayName = CSTRING(MainAction);
|
||||
selection = "";
|
||||
distance = 2;
|
||||
condition = "true";
|
||||
class ACE_LampTurnOn {
|
||||
|
||||
class GVAR(TurnOn) {
|
||||
displayName = CSTRING(TurnOn);
|
||||
icon = "\A3\Ui_f\data\IGUI\Cfg\VehicleToggles\LightsIconOn_ca.paa";
|
||||
condition = QUOTE(alive _target && !(_target getVariable [ARR_2('ACE_lampOn',true)]));
|
||||
statement = QUOTE(_target call DFUNC(switchLamp));
|
||||
selection = "";
|
||||
distance = 2;
|
||||
};
|
||||
class ACE_LampTurnOff {
|
||||
class GVAR(TurnOff) {
|
||||
displayName = CSTRING(TurnOff);
|
||||
icon = "\A3\ui_f\data\igui\cfg\actions\ico_cpt_land_OFF_ca.paa";
|
||||
condition = QUOTE(alive _target && _target getVariable [ARR_2('ACE_lampOn',true)]);
|
||||
statement = QUOTE(_target call DFUNC(switchLamp));
|
||||
selection = "";
|
||||
distance = 2;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
class Land_PortableLight_single_off_F: Land_PortableLight_single_F {
|
||||
scope = 1;
|
||||
};
|
||||
class Land_PortableLight_double_F: Land_PortableLight_single_F {};
|
||||
class Land_PortableLight_double_off_F: Land_PortableLight_double_F {
|
||||
scope = 1;
|
||||
|
||||
class FloatingStructure_F;
|
||||
class Land_Camping_Light_F: FloatingStructure_F {
|
||||
class ACE_Actions {
|
||||
class ACE_MainActions {
|
||||
displayName = CSTRING(MainAction);
|
||||
distance = 2;
|
||||
|
||||
class GVAR(TurnOn) {
|
||||
displayName = CSTRING(TurnOn);
|
||||
icon = "\A3\Ui_f\data\IGUI\Cfg\VehicleToggles\LightsIconOn_ca.paa";
|
||||
condition = QUOTE(alive _target && !isCollisionLightOn _target);
|
||||
statement = QUOTE([ARR_3(QQGVAR(setCollisionLight),[ARR_2(_target,true)],_target)] call CBA_fnc_targetEvent);
|
||||
};
|
||||
class GVAR(TurnOff) {
|
||||
displayName = CSTRING(TurnOff);
|
||||
icon = "\A3\ui_f\data\igui\cfg\actions\ico_cpt_land_OFF_ca.paa";
|
||||
condition = QUOTE(alive _target && isCollisionLightOn _target);
|
||||
statement = QUOTE([ARR_3(QQGVAR(setCollisionLight),[ARR_2(_target,false)],_target)] call CBA_fnc_targetEvent);
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class RoadCone_F: ThingX {
|
||||
|
@ -28,6 +28,10 @@ ACE_Modifier = 0;
|
||||
{_lamp setHit [_x select 0, (_x select 1) max _disabledLampDMG];nil} count _hitPointsDamage;
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
|
||||
[QGVAR(setCollisionLight), {
|
||||
(_this select 0) setCollisionLight (_this select 1);
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
|
||||
// Zeus action events
|
||||
[QGVAR(zeusStance),{
|
||||
{ _x setUnitPos (_this select 0); } forEach (_this select 1);
|
||||
@ -116,3 +120,21 @@ GVAR(isOpeningDoor) = false;
|
||||
}];
|
||||
};
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
|
||||
|
||||
// to make "Camping Lantern (Off)" be turned on we replace it with "Camping Lantern"
|
||||
private _action = [
|
||||
QGVAR(TurnOn),
|
||||
localize LSTRING(TurnOn),
|
||||
"\A3\Ui_f\data\IGUI\Cfg\VehicleToggles\LightsIconOn_ca.paa",
|
||||
{
|
||||
private _position = getPosATL _target;
|
||||
private _vectorDirAndUp = [vectorDir _target, vectorUp _target];
|
||||
deleteVehicle _target;
|
||||
private _newLamp = "Land_Camping_Light_F" createVehicle [0,0,0];
|
||||
_newLamp setPosATL _position;
|
||||
_newLamp setVectorDirAndUp _vectorDirAndUp;
|
||||
},
|
||||
{alive _target}
|
||||
] call EFUNC(interact_menu,createAction);
|
||||
["Land_Camping_Light_off_F", 0, ["ACE_MainActions"], _action] call EFUNC(interact_menu,addActionToClass);
|
||||
|
Loading…
Reference in New Issue
Block a user