News:

Simutrans.com Portal
Our Simutrans site. You can find everything about Simutrans from here.

Content creation for pak192.comic

Started by Leartin, February 03, 2016, 06:40:03 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Leartin

This thread will shed some light on how stuff gets done in pak192.comic. There are a lot of templates and guidelines to use - or not. Really, this is just how we do things/want things to be done. You can do everything completely different if you want - but it is nice if everything fits together a bit.

The pak192.comic team will eventually add, remove and edit information here to keep everybody updated of new guidelines and templates, if you have any questions you can always create a new thread in our sub-forum.

Citybuilding-Guide
Citybuildings are probably the most well-defined part of the pakset. At least the guidelines are - it is not applied yet, but will be in V0.5
name
Simutrans has a replacement functionality based on the name of objects. It looks at the start of the name for the type of citybuilding (res, ind, com) and at the end for the level. If a building is missing while loading a saved game, it will be replaced by a building of same type and level if available. We make use of that ability - but we go a step beyond that.
Ever heard of Germans obsession about organization? If not carefully groomed, it grows into something like our citybuilding naming guidelines. Take a look at this:

[type(res, ind, com)]_cl[index of climate(0=desert-6=arctic)]_C[clusters]?_E[epoch(0,I,II,III,IV,V,VI,VII)]_[index(00-99)]_[level(1,3,5,7,9,12,15,18,20,23,27,30)]

Isn't it wonderful? Yes - we pretty much compress most information about a building in it's name. In doing so, Addons can easily replace buildings and take over a climate completely, rather than just adding, which would always look strange. Each part of the naming convention will be explained as follows:
type
There are three types of citybuildings - res, ind, com. Not much to say about that here.

climate
Each building belongs to exactly one climate. If the same building exists in several climates, it will be several seperate objects with the same (or very similar) graphics. That's the end goal anyway.
Since the development team lives in the German area, our climate zones split both Germany and Europe. It looks like this:

cl0: desert
Desert is used at sea level, that's why it is in the pakset. Nothing grows there currently, but I have plans if I ever have too much time... har...
For buildings in desert, you only need one season - "dry" season so to speak. Though an occasional cactus might bloom for only one season, whichever the creator chooses.

cl1: tropic
Until this post, this climate zone did not exist. I wedged it in solely for our indonesian friends to use. It will have a similar ground to the already existing mediterran one in this slot.
Please do not create four seasons for buildings here. Instead, create dry season for spring and summer, and rainy season" for fall and winter. A snow graphic should still exist, just in case someone sets the snowline very low.

cl2: mediterran
The only German mediterran province is Mallorca...
The main influence for that climate will be italy, and it will have an olive hue to it. You might want to reference the vinyard as a comparison. However, it is not yet populated.
(If anyone wants to do China and Japan, I would recommend this climate to do so)

cl3: temperate - (northsea)
This climate is centered around Hamburg, were two of our top pixel artists are from - Flemmbrav and Alex. This is one of the two "playable" climates, mostly populated with buildings made by Alex. Because of that, it's his style one should use for any building in that area, especially the roofs. Since I wedged in the "tropic" climate, Britain is now under Hamburgian rule.

cl4: tundra - (eastern Europe)
While this zone is very empty, it is probably the one that gets created right after alps and northsea. At least, it would make sense to have those three to play the game with.

cl5: rocky - (alps)
You might wonder why the alps stretch so far to the east... probably because I am a proud Austrian who'd like to pretend we are still a habsburgian monarchy, and everything after that never happened... but for real, I guess it is not too far of a stretch to assume at least somewhat similar culture and building styles.
Since this is my land, I mostly create buildings for that climate zone, so my style is dominant.
If creating Addons, use this climate for everything supposed to be mountainous.

cl6: arctic - (nordic)
Up in the north in eternal snow... again, this is just a conceptual climate, not something we would already create.
Since it's a "snow desert", buildings in this area don't require seasons.

clusters
clusters can be used to heighten the chance two buildings of the same cluster will be buildt next to each other. Use it carefully, since clusters don't stack (it only checks once whether one cluster is the same, it does not heighten the chance if more clusters are the same)

Used ids so far:
C1 - row/terraced house*
C3 - brick row/terraced house**
C4 - row/terraced house of better areas**

C10 - Parks
C11 - allotment
C12 - Plaza

*there is a template for all row/terraced houses to use.
**currently unique to NorthSea

Epoch
We use German Model Railway Epochs to set time periods. Each building should be marked as belonging to the Epoch it first appears in. If there is no clear introduction date, use the beginning of an Epoch.

Epoche 0: before 1835.
Epoche I: 1835 to 1920
Epoche II: 1920 to 1950
Epoche III: 1950 to 1970
Epoche IV: 1970 to 1990
Epoche V: 1990 to 2005
Epoche VI: 2005 to ...
Epoche VII: Futuristic stuff

Index
Just an index, if every other characteristic was the same. Would be last, if the game would not interpret it as level there.

level
There are 12 levels in 6 "Stufen".

Stufe 1: Level 1 (for buildings not always occupied (allotment,...))
Stufe 2: Level 3&5 (single family house)
Stufe 3: Level 7&9 (two families house - so two to three floors)
Stufe 4: Level 12&15 (city buildings)
Stufe 5: Level 18&20 (high city buildings)
Stufe 6: Level 23,27,30 (skyscraper)

do not use any levels but those 12. They will mess up city generation.

Chance
Quite often, there are a few variations of the same building. All together should not have a higher chance then 100.

Seasons
As mentioned, seasons depend on the climate. While there is only one option for desert and arctic, all other climates require several seasons. pak192.comic makes use of all five seasons, and if there is any amount of plants on your building, you should as well. However, buildings without any plants or similar season-dependant attire may have only two seasons (normal + snow)

Examples and Resources
Keep in mind: Pak192.comic is published under CC-BY-SA 3.0 (or higher). Using the following resources, you need to publish your own creation under the same or compatible licenses. That being said, there is an additional agreement to allow dropping the name of the original author of parts that are insignificant or common among many objects of the pakset. This is because otherwise, each object would have many many authors, some which would contribute only a few pixels.
For example: Almost every citybuilding uses the sidewalk, which was made by me. Many Buildings feature trees, which were made by Alex. But neither me nor Alex is named as the author of these things, since it's insignificant, and we are named as authors of the tree object and the sidewalk object respectively, which is enough to make clear were it comes from.
However, Alex created a hedge, and I made a hedgemaze mostly by copy-pasting Alex's hedge. Thus, I named him as an author as well, since it was mostly his work.
As long as you publish your creations under CC-BY-SA 3.0 (or higher), we are not particularly picky about credits, in doubt "pak192c-Team" is fine. And if it is not fine because you only slightly altered someone else original work, worst case you'll have to add the credit later.

Common Resources
There are a few common resources most buildings share. Let's start with the most important one: The sidewalk:


Use it as a common ground for your buildings if you don't want to have anything specific. Using this ensures buildings will fit well together. Of course, there is no obligation. Especially smaller countryside buildings often don't have any ground and use the grass underneath for a garden of some sorts, often enclosed by fences, walls or hedges. Like these:

Notice the color palette next to the hedge? Hedges are affected by seasons, so if you include hedges in your building, you will have to make five season graphics. To get the hedges in spring, fall and winter, just replace the 5 colors of the hedge with the five colors corresponding with the seasons according to the palette. Such a palette swap is easy to do in any graphics program and one reason why it might be a good idea to restrict yourself to only a few colors.

Another very common element are streetlights:

As you can see, they all look very similar. As usual you are not obligated to use these designs, but it helps to get a coherent feel within the pakset.


Plants can be especially nervewrecking since you usually need to have 5 seasons for them. Using premade plants just to decorate the garden can come in very handy.


Smoke can be added in snowy winter as an animated frontimage, using offset to put it above the chimney. Since it is always the same smoke graphic, simutrans only has to hold three slots in memory for the smoke - or six, since there is a darker version for industrial buildings or pope elections. You will see how to use it in the dat examples below.

Examples
This is a simple residential building:
obj=building
name=res_cl5_E0_01_03
copyright=Leartin
intro_year=1800
type=res
chance=20
level=3
needs_ground=1
climates=rocky
BackImage[0][0][0][0][0][0]=./images/res/alpine/03_E0_01.0.1
BackImage[0][0][0][0][0][1]=./images/res/alpine/03_E0_01.0.2
BackImage[0][0][0][0][0][2]=./images/res/alpine/03_E0_01.0.3
BackImage[0][0][0][0][0][3]=./images/res/alpine/03_E0_01.0.0
BackImage[0][0][0][0][0][4]=./images/res/alpine/03_E0_01.0.4
FrontImage[0][0][0][0][0][4]=./images/smoke_l.0.0,-3,50
FrontImage[0][0][0][0][1][4]=./images/smoke_l.0.1,-3,50
FrontImage[0][0][0][0][2][4]=./images/smoke_l.0.2,-3,50


It uses five seasons and a front image animation for the smoke. This is the "easier" version of buildings you can create - much more complex are rowhouses. A typical rowhouse looks like this:

obj=building
name=res_cl3_C3_E6_01_09
copyright=Flemmbrav
intro_month=6
intro_year=2015
type=res
Chance=100
level=9
needs_ground=1
climates=mediterran, temperate
dims=1,1,8
clusters=3

BackImage[7][0][0][1][0][0]=images/res/northsea/C3/2015_Stadtparkquartier_4.0.0
BackImage[7][0][0][0][0][0]=images/res/northsea/C3/2015_Stadtparkquartier_4.1.0
BackImage[6][0][0][1][0][0]=images/res/northsea/C3/2015_Stadtparkquartier_4.0.1
BackImage[6][0][0][0][0][0]=images/res/northsea/C3/2015_Stadtparkquartier_4.1.1
BackImage[5][0][0][1][0][0]=images/res/northsea/C3/2015_Stadtparkquartier_4.0.2
BackImage[5][0][0][0][0][0]=images/res/northsea/C3/2015_Stadtparkquartier_4.1.2

BackImage[0][0][0][1][0][0]=images/res/northsea/C3/2015_Stadtparkquartier_4.2.0
BackImage[0][0][0][0][0][0]=images/res/northsea/C3/2015_Stadtparkquartier_4.3.0
BackImage[2][0][0][1][0][0]=images/res/northsea/C3/2015_Stadtparkquartier_4.2.0
BackImage[2][0][0][0][0][0]=images/res/northsea/C3/2015_Stadtparkquartier_4.3.0
BackImage[4][0][0][1][0][0]=images/res/northsea/C3/2015_Stadtparkquartier_4.2.1
BackImage[4][0][0][0][0][0]=images/res/northsea/C3/2015_Stadtparkquartier_4.3.1
BackImage[1][0][0][1][0][0]=images/res/northsea/C3/2015_Stadtparkquartier_4.2.2
BackImage[1][0][0][0][0][0]=images/res/northsea/C3/2015_Stadtparkquartier_4.3.2
BackImage[3][0][0][1][0][0]=images/res/northsea/C3/2015_Stadtparkquartier_4.2.2
BackImage[3][0][0][0][0][0]=images/res/northsea/C3/2015_Stadtparkquartier_4.3.2

BackImage[7][0][0][1][0][1]=images/res/northsea/C3/2015_Stadtparkquartier_4.0.0
BackImage[7][0][0][0][0][1]=images/res/northsea/C3/2015_Stadtparkquartier_4.1.0
BackImage[6][0][0][1][0][1]=images/res/northsea/C3/2015_Stadtparkquartier_4.0.1
BackImage[6][0][0][0][0][1]=images/res/northsea/C3/2015_Stadtparkquartier_4.1.1
BackImage[5][0][0][1][0][1]=images/res/northsea/C3/2015_Stadtparkquartier_4.0.2
BackImage[5][0][0][0][0][1]=images/res/northsea/C3/2015_Stadtparkquartier_4.1.2

BackImage[0][0][0][1][0][1]=images/res/northsea/C3/2015_Stadtparkquartier_4.2.0
BackImage[0][0][0][0][0][1]=images/res/northsea/C3/2015_Stadtparkquartier_4.3.0
BackImage[2][0][0][1][0][1]=images/res/northsea/C3/2015_Stadtparkquartier_4.2.0
BackImage[2][0][0][0][0][1]=images/res/northsea/C3/2015_Stadtparkquartier_4.3.0
BackImage[4][0][0][1][0][1]=images/res/northsea/C3/2015_Stadtparkquartier_4.2.1
BackImage[4][0][0][0][0][1]=images/res/northsea/C3/2015_Stadtparkquartier_4.3.1
BackImage[1][0][0][1][0][1]=images/res/northsea/C3/2015_Stadtparkquartier_4.2.2
BackImage[1][0][0][0][0][1]=images/res/northsea/C3/2015_Stadtparkquartier_4.3.2
BackImage[3][0][0][1][0][1]=images/res/northsea/C3/2015_Stadtparkquartier_4.2.2
BackImage[3][0][0][0][0][1]=images/res/northsea/C3/2015_Stadtparkquartier_4.3.2

BackImage[7][0][0][1][0][2]=images/res/northsea/C3/2015_Stadtparkquartier_4.0.0
BackImage[7][0][0][0][0][2]=images/res/northsea/C3/2015_Stadtparkquartier_4.1.0
BackImage[6][0][0][1][0][2]=images/res/northsea/C3/2015_Stadtparkquartier_4.0.1
BackImage[6][0][0][0][0][2]=images/res/northsea/C3/2015_Stadtparkquartier_4.1.1
BackImage[5][0][0][1][0][2]=images/res/northsea/C3/2015_Stadtparkquartier_4.0.2
BackImage[5][0][0][0][0][2]=images/res/northsea/C3/2015_Stadtparkquartier_4.1.2

BackImage[0][0][0][1][0][2]=images/res/northsea/C3/2015_Stadtparkquartier_4.2.0
BackImage[0][0][0][0][0][2]=images/res/northsea/C3/2015_Stadtparkquartier_4.3.0
BackImage[2][0][0][1][0][2]=images/res/northsea/C3/2015_Stadtparkquartier_4.2.0
BackImage[2][0][0][0][0][2]=images/res/northsea/C3/2015_Stadtparkquartier_4.3.0
BackImage[4][0][0][1][0][2]=images/res/northsea/C3/2015_Stadtparkquartier_4.2.1
BackImage[4][0][0][0][0][2]=images/res/northsea/C3/2015_Stadtparkquartier_4.3.1
BackImage[1][0][0][1][0][2]=images/res/northsea/C3/2015_Stadtparkquartier_4.2.2
BackImage[1][0][0][0][0][2]=images/res/northsea/C3/2015_Stadtparkquartier_4.3.2
BackImage[3][0][0][1][0][2]=images/res/northsea/C3/2015_Stadtparkquartier_4.2.2
BackImage[3][0][0][0][0][2]=images/res/northsea/C3/2015_Stadtparkquartier_4.3.2

BackImage[7][0][0][1][0][3]=images/res/northsea/C3/2015_Stadtparkquartier_4.0.0
BackImage[7][0][0][0][0][3]=images/res/northsea/C3/2015_Stadtparkquartier_4.1.0
BackImage[6][0][0][1][0][3]=images/res/northsea/C3/2015_Stadtparkquartier_4.0.1
BackImage[6][0][0][0][0][3]=images/res/northsea/C3/2015_Stadtparkquartier_4.1.1
BackImage[5][0][0][1][0][3]=images/res/northsea/C3/2015_Stadtparkquartier_4.0.2
BackImage[5][0][0][0][0][3]=images/res/northsea/C3/2015_Stadtparkquartier_4.1.2

BackImage[0][0][0][1][0][3]=images/res/northsea/C3/2015_Stadtparkquartier_4.2.0
BackImage[0][0][0][0][0][3]=images/res/northsea/C3/2015_Stadtparkquartier_4.3.0
BackImage[2][0][0][1][0][3]=images/res/northsea/C3/2015_Stadtparkquartier_4.2.0
BackImage[2][0][0][0][0][3]=images/res/northsea/C3/2015_Stadtparkquartier_4.3.0
BackImage[4][0][0][1][0][3]=images/res/northsea/C3/2015_Stadtparkquartier_4.2.1
BackImage[4][0][0][0][0][3]=images/res/northsea/C3/2015_Stadtparkquartier_4.3.1
BackImage[1][0][0][1][0][3]=images/res/northsea/C3/2015_Stadtparkquartier_4.2.2
BackImage[1][0][0][0][0][3]=images/res/northsea/C3/2015_Stadtparkquartier_4.3.2
BackImage[3][0][0][1][0][3]=images/res/northsea/C3/2015_Stadtparkquartier_4.2.2
BackImage[3][0][0][0][0][3]=images/res/northsea/C3/2015_Stadtparkquartier_4.3.2


BackImage[7][0][0][1][0][4]=images/res/northsea/C3/2015_Stadtparkquartier_4.0.3
BackImage[7][0][0][0][0][4]=images/res/northsea/C3/2015_Stadtparkquartier_4.1.3
BackImage[6][0][0][1][0][4]=images/res/northsea/C3/2015_Stadtparkquartier_4.0.4
BackImage[6][0][0][0][0][4]=images/res/northsea/C3/2015_Stadtparkquartier_4.1.4
BackImage[5][0][0][1][0][4]=images/res/northsea/C3/2015_Stadtparkquartier_4.0.5
BackImage[5][0][0][0][0][4]=images/res/northsea/C3/2015_Stadtparkquartier_4.1.5

BackImage[0][0][0][1][0][4]=images/res/northsea/C3/2015_Stadtparkquartier_4.2.3
BackImage[0][0][0][0][0][4]=images/res/northsea/C3/2015_Stadtparkquartier_4.3.3
BackImage[2][0][0][1][0][4]=images/res/northsea/C3/2015_Stadtparkquartier_4.2.3
BackImage[2][0][0][0][0][4]=images/res/northsea/C3/2015_Stadtparkquartier_4.3.3
BackImage[4][0][0][1][0][4]=images/res/northsea/C3/2015_Stadtparkquartier_4.2.4
BackImage[4][0][0][0][0][4]=images/res/northsea/C3/2015_Stadtparkquartier_4.3.4
BackImage[1][0][0][1][0][4]=images/res/northsea/C3/2015_Stadtparkquartier_4.2.5
BackImage[1][0][0][0][0][4]=images/res/northsea/C3/2015_Stadtparkquartier_4.3.5
BackImage[3][0][0][1][0][4]=images/res/northsea/C3/2015_Stadtparkquartier_4.2.5
BackImage[3][0][0][0][0][4]=images/res/northsea/C3/2015_Stadtparkquartier_4.3.5


Frontimage[7][0][0][0][0][0]=images/Stadtgruen_1.0.0
Frontimage[6][0][0][0][0][0]=images/Stadtgruen_1.0.1
Frontimage[5][0][0][0][0][0]=images/Stadtgruen_1.0.2
Frontimage[0][0][0][0][0][0]=images/Stadtgruen_1.0.3
Frontimage[2][0][0][0][0][0]=images/Stadtgruen_1.0.3
Frontimage[4][0][0][0][0][0]=images/Stadtgruen_1.0.4
Frontimage[1][0][0][0][0][0]=images/Stadtgruen_1.0.5
Frontimage[3][0][0][0][0][0]=images/Stadtgruen_1.0.5

Frontimage[7][0][0][0][0][1]=images/Stadtgruen_1.3.0
Frontimage[6][0][0][0][0][1]=images/Stadtgruen_1.3.1
Frontimage[5][0][0][0][0][1]=images/Stadtgruen_1.3.2
Frontimage[0][0][0][0][0][1]=images/Stadtgruen_1.3.3
Frontimage[2][0][0][0][0][1]=images/Stadtgruen_1.3.3
Frontimage[4][0][0][0][0][1]=images/Stadtgruen_1.3.4
Frontimage[1][0][0][0][0][1]=images/Stadtgruen_1.3.5
Frontimage[3][0][0][0][0][1]=images/Stadtgruen_1.3.5

Frontimage[7][0][0][0][0][2]=images/Stadtgruen_1.4.0
Frontimage[6][0][0][0][0][2]=images/Stadtgruen_1.4.1
Frontimage[5][0][0][0][0][2]=images/Stadtgruen_1.4.2
Frontimage[0][0][0][0][0][2]=images/Stadtgruen_1.4.3
Frontimage[2][0][0][0][0][2]=images/Stadtgruen_1.4.3
Frontimage[4][0][0][0][0][2]=images/Stadtgruen_1.4.4
Frontimage[1][0][0][0][0][2]=images/Stadtgruen_1.4.5
Frontimage[3][0][0][0][0][2]=images/Stadtgruen_1.4.5

Frontimage[7][0][0][0][0][3]=images/Stadtgruen_1.2.0
Frontimage[6][0][0][0][0][3]=images/Stadtgruen_1.2.1
Frontimage[5][0][0][0][0][3]=images/Stadtgruen_1.2.2
Frontimage[0][0][0][0][0][3]=images/Stadtgruen_1.2.3
Frontimage[2][0][0][0][0][3]=images/Stadtgruen_1.2.3
Frontimage[4][0][0][0][0][3]=images/Stadtgruen_1.2.4
Frontimage[1][0][0][0][0][3]=images/Stadtgruen_1.2.5
Frontimage[3][0][0][0][0][3]=images/Stadtgruen_1.2.5

Frontimage[7][0][0][0][0][4]=images/smoke_l.0.0,-2,-25
Frontimage[7][0][0][0][1][4]=images/smoke_l.0.1,-2,-25
Frontimage[7][0][0][0][2][4]=images/smoke_l.0.2,-2,-25
Frontimage[6][0][0][0][0][4]=images/smoke_l.0.0,-2,-25
Frontimage[6][0][0][0][1][4]=images/smoke_l.0.1,-2,-25
Frontimage[6][0][0][0][2][4]=images/smoke_l.0.2,-2,-25
Frontimage[5][0][0][0][0][4]=images/smoke_l.0.0,-2,-25
Frontimage[5][0][0][0][1][4]=images/smoke_l.0.1,-2,-25
Frontimage[5][0][0][0][2][4]=images/smoke_l.0.2,-2,-25
Frontimage[0][0][0][0][0][4]=images/smoke_l.0.0,-2,-25
Frontimage[0][0][0][0][1][4]=images/smoke_l.0.1,-2,-25
Frontimage[0][0][0][0][2][4]=images/smoke_l.0.2,-2,-25
Frontimage[2][0][0][0][0][4]=images/smoke_l.0.0,-2,-25
Frontimage[2][0][0][0][1][4]=images/smoke_l.0.1,-2,-25
Frontimage[2][0][0][0][2][4]=images/smoke_l.0.2,-2,-25
Frontimage[4][0][0][0][0][4]=images/smoke_l.0.0,-2,-25
Frontimage[4][0][0][0][1][4]=images/smoke_l.0.1,-2,-25
Frontimage[4][0][0][0][2][4]=images/smoke_l.0.2,-2,-25
Frontimage[1][0][0][0][0][4]=images/smoke_l.0.0,-2,-25
Frontimage[1][0][0][0][1][4]=images/smoke_l.0.1,-2,-25
Frontimage[1][0][0][0][2][4]=images/smoke_l.0.2,-2,-25
Frontimage[3][0][0][0][0][4]=images/smoke_l.0.0,-2,-25
Frontimage[3][0][0][0][1][4]=images/smoke_l.0.1,-2,-25
Frontimage[3][0][0][0][2][4]=images/smoke_l.0.2,-2,-25
-----

...and you thought the naming of building was complex...
This is advanced stuff. Luckily, as long as you use the same positions in your pngs, you can just copy this dat and change the linked graphics. The Graphic sheets look like this:



The seasons are banished to the frontimage and several similar buildings use the same plants. This again reduces the amount of images in memory of the game.

Finally, a template for rowhouses (though without the common plants)

Leartin

#1
Station-Guide
Each way needs it's own type of station. While the code is pretty much the same, the visuals are not. In addition to stations, station buildings exist - they are very similar to citybuilding, so let's go over them first.

station buildings
Pax station buildings are similar to normal citybuildings in their overall design, though we don't restrict the climates in which they can be buildt, even if they are designed for a specific climates style.
Industrial station buildings don't use the sidewalk graphic as a ground, but an industrial ground. It looks like this:


Mail station buildings can be represented in two ways, either as a public post office similar to pax station, or as a backyard mail storage hall like industrial buildings. You might allow mail to be stored in pax or industrial stations, if the visuals make sense. For example, a big multitile railway station can be expected to have a post office with mail storage somewhere inside, and a storage hall can store mail parcels. An oil tank or the stairway to an underground station cannot.

icon
In pak192.comic, Icons are only 27pixels high. This is due to the colorcoded stripe on the bottom of the icon, which is in the background of the icon.
In almost all cases, Icons are drawn in one-point perspective projection. For station buildings, this practically means you show the front face of the building due to the limits of what you can show with so few pixels. There are also three indicators for goods, mail and pax you are supposed to put in the upper right corner of the icon.


You might wonder why some of these icons have a strange pattern in the lower 3 pixels. This is essentially a relict from differentiation between station buildings for railways, roads etc. - with the introduction of the building menu, we abolished any differentiation, so currently all buildings appear only in the building menu.
If you set a waytype for your station, it will appear in the menu of that waytype AND in the building menu, but after extensions without waytype.

Cursor
Like the Icon, the cursor is drawn in one-point perspective projection. However, unlike the small 32x27 icon, cursors can get quite big, and thus quite a lot of work to draw - especially considering how seldom you will see them in comparison to the isometric game graphics and the icons.
Because of that, there is a communist symbol of crossed hammer and sickle that can be used as a stand-in.  :o Wait, what? Oh, it's hammer and wrench...  ;D
However, unlike the smoke for building which should always stay as a seperate image, it is recommanded to embody the hammer&wrench in the png for the station building, so it can be replaced by a more fitting graphic at a later point without changing the dat file.


As a matter of fact, this is the only station building cursor I can show right now, since there is no other cursor currently made...

Example
Obj=building
name=Fachwerkbahnhof
copyright=PappeTeeMaster
intro_month=1
intro_year=1900
type=extension
capacity=500
cost=500000
maintenance=75000
enables_post=1
enables_pax=1
noinfo=1
icon=> ./buildings/Fachwerkbahnhof_menu.0.0
cursor=./buildings/Fachwerkbahnhof_menu.0.1
Dims=2,1,2
BackImage[1][0][0][0][0][0]=./buildings/Fachwerkbahnhof.0.3
BackImage[1][1][0][0][0][0]=./buildings/Fachwerkbahnhof.0.2
BackImage[0][0][0][0][0][0]=./buildings/Fachwerkbahnhof.0.0
BackImage[0][0][1][0][0][0]=./buildings/Fachwerkbahnhof.0.1
BackImage[1][0][0][0][0][1]=./buildings/Fachwerkbahnhof.1.3
BackImage[1][1][0][0][0][1]=./buildings/Fachwerkbahnhof.1.2
BackImage[0][0][0][0][0][1]=./buildings/Fachwerkbahnhof.1.0
BackImage[0][0][1][0][0][1]=./buildings/Fachwerkbahnhof.1.1
-----


There is not much to see here, really. It's worth noting that our station buildings in general use "noinfo=1", this is so clicking on them will always result in the station overview rather than informations to exactly that building. Also, "Fachwerkbahnhof_menu" was not included here, it only contains icon and cursor, both of which you can get above.

There is currently no formula for cost, capacity and maintenance of a station building, we currently just assign something that seems reasonable and see how it works out. Since there are not too many station buildings in the pakset, this worked so far - we are experimenting with it, though, and I will edit it in here once we are done. Until then, just go with anything that seems reasonable in comparison to existing stations.

harbours & docks
Harbours are stations for ships at sea which require a sloped coast. Docks are the same as harbours but for flat coasts of lakes. In a channel, ships use normal stations, just like every other waytype.
We currently don't have any docks, but they will look quite similar to harbours.

Harbours use these base tiles:


Harbours have four directions and four different states of neighbours, as well as a snowy graphic. Therefore, each harbour needs at least 32 images.
However, using the base harbour as backimage, you can place your own harbour design on top of it as a frontimage. Thus reducing the image count for each single harbour to 8 (possibly even less) - See how this works using this example:
Obj=building
Name=dock_goods01
copyright=Leartin
type=harbour
enables_ware=1
Level=1
intro_year = 1821
intro_month = 1
Dims=1,1,16
NoInfo=1
icon=> ./water/dock_goods01.1.4
cursor=./water/dock_goods01.0.4

BackImage[0][0][0][0][0][0]=./water/dock_basic_summer.2.3
BackImage[1][0][0][0][0][0]=./water/dock_basic_summer.2.2
BackImage[2][0][0][0][0][0]=./water/dock_basic_summer.3.3
BackImage[3][0][0][0][0][0]=./water/dock_basic_summer.3.2
BackImage[4][0][0][0][0][0]=./water/dock_basic_summer.1.3
BackImage[5][0][0][0][0][0]=./water/dock_basic_summer.1.2
BackImage[6][0][0][0][0][0]=./water/dock_basic_summer.0.3
BackImage[7][0][0][0][0][0]=./water/dock_basic_summer.0.2

BackImage[8][0][0][0][0][0]=./water/dock_basic_summer.2.0
BackImage[9][0][0][0][0][0]=./water/dock_basic_summer.2.1
BackImage[10][0][0][0][0][0]=./water/dock_basic_summer.1.0
BackImage[11][0][0][0][0][0]=./water/dock_basic_summer.1.1
BackImage[12][0][0][0][0][0]=./water/dock_basic_summer.3.0
BackImage[13][0][0][0][0][0]=./water/dock_basic_summer.3.1
BackImage[14][0][0][0][0][0]=./water/dock_basic_summer.0.0
BackImage[15][0][0][0][0][0]=./water/dock_basic_summer.0.1

FrontImage[0][0][0][0][0][0]=./water/dock_goods01.0.3
FrontImage[1][0][0][0][0][0]=./water/dock_goods01.0.2
FrontImage[2][0][0][0][0][0]=./water/dock_goods01.0.3
FrontImage[3][0][0][0][0][0]=./water/dock_goods01.0.2
FrontImage[4][0][0][0][0][0]=./water/dock_goods01.0.3
FrontImage[5][0][0][0][0][0]=./water/dock_goods01.0.2
FrontImage[6][0][0][0][0][0]=./water/dock_goods01.0.3
FrontImage[7][0][0][0][0][0]=./water/dock_goods01.0.2
FrontImage[8][0][0][0][0][0]=./water/dock_goods01.0.0
FrontImage[9][0][0][0][0][0]=./water/dock_goods01.0.1
FrontImage[10][0][0][0][0][0]=./water/dock_goods01.0.0
FrontImage[11][0][0][0][0][0]=./water/dock_goods01.0.1
FrontImage[12][0][0][0][0][0]=./water/dock_goods01.0.0
FrontImage[13][0][0][0][0][0]=./water/dock_goods01.0.1
FrontImage[14][0][0][0][0][0]=./water/dock_goods01.0.0
FrontImage[15][0][0][0][0][0]=./water/dock_goods01.0.1


BackImage[0][0][0][0][0][1]=./water/dock_basic_winter.2.3
BackImage[1][0][0][0][0][1]=./water/dock_basic_winter.2.2
BackImage[2][0][0][0][0][1]=./water/dock_basic_winter.3.3
BackImage[3][0][0][0][0][1]=./water/dock_basic_winter.3.2
BackImage[4][0][0][0][0][1]=./water/dock_basic_winter.1.3
BackImage[5][0][0][0][0][1]=./water/dock_basic_winter.1.2
BackImage[6][0][0][0][0][1]=./water/dock_basic_winter.0.3
BackImage[7][0][0][0][0][1]=./water/dock_basic_winter.0.2

BackImage[8][0][0][0][0][1]=./water/dock_basic_winter.2.0
BackImage[9][0][0][0][0][1]=./water/dock_basic_winter.2.1
BackImage[10][0][0][0][0][1]=./water/dock_basic_winter.1.0
BackImage[11][0][0][0][0][1]=./water/dock_basic_winter.1.1
BackImage[12][0][0][0][0][1]=./water/dock_basic_winter.3.0
BackImage[13][0][0][0][0][1]=./water/dock_basic_winter.3.1
BackImage[14][0][0][0][0][1]=./water/dock_basic_winter.0.0
BackImage[15][0][0][0][0][1]=./water/dock_basic_winter.0.1

FrontImage[0][0][0][0][0][1]=./water/dock_goods01.1.3
FrontImage[1][0][0][0][0][1]=./water/dock_goods01.1.2
FrontImage[2][0][0][0][0][1]=./water/dock_goods01.1.3
FrontImage[3][0][0][0][0][1]=./water/dock_goods01.1.2
FrontImage[4][0][0][0][0][1]=./water/dock_goods01.1.3
FrontImage[5][0][0][0][0][1]=./water/dock_goods01.1.2
FrontImage[6][0][0][0][0][1]=./water/dock_goods01.1.3
FrontImage[7][0][0][0][0][1]=./water/dock_goods01.1.2
FrontImage[8][0][0][0][0][1]=./water/dock_goods01.1.0
FrontImage[9][0][0][0][0][1]=./water/dock_goods01.1.1
FrontImage[10][0][0][0][0][1]=./water/dock_goods01.1.0
FrontImage[11][0][0][0][0][1]=./water/dock_goods01.1.1
FrontImage[12][0][0][0][0][1]=./water/dock_goods01.1.0
FrontImage[13][0][0][0][0][1]=./water/dock_goods01.1.1
FrontImage[14][0][0][0][0][1]=./water/dock_goods01.1.0
FrontImage[15][0][0][0][0][1]=./water/dock_goods01.1.1



I can't stress enough not to be afraid of such long dat files, since you only need to replace the image names (using search&replace in any text editor) and base your graphics on the examples structure.

Harbours can extend out in the water. At a later point in time (as soon as I made it essentially) there will be a base graphic available for that as well.