source: GTP/trunk/App/Demos/Geom/Shark3D/clod_head_demo_win32/src/res/universe/actor/universeplayer.s3d_actor @ 2236

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