2
0

MsgTypes.py 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. """MsgTypes module: contains distributed object message types"""
  2. from direct.showbase.PythonUtil import invertDictLossless
  3. MsgName2Id = {
  4. 'CLIENT_HELLO': 1,
  5. 'CLIENT_HELLO_RESP': 2,
  6. # Sent by the client when it's leaving.
  7. 'CLIENT_DISCONNECT': 3,
  8. # Sent by the server when it is dropping the connection deliberately.
  9. 'CLIENT_EJECT': 4,
  10. 'CLIENT_HEARTBEAT': 5,
  11. 'CLIENT_OBJECT_SET_FIELD': 120,
  12. 'CLIENT_OBJECT_SET_FIELDS': 121,
  13. 'CLIENT_OBJECT_LEAVING': 132,
  14. 'CLIENT_OBJECT_LEAVING_OWNER': 161,
  15. 'CLIENT_ENTER_OBJECT_REQUIRED': 142,
  16. 'CLIENT_ENTER_OBJECT_REQUIRED_OTHER': 143,
  17. 'CLIENT_ENTER_OBJECT_REQUIRED_OWNER': 172,
  18. 'CLIENT_ENTER_OBJECT_REQUIRED_OTHER_OWNER': 173,
  19. 'CLIENT_DONE_INTEREST_RESP': 204,
  20. 'CLIENT_ADD_INTEREST': 200,
  21. 'CLIENT_ADD_INTEREST_MULTIPLE': 201,
  22. 'CLIENT_REMOVE_INTEREST': 203,
  23. 'CLIENT_OBJECT_LOCATION': 140,
  24. # These are sent internally inside the Astron cluster.
  25. # Message Director control messages:
  26. 'CONTROL_CHANNEL': 1,
  27. 'CONTROL_ADD_CHANNEL': 9000,
  28. 'CONTROL_REMOVE_CHANNEL': 9001,
  29. 'CONTROL_ADD_RANGE': 9002,
  30. 'CONTROL_REMOVE_RANGE': 9003,
  31. 'CONTROL_ADD_POST_REMOVE': 9010,
  32. 'CONTROL_CLEAR_POST_REMOVES': 9011,
  33. # State Server control messages:
  34. 'STATESERVER_CREATE_OBJECT_WITH_REQUIRED': 2000,
  35. 'STATESERVER_CREATE_OBJECT_WITH_REQUIRED_OTHER': 2001,
  36. 'STATESERVER_DELETE_AI_OBJECTS': 2009,
  37. 'STATESERVER_OBJECT_GET_FIELD': 2010,
  38. 'STATESERVER_OBJECT_GET_FIELD_RESP': 2011,
  39. 'STATESERVER_OBJECT_GET_FIELDS': 2012,
  40. 'STATESERVER_OBJECT_GET_FIELDS_RESP': 2013,
  41. 'STATESERVER_OBJECT_GET_ALL': 2014,
  42. 'STATESERVER_OBJECT_GET_ALL_RESP': 2015,
  43. 'STATESERVER_OBJECT_SET_FIELD': 2020,
  44. 'STATESERVER_OBJECT_SET_FIELDS': 2021,
  45. 'STATESERVER_OBJECT_DELETE_FIELD_RAM': 2030,
  46. 'STATESERVER_OBJECT_DELETE_FIELDS_RAM': 2031,
  47. 'STATESERVER_OBJECT_DELETE_RAM': 2032,
  48. 'STATESERVER_OBJECT_SET_LOCATION': 2040,
  49. 'STATESERVER_OBJECT_CHANGING_LOCATION': 2041,
  50. 'STATESERVER_OBJECT_ENTER_LOCATION_WITH_REQUIRED': 2042,
  51. 'STATESERVER_OBJECT_ENTER_LOCATION_WITH_REQUIRED_OTHER': 2043,
  52. 'STATESERVER_OBJECT_GET_LOCATION': 2044,
  53. 'STATESERVER_OBJECT_GET_LOCATION_RESP': 2045,
  54. 'STATESERVER_OBJECT_SET_AI': 2050,
  55. 'STATESERVER_OBJECT_CHANGING_AI': 2051,
  56. 'STATESERVER_OBJECT_ENTER_AI_WITH_REQUIRED': 2052,
  57. 'STATESERVER_OBJECT_ENTER_AI_WITH_REQUIRED_OTHER': 2053,
  58. 'STATESERVER_OBJECT_GET_AI': 2054,
  59. 'STATESERVER_OBJECT_GET_AI_RESP': 2055,
  60. 'STATESERVER_OBJECT_SET_OWNER': 2060,
  61. 'STATESERVER_OBJECT_CHANGING_OWNER': 2061,
  62. 'STATESERVER_OBJECT_ENTER_OWNER_WITH_REQUIRED': 2062,
  63. 'STATESERVER_OBJECT_ENTER_OWNER_WITH_REQUIRED_OTHER': 2063,
  64. 'STATESERVER_OBJECT_GET_OWNER': 2064,
  65. 'STATESERVER_OBJECT_GET_OWNER_RESP': 2065,
  66. 'STATESERVER_OBJECT_GET_ZONE_OBJECTS': 2100,
  67. 'STATESERVER_OBJECT_GET_ZONES_OBJECTS': 2102,
  68. 'STATESERVER_OBJECT_GET_CHILDREN': 2104,
  69. 'STATESERVER_OBJECT_GET_ZONE_COUNT': 2110,
  70. 'STATESERVER_OBJECT_GET_ZONE_COUNT_RESP': 2111,
  71. 'STATESERVER_OBJECT_GET_ZONES_COUNT': 2112,
  72. 'STATESERVER_OBJECT_GET_ZONES_COUNT_RESP': 2113,
  73. 'STATESERVER_OBJECT_GET_CHILD_COUNT': 2114,
  74. 'STATESERVER_OBJECT_GET_CHILD_COUNT_RESP': 2115,
  75. 'STATESERVER_OBJECT_DELETE_ZONE': 2120,
  76. 'STATESERVER_OBJECT_DELETE_ZONES': 2122,
  77. 'STATESERVER_OBJECT_DELETE_CHILDREN': 2124,
  78. # DBSS-backed-object messages:
  79. 'DBSS_OBJECT_ACTIVATE_WITH_DEFAULTS': 2200,
  80. 'DBSS_OBJECT_ACTIVATE_WITH_DEFAULTS_OTHER': 2201,
  81. 'DBSS_OBJECT_GET_ACTIVATED': 2207,
  82. 'DBSS_OBJECT_GET_ACTIVATED_RESP': 2208,
  83. 'DBSS_OBJECT_DELETE_FIELD_DISK': 2230,
  84. 'DBSS_OBJECT_DELETE_FIELDS_DISK': 2231,
  85. 'DBSS_OBJECT_DELETE_DISK': 2232,
  86. # Database Server control messages:
  87. 'DBSERVER_CREATE_OBJECT': 3000,
  88. 'DBSERVER_CREATE_OBJECT_RESP': 3001,
  89. 'DBSERVER_OBJECT_GET_FIELD': 3010,
  90. 'DBSERVER_OBJECT_GET_FIELD_RESP': 3011,
  91. 'DBSERVER_OBJECT_GET_FIELDS': 3012,
  92. 'DBSERVER_OBJECT_GET_FIELDS_RESP': 3013,
  93. 'DBSERVER_OBJECT_GET_ALL': 3014,
  94. 'DBSERVER_OBJECT_GET_ALL_RESP': 3015,
  95. 'DBSERVER_OBJECT_SET_FIELD': 3020,
  96. 'DBSERVER_OBJECT_SET_FIELDS': 3021,
  97. 'DBSERVER_OBJECT_SET_FIELD_IF_EQUALS': 3022,
  98. 'DBSERVER_OBJECT_SET_FIELD_IF_EQUALS_RESP': 3023,
  99. 'DBSERVER_OBJECT_SET_FIELDS_IF_EQUALS': 3024,
  100. 'DBSERVER_OBJECT_SET_FIELDS_IF_EQUALS_RESP': 3025,
  101. 'DBSERVER_OBJECT_SET_FIELD_IF_EMPTY': 3026,
  102. 'DBSERVER_OBJECT_SET_FIELD_IF_EMPTY_RESP': 3027,
  103. 'DBSERVER_OBJECT_DELETE_FIELD': 3030,
  104. 'DBSERVER_OBJECT_DELETE_FIELDS': 3031,
  105. 'DBSERVER_OBJECT_DELETE': 3032,
  106. # Client Agent control messages:
  107. 'CLIENTAGENT_SET_STATE': 1000,
  108. 'CLIENTAGENT_SET_CLIENT_ID': 1001,
  109. 'CLIENTAGENT_SEND_DATAGRAM': 1002,
  110. 'CLIENTAGENT_EJECT': 1004,
  111. 'CLIENTAGENT_DROP': 1005,
  112. 'CLIENTAGENT_GET_NETWORK_ADDRESS': 1006,
  113. 'CLIENTAGENT_GET_NETWORK_ADDRESS_RESP': 1007,
  114. 'CLIENTAGENT_DECLARE_OBJECT': 1010,
  115. 'CLIENTAGENT_UNDECLARE_OBJECT': 1011,
  116. 'CLIENTAGENT_ADD_SESSION_OBJECT': 1012,
  117. 'CLIENTAGENT_REMOVE_SESSION_OBJECT': 1013,
  118. 'CLIENTAGENT_SET_FIELDS_SENDABLE': 1014,
  119. 'CLIENTAGENT_OPEN_CHANNEL': 1100,
  120. 'CLIENTAGENT_CLOSE_CHANNEL': 1101,
  121. 'CLIENTAGENT_ADD_POST_REMOVE': 1110,
  122. 'CLIENTAGENT_CLEAR_POST_REMOVES': 1111,
  123. 'CLIENTAGENT_ADD_INTEREST': 1200,
  124. 'CLIENTAGENT_ADD_INTEREST_MULTIPLE': 1201,
  125. 'CLIENTAGENT_REMOVE_INTEREST': 1203,
  126. }
  127. # create id->name table for debugging
  128. MsgId2Names = invertDictLossless(MsgName2Id)
  129. # put msg names in module scope, assigned to msg value
  130. globals().update(MsgName2Id)
  131. # These messages are ignored when the client is headed to the quiet zone
  132. QUIET_ZONE_IGNORED_LIST = [
  133. # We mustn't ignore updates, because some updates for localToon
  134. # are always important.
  135. #CLIENT_OBJECT_UPDATE_FIELD,
  136. # These are now handled. If it is a create for a class that is in the
  137. # uber zone, we should create it.
  138. #CLIENT_CREATE_OBJECT_REQUIRED,
  139. #CLIENT_CREATE_OBJECT_REQUIRED_OTHER,
  140. ]
  141. # The following is a different set of numbers from above.
  142. # These are the sub-message types for CLIENT_LOGIN_2.
  143. CLIENT_LOGIN_2_GREEN = 1 # Disney's GoReg subscription token, not used.
  144. CLIENT_LOGIN_2_PLAY_TOKEN = 2 # VR Studio PlayToken.
  145. CLIENT_LOGIN_2_BLUE = 3 # The international GoReg token.
  146. CLIENT_LOGIN_3_DISL_TOKEN = 4 # SSL encoded blob from DISL system.