1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279 |
- local mod_name = "classic_coaches"
- local S = minetest.get_translator(mod_name)
- local use_advtrains_livery_designer = minetest.get_modpath( "advtrains_livery_designer" ) and advtrains_livery_designer
- local use_attachment_patch = advtrains_attachment_offset_patch and advtrains_attachment_offset_patch.setup_advtrains_wagon
- ----------------------------------------------------------------------------------------
- local function get_materials_minetest_game()
- return {
- base_game = "Minetest Game",
- bottle = minetest.get_modpath("vessels") and "vessels:glass_bottle" or "default:glass",
- door_steel = minetest.get_modpath("doors") and "doors:trapdoor_steel" or "default:steel_ingot",
- dye_grey = "dye:grey",
- glass = "default:glass",
- goldblock = "default:goldblock",
- steel_ingot = "default:steel_ingot",
- steelblock = "default:steelblock",
- wheel = "advtrains:wheel",
- wool_blue = minetest.get_modpath("wool") and "wool:blue" or "dye:blue",
- wool_cyan = minetest.get_modpath("wool") and "wool:cyan" or "dye:cyan",
- }
- end
- local function get_materials_mineclonia()
- return {
- base_game = "Mineclonia",
- bottle = minetest.get_modpath("mcl_potions") and "mcl_potions:glass_bottle" or "mcl_core:glass",
- door_steel = minetest.get_modpath("mcl_doors") and "mcl_doors:iron_door" or "mcl_core:iron_ingot",
- dye_grey = "mcl_dyes:grey",
- glass = "mcl_core:glass",
- goldblock = "mcl_core:goldblock",
- steel_ingot = "mcl_core:iron_ingot",
- steelblock = "mcl_core:ironblock",
- wheel = "advtrains:wheel",
- wool_blue = minetest.get_modpath("mcl_wool") and "mcl_wool:blue" or "mcl_dyes:blue",
- wool_cyan = minetest.get_modpath("mcl_wool") and "mcl_wool:cyan" or "mcl_dyes:cyan",
- }
- end
- local function get_materials_voxelibre()
- return {
- base_game = "VoxeLibre/MineClone2",
- bottle = minetest.get_modpath("mcl_potions") and "mcl_potions:glass_bottle" or "mcl_core:glass",
- door_steel = minetest.get_modpath("mcl_doors") and "mcl_doors:iron_door" or "mcl_core:iron_ingot",
- dye_grey = "mcl_dye:grey",
- glass = "mcl_core:glass",
- goldblock = "mcl_core:goldblock",
- steel_ingot = "mcl_core:iron_ingot",
- steelblock = "mcl_core:ironblock",
- wheel = "advtrains:wheel",
- wool_blue = minetest.get_modpath("mcl_wool") and "mcl_wool:blue" or "mcl_dye:blue",
- wool_cyan = minetest.get_modpath("mcl_wool") and "mcl_wool:cyan" or "mcl_dye:cyan",
- }
- end
- local function get_materials_farlands_reloaded()
- return {
- base_game = "Farlands Reloaded",
- bottle = minetest.get_modpath("fl_bottles") and "fl_bottles:bottle" or "fl_glass:framed_glass",
- door_steel = minetest.get_modpath("fl_doors") and "fl_doors:steel_door_a" or "fl_ores:iron_ingot",
- dye_grey = "fl_dyes:grey_dye",
- glass = "fl_glass:framed_glass",
- goldblock = "fl_ores:gold_block",
- steel_ingot = "fl_ores:iron_ingot",
- steelblock = "fl_ores:iron_block",
- wheel = "advtrains:wheel",
- wool_blue = "fl_dyes:blue_dye", -- farlands handles wool color via param 2 so use dye instead.
- wool_cyan = "fl_dyes:cyan_dye", -- farlands handles wool color via param 2 so use dye instead.
- }
- end
- local function get_materials_hades_revisited()
- return {
- base_game = "Hades Revisited",
- bottle = minetest.get_modpath("hades_vessels") and "hades_vessels:glass_bottle" or "hades_core:glass",
- door_steel = minetest.get_modpath("hades_doors") and "hades_doors:door_steel_a" or "hades_core:steel_ingot",
- dye_grey = "hades_dye:grey",
- glass = "hades_core:glass",
- goldblock = "hades_core:goldblock",
- steel_ingot = "hades_core:steel_ingot",
- steelblock = "hades_core:steelblock",
- wheel = "advtrains:wheel",
- wool_blue = minetest.get_modpath("hades_cloth") and "hades_cloth:blue" or "hades_dye:blue",
- wool_cyan = minetest.get_modpath("hades_cloth") and "hades_cloth:cyan" or "hades_dye:cyan",
- }
- end
- local function get_materials()
- if minetest.get_modpath("default") and minetest.get_modpath("dye") then
- return get_materials_minetest_game()
- end
- if minetest.get_modpath("mcl_core") and minetest.get_modpath("mcl_dyes") then
- return get_materials_mineclonia()
- end
- if minetest.get_modpath("mcl_core") and minetest.get_modpath("mcl_dye") then
- return get_materials_voxelibre()
- end
- if minetest.get_modpath("fl_dyes") and minetest.get_modpath("fl_glass") and minetest.get_modpath("fl_ores") then
- return get_materials_farlands_reloaded()
- end
- if minetest.get_modpath("hades_core") and minetest.get_modpath("hades_dye") then
- return get_materials_hades_revisited()
- end
- local unknown_material = "classic_coaches:unknown_material"
- return {
- bottle = unknown_material,
- door_steel = unknown_material,
- dye_grey = unknown_material,
- glass = unknown_material,
- goldblock = unknown_material,
- steel_ingot = unknown_material,
- steelblock = unknown_material,
- wheel = unknown_material,
- wool_blue = unknown_material,
- wool_cyan = unknown_material,
- }
- end
- local materials = get_materials()
- ----------------------------------------------------------------------------------------
- local default_roof_alpha = 230
- local default_seat_alpha = 245
- local default_wall_alpha = 253
- local wagons = {
- {
- wagon_type = "classic_coaches:corridor_coach_class1",
- mesh = "classic_coaches_corridor_coach_class1.b3d",
- textures = {"classic_coaches_corridor_coach_class1_001.png"},
- name = S("Intercity Corridor Coach Class 1"),
- inventory_image = "classic_coaches_corridor_coach_class1_inv.png",
- recipe = {
- {materials.goldblock},
- {'classic_coaches:corridor_coach_class2'},
- },
- },
- {
- wagon_type = "classic_coaches:corridor_coach_class2",
- mesh = "classic_coaches_corridor_coach_class2.b3d",
- textures = {"classic_coaches_corridor_coach_class2_001.png"},
- name = S("Intercity Corridor Coach Class 2"),
- inventory_image = "classic_coaches_corridor_coach_class2_inv.png",
- recipe = {
- {materials.steelblock, materials.dye_grey, materials.steelblock},
- {materials.glass, materials.wool_blue, materials.door_steel},
- {materials.wheel, materials.steelblock, materials.wheel},
- },
- },
- {
- wagon_type = "classic_coaches:open_coach_class1",
- mesh = "classic_coaches_open_coach_class1.b3d",
- textures = {"classic_coaches_open_coach_class1_001.png"},
- name = S("Intercity Open Coach Class 1"),
- inventory_image = "classic_coaches_open_coach_class1_inv.png",
- recipe = {
- {materials.goldblock},
- {'classic_coaches:open_coach_class2'},
- },
- },
- {
- wagon_type = "classic_coaches:open_coach_class2",
- mesh = "classic_coaches_open_coach_class2.b3d",
- textures = {"classic_coaches_open_coach_class2_001.png"},
- name = S("Intercity Open Coach Class 2"),
- inventory_image = "classic_coaches_open_coach_class2_inv.png",
- recipe = {
- {materials.steelblock, materials.dye_grey, materials.steelblock},
- {materials.glass, materials.wool_cyan, materials.door_steel},
- {materials.wheel, materials.steelblock, materials.wheel},
- },
- },
- {
- wagon_type = "classic_coaches:bistro_coach",
- mesh = "classic_coaches_bistro_coach.b3d",
- textures = {"classic_coaches_bistro_coach_001.png"},
- name = S("Intercity Bistro Coach"),
- inventory_image = "classic_coaches_bistro_coach_inv.png",
- recipe = {
- {materials.steelblock, materials.bottle, materials.steelblock},
- {materials.glass, materials.wool_cyan, materials.door_steel},
- {materials.wheel, materials.steelblock, materials.wheel},
- },
- },
- }
- local livery_template_names = {
- [1] = {name = S("CC Stripe"), notes = "The livery features a medium width stripe with embedded logo. A narrow divider stripe can be added."},
- [2] = {name = S("CC Intercity Stripe"), notes = "The livery features a medium width stripe with embedded logo and the word, 'intercity'. The side doors are colored differently by default."},
- [3] = {name = S("CC Edged Stripe"), notes = "The livery features a medium width stripe with embedded logo. The stripe's edges are colored differently by default."},
- [4] = {name = S("CC Window Band"), notes = "A wide band of color spans the widow area for the length of the wagon."},
- [5] = {name = S("CC Solid Color"), notes = "The wagon sides are a solid color without stripes or other decoration."},
- [6] = {name = S("CC Colored Roof"), notes = "The roof and the lower edge of the wagon sides are colored. A wide light grey band spans the widow area for the length of the wagon."},
- [7] = {name = S("CC Express"), notes = "Thin stripes and the word, 'Express' are shown on both sides of the wagon."},
- }
- local livery_templates = {
- ["classic_coaches:corridor_coach_class1"] = {
- [1] = {
- base_texture = "classic_coaches_corridor_coach_class1_001.png",
- overlays = {
- [1] = {name = S("Side Walls"), texture = "classic_coaches_overlay_001_class1_side_walls.png", alpha = default_wall_alpha},
- [2] = {name = S("Stripe"), texture = "classic_coaches_overlay_001_stripe.png", alpha = default_wall_alpha},
- [3] = {name = S("Stripe Divider"), texture = "classic_coaches_overlay_001_stripe_divider.png"},
- [4] = {name = S("Side Doors"), texture = "classic_coaches_overlay_side_doors.png", alpha = default_wall_alpha},
- [5] = {name = S("Class Number"), texture = "classic_coaches_overlay_class1_class_number.png"},
- },
- },
- [2] = {
- base_texture = "classic_coaches_corridor_coach_class1_002.png",
- overlays = {
- [1] = {name = S("Exterior Walls"), texture = "classic_coaches_overlay_002_class1_exterior_walls.png", alpha = default_wall_alpha},
- [2] = {name = S("Stripe"), texture = "classic_coaches_overlay_002_stripe.png", alpha = default_wall_alpha},
- [3] = {name = S("Service Stripe"), texture = "classic_coaches_overlay_service_stripe.png"},
- [4] = {name = S("Side Doors"), texture = "classic_coaches_overlay_side_doors.png", alpha = default_wall_alpha},
- [5] = {name = S("Class Number"), texture = "classic_coaches_overlay_class1_class_number.png"},
- },
- },
- [3] = {
- base_texture = "classic_coaches_corridor_coach_class1_003.png",
- overlays = {
- [1] = {name = S("Side Walls"), texture = "classic_coaches_overlay_003_side_walls.png", alpha = default_wall_alpha},
- [2] = {name = S("Stripe"), texture = "classic_coaches_overlay_003_stripe.png", alpha = default_wall_alpha},
- [3] = {name = S("Stripe Edges"), texture = "classic_coaches_overlay_003_stripe_edges.png"},
- [4] = {name = S("Logo"), texture = "classic_coaches_overlay_cc_logo_1.png"},
- [5] = {name = S("End Doors"), texture = "classic_coaches_overlay_end_doors.png", alpha = default_wall_alpha},
- },
- },
- [4] = {
- base_texture = "classic_coaches_corridor_coach_class1_004.png",
- overlays = {
- [1] = {name = S("Side Walls"), texture = "classic_coaches_overlay_004_side_walls.png", alpha = default_wall_alpha},
- [2] = {name = S("Window Band"), texture = "classic_coaches_overlay_004_class1_window_band.png", alpha = default_wall_alpha},
- [3] = {name = S("Decoration"), texture = "classic_coaches_overlay_004_decoration.png"},
- [4] = {name = S("Logo"), texture = "classic_coaches_overlay_cc_logo_2.png"},
- [5] = {name = S("Class Number"), texture = "classic_coaches_overlay_class1_class_number.png"},
- },
- },
- [5] = {
- base_texture = "classic_coaches_corridor_coach_class1_005.png",
- overlays = {
- [1] = {name = S("Side Walls"), texture = "classic_coaches_overlay_005_class1_side_walls.png", alpha = default_wall_alpha},
- [2] = {name = S("Seats"), texture = "classic_coaches_overlay_seats.png", alpha = default_seat_alpha},
- [3] = {name = S("Service Stripe"), texture = "classic_coaches_overlay_service_stripe.png"},
- [4] = {name = S("Logo"), texture = "classic_coaches_overlay_cc_logo_2.png"},
- [5] = {name = S("Class Number"), texture = "classic_coaches_overlay_class1_class_number.png"},
- },
- },
- [6] = {
- base_texture = "classic_coaches_corridor_coach_class1_006.png",
- overlays = {
- [1] = {name = S("Side Walls"), texture = "classic_coaches_overlay_006_side_walls.png", alpha = default_wall_alpha},
- [2] = {name = S("Roof"), texture = "classic_coaches_overlay_006_roof.png", alpha = default_roof_alpha},
- [3] = {name = S("Trim"), texture = "classic_coaches_overlay_006_trim.png"},
- [4] = {name = S("Logo"), texture = "classic_coaches_overlay_cc_logo_2.png"},
- [5] = {name = S("End Doors"), texture = "classic_coaches_overlay_end_doors.png", alpha = default_wall_alpha},
- },
- },
- [7] = {
- base_texture = "classic_coaches_corridor_coach_class1_007.png",
- overlays = {
- [1] = {name = S("Exterior Walls"), texture = "classic_coaches_overlay_007_class1_exterior_walls.png", alpha = default_wall_alpha},
- [2] = {name = S("Seats"), texture = "classic_coaches_overlay_seats.png", alpha = default_seat_alpha},
- [3] = {name = S("Decoration"), texture = "classic_coaches_overlay_007_decoration.png"},
- [4] = {name = S("Label"), texture = "classic_coaches_overlay_007_label.png"},
- [5] = {name = S("Class Number"), texture = "classic_coaches_overlay_class1_class_number.png"},
- [6] = {name = S("Logo and Text"), texture = "classic_coaches_overlay_007_logo_text.png"},
- },
- },
- },
- ["classic_coaches:corridor_coach_class2"] = {
- [1] = {
- base_texture = "classic_coaches_corridor_coach_class2_001.png",
- overlays = {
- [1] = {name = S("Side Walls"), texture = "classic_coaches_overlay_001_class2_side_walls.png", alpha = default_wall_alpha},
- [2] = {name = S("Stripe"), texture = "classic_coaches_overlay_001_stripe.png", alpha = default_wall_alpha},
- [3] = {name = S("Stripe Divider"), texture = "classic_coaches_overlay_001_stripe_divider.png"},
- [4] = {name = S("Side Doors"), texture = "classic_coaches_overlay_side_doors.png", alpha = default_wall_alpha},
- [5] = {name = S("Class Number"), texture = "classic_coaches_overlay_class2_class_number.png"},
- },
- },
- [2] = {
- base_texture = "classic_coaches_corridor_coach_class2_002.png",
- overlays = {
- [1] = {name = S("Exterior Walls"), texture = "classic_coaches_overlay_002_class2_exterior_walls.png", alpha = default_wall_alpha},
- [2] = {name = S("Stripe"), texture = "classic_coaches_overlay_002_stripe.png", alpha = default_wall_alpha},
- [3] = {name = S("Service Stripe"), texture = "classic_coaches_overlay_service_stripe.png"},
- [4] = {name = S("Side Doors"), texture = "classic_coaches_overlay_side_doors.png", alpha = default_wall_alpha},
- [5] = {name = S("Class Number"), texture = "classic_coaches_overlay_class2_class_number.png"},
- },
- },
- [3] = {
- base_texture = "classic_coaches_corridor_coach_class2_003.png",
- overlays = {
- [1] = {name = S("Side Walls"), texture = "classic_coaches_overlay_003_side_walls.png", alpha = default_wall_alpha},
- [2] = {name = S("Stripe"), texture = "classic_coaches_overlay_003_stripe.png", alpha = default_wall_alpha},
- [3] = {name = S("Stripe Edges"), texture = "classic_coaches_overlay_003_stripe_edges.png"},
- [4] = {name = S("Logo"), texture = "classic_coaches_overlay_cc_logo_1.png"},
- [5] = {name = S("End Doors"), texture = "classic_coaches_overlay_end_doors.png", alpha = default_wall_alpha},
- },
- },
- [4] = {
- base_texture = "classic_coaches_corridor_coach_class2_004.png",
- overlays = {
- [1] = {name = S("Side Walls"), texture = "classic_coaches_overlay_004_side_walls.png", alpha = default_wall_alpha},
- [2] = {name = S("Window Band"), texture = "classic_coaches_overlay_004_class2_window_band.png", alpha = default_wall_alpha},
- [3] = {name = S("Decoration"), texture = "classic_coaches_overlay_004_decoration.png"},
- [4] = {name = S("Logo"), texture = "classic_coaches_overlay_cc_logo_2.png"},
- [5] = {name = S("Class Number"), texture = "classic_coaches_overlay_class2_class_number.png"},
- },
- },
- [5] = {
- base_texture = "classic_coaches_corridor_coach_class2_005.png",
- overlays = {
- [1] = {name = S("Side Walls"), texture = "classic_coaches_overlay_005_class2_side_walls.png", alpha = default_wall_alpha},
- [2] = {name = S("Seats"), texture = "classic_coaches_overlay_seats.png", alpha = default_seat_alpha},
- [3] = {name = S("Service Stripe"), texture = "classic_coaches_overlay_service_stripe.png"},
- [4] = {name = S("Logo"), texture = "classic_coaches_overlay_cc_logo_2.png"},
- [5] = {name = S("Class Number"), texture = "classic_coaches_overlay_class2_class_number.png"},
- },
- },
- [6] = {
- base_texture = "classic_coaches_corridor_coach_class2_006.png",
- overlays = {
- [1] = {name = S("Side Walls"), texture = "classic_coaches_overlay_006_side_walls.png", alpha = default_wall_alpha},
- [2] = {name = S("Roof"), texture = "classic_coaches_overlay_006_roof.png", alpha = default_roof_alpha},
- [3] = {name = S("Trim"), texture = "classic_coaches_overlay_006_trim.png"},
- [4] = {name = S("Logo"), texture = "classic_coaches_overlay_cc_logo_2.png"},
- [5] = {name = S("End Doors"), texture = "classic_coaches_overlay_end_doors.png", alpha = default_wall_alpha},
- },
- },
- [7] = {
- base_texture = "classic_coaches_corridor_coach_class2_007.png",
- overlays = {
- [1] = {name = S("Exterior Walls"), texture = "classic_coaches_overlay_007_class2_exterior_walls.png", alpha = default_wall_alpha},
- [2] = {name = S("Seats"), texture = "classic_coaches_overlay_seats.png", alpha = default_seat_alpha},
- [3] = {name = S("Decoration"), texture = "classic_coaches_overlay_007_decoration.png"},
- [4] = {name = S("Label"), texture = "classic_coaches_overlay_007_label.png"},
- [5] = {name = S("Class Number"), texture = "classic_coaches_overlay_class2_class_number.png"},
- [6] = {name = S("Logo and Text"), texture = "classic_coaches_overlay_007_logo_text.png"},
- },
- },
- },
- ["classic_coaches:open_coach_class1"] = {
- [1] = {
- base_texture = "classic_coaches_open_coach_class1_001.png",
- overlays = {
- [1] = {name = S("Side Walls"), texture = "classic_coaches_overlay_001_class1_side_walls.png", alpha = default_wall_alpha},
- [2] = {name = S("Stripe"), texture = "classic_coaches_overlay_001_stripe.png", alpha = default_wall_alpha},
- [3] = {name = S("Stripe Divider"), texture = "classic_coaches_overlay_001_stripe_divider.png"},
- [4] = {name = S("Side Doors"), texture = "classic_coaches_overlay_side_doors.png", alpha = default_wall_alpha},
- [5] = {name = S("Class Number"), texture = "classic_coaches_overlay_class1_class_number.png"},
- },
- },
- [2] = {
- base_texture = "classic_coaches_open_coach_class1_002.png",
- overlays = {
- [1] = {name = S("Exterior Walls"), texture = "classic_coaches_overlay_002_class1_exterior_walls.png", alpha = default_wall_alpha},
- [2] = {name = S("Stripe"), texture = "classic_coaches_overlay_002_stripe.png", alpha = default_wall_alpha},
- [3] = {name = S("Service Stripe"), texture = "classic_coaches_overlay_service_stripe.png"},
- [4] = {name = S("Side Doors"), texture = "classic_coaches_overlay_side_doors.png", alpha = default_wall_alpha},
- [5] = {name = S("Class Number"), texture = "classic_coaches_overlay_class1_class_number.png"},
- },
- },
- [3] = {
- base_texture = "classic_coaches_open_coach_class1_003.png",
- overlays = {
- [1] = {name = S("Side Walls"), texture = "classic_coaches_overlay_003_side_walls.png", alpha = default_wall_alpha},
- [2] = {name = S("Stripe"), texture = "classic_coaches_overlay_003_stripe.png", alpha = default_wall_alpha},
- [3] = {name = S("Stripe Edges"), texture = "classic_coaches_overlay_003_stripe_edges.png"},
- [4] = {name = S("Logo"), texture = "classic_coaches_overlay_cc_logo_1.png"},
- [5] = {name = S("End Doors"), texture = "classic_coaches_overlay_end_doors.png", alpha = default_wall_alpha},
- },
- },
- [4] = {
- base_texture = "classic_coaches_open_coach_class1_004.png",
- overlays = {
- [1] = {name = S("Side Walls"), texture = "classic_coaches_overlay_004_side_walls.png", alpha = default_wall_alpha},
- [2] = {name = S("Window Band"), texture = "classic_coaches_overlay_004_class1_window_band.png", alpha = default_wall_alpha},
- [3] = {name = S("Decoration"), texture = "classic_coaches_overlay_004_decoration.png"},
- [4] = {name = S("Logo"), texture = "classic_coaches_overlay_cc_logo_2.png"},
- [5] = {name = S("Class Number"), texture = "classic_coaches_overlay_class1_class_number.png"},
- },
- },
- [5] = {
- base_texture = "classic_coaches_open_coach_class1_005.png",
- overlays = {
- [1] = {name = S("Side Walls"), texture = "classic_coaches_overlay_005_class1_side_walls.png", alpha = default_wall_alpha},
- [2] = {name = S("Seats"), texture = "classic_coaches_overlay_seats.png", alpha = default_seat_alpha},
- [3] = {name = S("Service Stripe"), texture = "classic_coaches_overlay_service_stripe.png"},
- [4] = {name = S("Logo"), texture = "classic_coaches_overlay_cc_logo_2.png"},
- [5] = {name = S("Class Number"), texture = "classic_coaches_overlay_class1_class_number.png"},
- },
- },
- [6] = {
- base_texture = "classic_coaches_open_coach_class1_006.png",
- overlays = {
- [1] = {name = S("Side Walls"), texture = "classic_coaches_overlay_006_side_walls.png", alpha = default_wall_alpha},
- [2] = {name = S("Roof"), texture = "classic_coaches_overlay_006_roof.png", alpha = default_roof_alpha},
- [3] = {name = S("Trim"), texture = "classic_coaches_overlay_006_trim.png"},
- [4] = {name = S("Logo"), texture = "classic_coaches_overlay_cc_logo_2.png"},
- [5] = {name = S("End Doors"), texture = "classic_coaches_overlay_end_doors.png", alpha = default_wall_alpha},
- },
- },
- [7] = {
- base_texture = "classic_coaches_open_coach_class1_007.png",
- overlays = {
- [1] = {name = S("Exterior Walls"), texture = "classic_coaches_overlay_007_class1_exterior_walls.png", alpha = default_wall_alpha},
- [2] = {name = S("Seats"), texture = "classic_coaches_overlay_seats.png", alpha = default_seat_alpha},
- [3] = {name = S("Decoration"), texture = "classic_coaches_overlay_007_decoration.png"},
- [4] = {name = S("Label"), texture = "classic_coaches_overlay_007_label.png"},
- [5] = {name = S("Class Number"), texture = "classic_coaches_overlay_class1_class_number.png"},
- [6] = {name = S("Logo and Text"), texture = "classic_coaches_overlay_007_logo_text.png"},
- },
- },
- },
- ["classic_coaches:open_coach_class2"] = {
- [1] = {
- base_texture = "classic_coaches_open_coach_class2_001.png",
- overlays = {
- [1] = {name = S("Side Walls"), texture = "classic_coaches_overlay_001_class2_side_walls.png", alpha = default_wall_alpha},
- [2] = {name = S("Stripe"), texture = "classic_coaches_overlay_001_stripe.png", alpha = default_wall_alpha},
- [3] = {name = S("Stripe Divider"), texture = "classic_coaches_overlay_001_stripe_divider.png"},
- [4] = {name = S("Side Doors"), texture = "classic_coaches_overlay_side_doors.png", alpha = default_wall_alpha},
- [5] = {name = S("Class Number"), texture = "classic_coaches_overlay_class2_class_number.png"},
- },
- },
- [2] = {
- base_texture = "classic_coaches_open_coach_class2_002.png",
- overlays = {
- [1] = {name = S("Exterior Walls"), texture = "classic_coaches_overlay_002_class2_exterior_walls.png", alpha = default_wall_alpha},
- [2] = {name = S("Stripe"), texture = "classic_coaches_overlay_002_stripe.png", alpha = default_wall_alpha},
- [3] = {name = S("Service Stripe"), texture = "classic_coaches_overlay_service_stripe.png"},
- [4] = {name = S("Side Doors"), texture = "classic_coaches_overlay_side_doors.png", alpha = default_wall_alpha},
- [5] = {name = S("Class Number"), texture = "classic_coaches_overlay_class2_class_number.png"},
- },
- },
- [3] = {
- base_texture = "classic_coaches_open_coach_class2_003.png",
- overlays = {
- [1] = {name = S("Side Walls"), texture = "classic_coaches_overlay_003_side_walls.png", alpha = default_wall_alpha},
- [2] = {name = S("Stripe"), texture = "classic_coaches_overlay_003_stripe.png", alpha = default_wall_alpha},
- [3] = {name = S("Stripe Edges"), texture = "classic_coaches_overlay_003_stripe_edges.png"},
- [4] = {name = S("Logo"), texture = "classic_coaches_overlay_cc_logo_1.png"},
- [5] = {name = S("End Doors"), texture = "classic_coaches_overlay_end_doors.png", alpha = default_wall_alpha},
- },
- },
- [4] = {
- base_texture = "classic_coaches_open_coach_class2_004.png",
- overlays = {
- [1] = {name = S("Side Walls"), texture = "classic_coaches_overlay_004_side_walls.png", alpha = default_wall_alpha},
- [2] = {name = S("Window Band"), texture = "classic_coaches_overlay_004_class2_window_band.png", alpha = default_wall_alpha},
- [3] = {name = S("Decoration"), texture = "classic_coaches_overlay_004_decoration.png"},
- [4] = {name = S("Logo"), texture = "classic_coaches_overlay_cc_logo_2.png"},
- [5] = {name = S("Class Number"), texture = "classic_coaches_overlay_class2_class_number.png"},
- },
- },
- [5] = {
- base_texture = "classic_coaches_open_coach_class2_005.png",
- overlays = {
- [1] = {name = S("Side Walls"), texture = "classic_coaches_overlay_005_class2_side_walls.png", alpha = default_wall_alpha},
- [2] = {name = S("Seats"), texture = "classic_coaches_overlay_seats.png", alpha = default_seat_alpha},
- [3] = {name = S("Service Stripe"), texture = "classic_coaches_overlay_service_stripe.png"},
- [4] = {name = S("Logo"), texture = "classic_coaches_overlay_cc_logo_2.png"},
- [5] = {name = S("Class Number"), texture = "classic_coaches_overlay_class2_class_number.png"},
- },
- },
- [6] = {
- base_texture = "classic_coaches_open_coach_class2_006.png",
- overlays = {
- [1] = {name = S("Side Walls"), texture = "classic_coaches_overlay_006_side_walls.png", alpha = default_wall_alpha},
- [2] = {name = S("Roof"), texture = "classic_coaches_overlay_006_roof.png", alpha = default_roof_alpha},
- [3] = {name = S("Trim"), texture = "classic_coaches_overlay_006_trim.png"},
- [4] = {name = S("Logo"), texture = "classic_coaches_overlay_cc_logo_2.png"},
- [5] = {name = S("End Doors"), texture = "classic_coaches_overlay_end_doors.png", alpha = default_wall_alpha},
- },
- },
- [7] = {
- base_texture = "classic_coaches_open_coach_class2_007.png",
- overlays = {
- [1] = {name = S("Exterior Walls"), texture = "classic_coaches_overlay_007_class2_exterior_walls.png", alpha = default_wall_alpha},
- [2] = {name = S("Seats"), texture = "classic_coaches_overlay_seats.png", alpha = default_seat_alpha},
- [3] = {name = S("Decoration"), texture = "classic_coaches_overlay_007_decoration.png"},
- [4] = {name = S("Label"), texture = "classic_coaches_overlay_007_label.png"},
- [5] = {name = S("Class Number"), texture = "classic_coaches_overlay_class2_class_number.png"},
- [6] = {name = S("Logo and Text"), texture = "classic_coaches_overlay_007_logo_text.png"},
- },
- },
- },
- ["classic_coaches:bistro_coach"] = {
- [1] = {
- base_texture = "classic_coaches_bistro_coach_001.png",
- overlays = {
- [1] = {name = S("Side Walls"), texture = "classic_coaches_overlay_001_bistro_side_walls.png", alpha = default_wall_alpha},
- [2] = {name = S("Stripe"), texture = "classic_coaches_overlay_001_bistro_stripe.png", alpha = default_wall_alpha},
- [3] = {name = S("Stripe Divider"), texture = "classic_coaches_overlay_001_bistro_stripe_divider.png"},
- [4] = {name = S("Side Doors"), texture = "classic_coaches_overlay_side_doors.png", alpha = default_wall_alpha},
- [5] = {name = S("Galley"), texture = "classic_coaches_overlay_bistro_galley.png", alpha = default_wall_alpha},
- },
- },
- [2] = {
- base_texture = "classic_coaches_bistro_coach_002.png",
- overlays = {
- [1] = {name = S("Exterior Walls"), texture = "classic_coaches_overlay_002_bistro_exterior_walls.png", alpha = default_wall_alpha},
- [2] = {name = S("Stripe"), texture = "classic_coaches_overlay_002_stripe.png", alpha = default_wall_alpha},
- [3] = {name = S("Service Stripe"), texture = "classic_coaches_overlay_service_stripe.png"},
- [4] = {name = S("Side Doors"), texture = "classic_coaches_overlay_side_doors.png", alpha = default_wall_alpha},
- [5] = {name = S("Bistro Label"), texture = "classic_coaches_overlay_bistro_label_5.png", alpha = default_wall_alpha},
- },
- },
- [3] = {
- base_texture = "classic_coaches_bistro_coach_003.png",
- overlays = {
- [1] = {name = S("Side Walls"), texture = "classic_coaches_overlay_003_bistro_side_walls.png", alpha = default_wall_alpha},
- [2] = {name = S("Stripe"), texture = "classic_coaches_overlay_003_stripe.png", alpha = default_wall_alpha},
- [3] = {name = S("Stripe Edges"), texture = "classic_coaches_overlay_003_stripe_edges.png"},
- [4] = {name = S("Logo"), texture = "classic_coaches_overlay_cc_logo_1.png"},
- [5] = {name = S("End Doors"), texture = "classic_coaches_overlay_end_doors.png", alpha = default_wall_alpha},
- [6] = {name = S("Bistro Label"), texture = "classic_coaches_overlay_bistro_label_1.png", alpha = default_wall_alpha},
- },
- },
- [4] = {
- base_texture = "classic_coaches_bistro_coach_004.png",
- overlays = {
- [1] = {name = S("Side Walls"), texture = "classic_coaches_overlay_004_bistro_side_walls.png", alpha = default_wall_alpha},
- [2] = {name = S("Window Band"), texture = "classic_coaches_overlay_004_bistro_window_band.png", alpha = default_wall_alpha},
- [3] = {name = S("Decoration"), texture = "classic_coaches_overlay_004_decoration.png"},
- [4] = {name = S("Logo"), texture = "classic_coaches_overlay_cc_logo_2.png"},
- [5] = {name = S("Bistro Label"), texture = "classic_coaches_overlay_bistro_label_4.png"},
- },
- },
- [5] = {
- base_texture = "classic_coaches_bistro_coach_005.png",
- overlays = {
- [1] = {name = S("Side Walls"), texture = "classic_coaches_overlay_005_bistro_side_walls.png", alpha = default_wall_alpha},
- [2] = {name = S("Seats"), texture = "classic_coaches_overlay_bistro_seats.png", alpha = default_seat_alpha},
- [3] = {name = S("Service Stripe"), texture = "classic_coaches_overlay_service_stripe.png"},
- [4] = {name = S("Logo"), texture = "classic_coaches_overlay_cc_logo_2.png"},
- [5] = {name = S("Bistro Label"), texture = "classic_coaches_overlay_bistro_label_2.png"},
- [6] = {name = S("Galley"), texture = "classic_coaches_overlay_bistro_galley.png", alpha = default_wall_alpha},
- },
- },
- [6] = {
- base_texture = "classic_coaches_bistro_coach_006.png",
- overlays = {
- [1] = {name = S("Side Walls"), texture = "classic_coaches_overlay_006_bistro_side_walls.png", alpha = default_wall_alpha},
- [2] = {name = S("Roof"), texture = "classic_coaches_overlay_006_roof.png", alpha = default_roof_alpha},
- [3] = {name = S("Trim"), texture = "classic_coaches_overlay_006_trim.png"},
- [4] = {name = S("Logo"), texture = "classic_coaches_overlay_cc_logo_2.png"},
- [5] = {name = S("End Doors"), texture = "classic_coaches_overlay_end_doors.png", alpha = default_wall_alpha},
- [6] = {name = S("Bistro Label"), texture = "classic_coaches_overlay_bistro_label_2.png"},
- },
- },
- [7] = {
- base_texture = "classic_coaches_bistro_coach_007.png",
- overlays = {
- [1] = {name = S("Exterior Walls"), texture = "classic_coaches_overlay_007_bistro_exterior_walls.png", alpha = default_wall_alpha},
- [2] = {name = S("Seats"), texture = "classic_coaches_overlay_bistro_seats.png", alpha = default_seat_alpha},
- [3] = {name = S("Decoration"), texture = "classic_coaches_overlay_007_decoration.png"},
- [4] = {name = S("Label"), texture = "classic_coaches_overlay_007_label.png"},
- [5] = {name = S("Bistro Label"), texture = "classic_coaches_overlay_bistro_label_3.png"},
- [6] = {name = S("Logo and Text"), texture = "classic_coaches_overlay_007_logo_text.png"},
- },
- },
- },
- }
- -- Define groups of wagon types that will share predefined liveries.
- local wagon_types = {
- common_coaches = {
- "classic_coaches:corridor_coach_class1",
- "classic_coaches:corridor_coach_class2",
- "classic_coaches:open_coach_class1",
- "classic_coaches:open_coach_class2",
- },
- bistro_coaches = {
- "classic_coaches:bistro_coach",
- },
- }
- local predefined_liveries = {
- {
- name = S("CC Classic"),
- wagon_types = wagon_types.common_coaches,
- notes = "",
- livery_design = {
- livery_template_name = S("CC Window Band"),
- overlays = {
- [1] = {id = 1, color = "#FAF0E6"}, -- "Side Walls",
- [2] = {id = 2, color = "#202020"}, -- "Window Band",
- [3] = {id = 3, color = "#800000"}, -- "Decoration",
- -- [4] = {id = 4, color = "#000000"}, -- "Logo",
- [5] = {id = 5, color = "#FAF0E6"}, -- "Class Number",
- },
- },
- },
- {
- name = S("CC Classic"),
- wagon_types = wagon_types.bistro_coaches,
- notes = "",
- livery_design = {
- livery_template_name = S("CC Window Band"),
- overlays = {
- [1] = {id = 1, color = "#FAF0E6"}, -- "Side Walls",
- [2] = {id = 2, color = "#202020"}, -- "Window Band",
- [3] = {id = 3, color = "#800000"}, -- "Decoration",
- -- [4] = {id = 4, color = "#000000"}, -- "Logo",
- [5] = {id = 5, color = "#C0C0C0"}, -- "Bistro Label",
- },
- },
- },
- {
- name = S("CC Classic Double Stripe"),
- wagon_types = wagon_types.common_coaches,
- notes = "",
- livery_design = {
- livery_template_name = S("CC Edged Stripe"),
- overlays = {
- [1] = {id = 1, color = "#FAF0E6"}, -- "Side Walls",
- [2] = {id = 2, color = "#FAF0E6"}, -- "Stripe",
- [3] = {id = 3, color = "#800000"}, -- "Stripe Edges",
- -- [4] = {id = 4, color = "#000000"}, -- "Logo",
- -- [5] = {id = 5, color = "#000000"}, -- "End Doors",
- },
- },
- },
- {
- name = S("CC Classic Double Stripe"),
- wagon_types = wagon_types.bistro_coaches,
- notes = "",
- livery_design = {
- livery_template_name = S("CC Edged Stripe"),
- overlays = {
- [1] = {id = 1, color = "#FAF0E6"}, -- "Side Walls",
- [2] = {id = 2, color = "#FAF0E6"}, -- "Stripe",
- [3] = {id = 3, color = "#800000"}, -- "Stripe Edges",
- -- [4] = {id = 4, color = "#000000"}, -- "Logo",
- -- [5] = {id = 5, color = "#000000"}, -- "End Doors",
- [6] = {id = 6, color = "#969696"}, -- "Bistro Label",
- },
- },
- },
- {
- name = S("CC Intercity Urban"),
- wagon_types = wagon_types.common_coaches,
- notes = "",
- livery_design = {
- livery_template_name = S("CC Intercity Stripe"),
- overlays = {
- [1] = {id = 1, color = "#808080"}, -- "Exterior Walls",
- [2] = {id = 2, color = "#006400"}, -- "Stripe",
- -- [3] = {id = 3, color = "#000000"}, -- "Service Stripe",
- [4] = {id = 4, color = "#808080"}, -- "Side Doors",
- -- [5] = {id = 5, color = "#000000"}, -- "Class Number",
- },
- },
- },
- {
- name = S("CC Intercity Urban"),
- wagon_types = wagon_types.bistro_coaches,
- notes = "",
- livery_design = {
- livery_template_name = S("CC Intercity Stripe"),
- overlays = {
- [1] = {id = 1, color = "#808080"}, -- "Exterior Walls",
- [2] = {id = 2, color = "#006400"}, -- "Stripe",
- -- [3] = {id = 3, color = "#000000"}, -- "Service Stripe",
- [4] = {id = 4, color = "#808080"}, -- "Side Doors",
- [5] = {id = 5, color = "#B0B0B0"}, -- "Bistro Label",
- },
- },
- },
- {
- name = S("CC Intercity Dark Olive"),
- wagon_types = wagon_types.common_coaches,
- notes = "",
- livery_design = {
- livery_template_name = S("CC Intercity Stripe"),
- overlays = {
- [1] = {id = 1, color = "#516200"}, -- "Exterior Walls",
- -- [2] = {id = 2, color = "#000000"}, -- "Stripe",
- -- [3] = {id = 3, color = "#000000"}, -- "Service Stripe",
- -- [4] = {id = 4, color = "#000000"}, -- "Side Doors",
- -- [5] = {id = 5, color = "#000000"}, -- "Class Number",
- },
- },
- },
- {
- name = S("CC Intercity Dark Olive"),
- wagon_types = wagon_types.bistro_coaches,
- notes = "",
- livery_design = {
- livery_template_name = S("CC Intercity Stripe"),
- overlays = {
- [1] = {id = 1, color = "#516200"}, -- "Exterior Walls",
- -- [2] = {id = 2, color = "#000000"}, -- "Stripe",
- -- [3] = {id = 3, color = "#000000"}, -- "Service Stripe",
- -- [4] = {id = 4, color = "#000000"}, -- "Side Doors",
- [5] = {id = 5, color = "#7C8B00"}, -- "Bistro Label",
- },
- },
- },
- {
- name = S("CC Legacy Solid Red"),
- wagon_types = wagon_types.common_coaches,
- notes = "",
- livery_design = {
- livery_template_name = S("CC Solid Color"),
- overlays = {
- [1] = {id = 1, color = "#800000"}, -- "Side Walls",
- [2] = {id = 2, color = "#2E8B57"}, -- "Seats",
- [3] = {id = 3, color = "#DAA520"}, -- "Service Stripe",
- [4] = {id = 4, color = "#FAF0E6"}, -- "Logo",
- -- [5] = {id = 5, color = "#FAF0E6"}, -- "Class Number",
- },
- },
- },
- {
- name = S("CC Legacy Solid Red"),
- wagon_types = wagon_types.bistro_coaches,
- notes = "",
- livery_design = {
- livery_template_name = S("CC Solid Color"),
- overlays = {
- [1] = {id = 1, color = "#800000"}, -- "Side Walls",
- [2] = {id = 2, color = "#2E8B57"}, -- "Seats",
- [3] = {id = 3, color = "#DAA520"}, -- "Service Stripe",
- [4] = {id = 4, color = "#FAF0E6"}, -- "Logo",
- [5] = {id = 5, color = "#C60000"}, -- "Bistro Label",
- [6] = {id = 6, color = "#2E8B57"}, -- "Galley",
- },
- },
- },
- {
- name = S("CC Modern Brown Stripe"),
- wagon_types = wagon_types.common_coaches,
- notes = "",
- livery_design = {
- livery_template_name = S("CC Stripe"),
- overlays = {
- -- [1] = {id = 1, color = "#000000"}, -- "Side Walls",
- [2] = {id = 2, color = "#8B4513"}, -- "Stripe",
- [3] = {id = 3, color = "#DAA520"}, -- "Stripe Divider",
- -- [4] = {id = 4, color = "#000000"}, -- "Side Doors",
- -- [5] = {id = 5, color = "#000000"}, -- "Class Number",
- },
- },
- },
- {
- name = S("CC Modern Brown Stripe"),
- wagon_types = wagon_types.bistro_coaches,
- notes = "",
- livery_design = {
- livery_template_name = S("CC Stripe"),
- overlays = {
- -- [1] = {id = 1, color = "#000000"}, -- "Side Walls",
- [2] = {id = 2, color = "#8B4513"}, -- "Stripe",
- [3] = {id = 3, color = "#DAA520"}, -- "Stripe Divider",
- -- [4] = {id = 4, color = "#000000"}, -- "Side Doors",
- [5] = {id = 5, color = "#DAA520"}, -- "Galley",
- },
- },
- },
- {
- name = S("CC Slate Roof"),
- wagon_types = wagon_types.common_coaches,
- notes = "",
- livery_design = {
- livery_template_name = S("CC Colored Roof"),
- overlays = {
- [1] = {id = 1, color = "#708090"}, -- "Side Walls",
- [2] = {id = 2, color = "#2F4F4F"}, -- "Roof",
- [3] = {id = 3, color = "#2F4F4F"}, -- "Trim",
- [4] = {id = 4, color = "#2F4F4F"}, -- "Logo",
- [5] = {id = 5, color = "#708090"}, -- "End Doors",
- },
- },
- },
- {
- name = S("CC Slate Roof"),
- wagon_types = wagon_types.bistro_coaches,
- notes = "",
- livery_design = {
- livery_template_name = S("CC Colored Roof"),
- overlays = {
- [1] = {id = 1, color = "#708090"}, -- "Side Walls",
- [2] = {id = 2, color = "#2F4F4F"}, -- "Roof",
- [3] = {id = 3, color = "#2F4F4F"}, -- "Trim",
- [4] = {id = 4, color = "#2F4F4F"}, -- "Logo",
- [5] = {id = 5, color = "#708090"}, -- "End Doors",
- -- [6] = {id = 6, color = "#000000"}, -- "Bistro Label",
- },
- },
- },
- {
- name = S("CC Legacy Express"),
- wagon_types = wagon_types.common_coaches,
- notes = "",
- livery_design = {
- livery_template_name = S("CC Express"),
- overlays = {
- [1] = {id = 1, color = "#400000"}, -- "Exterior Walls",
- [2] = {id = 2, color = "#000030"}, -- "Seats",
- -- [3] = {id = 3, color = "#000000"}, -- "Decoration",
- -- [4] = {id = 4, color = "#000000"}, -- "Label",
- -- [5] = {id = 5, color = "#000000"}, -- "Class Number",
- -- [6] = {id = 6, color = "#000000"}, -- "Logo and Text",
- },
- },
- },
- {
- name = S("CC Legacy Express"),
- wagon_types = wagon_types.bistro_coaches,
- notes = "",
- livery_design = {
- livery_template_name = S("CC Express"),
- overlays = {
- [1] = {id = 1, color = "#400000"}, -- "Exterior Walls",
- [2] = {id = 2, color = "#000030"}, -- "Seats",
- -- [3] = {id = 3, color = "#000000"}, -- "Decoration",
- -- [4] = {id = 4, color = "#000000"}, -- "Label",
- -- [5] = {id = 5, color = "#000000"}, -- "Bistro Label",
- -- [6] = {id = 6, color = "#000000"}, -- "Logo and Text",
- },
- },
- },
- {
- name = S("No Logo Solid Green"),
- wagon_types = wagon_types.common_coaches,
- notes = "",
- livery_design = {
- livery_template_name = S("CC Solid Color"),
- overlays = {
- [1] = {id = 1, color = "#004000"}, -- "Side Walls",
- -- [2] = {id = 2, color = "#000000"}, -- "Seats",
- -- [3] = {id = 3, color = "#000000"}, -- "Service Stripe",
- [4] = {id = 4, color = "#004000"}, -- "Logo",
- -- [5] = {id = 5, color = "#000000"}, -- "Class Number",
- },
- },
- },
- {
- name = S("No Logo Solid Green"),
- wagon_types = wagon_types.bistro_coaches,
- notes = "",
- livery_design = {
- livery_template_name = S("CC Solid Color"),
- overlays = {
- [1] = {id = 1, color = "#004000"}, -- "Side Walls",
- -- [2] = {id = 2, color = "#000000"}, -- "Seats",
- -- [3] = {id = 3, color = "#000000"}, -- "Service Stripe",
- [4] = {id = 4, color = "#004000"}, -- "Logo",
- -- [5] = {id = 5, color = "#000000"}, -- "Bistro Label",
- -- [6] = {id = 6, color = "#000000"}, -- "Galley",
- },
- },
- },
- {
- name = S("No Logo Retro Mojo"),
- wagon_types = wagon_types.common_coaches,
- notes = "",
- livery_design = {
- livery_template_name = S("CC Window Band"),
- overlays = {
- [1] = {id = 1, color = "#008080"}, -- "Side Walls",
- [2] = {id = 2, color = "#FAF0E6"}, -- "Window Band",
- [3] = {id = 3, color = "#FAF0E6"}, -- "Decoration",
- [4] = {id = 4, color = "#008080"}, -- "Logo",
- -- [5] = {id = 5, color = "#000000"}, -- "Class Number",
- },
- },
- },
- {
- name = S("No Logo Retro Mojo"),
- wagon_types = wagon_types.bistro_coaches,
- notes = "",
- livery_design = {
- livery_template_name = S("CC Window Band"),
- overlays = {
- [1] = {id = 1, color = "#008080"}, -- "Side Walls",
- [2] = {id = 2, color = "#FAF0E6"}, -- "Window Band",
- [3] = {id = 3, color = "#FAF0E6"}, -- "Decoration",
- [4] = {id = 4, color = "#008080"}, -- "Logo",
- [5] = {id = 5, color = "#009C9C"}, -- "Bistro Label",
- },
- },
- },
- {
- name = S("No Logo Classic Express"),
- wagon_types = wagon_types.common_coaches,
- notes = "",
- livery_design = {
- livery_template_name = S("CC Express"),
- overlays = {
- -- [1] = {id = 1, color = "#000000"}, -- "Exterior Walls",
- -- [2] = {id = 2, color = "#000000"}, -- "Seats",
- -- [3] = {id = 3, color = "#000000"}, -- "Decoration",
- -- [4] = {id = 4, color = "#000000"}, -- "Label",
- -- [5] = {id = 5, color = "#000000"}, -- "Class Number",
- [6] = {id = 6, color = "#000030"}, -- "Logo",
- },
- },
- },
- {
- name = S("No Logo Classic Express"),
- wagon_types = wagon_types.bistro_coaches,
- notes = "",
- livery_design = {
- livery_template_name = S("CC Express"),
- overlays = {
- -- [1] = {id = 1, color = "#000000"}, -- "Exterior Walls",
- -- [2] = {id = 2, color = "#000000"}, -- "Seats",
- -- [3] = {id = 3, color = "#000000"}, -- "Decoration",
- -- [4] = {id = 4, color = "#000000"}, -- "Label",
- -- [5] = {id = 5, color = "#000000"}, -- "Bistro Label",
- [6] = {id = 6, color = "#000030"}, -- "Logo",
- },
- },
- },
- {
- name = S("No Logo Evergreen Express"),
- wagon_types = wagon_types.common_coaches,
- notes = "",
- livery_design = {
- livery_template_name = S("CC Express"),
- overlays = {
- [1] = {id = 1, color = "#003B00"}, -- "Exterior Walls",
- [2] = {id = 2, color = "#2E8B57"}, -- "Seats",
- [3] = {id = 3, color = "#008000"}, -- "Decoration",
- -- [4] = {id = 4, color = "#000000"}, -- "Label",
- -- [5] = {id = 5, color = "#000000"}, -- "Class Number",
- [6] = {id = 6, color = "#003B00"}, -- "Logo",
- },
- },
- },
- {
- name = S("No Logo Evergreen Express"),
- wagon_types = wagon_types.bistro_coaches,
- notes = "",
- livery_design = {
- livery_template_name = S("CC Express"),
- overlays = {
- [1] = {id = 1, color = "#003B00"}, -- "Exterior Walls",
- [2] = {id = 2, color = "#2E8B57"}, -- "Seats",
- [3] = {id = 3, color = "#008000"}, -- "Decoration",
- -- [4] = {id = 4, color = "#000000"}, -- "Label",
- -- [5] = {id = 5, color = "#000000"}, -- "Bistro Label",
- [6] = {id = 6, color = "#003B00"}, -- "Logo",
- },
- },
- },
- {
- name = S("No Logo Expresso Express"),
- wagon_types = wagon_types.common_coaches,
- notes = "",
- livery_design = {
- livery_template_name = S("CC Express"),
- overlays = {
- [1] = {id = 1, color = "#703000"}, -- "Exterior Walls",
- [2] = {id = 2, color = "#D2B48C"}, -- "Seats",
- [3] = {id = 3, color = "#FFA500"}, -- "Decoration",
- [4] = {id = 4, color = "#FF8C00"}, -- "Label",
- -- [5] = {id = 5, color = "#000000"}, -- "Class Number",
- [6] = {id = 6, color = "#703000"}, -- "Logo",
- },
- },
- },
- {
- name = S("No Logo Expresso Express"),
- wagon_types = wagon_types.bistro_coaches,
- notes = "",
- livery_design = {
- livery_template_name = S("CC Express"),
- overlays = {
- [1] = {id = 1, color = "#703000"}, -- "Exterior Walls",
- [2] = {id = 2, color = "#D2B48C"}, -- "Seats",
- [3] = {id = 3, color = "#FFA500"}, -- "Decoration",
- [4] = {id = 4, color = "#FF8C00"}, -- "Label",
- -- [5] = {id = 5, color = "#000000"}, -- "Bistro Label",
- [6] = {id = 6, color = "#703000"}, -- "Logo",
- },
- },
- },
- }
- -- ===============================================================================================================================================
- if use_advtrains_livery_designer then
- -- Notify player if a newer version of AdvTrains Livery Tools is available or needed.
- if not advtrains_livery_designer.is_compatible_mod_version or
- not advtrains_livery_designer.is_compatible_mod_version({major = 0, minor = 9, patch = 0}) then
- minetest.log("info", "["..mod_name.."] An old version of AdvTrains Livery Tools was detected. Consider updating to the latest version.")
- -- Version 0.9.0 is not currently required so just log an informational message.
- end
- -- This function is called by the advtrains_livery_designer tool whenever the player
- -- activates the "Apply" button. The texture and/or the mesh could optionally be
- -- modified here, if needed.
- local function apply_wagon_livery_textures(player, wagon, textures)
- if wagon and textures and textures[1] then
- local data = advtrains.wagons[wagon.id]
- data.livery = textures[1]
- wagon:set_textures(data)
- end
- end
- -- Register this mod and its livery functions with the advtrains_livery_designer tool.
- advtrains_livery_designer.register_mod(mod_name, apply_wagon_livery_textures)
- -- Register this mod's wagons.
- for _, wagon in ipairs(wagons) do
- advtrains_livery_database.register_wagon(wagon.wagon_type)
- end
- -- Register this mod's livery templates with the advtrains_livery_designer tool.
- for wagon_type, wagon_livery_templates in pairs(livery_templates) do
- for livery_template_id, livery_template in pairs(wagon_livery_templates) do
- local livery_template_name = livery_template_names[livery_template_id].name
- if livery_template_name then
- advtrains_livery_database.add_livery_template(
- wagon_type,
- livery_template_name,
- {livery_template.base_texture},
- mod_name,
- (livery_template.overlays and #livery_template.overlays) or 0,
- "Marnack", -- Template designer
- "CC-BY-SA-3.0", -- Texture license
- "Marnack", -- Texture creator(s)
- livery_template_names[livery_template_id].notes
- )
- if livery_template.overlays then
- for overlay_id, overlay in ipairs(livery_template.overlays) do
- advtrains_livery_database.add_livery_template_overlay(
- wagon_type,
- livery_template_name,
- overlay_id,
- overlay.name,
- 1,
- overlay.texture,
- overlay.alpha
- )
- end
- end
- end
- end
- end
- -- Register this mod's predefined wagon liveries with the advtrains_livery_designer tool.
- for _, predefined_livery in pairs(predefined_liveries) do
- -- Each predefined livery will specify the wagon types to which it applies.
- for _, wagon_type in pairs(predefined_livery.wagon_types) do
- local livery_design = predefined_livery.livery_design
- livery_design.wagon_type = wagon_type
- advtrains_livery_database.add_predefined_livery(predefined_livery.name, livery_design, mod_name, predefined_livery.notes)
- end
- end
- end
- -- ===============================================================================================================================================
- -- This function is used when updating the wagon's livery with the bike painter tool.
- -- Although the bike painter can currently only paint the first overlay, this implementation
- -- will handle multiple overlays if that restriction changes.
- local function get_wagon_texture(wagon_type, livery_template_id, overlays)
- -- Get and then verify that the base texture is valid
- local wagon_texture = livery_templates[wagon_type][livery_template_id].base_texture
- if not wagon_texture then
- return nil
- end
- -- Append overlay clause(s) to the wagon texture based on the given overlays.
- -- Note that any of the given overlays that are not valid for the specified
- -- wagon type will be ignored.
- if overlays and livery_templates[wagon_type][livery_template_id].overlays then
- for _, overlay in ipairs(overlays) do
- if overlay.id and overlay.color and
- livery_templates[wagon_type][livery_template_id].overlays[overlay.id] and
- livery_templates[wagon_type][livery_template_id].overlays[overlay.id].texture then
- local alpha = livery_templates[wagon_type][livery_template_id].overlays[overlay.id].alpha or 255
- if alpha < 0 then alpha = 0 end
- if alpha > 255 then alpha = 255 end
- local overlay_texture = "^("..
- livery_templates[wagon_type][livery_template_id].overlays[overlay.id].texture..
- "^[colorize:"..overlay.color..":"..alpha..
- ")"
- wagon_texture = wagon_texture..overlay_texture
- end
- end
- end
- return wagon_texture
- end
- -- The following enables the bike painter to colorize the first overlay.
- local function set_livery(wagon, puncher, itemstack, data)
- local meta = itemstack:get_meta()
- local color = meta:get_string("paint_color")
- if not color or not color:find("^#%x%x%x%x%x%x$") then
- return
- end
- local alpha = tonumber(meta:get_string("alpha"))
- if not alpha then
- return
- end
- -- The alpha value is used to select the livery template. Note that the alpha
- -- values can range from 0 to 255. Livery template ids start with 1. Livery
- -- template ids greater than the number of defined livery tempaltes will cause
- -- the painter to have no effect.
- local livery_template_id = alpha + 1
- if not livery_template_names[livery_template_id] then
- return
- end
- -- It is possible that a given livery template may not be defined for all
- -- wagon types.
- local wagon_type = data.type
- if not livery_templates[wagon_type] or
- not livery_templates[wagon_type][livery_template_id] or
- not livery_templates[wagon_type][livery_template_id].base_texture then
- return
- end
- -- Using the bike painter only allows for the first overlay to be
- -- colorized. Also, the color "#000000" is reserved and used to
- -- force the livery tempalte to be displayed without any color overrides.
- -- This is only true when using the painter.
- local overlays = {}
- if color ~= "#000000" and livery_templates[wagon_type][livery_template_id].overlays then
- overlays = {[1] = {id = 1, color = color}}
- end
- local wagon_texture = get_wagon_texture(wagon_type, livery_template_id, overlays)
- if not wagon_texture then
- return
- end
- data.livery = wagon_texture
- wagon:set_textures(data)
- end
- local function set_textures(wagon, data)
- if data.livery then
- wagon.object:set_properties({textures={data.livery}})
- end
- end
- local function update_livery(wagon, puncher)
- local itemstack = puncher:get_wielded_item()
- local item_name = itemstack:get_name()
- if use_advtrains_livery_designer and item_name == advtrains_livery_designer.tool_name then
- advtrains_livery_designer.activate_tool(puncher, wagon, mod_name)
- return true
- end
- return false
- end
- ----------------------------------------------------------------------------------------
- local common_seats = {
- {
- name="1",
- attach_offset={x=0, y=-2, z=17},
- view_offset = use_attachment_patch and {x=0, y=0, z=0} or {x=0, y=-1.7, z=0},
- advtrains_attachment_offset_patch_attach_rotation = use_attachment_patch and {x=0, y=180, z=0} or nil,
- group="pass",
- },
- {
- name="2",
- attach_offset={x=0, y=-2, z=6},
- view_offset = use_attachment_patch and {x=0, y=0, z=0} or {x=0, y=-1.7, z=0},
- advtrains_attachment_offset_patch_attach_rotation = use_attachment_patch and {x=0, y=180, z=0} or nil,
- group="pass",
- },
- {
- name="3",
- attach_offset={x=0, y=-2, z=-6},
- view_offset = use_attachment_patch and {x=0, y=0, z=0} or {x=0, y=-1.7, z=0},
- group="pass",
- },
- {
- name="4",
- attach_offset={x=0, y=-2, z=-17},
- view_offset = use_attachment_patch and {x=0, y=0, z=0} or {x=0, y=-1.7, z=0},
- group="pass",
- },
- }
- local bistro_seats = {
- {
- name="1",
- attach_offset={x=0, y=-2, z=6},
- view_offset = use_attachment_patch and {x=0, y=0, z=0} or {x=0, y=-1.7, z=0},
- group="pass",
- },
- {
- name="2",
- attach_offset={x=0, y=-2, z=-6},
- view_offset = use_attachment_patch and {x=0, y=0, z=0} or {x=0, y=-1.7, z=0},
- group="pass",
- },
- {
- name="3",
- attach_offset={x=0, y=-2, z=-17},
- view_offset = use_attachment_patch and {x=0, y=0, z=0} or {x=0, y=-1.7, z=0},
- group="pass",
- },
- }
- for _, wagon in pairs(wagons) do
- local wagon_def = {
- mesh = wagon.mesh,
- textures = wagon.textures,
- set_textures = set_textures,
- set_livery = set_livery,
- custom_may_destroy = function(wgn, puncher, time_from_last_punch, tool_capabilities, direction)
- return not update_livery(wgn, puncher)
- end,
- drives_on={default=true},
- max_speed=20,
- seats = wagon.wagon_type == "classic_coaches:bistro_coach" and bistro_seats or common_seats,
- seat_groups = {
- pass={
- name = "Passenger area",
- access_to = {},
- require_doors_open=true,
- },
- },
- doors={
- open={
- [-1]={frames={x=21, y=30}, time=1},
- [1]={frames={x=1, y=10}, time=1}
- },
- close={
- [-1]={frames={x=30, y=41}, time=1},
- [1]={frames={x=10, y=20}, time=1}
- }
- },
- door_entry={-2, 2},
- assign_to_seat_group = {"pass"},
- visual_size = {x=1, y=1},
- wagon_span=3,
- wheel_positions = {1.9, -1.9},
- collisionbox = {-1.0,-0.5,-1.0, 1.0,2.5,1.0},
- coupler_types_front = {chain=true},
- coupler_types_back = {chain=true},
- drops={materials.steelblock},
- }
- if use_attachment_patch then
- advtrains_attachment_offset_patch.setup_advtrains_wagon(wagon_def);
- end
- advtrains.register_wagon(wagon.wagon_type, wagon_def, wagon.name, wagon.inventory_image)
- -- Only register crafting recipes for the wagon if the needed mods are available.
- if materials.base_game then
- minetest.register_craft({
- output = wagon.wagon_type,
- recipe = wagon.recipe,
- })
- end
- end
|