spriteset(grounds, "graphics/grounds.png") { concrete: template_grounds(0); cobble: template_grounds(1); dirt: template_grounds(2); } spriteset(platforms, "graphics/platforms.png") { concrete: template_platforms(0); cobble: template_platforms(1); dirt: template_platforms(2); } spriteset(buildings, "graphics/buildings.png") { small: template_buildings(0); large: template_buildings(1); } spriteset(little_cargoes, "graphics/cargoes.png") { template_cargoes(0, 0); template_cargoes(0, 1); // ... template_cargoes(0, 46); template_cargoes(0, 47); } spriteset(lots_cargoes, "graphics/cargoes.png") { template_cargoes(1, 0); template_cargoes(1, 1); // ... template_cargoes(1, 46); template_cargoes(1, 47); } spriteset(signals, "graphics/signals.png") { red: template_signals(0); yellow: template_signals(1); green: template_signals(2); } spritegroup cargoes { little: [little_cargoes]; lots: [lots_cargoes]; } spritelayout concrete_platform { ground { sprite: grounds(dirt + ground_variation); } building { sprite: platforms(concrete + platform_variation); index: [0, 2]; yextent: 4; } childsprite { sprite: buildings(small + building_variation); index: [0, 1]; } childsprite { sprite: cargoes(cargo_type + cargo_size); yoffset: 4; } childsprite { sprite: cargoes(cargo_type + cargo_size); xoffset: 8; yoffset: 8; } childsprite { sprite: cargoes(cargo_type + cargo_size); xoffset: 16; yoffset: 12; } childsprite { sprite: cargoes(cargo_type + cargo_size); xoffset: 24; yoffset: 16; } childsprite { sprite: signals(red); index: [0, 1]; xoffset: [0, 16]; hide_sprite: !red_signal; } childsprite { sprite: signals(yellow); index: [0, 1]; xoffset: [0, 16]; hide_sprite: !yellow_signal; } childsprite { sprite: signals(green); index: [0, 1]; xoffset: [0, 16]; hide_sprite: !green_signal; } building { sprite: platforms(concrete + platform_variation); index: [2, 4]; yoffset: 12; yextent: 4; } // Same idea as first building's childsprites } spritelayout cobble_platform { // Same idea as concrete_platform layout } spritelayout dirt_platform { // Same idea as concrete_platform layout } item(FEAT_STATIONS, concrete_station) { property { ... } graphics { concrete_platform; } } item(FEAT_STATIONS, cobble_station) { property { ... } graphics { cobble_platform; } } item(FEAT_STATIONS, dirt_station) { property { ... } graphics { dirt_platform; } } switch(FEAT_STATIONS, SELF, adaptation_switch, magic_expr_for_type) { 1: cobble_platform; 2: dirt_platform; concrete_platform; } item(FEAT_STATIONS, adaptive_station) { property { ... } graphics { adaptation_switch; } }