source: GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/IllumDemo/bin/res/universe/actor/universeplayer.s3d_actor_run @ 2196

Revision 2196, 12.9 KB checked in by szirmay, 17 years ago (diff)
Line 
1///////////////////////////////////////////////////////////////////////////////
2//
3//      ##  ######
4//       ######  ###
5//  ## ###############        Shark 3D Engine (www.shark3d.com)
6//   ########## # # #
7//    ########                Copyright (c) 1996-2006 Spinor GmbH.
8//   ######### # # #          All rights reserved.
9//  ##   ##########
10//      ##
11//
12///////////////////////////////////////////////////////////////////////////////
13
14// Definition of a player on the universe.
15//
16// It mainly manages the connection to the client.
17// A player actor lives as long as the connection to the client exists.
18//
19// A player actor does not contain level-specific player information.
20// Such information is managed by a level-specific level-player actor.
21// The level-player actor is created each time again entering a new level.
22// For this, a level must understand a level-player command for producing
23// the a level-player.
24
25// Since each dsc-file formally can only contain a singe actor,
26// we use the group actor to define more than one actor.
27actor_ident "kit_base.group"
28actor_param
29{
30    // Delegate action calls to the children.
31    active 1
32    child_array
33    {
34        ident "kit_base.producer"
35        param
36        {
37            name "player_rawproducer"
38            deleg_name "player_set"
39            active 1
40            ident "kit_base.capsule"
41            param
42            {
43                // Delegate the action calls to all children:
44                active 1
45                // Name of the scope of the capsule.
46                scope "universeplayer"
47                // Name of the capsule actor within its own namespace.
48                // Actors within the capsule can access the capsule
49                // actor itself by this name.
50                local_name "capsule"
51                // Name of the capsule seen from outside
52                // registered in the local namespace. Commands sent
53                // to this actor are delegate to "delegate_target".
54                local_deleg_name "capsule_deleg"
55                // Delegate commands from outside to the dispatcher.
56                deleg_target "dispatch_export"
57                // The capsule contains a group of child actors.
58                child_ident "kit_base.group"
59                child_param
60                {
61                    // Delegate action calls to the children.
62                    active 1
63                    child_array
64                    {
65                        // Dispatcher for events from outside the player
66                        // capsule.
67                        ident "kit_base.dispatch"
68                        param
69                        {
70                            name "dispatch_export"
71                            entry_array
72                            {
73                                cmds "destroy"
74                                targets "settingplayer" "capsule"
75                            }
76                            {
77                                cmds "store_pre"
78                                targets "settingplayer_informmgr"
79                                newcmd "inform_reset"
80                            }
81                            {
82                                cmds "store_post"
83                                targets "settingplayer_informmgr"
84                                newcmd "inform_set"
85                            }
86                            {
87                                cmds "load_post"
88                                targets "settingplayer_fetch"
89                                newcmd "perform_fetch_charge"
90                            }
91                            {
92                                cmds "net_traverse"
93                                targets
94                                    "settingplayer_netproduce"
95                                newcmd "traverse"
96                            }
97                            {
98                                cmds "net_appear"
99                                targets "reproduce"
100                                newcmd "rework"
101                            }
102                            {
103                                // Store the inform-actor in "inform":
104                                cmds "assign_inform" "set_inform"
105                                targets "inform_deleg"
106                                newcmd "set_deleg_target"
107                            }
108                            {
109                                cmds "assign_inform" "set_inform"
110                                targets "informanswer"
111                            }
112                            {
113                                // Refresh connection to setting-player.
114                                cmds "assign_inform" "set_inform"
115                                targets "settingplayer_refresh_charge"
116                                newcmd "perform"
117                            }
118                            {
119                                cmds "search_inform" "search_noinform"
120                                targets "informanswer"
121                            }
122                            {
123                                // Check if a new player must be created.
124                                cmds "check_setting"
125                                targets "settingplayer_fetch"
126                                newcmd "check_produce_charge"
127                            }
128                            {
129                                cmds "add_motion"
130                                targets "settingplayer"
131                            }
132                            {
133                                cmds "goto_level0" "goto_level1"
134                                    "goto_level2" "goto_level3"
135                                    "goto_level4" "goto_level5"
136                                    "goto_level6" "goto_level7"
137                                    "goto_level8" "goto_level9"
138                                    "goto_level10" "goto_level11"
139                                    "goto_level12" "goto_level13"
140                                    "goto_level14" "goto_level15"
141                                    "goto_level16" "goto_level17"
142                                    "goto_level18" "goto_level19"
143                                    "goto_level20" "goto_level21"
144                                targets "^setting_serroot"
145                            }
146                            {
147                                cmds "god" "goto_level_next" "goto_level_prev"
148                                    "special"
149                                // Delegate to the setting-player:
150                                targets "settingplayer"
151                            }
152                            {
153                                cmds "store_file" "load_file"
154                                targets "^setting"
155                            }
156                            {
157                                cmds "add_motion"
158                                targets "settingplayer"
159                            }
160                            {
161                                cmds
162                                    "notice_level_load_pre"
163                                    "notice_level_load_post"
164                                targets "inform"
165                            }
166                        }
167                    }
168                    {
169                        ident "kit_base.dispatch"
170                        param
171                        {
172                            name "dispatch"
173                            entry_array
174                            {
175                                cmds
176                                    "settingplayer_pre"
177                                    "settingplayer_post"
178                                targets
179                            }
180                        }
181                    }
182                    {
183                        // Dispatcher for commands from the setting player:
184                        ident "kit_base.dispatch"
185                        param
186                        {
187                            name "dispatch_inform"
188                            entry_array
189                            {
190                                cmds
191                                    "set_gfxmgr_level"
192                                    "set_sndmgr_level"
193                                    "set_state_world"
194                                    "set_state_sky"
195                                    "set_sim_world"
196                                    "set_noise_world"
197                                    "set_sensorstate_world"
198                                    "set_camera"
199                                targets "inform"
200                            }
201                            {
202                                cmds
203                                    "net_select_charge"
204                                    "net_reproduce"
205                                targets "settingplayer_netproduce"
206                            }
207                        }
208                    }
209                    {
210                        ident "kit_base.deleg"
211                        param
212                        {
213                            name "inform_deleg"
214                            deleg_name "inform"
215                            deleg_target ""
216                            allow_no_target 1
217                            enabled 1
218                        }
219                    }
220                    {
221                        ident "kit_engobj.informanswer"
222                        param
223                        {
224                            name "informanswer"
225                            answer_cmd "add_result"
226                            answer_actor "capsule_deleg"
227                        }
228                    }
229                    {
230                        ident "kit_engobj.informmgr"
231                        param
232                        {
233                            name "settingplayer_informmgr"
234                            //
235                            deleg_name "settingplayer"
236                            // The inform-actor. A setting player sends
237                            // its commands to this actor:
238                            inform "dispatch_inform"
239                            ignore_no_charge 1
240                            // Recip about setting-player changes.
241                            notify_target "dispatch"
242                            notify_pre_cmd "settingplayer_pre"
243                            notify_post_cmd "settingplayer_post"
244                            // If no setting player exists, this command is
245                            // sent to this actor to get a player in a setting.
246                            produce_target "^setting_serroot"
247                            produce_cmd "rawproduce_player"
248                        }
249                    }
250                    {
251                        ident "kit_base.paramvoid"
252                        param
253                        {
254                            name "settingplayer_refresh_charge"
255                            target "settingplayer_informmgr"
256                            cmd "refresh_charge"
257                        }
258                    }
259                    {
260                        ident "kit_engbase.netproducer"
261                        param
262                        {
263                            name "settingplayer_netproduce"
264                            produce_target "settingplayer_informmgr"
265                            produce_cmd "produce_charge"
266                            net_traverse_cmd "net_traverse"
267                        }
268                    }
269                    {
270                        ident "kit_engobj.fetch"
271                        param
272                        {
273                            name "settingplayer_fetch"
274                            query_target "settingplayer_informmgr"
275                            query_cmd "get_charge"
276                            produce_target "settingplayer_netproduce"
277                            produce_cmd "produce"
278                            produce_report_target ""
279                            produce_report_cmd ""
280                            enum_target "^setting_serroot"
281                            enum_cmd "find_player"
282                            enum_report_target "settingplayer_informmgr"
283                            enum_report_cmd "assign_charge"
284                        }
285                    }
286                    {
287                        ident "kit_engbase.netreproduce"
288                        param
289                        {
290                            name "reproduce"
291                            producer "^player_producer"
292                            charge "capsule_deleg"
293                            reproduce_cmd "reproduce"
294                        }
295                    }
296                }
297            }
298        }
299    }
300}
Note: See TracBrowser for help on using the repository browser.