[[en:tutomakeobj3#objects|Come back to objects]] ====== Vehicles ====== ===== Essential parameters ===== This is the parameters for a vehicle : |**Parameter \\ ** |**Description** |**Content \\ ** |**Example \\ ** | |obj |object type |vehicle || |name |name |text |SNFOS_Aero_front | |[[en:tutowaytype|waytype]] |way type |internal name |maglev_track | |cost |price (%%*%%100c) |number |5000000 | |weight |weight (t) |number |35 | |runningcost |running cost (0,01c/km) |number |90 | |[[en:tutoenginetype|engine_type]] |energy used |internal name |fuel_cell | |speed |max speed (km/h) |number |550 | |[[en:tutogoods|freight]] |freight content |internal name |Passagiere | |payload |quantity of content |number |65 | |power |power (kw) |number |4200 | |[[en:tutovehicle#gear|gear]] |gear (%%*%%0,01) |number |100 | |intro_year |introduction year |number |2019 | |intro_month |introduction month |number |11 | |retire_year |retire year |number |2039 | |retire_month |retire month |number |11 | |[[en:tutosmoke|smoke]] |smoke |internal name |steam | |[[en:tutosound|sound]] |sound at starting |see below |0 | |length |length of the vehicle |number |8 | |copyright |name of the creator |text |Gauthier | |[[en:tutovehicle#Constraint|Constraint]] |see below |||| ===== Png and dat pattern ===== A vehicle's picture needs eight pictures : one for each direction of the vehicle (North, North-East, East, South-East, South, etc ...). Symmetrical vehicles would have same pictures twice (same North and South for example). Vehicles can have different length : each length unit is four pixels in Noth, South, East and West pictures. For diagonal pictures it's a decimal number so the two extremities of the pattern chosen for a defined length will be on each other. This is the graphical pattern :\\ {{ fr:tuto:dat:tramevehicle.png }}The default length is 8 (32 pixels in straight views) if you don't define it in the .dat file. On this pattern, each length is made of a different grey, to use this pattern, take the necessary line according to the way type, delete, thanks to replace color tool and playing on the tolerance, the greys until the right length of the vehicle. The pink unit is the default length (8). The light grey is the front of the vehicle. The background of this picture is the trensparency color for Simutrans. For suspended monorails, the pattern doesn't show the base of the vehicle but its roof. This is the .dat pattern according to the graphical pattern above. obj=vehicle \\ name= \\ waytype= \\ cost= \\ runningcost= \\ engine_type= \\ speed= \\ freight=none \\ payload=0 \\ power=0 \\ gear=100 \\ copyright= \\ \\ intro_year=1800 \\ intro_month=1 \\ retire_year=2999 \\ retire_month=1 \\ \\ smoke=-1 \\ sound=-1 \\ length=8 \\ \\ emptyimage[N]=source.0.0 \\ emptyimage[NE]=source.0.1 \\ emptyimage[E]=source.0.2 \\ emptyimage[SE]=source.0.3 \\ emptyimage[S]=source.0.4 \\ emptyimage[SW]=source.0.5 \\ emptyimage[W]=source.0.6 \\ emptyimage[NW]=source.0.7 ==== gear ==== Gear, given as percentage in .dat files, is used to modify vehicles'power. The real power of a vehicle in game, i.e. what fixes its ability to accelerate, is the product of power and gear. real power = power * gear Why not to put directly the product power * gear in the power parameter ? When reproducing real life vehicles, real life power is used as in game power. However, this power might be unfit to the game so gear is used to adjust it. Moreover, the power given by an engine is not exactly proportionnal to the acceleration of the vehicle, there are plenty of other parameters to take into account, especially when the power indicated for a real vehicle (an electric loc for example) is its consumed power and not its output power. Example: a 800 kW powered vehicle is reproduced in game but this power does not fit, the vehicle is underpowered. Then a gear over 100 (1) is added, for instance 130 (1,30). ==== Constraint ==== This parameter defines which vehicle can be placed before and which vehicle can be placed after a vehicle. If it's not defined, the vehicle can be placed before or after any vehicle witheout constraints. There's one possible vehicle per line, a constraint line is written as this (example) : Constraint[Prev][0]=none Prev : vehicle can be placed before Next : vehicle can be placed after 0,1,2,3,… : it's necessary to order constraints Prev and Next by giving them a number, example : Constraint[Prev][0]=vehicle1 \\ Constraint[Prev][1]=vehicle2 \\ Constraint[Prev][2]=vehicle3 \\ Constraint[Next][0]=vehicle4 The content can be the name of a vehicle (the name of the paramter "name" of the chosen vehicle) or "none" so nothing can be put before or after the vehicle. "none" must be written at last of Prev or Next constraints. Makeobj stops reading constraints when it reaches "none" so if there are other constraints written after, they won't be taken into account. If a vehicle has no "none" in its Prev (or Next) constraints, then players will have to place a vehicle before (or after) this one. For a vehicle to be put after another, the first vehicle must be in Constraint[Prev] of the second one which must be in the constraint[Next] of the first one. Example of constraint (SNCF_z22500_ZRBx_front) Constraint[Prev][0]=SNCF_z22500_ZRBx_rear\\ Constraint[Prev][1]=none\\ Constraint[Next][0]=SNCF_z22500_ZBx_ZAB ===== Vehicle with freight images ===== Some vehicles, almost freight ones, have a different picture when they are empty or loaded. This is the necessary parameters, for example with two different freight images for two different goods : freightimagetype[0]=good1\\ freightimagetype[1]=good2 \\ freightimage[0][S]=image.x.2\\ freightimage[0][E]=image.x.0\\ freightimage[0][SE]=image.x.1\\ freightimage[0][SW]=image.x.3\\ freightimage[0][N]=image.x.4\\ freightimage[0][W]=image.x.6\\ freightimage[0][NW]=image.x.5\\ freightimage[0][NE]=image.x.7 \\ freightimage[1][S]=image.x².2\\ freightimage[1][E]=image.x².0\\ freightimage[1][SE]=image.x².1\\ freightimage[1][SW]=image.x².3\\ freightimage[1][N]=image.x².4\\ freightimage[1][W]=image.x².6\\ freightimage[1][NW]=image.x².5\\ freightimage[1][NE]=image.x².7 First goods are defined using their internal names. The used number is put in brackets. Then the graphical pattern of the base picture of a vehicle can be used here if you use freightimage[n°] instead of EmptyImage. In the example below, freightimage[0] are for the vehicle loaded with good1 and freightimage[1] is for the vehicle loaded with good2. x and x² are the number of the lines of these pictures. Example with bullk wagons of Cirrus : EmptyImage[S]=cirrus.8.2\\ EmptyImage[E]=cirrus.8.0\\ EmptyImage[SE]=cirrus.8.1\\ EmptyImage[SW]=cirrus.8.3\\ EmptyImage[N]=cirrus.8.4\\ EmptyImage[W]=cirrus.8.6\\ EmptyImage[NW]=cirrus.8.5\\ EmptyImage[NE]=cirrus.8.7\\ freightimagetype[0]=Kohle\\ freightimagetype[1]=Eisenerz\\ freightimagetype[2]=Stone\\ freightimagetype[3]=Sand\\ freightimagetype[4]=fertilizer\\ freightimagetype[5]=waste\\ freightimage[0][S]=cirrus.11.2\\ freightimage[0][E]=cirrus.11.0\\ freightimage[0][SE]=cirrus.11.1\\ freightimage[0][SW]=cirrus.11.3\\ freightimage[0][N]=cirrus.11.4\\ freightimage[0][W]=cirrus.11.6\\ freightimage[0][NW]=cirrus.11.5\\ freightimage[0][NE]=cirrus.11.7\\ freightimage[1][S]=cirrus.9.2\\ freightimage[1][E]=cirrus.9.0\\ freightimage[1][SE]=cirrus.9.1\\ freightimage[1][SW]=cirrus.9.3\\ freightimage[1][N]=cirrus.9.4\\ freightimage[1][W]=cirrus.9.6\\ freightimage[1][NW]=cirrus.9.5\\ freightimage[1][NE]=cirrus.9.7\\ freightimage[2][S]=cirrus.12.2\\ freightimage[2][E]=cirrus.12.0\\ freightimage[2][SE]=cirrus.12.1\\ freightimage[2][SW]=cirrus.12.3\\ freightimage[2][N]=cirrus.12.4\\ freightimage[2][W]=cirrus.12.6\\ freightimage[2][NW]=cirrus.12.5\\ freightimage[2][NE]=cirrus.12.7\\ freightimage[3][S]=cirrus.10.2\\ freightimage[3][E]=cirrus.10.0\\ freightimage[3][SE]=cirrus.10.1\\ freightimage[3][SW]=cirrus.10.3\\ freightimage[3][N]=cirrus.10.4\\ freightimage[3][W]=cirrus.10.6\\ freightimage[3][NW]=cirrus.10.5\\ freightimage[3][NE]=cirrus.10.7\\ freightimage[4][S]=cirrus.10.2\\ freightimage[4][E]=cirrus.10.0\\ freightimage[4][SE]=cirrus.10.1\\ freightimage[4][SW]=cirrus.10.3\\ freightimage[4][N]=cirrus.10.4\\ freightimage[4][W]=cirrus.10.6\\ freightimage[4][NW]=cirrus.10.5\\ freightimage[4][NE]=cirrus.10.7\\ freightimage[5][S]=cirrus.11.2\\ freightimage[5][E]=cirrus.11.0\\ freightimage[5][SE]=cirrus.11.1\\ freightimage[5][SW]=cirrus.11.3\\ freightimage[5][N]=cirrus.11.4\\ freightimage[5][W]=cirrus.11.6\\ freightimage[5][NW]=cirrus.11.5\\ freightimage[5][NE]=cirrus.11.7 ===== Step by step vehicle ===== As a practical example, we are going to remake the electric multiple unit Etat 1001. Here is an extract of its source picture:{{ fr:tuto:dat:vehicule01.png }}We have to use the graphical pattern given above. As Etat 1001 is a train, the right line to use is "track/tram". Select it precisely on the pattern and make a new picture with it, name it "Etat1001.png". Here is this picture:{{ fr:tuto:dat:vehicule02.png }}Remove the red lines at top and bottom and remove the text "track/tram". Then, since length of Etat 1001 is 10, remove the units in excess to get only 10 length units. The pattern is made of grey shades so it is easy to remove units in excess with the color replacing tool of photofiltre. [[en:tutophotofiltre#replace_color|Replace a color in photofiltre]] {{ fr:tuto:dat:vehicule03.png }}Removing units in excess is done easily by adjusting tolerance.{{ fr:tuto:dat:vehicule04.png }} To make it more convenient, it is advised to replace remaining pattern with a simple color (which will also be easy to remove once the vehicle is placed). The magic wand is used with tolerance 0, on the background. Then, invert selection to get only the pattern, and hit delete after having selected red as secondary color. You must also have selection smoothing set to none. [[en:tutophotofiltre#the_magic_wand_tool|Photofiltre tools (magic wand)]] [[en:tutophotofiltre#selection_antialisasing|Selection smoothing (antialiasing) in photofiltre.]] So we get a usable pattern for a 10-length train:{{ fr:tuto:dat:vehicule05.png }}All we have to do is placing out images on the pattern like this: {{ fr:tuto:dat:vehicule06.png }}Obviously, I used transparency so you can see exactly where to place the images, but don't use it when placing yours. Then, we have to delete pattern pieces in excess with the color replacing tool:{{ fr:tuto:dat:vehicule07.png }}In this case, the image has only one line because this example has only one vehicle. However, many trains are composed of several vehicles. One can put as much lines as needed in an image provided his computer can handle it. For instance, z50000's source picture has eight lines. Let's finish up with the .dat file of this train ! First, make the graphical part of the .dat after the pattern seen above. Replace the right parts, knowing that our image is named Etat1001.png and that the line with the vehicle is the line number 0 (the first one): emptyimage[N]=Etat1001.0.0 \\ emptyimage[NE]=Etat1001.0.1 \\ emptyimage[E]=Etat1001.0.2 \\ emptyimage[SE]=Etat1001.0.3 \\ emptyimage[S]=Etat1001.0.4 \\ emptyimage[SW]=Etat1001.0.5 \\ emptyimage[W]=Etat1001.0.6 \\ emptyimage[NW]=Etat1001.0.7 Then, add data of Etat 1001. About constraints: it is a EMU, so player can place either another Etat 1001 or nothing, both before and after it. obj=vehicle \\ name=Etat_1001 \\ waytype=track \\ cost=15072000 \\ runningcost=389 \\ engine_type=electric \\ speed=70 \\ freight=Passagiere \\ payload=116 \\ power=346 \\ gear=100 \\ \\ intro_year=1913 \\ intro_month=5 \\ retire_year=1938 \\ retire_month=12 \\ length=10 \\ \\ Constraint[Prev][0]=Etat_1001 \\ Constraint[Prev][1]=none \\ Constraint[Next][0]=Etat_1001 \\ Constraint[Next][1]=none \\ \\ emptyimage[N]=Etat1001.0.0 \\ emptyimage[NE]=Etat1001.0.1 \\ emptyimage[E]=Etat1001.0.2 \\ emptyimage[SE]=Etat1001.0.3 \\ emptyimage[S]=Etat1001.0.4 \\ emptyimage[SW]=Etat1001.0.5 \\ emptyimage[W]=Etat1001.0.6 \\ emptyimage[NW]=Etat1001.0.7 To make the propelled vehicle of a trainset (like TGV) in the passengers tab of depots, add freight=passagiere in the dat. As well, to make a electric multiple unit's carriage appear in the electric tab, add engine_type=electric in its dat. [[en:tutomakeobj3#objects|Come back to objects]]