MsgTypes.py 7.7 KB

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