123456789101112131415161718192021222324252627282930313233343536373839404142 |
- class ActionPlaceFireplaceIntoBarrel: ActionSingleUseBase
- {
- void ActionPlaceFireplaceIntoBarrel()
- {
- m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_OPENDOORFW;
- m_StanceMask = DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT;
- m_SpecialtyWeight = UASoftSkillsWeight.ROUGH_LOW;
- m_Text = "#place_object";
- }
-
- override void CreateConditionComponents()
- {
- m_ConditionItem = new CCINonRuined;
- m_ConditionTarget = new CCTNonRuined( UAMaxDistances.DEFAULT );
- }
- override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
- {
- Object target_object = target.GetObject();
-
- if ( target_object && target_object.IsInherited( BarrelHoles_ColorBase ) )
- {
- BarrelHoles_ColorBase fireplace_barrel = BarrelHoles_ColorBase.Cast( target_object );
-
- if ( fireplace_barrel.IsOpen() && fireplace_barrel.GetInventory().AttachmentCount() == 0 && fireplace_barrel.IsCargoEmpty() )
- {
- return true;
- }
- }
-
- return false;
- }
-
- override void OnExecuteServer( ActionData action_data )
- {
- ClearInventoryReservationEx(action_data);
- FireplaceBase fireplace_in_hands = FireplaceBase.Cast( action_data.m_MainItem );
- BarrelHoles_ColorBase fireplace_barrel = BarrelHoles_ColorBase.Cast( action_data.m_Target.GetObject() );
- auto lambda = new MoveEquipToExistingItemAndDestroyOldRootLambda(fireplace_in_hands, "", action_data.m_Player, fireplace_barrel);
- action_data.m_Player.ServerReplaceItemInHandsWithNewElsewhere(lambda);
- }
- }
|