123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- class ActionDetachPowerSourceFromPanel: ActionInteractBase
- {
- void ActionDetachPowerSourceFromPanel()
- {
- m_Text = "#detach_power_source";
- }
-
- override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
- {
- Object target_object = target.GetObject();
-
- if ( player && target_object )
- {
- EntityAI target_entity = EntityAI.Cast( target.GetObject() );
- string selection = target_object.GetActionComponentName( target.GetComponentIndex() );
-
-
- if ( target_entity && target_entity.GetInventory() && target_entity.GetInventory().AttachmentCount() > 0 && selection == "power_source" ) //has any power source attachment attached
- {
- return true;
- }
- }
-
- return false;
- }
-
- override void OnExecuteClient( ActionData action_data )
- {
- Process(action_data);
- }
-
- override void OnExecuteServer( ActionData action_data )
- {
- Process(action_data);
- }
- void Process( ActionData action_data )
- {
- EntityAI target_entity = EntityAI.Cast( action_data.m_Target.GetObject() );
-
- EntityAI attachment;
- int attachments_count = target_entity.GetInventory().AttachmentCount();
- for ( int j = 0; j < attachments_count; j++ ) //find any attached power source
- {
- // @TODO: vezme prvni att?
- attachment = target_entity.GetInventory().GetAttachmentFromIndex( j );
- if ( attachment )
- break;
- }
-
- if ( attachment )
- {
- action_data.m_Player.PredictiveTakeEntityToHands(attachment );
- }
- }
- }
|