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 | // Creates several dragon instances.
|
---|
15 |
|
---|
16 | func public void initActor()
|
---|
17 |
|
---|
18 | var actor producer = findActor( getParamStr( "producer" ) );
|
---|
19 |
|
---|
20 | var float baseX = getParamFloat( "base_x" );
|
---|
21 | var float baseY = getParamFloat( "base_y" );
|
---|
22 | var float baseZ = getParamFloat( "base_z" );
|
---|
23 | var float stepXX = getParamFloat( "step_xx" );
|
---|
24 | var float stepXY = getParamFloat( "step_xy" );
|
---|
25 | var float stepXZ = getParamFloat( "step_xz" );
|
---|
26 | var float stepYX = getParamFloat( "step_yx" );
|
---|
27 | var float stepYY = getParamFloat( "step_yy" );
|
---|
28 | var float stepYZ = getParamFloat( "step_yz" );
|
---|
29 | var float stepZX = getParamFloat( "step_zx" );
|
---|
30 | var float stepZY = getParamFloat( "step_zy" );
|
---|
31 | var float stepZZ = getParamFloat( "step_zz" );
|
---|
32 | var int minX = getParamInt( "min_x" );
|
---|
33 | var int minY = getParamInt( "min_y" );
|
---|
34 | var int minZ = getParamInt( "min_z" );
|
---|
35 | var int maxX = getParamInt( "max_x" );
|
---|
36 | var int maxY = getParamInt( "max_y" );
|
---|
37 | var int maxZ = getParamInt( "max_z" );
|
---|
38 |
|
---|
39 | var int iX, iY, iZ;
|
---|
40 | for iX = minX to maxX do
|
---|
41 | for iY = minY to maxY do
|
---|
42 | for iZ = minZ to maxZ do
|
---|
43 | var float x = baseX + stepXX * iX.toFloat()
|
---|
44 | + stepXY * iY.toFloat()
|
---|
45 | + stepXZ * iZ.toFloat();
|
---|
46 | var float y = baseY + stepYX * iX.toFloat()
|
---|
47 | + stepYY * iY.toFloat()
|
---|
48 | + stepYZ * iZ.toFloat();
|
---|
49 | var float z = baseZ + stepZX * iX.toFloat()
|
---|
50 | + stepZY * iY.toFloat()
|
---|
51 | + stepZZ * iZ.toFloat();
|
---|
52 |
|
---|
53 | var actor dragon = producer ^ actor produce();
|
---|
54 | dragon ^ set_transf_transl_xyz( x, y, z );
|
---|
55 | end
|
---|
56 | end
|
---|
57 | end
|
---|
58 | end
|
---|
59 |
|
---|
60 | // Script shutdown:
|
---|
61 | func public void finishActor()
|
---|
62 | end
|
---|