actionturnvalveundergroundreservoir.c 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. class ActionTurnValveUndergroundReservoirCB : ActionTurnValveCB
  2. {
  3. override void CreateActionComponent()
  4. {
  5. m_ActionData.m_ActionComponent = new CAContinuousTime(2);
  6. }
  7. }
  8. class ActionTurnValveUndergroundReservoir : ActionTurnValve
  9. {
  10. void ActionTurnValveUndergroundReservoir()
  11. {
  12. m_CallbackClass = ActionTurnValveUndergroundReservoirCB;
  13. }
  14. override protected void CreateAndSetupActionCallback( ActionData action_data )
  15. {
  16. super.CreateAndSetupActionCallback(action_data);
  17. Land_Underground_WaterReservoir reservoir = Land_Underground_WaterReservoir.Cast(action_data.m_Target.GetObject());
  18. if (reservoir)
  19. {
  20. if (action_data.m_Callback)
  21. {
  22. array<vector> data = reservoir.GetValveAligningPointsWS(reservoir.GetTurnableValveIndex(action_data.m_Target.GetComponentIndex()));
  23. vector position = data[0];
  24. vector direction = data[1] - data[0];
  25. action_data.m_Callback.SetAligning(position, direction.Normalized());
  26. }
  27. }
  28. }
  29. override void OnStartAnimationLoopServer(ActionData action_data)
  30. {
  31. super.OnStartAnimationLoopServer(action_data);
  32. Land_Underground_WaterReservoir reservoir = Land_Underground_WaterReservoir.Cast(action_data.m_Target.GetObject());
  33. if (reservoir)
  34. {
  35. reservoir.OnValveManipulationStart(reservoir.GetTurnableValveIndex(action_data.m_Target.GetComponentIndex()));
  36. }
  37. }
  38. override void OnEndAnimationLoop(ActionData action_data)
  39. {
  40. super.OnEndAnimationLoop(action_data);
  41. Land_Underground_WaterReservoir reservoir = Land_Underground_WaterReservoir.Cast(action_data.m_Target.GetObject());
  42. if (reservoir)
  43. {
  44. reservoir.OnValveManipulationCanceled(reservoir.GetTurnableValveIndex(action_data.m_Target.GetComponentIndex()));
  45. }
  46. }
  47. override void OnFinishProgressServer(ActionData action_data)
  48. {
  49. super.OnFinishProgressServer(action_data);
  50. Land_Underground_WaterReservoir reservoir = Land_Underground_WaterReservoir.Cast(action_data.m_Target.GetObject());
  51. if (reservoir)
  52. {
  53. reservoir.OnValveManipulationEnd(reservoir.GetTurnableValveIndex(action_data.m_Target.GetComponentIndex()));
  54. }
  55. }
  56. }