====== III.Source files ====== Latest update of this tutorial: Simutrans 120.0.1 ===== 1.How does it work ? ===== A Simutrans'object is composed of (most of the time) pictures for display and datas for technical datas of the object. The datas are just written in a simple text file (.txt) but saved with the extension .dat. Easy to do it : when saving your file, replace the .txt extension by a .dat extension. To open your .dat files you have to adjust your computer to open these files with the text editor (notepad with windows). This an example with windows :\\ {{ fr:tuto:dat:fichiersource01.png }}Inside the text you can write parameters one after each other but you'd rather write them one below each other for a better aspect. You can put several objects in the .dat file if you separate them with dashes. for example : Parameters of the first object — Parameters of the second object Pictures have other constraints depending on the pakset you create for. The picture must be saved as 24 bits .png (Photofiltre save in 24 bits by default), makeobj can only read .png and if it's a 32 bits .png (with a transparency layer) you'll have a graphical glitch. The dimensions of your pictures must be multiples of the pakset's size. If it's pak128, pictures will 1024%%*%%256 or 768%%*%%512 for example. If you create for pak64 you'll have pictures of 128%%*%%64 or 192%%*%%384 for example, etc ... If the size isn't right, makeobj will crash. You have to know how the source pictures work. The following things is ajusted for pak128, for other paksets you have to change the sizes. The picture is cut in 128%%*%%128 pixels squares (so the picture must have dimensions multiple of 128). This is an example of a source picture part (here is the source picture of the AMT) :{{ fr:tuto:dat:fichiersource02.png }}Of course don't draw red shpaes on the source picture, I did so to show you the squares. Then you'll have to define the squares in the .dat file. Coordinates are used, the first for lines and the second for columns. See here in the same picture : {{ fr:tuto:dat:fichiersource03.png }}You'd rather paractice now with coordinates, mistakes occur frequently for a beginner. The .dat file parameters and the corresponding pictures can be different but can be also very repetitive if you often create the same type of objects, so I will give you graphical shapes and .dat shapes for you to make your files easier, objects will be described one by one. A picture is defined in a .dat file as this : internal_id_of_the_picture=name_of_the_picture_witheout_the_extension.line.column example : imageUp[3]=AMT.3.3 the picture used for imageUp[3] is the square on the intersection of the fourth line and the fourth column of AMT.png. Graphical shapes given here are made for the standard pak128, there can be differences with the other pak128. These graphical shapes are made for .dat shapes given with, be careful if you modify the position of objects… In .dat files, every parameter is written as here : parameter=value Every number is integer. The text respects shift. To make a comment in a .dat file, begin the commented lines with a # ===== 2.Offset ===== The offset allows you to move the picture in some situations. This technic must be used only in necessary situations, it musn't be used instead of the moving directly the graphics on the picture. How to use the offset : id_picture=name_picture.line.column,x,y x is the number of pixels to the right and y is the number of pixels to the bottom. In the example below, the picture is moved of 16 pixels to the top. cursor=SNFOSstationsmodern.1.7,0,-16 The icons and the [-] view of ways don't support offset. ===== 3.Angle of slopes ===== Since Simutrans 120, slopes can be of two different heights. Some paksets use full and half slopes, some other paksets use full and double slopes. Pak128 use half slopes. In this pakset, most ways cannot be built on hard slopes, such as tracks and highways. In pak128, soft slopes are 16 pixels high and hard slopes are 32 pixels high. ===== 4.Icons (buttons) ===== Objects which need icons have something like that on their graphical pattern: {{ fr:tuto:dat:icon.png }} Images of icons must contain only the 16 by 16 pixels square at top left of this image, everything else must be removed, otherwise there would be display errors in game. The elements around the icon itself are specific to pak128, they are used in its icons. ===== 5.Cursors ===== On graphical patterns of objects needing a cursor, the tile used to place the cursor is higher than the bottom of the square which it is placed in. This is intended to compensate an offset downward applied by the game. ===== 6.Examples of source files ===== You will find example of source files for all kinds of objects in each pakset's repository. [[http://svn.code.sf.net/p/simutrans/code/pak128/|Sources of pak128]] ===== 7.Using your notepad ===== ==== 1.Windows ==== Under windows, simple text editors such as notepad or notepad++ are used. You cannot use text processing programs like Word or Writer. It's accessible in the start menu%%\%%programs%%\%%accessories%%\%%notepad. The useful tools of notepad are the research tool and the replace tool that you find in the edition menu. These tools are accessible via the keyboard shortcuts ctrl+f and ctrl+h Be careful using the tool “replace” if you use the icon “replace all”, it can modify some text parts which aren't supposed to be. Finally, to save a source file for Simutrans, replace the default extension ”.txt” by the extension ”.dat”. ==== 2.Linux ==== Linux has many text editors. They often depend on the release, or on the installed desktop manager. The best thing to do is to see the documentation given with your text editor to know its keyboard shortcuts. Some examples : Gedit, Kate, Leafpad… I deal with text editors, not with text treatment softwares. OpenOffice writer isn't made for this use ! To save a source file for Simutrans, the process is the same as windows, you just have to use the extension ".dat" for the file. Be careful, if you work on linux and windows, the wrap symbols aren't the same on the two OS. A file created on the one can be strangely displayed on the other one. You'd rather work on only one OS if you don't know the conversion commands. ===== 8.Objects ===== [[en:tutovehicle|vehicles]] [[en:tutocitycar|citycars]] [[en:tutopedestrian|pedestrians]] [[en:tutoway|ways]] [[en:tutowayobject|way_objects]] [[en:tutobridge|bridges]] [[en:tutotunnel|tunnels]] [[en:tutosignal|signals]] [[en:tutostation|stations]] [[en:tutostationextension|station extensions]] [[en:tutodepot|depots]] [[en:tutobuilding|citybuildings, monuments, curiosities, etc ...]] [[en:tutoindustry|industries]] [[en:tutogood|goods]] [[en:tutocrossing|crossings (level crossings, etc ...)]] [[en:tutotree|trees]] [[en:tutosmoke2|smokes]] ===== 9.Related pages ===== graphics of buildings : [[en:tutobuilding2|Buildings'graphics]] waytype : [[en:tutowaytype|Possible waytypes]] engine_type : [[en:tutoenginetype|Energy of vehicles]] freight / goods : [[en:tutogoods|Goods of pak128]] smoke : [[en:tutosmoke|Smokes of pak128]] sound : [[en:tutosound|Souds of pak128]] system_type : [[en:tutosystemtype|Possible special parameters]] climates : [[en:tutoclimates|Climates in Simutrans]] next tutorial : [[en:tutomakeobj|Chapter IV : compile with makeobj]].