source: GTP/trunk/App/Demos/Illum/IBRBillboardCloudTrees/Shark3D/demo_v5x0x7_t164x31u_enterpr_kwin32/bin/res/universe/actor/settingplayer.s3d_actor_run @ 2330

Revision 2330, 12.0 KB checked in by igarcia, 17 years ago (diff)
Line 
1///////////////////////////////////////////////////////////////////////////////
2//
3//      ##  ######
4//       ######  ###
5//  ## ###############        Shark 3D Engine (www.shark3d.com)
6//   ########## # # #
7//    ########                Copyright (c) 1996-2007 Spinor GmbH.
8//   ######### # # #          All rights reserved.
9//  ##   ##########
10//      ##
11//
12///////////////////////////////////////////////////////////////////////////////
13
14// Definition of a player on the setting.
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 "settingplayer"
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 "levelplayer" "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 "net_traverse"
87                                targets
88                                    "levelplayer_netproduce"
89                                    "levelplayer_netappear"
90                                newcmd "traverse"
91                            }
92                            {
93                                cmds "net_appear"
94                                targets "reproduce"
95                                newcmd "rework"
96                            }
97                            {
98                                cmds "add_motion"
99                                targets "levelplayer"
100                            }
101                            {
102                                // Store the inform-actor in "inform":
103                                cmds "assign_inform" "set_inform"
104                                targets "inform_deleg"
105                                newcmd "set_deleg_target"
106                            }
107                            {
108                                cmds "assign_inform" "set_inform"
109                                targets "informanswer"
110                            }
111                            {
112                                // Refresh connection to setting-player.
113                                cmds "assign_inform"
114                                targets "levelplayer_refresh_charge"
115                                newcmd "perform"
116                            }
117                            {
118                                cmds "search_inform" "search_noinform"
119                                targets "informanswer"
120                            }
121                            {
122                                cmds "god" "goto_level_next" "goto_level_prev"
123                                    "special"
124                                // Delegate to the level-player:
125                                targets "levelplayer"
126                            }
127                        }
128                    }
129                    {
130                        ident "kit_base.dispatch"
131                        param
132                        {
133                            name "dispatch"
134                            entry_array
135                            {
136                                cmds "levelplayer_pre"
137                                targets
138                            }
139                            {
140                                cmds "levelplayer_post"
141                                targets
142                            }
143                        }
144                    }
145                    {
146                        // Dispatcher for commands from the level player:
147                        ident "kit_base.dispatch"
148                        param
149                        {
150                            name "dispatch_inform"
151                            entry_array
152                            {
153                                cmds
154                                    "set_gfxmgr_level"
155                                    "set_sndmgr_level"
156                                    "set_state_world"
157                                    "set_state_sky"
158                                    "set_sim_world"
159                                    "set_noise_world"
160                                    "set_sensorstate_world"
161                                    "set_camera"
162                                    "set_playerbody"
163                                targets "inform"
164                            }
165                            {
166                                cmds "reproduce"
167                                targets "levelplayer_netproduce"
168                            }
169                        }
170                    }
171                    {
172                        ident "kit_base.deleg"
173                        param
174                        {
175                            name "inform_deleg"
176                            deleg_name "inform"
177                            deleg_target ""
178                            allow_no_target 1
179                            enabled 1
180                        }
181                    }
182                    {
183                        ident "kit_engobj.informanswer"
184                        param
185                        {
186                            name "informanswer"
187                            answer_cmd "add_result"
188                            answer_actor "capsule_deleg"
189                        }
190                    }
191                    {
192                        ident "kit_engobj.informmgr"
193                        param
194                        {
195                            name "levelplayer_informmgr"
196                            //
197                            deleg_name "levelplayer"
198                            // The inform-actor. A level player sends
199                            // its commands to this actor:
200                            inform "dispatch_inform"
201                            ignore_no_charge 1
202                            // Recip about level-player changes.
203                            notify_target "dispatch"
204                            notify_pre_cmd "levelplayer_pre"
205                            notify_post_cmd "levelplayer_post"
206                            // If no level player exists, this command is sent
207                            // to this actor to get a player in a level.
208                            produce_target "^level"
209                            produce_cmd "produce_player"
210                        }
211                    }
212                    {
213                        ident "kit_base.paramvoid"
214                        param
215                        {
216                            name "levelplayer_refresh_charge"
217                            target "levelplayer_informmgr"
218                            cmd "refresh_charge"
219                        }
220                    }
221                    {
222                        ident "kit_engbase.netproducer"
223                        param
224                        {
225                            name "levelplayer_netproduce"
226                            produce_target "levelplayer_informmgr"
227                            produce_cmd "produce_charge"
228                            net_traverse_cmd "net_traverse"
229                            created_local_cmd "created_local"
230                            created_net_cmd "created_net"
231                        }
232                    }
233                    {
234                        ident "kit_engbase.netappear"
235                        param
236                        {
237                            name "levelplayer_netappear"
238                            appear_target "levelplayer"
239                            appear_cmd "net_appear"
240                        }
241                    }
242                    {
243                        ident "kit_engobj.fetch"
244                        param
245                        {
246                            name "levelplayer_fetch"
247                            query_target "levelplayer_informmgr"
248                            query_cmd "get_charge"
249                            produce_target "levelplayer_netproduce"
250                            produce_cmd "produce"
251                            produce_report_target ""
252                            produce_report_cmd ""
253                            enum_target ""
254                            enum_cmd ""
255                            enum_report_target ""
256                            enum_report_cmd ""
257                        }
258                    }
259                    {
260                        ident "kit_engbase.netreproduce"
261                        param
262                        {
263                            name "reproduce"
264                            producer "inform"
265                            charge "capsule_deleg"
266                            reproduce_cmd "reproduce"
267                        }
268                    }                   
269                    {
270                        ident "kit_snk.childif"
271                        param
272                        {
273                            extcfg_actor "^setting_cfg"
274                            extcfg_entry_switch "server"
275                            then_child_ident "kit_base.onaction"
276                            then_child_param
277                            {
278                                // Check if a new player must be created.
279                                active 1
280                                name "check_levelplayer_onaction"
281                                target "levelplayer_fetch"
282                                cmd "check_produce_charge"
283                            }
284                        }
285                    }
286                   
287                }
288            }
289        }
290    }
291}
Note: See TracBrowser for help on using the repository browser.