actionoperatepanelpowerstation.c 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. class ActionOperatePanelPowerStation : ActionOperatePanel
  2. {
  3. override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
  4. {
  5. if (!target)
  6. return false;
  7. Land_WarheadStorage_PowerStation powerStation = Land_WarheadStorage_PowerStation.Cast(target.GetObject());
  8. if (!powerStation)
  9. return false;
  10. int leverComponent = target.GetComponentIndex();
  11. string leverName = powerStation.GetActionComponentName(leverComponent);
  12. int leverIndex = powerStation.GetLeverIndexByComponentName(leverName);
  13. return (leverIndex != 0);
  14. }
  15. override void OnStart(ActionData action_data)
  16. {
  17. super.OnStart(action_data);
  18. Land_WarheadStorage_PowerStation powerStation = Land_WarheadStorage_PowerStation.Cast(action_data.m_Target.GetObject());
  19. if (!powerStation)
  20. return;
  21. int leverComponent = action_data.m_Target.GetComponentIndex();
  22. string leverName = powerStation.GetActionComponentName(leverComponent);
  23. int leverIndex = powerStation.GetLeverIndexByComponentName(leverName);
  24. if (leverIndex)
  25. {
  26. if (GetGame().IsServer())
  27. powerStation.AnimateLever(leverIndex);
  28. }
  29. }
  30. }