vulcan-dual-control.nas 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. ###############################################################################
  2. ## $Id$
  3. ##
  4. ## Nasal for MP-passenger on the MD500E over the multiplayer network.
  5. ##
  6. ## Copyright (C) 2009 Anders Gidenstam (anders(at)gidenstam.org)
  7. ## This file is licensed under the GPL license version 2 or later.
  8. ##
  9. ###############################################################################
  10. # Renaming (almost :)
  11. var DCT = dual_control_tools;
  12. ######################################################################
  13. # Pilot/copilot aircraft identifiers. Used by dual_control.
  14. var pilot_type = "Aircraft/AvroVulcanB2/Models/AvroVulcanB2.xml";
  15. var copilot_type = "";
  16. props.globals.initNode("/sim/remote/pilot-callsign", "", "STRING");
  17. ######################################################################
  18. # MP enabled properties.
  19. # NOTE: These must exist very early during startup - put them
  20. # in the -set.xml file.
  21. ######################################################################
  22. # Useful local property paths.
  23. ######################################################################
  24. # Slow state properties for replication.
  25. ###############################################################################
  26. # Pilot MP property mappings and specific copilot connect/disconnect actions.
  27. ######################################################################
  28. # Used by dual_control to set up the mappings for the pilot.
  29. var pilot_connect_copilot = func (copilot) {
  30. return
  31. [
  32. ######################################################################
  33. # Process received properties.
  34. ######################################################################
  35. ######################################################################
  36. # Process properties to send.
  37. ######################################################################
  38. ];
  39. }
  40. ######################################################################
  41. var pilot_disconnect_copilot = func {
  42. }
  43. ###############################################################################
  44. # Copilot MP property mappings and specific pilot connect/disconnect actions.
  45. ######################################################################
  46. # Used by dual_control to set up the mappings for the copilot.
  47. var copilot_connect_pilot = func (pilot) {
  48. # Initialize Nasal wrappers for copilot pick anaimations.
  49. set_copilot_wrappers(pilot);
  50. return
  51. [
  52. ######################################################################
  53. # Process received properties.
  54. ######################################################################
  55. ######################################################################
  56. # Process properties to send.
  57. ######################################################################
  58. ];
  59. }
  60. ######################################################################
  61. var copilot_disconnect_pilot = func {
  62. # Reset local sound properties.
  63. p = "engines/engine/rpm";
  64. props.globals.getNode(p).unalias();
  65. props.globals.getNode(p).setValue(0);
  66. p = "gear/gear[0]/compression-norm";
  67. props.globals.getNode(p).unalias();
  68. props.globals.getNode(p).setValue(0);
  69. p = "gear/gear[1]/compression-norm";
  70. props.globals.getNode(p).unalias();
  71. props.globals.getNode(p).setValue(0);
  72. }
  73. ######################################################################
  74. # Copilot Nasal wrappers
  75. var set_copilot_wrappers = func (pilot) {
  76. # Setup aliases to animate the MP 3d model.
  77. var p = "instrumentation/magnetic-compass/indicated-heading-deg";
  78. pilot.getNode(p,1).alias(props.globals.getNode(p));
  79. # Setup aliases to drive local sound.
  80. p = "engines/engine/rpm";
  81. props.globals.getNode(p).alias(pilot.getNode(p));
  82. p = "engines/engine[1]/rpm";
  83. props.globals.getNode(p).alias(pilot.getNode(p));
  84. p = "surface-positions/flap-pos-norm";
  85. props.globals.getNode(p).alias(pilot.getNode(p));
  86. p = "gear/gear[0]/compression-norm";
  87. props.globals.getNode(p).alias(pilot.getNode(p));
  88. p = "gear/gear[1]/compression-norm";
  89. props.globals.getNode(p).alias(pilot.getNode(p));
  90. p = "instrumentation/doors/crew/position-norm";
  91. #props.globals.getNode(p).alias(pilot.getNode(p));
  92. #p = "sim/damage/damage-zones/engine[0]/damage-norm";
  93. #props.globals.getNode(p).alias(pilot.getNode(p));
  94. #p = "sim/damage/damage-zones/engine[1]/damage-norm";
  95. #props.globals.getNode(p).alias(pilot.getNode(p));
  96. }