source: GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/IllumDemoApplication/src/res/universe/actor/universeplayer.s3d_actor @ 2269

Revision 2269, 14.7 KB checked in by barsi, 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 "created_local"
78                                targets
79                            }
80                            {
81                                cmds "created_net"
82                                targets "reproduce"
83                                newcmd "set_blocked"
84                            }
85                            {
86                                cmds "created_net"
87                                targets "netlost"
88                                newcmd "set_observe_activate"
89                            }
90                            {
91                                cmds "store_pre"
92                                targets "settingplayer_informmgr"
93                                newcmd "inform_reset"
94                            }
95                            {
96                                cmds "store_post"
97                                targets "settingplayer_informmgr"
98                                newcmd "inform_set"
99                            }
100                            {
101                                cmds "load_post"
102                                targets "settingplayer_fetch"
103                                newcmd "perform_fetch_charge"
104                            }
105                            {
106                                cmds "net_traverse"
107                                targets
108                                    "settingplayer_netproduce"
109                                    "settingplayer_netappear"
110                                    "netlost"
111                                newcmd "traverse"
112                            }
113                            {
114                                cmds "net_appear"
115                                targets "reproduce"
116                                newcmd "rework"
117                            }
118                            {
119                                // Store the inform-actor in "inform":
120                                cmds "assign_inform" "set_inform"
121                                targets "inform_deleg"
122                                newcmd "set_deleg_target"
123                            }
124                            {
125                                cmds "assign_inform" "set_inform"
126                                targets "informanswer"
127                            }
128                            {
129                                // Refresh connection to setting-player.
130                                cmds "assign_inform" "set_inform"
131                                targets "settingplayer_refresh_charge"
132                                newcmd "perform"
133                            }
134                            {
135                                cmds "search_inform" "search_noinform"
136                                targets "informanswer"
137                            }
138                            {
139                                cmds "add_motion"
140                                targets "settingplayer"
141                            }
142                            {
143                                cmds "goto_level0" "goto_level1"
144                                    "goto_level2" "goto_level3"
145                                    "goto_level4" "goto_level5"
146                                    "goto_level6" "goto_level7"
147                                    "goto_level8" "goto_level9"
148                                    "goto_level10" "goto_level11"
149                                    "goto_level12" "goto_level13"
150                                    "goto_level14" "goto_level15"
151                                    "goto_level16" "goto_level17"
152                                    "goto_level18" "goto_level19"
153                                    "goto_level20" "goto_level21"
154                                targets "^setting_serroot"
155                            }
156                            {
157                                cmds "god" "goto_level_next" "goto_level_prev"
158                                    "special"
159                                // Delegate to the setting-player:
160                                targets "settingplayer"
161                            }
162                            {
163                                cmds "store_file" "load_file"
164                                targets "^setting"
165                            }
166                            {
167                                cmds
168                                    "notice_level_load_pre"
169                                    "notice_level_load_post"
170                                targets "inform"
171                            }
172                        }
173                    }
174                    {
175                        ident "kit_base.dispatch"
176                        param
177                        {
178                            name "dispatch"
179                            entry_array
180                            {
181                                cmds
182                                    "settingplayer_pre"
183                                    "settingplayer_post"
184                                targets
185                            }
186                        }
187                    }
188                    {
189                        // Dispatcher for commands from the setting player:
190                        ident "kit_base.dispatch"
191                        param
192                        {
193                            name "dispatch_inform"
194                            entry_array
195                            {
196                                cmds
197                                    "set_gfxmgr_level"
198                                    "set_sndmgr_level"
199                                    "set_state_world"
200                                    "set_state_sky"
201                                    "set_sim_world"
202                                    "set_noise_world"
203                                    "set_sensorstate_world"
204                                    "set_camera"
205                                    "set_playerbody"
206                                targets "inform"
207                            }
208                            {
209                                cmds "reproduce"
210                                targets "settingplayer_netproduce"
211                            }
212                        }
213                    }
214                    {
215                        ident "kit_base.deleg"
216                        param
217                        {
218                            name "inform_deleg"
219                            deleg_name "inform"
220                            deleg_target ""
221                            allow_no_target 1
222                            enabled 1
223                        }
224                    }
225                    {
226                        ident "kit_engobj.informanswer"
227                        param
228                        {
229                            name "informanswer"
230                            answer_cmd "add_result"
231                            answer_actor "capsule_deleg"
232                        }
233                    }
234                    {
235                        ident "kit_engobj.informmgr"
236                        param
237                        {
238                            name "settingplayer_informmgr"
239                            //
240                            deleg_name "settingplayer"
241                            // The inform-actor. A setting player sends
242                            // its commands to this actor:
243                            inform "dispatch_inform"
244                            ignore_no_charge 1
245                            // Recip about setting-player changes.
246                            notify_target "dispatch"
247                            notify_pre_cmd "settingplayer_pre"
248                            notify_post_cmd "settingplayer_post"
249                            // If no setting player exists, this command is
250                            // sent to this actor to get a player in a setting.
251                            produce_target "^setting_serroot"
252                            produce_cmd "rawproduce_player"
253                        }
254                    }
255                    {
256                        ident "kit_base.paramvoid"
257                        param
258                        {
259                            name "settingplayer_refresh_charge"
260                            target "settingplayer_informmgr"
261                            cmd "refresh_charge"
262                        }
263                    }
264                    {
265                        ident "kit_engbase.netproducer"
266                        param
267                        {
268                            name "settingplayer_netproduce"
269                            produce_target "settingplayer_informmgr"
270                            produce_cmd "produce_charge"
271                            net_traverse_cmd "net_traverse"
272                            created_local_cmd "created_local"
273                            created_net_cmd "created_net"
274                        }
275                    }
276                    {
277                        ident "kit_engbase.netappear"
278                        param
279                        {
280                            name "settingplayer_netappear"
281                            appear_target "settingplayer"
282                            appear_cmd "net_appear"
283                        }
284                    }
285                    {
286                        ident "kit_engobj.fetch"
287                        param
288                        {
289                            name "settingplayer_fetch"
290                            query_target "settingplayer_informmgr"
291                            query_cmd "get_charge"
292                            produce_target "settingplayer_netproduce"
293                            produce_cmd "produce"
294                            produce_report_target ""
295                            produce_report_cmd ""
296                            enum_target "^setting_serroot"
297                            enum_cmd "find_player"
298                            enum_report_target "settingplayer_informmgr"
299                            enum_report_cmd "assign_charge"
300                        }
301                    }
302                    {
303                        ident "kit_engbase.netreproduce"
304                        param
305                        {
306                            name "reproduce"
307                            producer "^player_netproducer"
308                            charge "capsule_deleg"
309                            reproduce_cmd "reproduce"
310                        }
311                    }
312                    {
313                        ident "kit_snk.childif"
314                        param
315                        {
316                            extcfg_actor "^^universe_cfg"
317                            extcfg_entry_switch "server"
318                            then_child_ident "kit_base.onaction"
319                            then_child_param
320                            {
321                                // Check if a new player must be created.
322                                active 1
323                                name "check_settingplayer_onaction"
324                                target "settingplayer_fetch"
325                                cmd "check_produce_charge"
326                            }
327                        }
328                    }
329                    {
330                        ident "kit_engbase.netlost"
331                        param
332                        {
333                            active 0
334                            name "netlost"
335                            lost_target "dispatch_export"
336                            lost_cmd "destroy"
337                        }
338                    }
339                }
340            }
341        }
342    }
343}
Note: See TracBrowser for help on using the repository browser.