From be78233823b8c6c9126256ff99bfa28676a4add3 Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Fri, 3 Jun 2022 20:17:54 +0200 Subject: [PATCH] Choo choo proper - Changed whistle sound when used with trains - Trains now have sound effects - Bogeys now emit particle effects - Steam engines now have sound effects - Trains deal twice their damage to hostile mobs --- src/generated/resources/.cache/cache | 34 +-- .../resources/assets/create/lang/en_us.json | 42 ++-- .../assets/create/lang/unfinished/de_de.json | 44 ++-- .../assets/create/lang/unfinished/es_cl.json | 44 ++-- .../assets/create/lang/unfinished/es_es.json | 44 ++-- .../assets/create/lang/unfinished/fr_fr.json | 44 ++-- .../assets/create/lang/unfinished/it_it.json | 44 ++-- .../assets/create/lang/unfinished/ja_jp.json | 44 ++-- .../assets/create/lang/unfinished/ko_kr.json | 44 ++-- .../assets/create/lang/unfinished/nl_nl.json | 44 ++-- .../assets/create/lang/unfinished/pl_pl.json | 44 ++-- .../assets/create/lang/unfinished/pt_br.json | 44 ++-- .../assets/create/lang/unfinished/pt_pt.json | 44 ++-- .../assets/create/lang/unfinished/ro_ro.json | 44 ++-- .../assets/create/lang/unfinished/ru_ru.json | 44 ++-- .../assets/create/lang/unfinished/zh_cn.json | 44 ++-- .../assets/create/lang/unfinished/zh_tw.json | 44 ++-- .../resources/assets/create/sounds.json | 40 +++ .../com/simibubi/create/AllSoundEvents.java | 36 ++- .../steam/SteamEngineTileEntity.java | 21 +- .../ContraptionCollider.java | 7 +- .../structureMovement/ContraptionHandler.java | 1 + .../burner/BlazeBurnerMovementBehaviour.java | 2 +- .../deco/SlidingDoorMovementBehaviour.java | 4 +- .../block/display/DisplayLinkScreen.java | 2 +- .../trains/entity/ArrivalSoundQueue.java | 12 +- .../entity/CarriageContraptionEntity.java | 15 ++ .../trains/entity/CarriageParticles.java | 120 +++++++++ .../trains/entity/CarriageSounds.java | 233 ++++++++++++++++++ .../logistics/trains/entity/Train.java | 2 + .../edgePoint/station/StationScreen.java | 9 +- .../foundation/data/BuilderTransformers.java | 2 +- .../foundation/utility/BlockHelper.java | 2 +- .../resources/assets/create/sounds/steam.ogg | Bin 0 -> 11589 bytes .../resources/assets/create/sounds/train.ogg | Bin 0 -> 15354 bytes .../resources/assets/create/sounds/train2.ogg | Bin 0 -> 29639 bytes .../resources/assets/create/sounds/train3.ogg | Bin 0 -> 44278 bytes .../assets/create/sounds/whistle_train.ogg | Bin 9515 -> 21971 bytes .../create/sounds/whistle_train_low.ogg | Bin 10640 -> 18559 bytes 39 files changed, 878 insertions(+), 366 deletions(-) create mode 100644 src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageParticles.java create mode 100644 src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageSounds.java create mode 100644 src/main/resources/assets/create/sounds/steam.ogg create mode 100644 src/main/resources/assets/create/sounds/train.ogg create mode 100644 src/main/resources/assets/create/sounds/train2.ogg create mode 100644 src/main/resources/assets/create/sounds/train3.ogg diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index d8783eed8..e240cc4ea 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -551,22 +551,22 @@ bf2b0310500213ff853c748c236eb5d01f61658e assets/create/blockstates/yellow_toolbo 7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json c7b048548ba737df7efee5731a064c8ee960bdaa assets/create/lang/en_ud.json -36b99098c2c1e74ea354e6029c793e60d0f4ae59 assets/create/lang/en_us.json -7dcf9e632b044ab669dd6f6ad3e54631c3d6139c assets/create/lang/unfinished/de_de.json -cfadcedb96c76afcbb40588d79c0349f82e47460 assets/create/lang/unfinished/es_cl.json -b4ff075c0f41ccb984b0d607cae9b418753c9be2 assets/create/lang/unfinished/es_es.json -a5f32e9f82cebf81078080f08a7d4c34c57e83ed assets/create/lang/unfinished/fr_fr.json -14604d102012db3d5d7d73704068757327e36be2 assets/create/lang/unfinished/it_it.json -f303c569fc4d5948b0114875fb5f51107fd1206b assets/create/lang/unfinished/ja_jp.json -450c9f26a1e9e69dea4f560b98038713e455d8ff assets/create/lang/unfinished/ko_kr.json -6b27dd10cdf70a887f92bd6e07727ecdb353fe05 assets/create/lang/unfinished/nl_nl.json -c7654bc1bae61f4a082c5c192aee77eb20420524 assets/create/lang/unfinished/pl_pl.json -21fdbb74b8ec7985a6b28007dea9e89573185aee assets/create/lang/unfinished/pt_br.json -b1e1b5c9bbe8edf74a7ea065419c163a498705d5 assets/create/lang/unfinished/pt_pt.json -475bee61ea113f82c28d160a1e0a878497c70294 assets/create/lang/unfinished/ro_ro.json -8e7bbcc121f75d9624912b9b973c97e06e513ee9 assets/create/lang/unfinished/ru_ru.json -98e166139f6b34fc5b3b3f82e847e45fa76dde3d assets/create/lang/unfinished/zh_cn.json -ac0c777b32535ea8d87c6812cacb54b56f824c25 assets/create/lang/unfinished/zh_tw.json +0870bf282b75f8126166ed6f9a5ece80dd71b64b assets/create/lang/en_us.json +cc9ca507f0679d21193d3e9ea38ea2da63690538 assets/create/lang/unfinished/de_de.json +ac841d318a6df832c6de0daf4f9309c11aa46a3e assets/create/lang/unfinished/es_cl.json +2874f436add4c9ff52f6cce5180cb8c30c2dd203 assets/create/lang/unfinished/es_es.json +b1a3ae3a464bd5f2321a53666fe124e6cdee7bba assets/create/lang/unfinished/fr_fr.json +adcc4aab4338cc21e89fd92208d0d50cd00be109 assets/create/lang/unfinished/it_it.json +7cab2dd7377cc08087ecefd94f20d169f11ad7ed assets/create/lang/unfinished/ja_jp.json +cc00931dba01292bf0d407ba958bafa0add11128 assets/create/lang/unfinished/ko_kr.json +143a9297fc06a5e5d6ef5b458b8d4d7f888ebf42 assets/create/lang/unfinished/nl_nl.json +46495cff5c50b4f81b8075a90d85da06f55153bb assets/create/lang/unfinished/pl_pl.json +33de68ff95c6c281a530101160086e9367fac086 assets/create/lang/unfinished/pt_br.json +a1b28b1203acca0ea3d4a84c2945e25aed073eba assets/create/lang/unfinished/pt_pt.json +89a8daa6b5665bd1f63855fc07c3dbe238bf2995 assets/create/lang/unfinished/ro_ro.json +6744c0236c63458700c7a70607c00ca57e0a8473 assets/create/lang/unfinished/ru_ru.json +faad944cb89c9dce81cfabaaaa3fb53e354c64e2 assets/create/lang/unfinished/zh_cn.json +6176afefd864926e69f5e6a7935527674f535a77 assets/create/lang/unfinished/zh_tw.json 487a511a01b2a4531fb672f917922312db78f958 assets/create/models/block/acacia_window.json b48060cba1a382f373a05bf0039054053eccf076 assets/create/models/block/acacia_window_pane_noside.json 3066db1bf03cffa1a9c7fbacf47ae586632f4eb3 assets/create/models/block/acacia_window_pane_noside_alt.json @@ -2189,7 +2189,7 @@ d080b1b25e5bc8baf5aee68691b08c7f12ece3b0 assets/create/models/item/windmill_bear 866fbb0ce2878a73e0440d1caf6534c8bd7c384f assets/create/models/item/zinc_ingot.json a80fb25a0b655e76be986b5b49fcb0f03461a1ab assets/create/models/item/zinc_nugget.json b1689617190c05ef34bd18456b0c7ae09bb3210f assets/create/models/item/zinc_ore.json -56f5b100aa98b37efb44b85856ff4bfeaa7a89ec assets/create/sounds.json +40db9034dcb721eb07630d8a300f899dedd6e2f3 assets/create/sounds.json 0f1b4b980afba9bf2caf583b88e261bba8b10313 data/create/advancements/aesthetics.json 613e64b44bed959da899fdd54c1cacb227fb33f2 data/create/advancements/andesite_alloy.json 81885c6bfb85792c88aaa7c9b70f58832945d31f data/create/advancements/andesite_casing.json diff --git a/src/generated/resources/assets/create/lang/en_us.json b/src/generated/resources/assets/create/lang/en_us.json index 5843fd87b..c77626d63 100644 --- a/src/generated/resources/assets/create/lang/en_us.json +++ b/src/generated/resources/assets/create/lang/en_us.json @@ -1590,46 +1590,50 @@ "create.subtitle.contraption_disassemble": "Contraption stops", "create.subtitle.peculiar_bell_use": "Peculiar Bell tolls", - "create.subtitle.mixing": "Mixing noises", - "create.subtitle.mechanical_press_activation_belt": "Mechanical Press bonks", - "create.subtitle.fwoomp": "Potato Launcher fwoomps", "create.subtitle.worldshaper_place": "Worldshaper zaps", - "create.subtitle.sanding_long": "Sanding noises", - "create.subtitle.crushing_1": "Crushing noises", - "create.subtitle.depot_slide": "Item slides", + "create.subtitle.steam": "Steam noises", "create.subtitle.saw_activate_stone": "Mechanical Saw activates", - "create.subtitle.blaze_munch": "Blaze Burner munches", - "create.subtitle.funnel_flap": "Funnel flaps", "create.subtitle.schematicannon_finish": "Schematicannon dings", - "create.subtitle.haunted_bell_use": "Haunted Bell tolls", - "create.subtitle.scroll_value": "Scroll-input clicks", "create.subtitle.crafter_craft": "Crafter crafts", - "create.subtitle.controller_put": "Controller thumps", - "create.subtitle.cranking": "Hand Crank turns", "create.subtitle.wrench_remove": "Component breaks", - "create.subtitle.sanding_short": "Sanding noises", + "create.subtitle.train2": "Bogey wheels rumble", + "create.subtitle.train3": "Bogey wheels rumble muffled", "create.subtitle.whistle": "Whistling", "create.subtitle.cogs": "Cogwheels rumble", "create.subtitle.slime_added": "Slime squishes", + "create.subtitle.whistle_train_low": "Low whistling", + "create.subtitle.schematicannon_launch_block": "Schematicannon fires", + "create.subtitle.controller_take": "Lectern empties", + "create.subtitle.crafter_click": "Crafter clicks", + "create.subtitle.depot_plop": "Item lands", + "create.subtitle.confirm": "Affirmative ding", + "create.subtitle.mixing": "Mixing noises", + "create.subtitle.mechanical_press_activation_belt": "Mechanical Press bonks", + "create.subtitle.fwoomp": "Potato Launcher fwoomps", + "create.subtitle.sanding_long": "Sanding noises", + "create.subtitle.crushing_1": "Crushing noises", + "create.subtitle.depot_slide": "Item slides", + "create.subtitle.blaze_munch": "Blaze Burner munches", + "create.subtitle.funnel_flap": "Funnel flaps", + "create.subtitle.haunted_bell_use": "Haunted Bell tolls", + "create.subtitle.scroll_value": "Scroll-input clicks", + "create.subtitle.controller_put": "Controller thumps", + "create.subtitle.cranking": "Hand Crank turns", + "create.subtitle.sanding_short": "Sanding noises", "create.subtitle.wrench_rotate": "Wrench used", "create.subtitle.potato_hit": "Vegetable impacts", "create.subtitle.saw_activate_wood": "Mechanical Saw activates", "create.subtitle.whistle_high": "High whistling", "create.subtitle.whistle_train": "Whistling", "create.subtitle.haunted_bell_convert": "Haunted Bell awakens", + "create.subtitle.train": "Bogey wheels rumble", "create.subtitle.whistle_train_high": "High whistling", - "create.subtitle.whistle_train_low": "Low whistling", "create.subtitle.deny": "Declining boop", "create.subtitle.controller_click": "Controller clicks", "create.subtitle.whistle_low": "Low whistling", - "create.subtitle.schematicannon_launch_block": "Schematicannon fires", "create.subtitle.copper_armor_equip": "Diving equipment clinks", - "create.subtitle.controller_take": "Lectern empties", "create.subtitle.mechanical_press_activation": "Mechanical Press clangs", "create.subtitle.contraption_assemble": "Contraption moves", - "create.subtitle.crafter_click": "Crafter clicks", - "create.subtitle.depot_plop": "Item lands", - "create.subtitle.confirm": "Affirmative ding", "_": "->------------------------] Item Descriptions [------------------------<-", diff --git a/src/generated/resources/assets/create/lang/unfinished/de_de.json b/src/generated/resources/assets/create/lang/unfinished/de_de.json index c1f4baf1d..00d886933 100644 --- a/src/generated/resources/assets/create/lang/unfinished/de_de.json +++ b/src/generated/resources/assets/create/lang/unfinished/de_de.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 934", + "_": "Missing Localizations: 938", "_": "->------------------------] Game Elements [------------------------<-", @@ -1591,46 +1591,50 @@ "create.subtitle.contraption_disassemble": "Apparat stoppt", "create.subtitle.peculiar_bell_use": "Eigenartige Glockenschläge", - "create.subtitle.mixing": "Mix-Geräusche", - "create.subtitle.mechanical_press_activation_belt": "Mechanische Presse klingt", - "create.subtitle.fwoomp": "Kartoffel-Kanone macht fwumps", "create.subtitle.worldshaper_place": "Geländeformer zippt", - "create.subtitle.sanding_long": "Schleifgeräusche", - "create.subtitle.crushing_1": "Zermahlgeräusche", - "create.subtitle.depot_slide": "Gegenstand gleitet", + "create.subtitle.steam": "UNLOCALIZED: Steam noises", "create.subtitle.saw_activate_stone": "Mechanische Säge wird aktiviert", - "create.subtitle.blaze_munch": "Lohe kaut glücklich", - "create.subtitle.funnel_flap": "Klappe klappert", "create.subtitle.schematicannon_finish": "Bauplankanone endet", - "create.subtitle.haunted_bell_use": "Spukglocke läutet", - "create.subtitle.scroll_value": "Klick bei der Bildlauf-Eingabe", "create.subtitle.crafter_craft": "Hersteller stellt her", - "create.subtitle.controller_put": "Kontroller stößt auf", - "create.subtitle.cranking": "Handkurbel dreht", "create.subtitle.wrench_remove": "Teil entfernt", - "create.subtitle.sanding_short": "Schleifgeräusche", + "create.subtitle.train2": "UNLOCALIZED: Bogey wheels rumble", + "create.subtitle.train3": "UNLOCALIZED: Bogey wheels rumble muffled", "create.subtitle.whistle": "UNLOCALIZED: Whistling", "create.subtitle.cogs": "Zahnräder rattern", "create.subtitle.slime_added": "Schleim matscht", + "create.subtitle.whistle_train_low": "UNLOCALIZED: Low whistling", + "create.subtitle.schematicannon_launch_block": "Bauplankanone schießt", + "create.subtitle.controller_take": "Lesepult geleert", + "create.subtitle.crafter_click": "Hersteller klickt", + "create.subtitle.depot_plop": "Gegenstand landet", + "create.subtitle.confirm": "Bestätigendes Klick", + "create.subtitle.mixing": "Mix-Geräusche", + "create.subtitle.mechanical_press_activation_belt": "Mechanische Presse klingt", + "create.subtitle.fwoomp": "Kartoffel-Kanone macht fwumps", + "create.subtitle.sanding_long": "Schleifgeräusche", + "create.subtitle.crushing_1": "Zermahlgeräusche", + "create.subtitle.depot_slide": "Gegenstand gleitet", + "create.subtitle.blaze_munch": "Lohe kaut glücklich", + "create.subtitle.funnel_flap": "Klappe klappert", + "create.subtitle.haunted_bell_use": "Spukglocke läutet", + "create.subtitle.scroll_value": "Klick bei der Bildlauf-Eingabe", + "create.subtitle.controller_put": "Kontroller stößt auf", + "create.subtitle.cranking": "Handkurbel dreht", + "create.subtitle.sanding_short": "Schleifgeräusche", "create.subtitle.wrench_rotate": "Schraubenschlüssel benutzt", "create.subtitle.potato_hit": "Gemüse schlägt ein", "create.subtitle.saw_activate_wood": "Mechanische Säge wird aktiviert", "create.subtitle.whistle_high": "UNLOCALIZED: High whistling", "create.subtitle.whistle_train": "UNLOCALIZED: Whistling", "create.subtitle.haunted_bell_convert": "Spukglocke erwacht", + "create.subtitle.train": "UNLOCALIZED: Bogey wheels rumble", "create.subtitle.whistle_train_high": "UNLOCALIZED: High whistling", - "create.subtitle.whistle_train_low": "UNLOCALIZED: Low whistling", "create.subtitle.deny": "Ablehnendes boop", "create.subtitle.controller_click": "Kontroller klickt", "create.subtitle.whistle_low": "UNLOCALIZED: Low whistling", - "create.subtitle.schematicannon_launch_block": "Bauplankanone schießt", "create.subtitle.copper_armor_equip": "Taucherausrüstung klirrt", - "create.subtitle.controller_take": "Lesepult geleert", "create.subtitle.mechanical_press_activation": "Mechanische Presse wird aktiviert", "create.subtitle.contraption_assemble": "Apparat bewegt sich", - "create.subtitle.crafter_click": "Hersteller klickt", - "create.subtitle.depot_plop": "Gegenstand landet", - "create.subtitle.confirm": "Bestätigendes Klick", "_": "->------------------------] Item Descriptions [------------------------<-", diff --git a/src/generated/resources/assets/create/lang/unfinished/es_cl.json b/src/generated/resources/assets/create/lang/unfinished/es_cl.json index 9a4a406a7..035912153 100644 --- a/src/generated/resources/assets/create/lang/unfinished/es_cl.json +++ b/src/generated/resources/assets/create/lang/unfinished/es_cl.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 584", + "_": "Missing Localizations: 588", "_": "->------------------------] Game Elements [------------------------<-", @@ -1591,46 +1591,50 @@ "create.subtitle.contraption_disassemble": "Contrapción se detiene", "create.subtitle.peculiar_bell_use": "Campana Peculiar tañe", - "create.subtitle.mixing": "Sonidos de mezcla", - "create.subtitle.mechanical_press_activation_belt": "Prensa Mecánica hace bonk", - "create.subtitle.fwoomp": "Lanza Patatas hace fwoom", "create.subtitle.worldshaper_place": "El Forma Mundos zapea", - "create.subtitle.sanding_long": "UNLOCALIZED: Sanding noises", - "create.subtitle.crushing_1": "Sonidos de Trituración", - "create.subtitle.depot_slide": "Objeto se desliza", + "create.subtitle.steam": "UNLOCALIZED: Steam noises", "create.subtitle.saw_activate_stone": "Sierra Mecánica se activa", - "create.subtitle.blaze_munch": "Quemador Blaze mastica", - "create.subtitle.funnel_flap": "Ingreso aletea", "create.subtitle.schematicannon_finish": "Esquemacañón campanea", - "create.subtitle.haunted_bell_use": "Campana Embrujada tañe", - "create.subtitle.scroll_value": "Sonidos de Clic", "create.subtitle.crafter_craft": "Crafteador craftea", - "create.subtitle.controller_put": "Controlador golpetea", - "create.subtitle.cranking": "Manivela gira", "create.subtitle.wrench_remove": "Componente se rompe", - "create.subtitle.sanding_short": "UNLOCALIZED: Sanding noises", + "create.subtitle.train2": "UNLOCALIZED: Bogey wheels rumble", + "create.subtitle.train3": "UNLOCALIZED: Bogey wheels rumble muffled", "create.subtitle.whistle": "UNLOCALIZED: Whistling", "create.subtitle.cogs": "Engranajes suenan", "create.subtitle.slime_added": "Slime chapotea", + "create.subtitle.whistle_train_low": "UNLOCALIZED: Low whistling", + "create.subtitle.schematicannon_launch_block": "Esquemacañón dispara", + "create.subtitle.controller_take": "Atril se Vacía", + "create.subtitle.crafter_click": "Crafteador cliquea", + "create.subtitle.depot_plop": "Objeto aterriza", + "create.subtitle.confirm": "Ding afirmativo", + "create.subtitle.mixing": "Sonidos de mezcla", + "create.subtitle.mechanical_press_activation_belt": "Prensa Mecánica hace bonk", + "create.subtitle.fwoomp": "Lanza Patatas hace fwoom", + "create.subtitle.sanding_long": "UNLOCALIZED: Sanding noises", + "create.subtitle.crushing_1": "Sonidos de Trituración", + "create.subtitle.depot_slide": "Objeto se desliza", + "create.subtitle.blaze_munch": "Quemador Blaze mastica", + "create.subtitle.funnel_flap": "Ingreso aletea", + "create.subtitle.haunted_bell_use": "Campana Embrujada tañe", + "create.subtitle.scroll_value": "Sonidos de Clic", + "create.subtitle.controller_put": "Controlador golpetea", + "create.subtitle.cranking": "Manivela gira", + "create.subtitle.sanding_short": "UNLOCALIZED: Sanding noises", "create.subtitle.wrench_rotate": "Llave Inglesa usada", "create.subtitle.potato_hit": "Impactos vegetales", "create.subtitle.saw_activate_wood": "Sierra Mecánica se activa", "create.subtitle.whistle_high": "UNLOCALIZED: High whistling", "create.subtitle.whistle_train": "UNLOCALIZED: Whistling", "create.subtitle.haunted_bell_convert": "Campana Embrujada despierta", + "create.subtitle.train": "UNLOCALIZED: Bogey wheels rumble", "create.subtitle.whistle_train_high": "UNLOCALIZED: High whistling", - "create.subtitle.whistle_train_low": "UNLOCALIZED: Low whistling", "create.subtitle.deny": "Boop denegante", "create.subtitle.controller_click": "Controlador cliquea", "create.subtitle.whistle_low": "UNLOCALIZED: Low whistling", - "create.subtitle.schematicannon_launch_block": "Esquemacañón dispara", "create.subtitle.copper_armor_equip": "Equipo de Buceo tintinea", - "create.subtitle.controller_take": "Atril se Vacía", "create.subtitle.mechanical_press_activation": "Prensa Mecánica aplasta", "create.subtitle.contraption_assemble": "Contración se mueve", - "create.subtitle.crafter_click": "Crafteador cliquea", - "create.subtitle.depot_plop": "Objeto aterriza", - "create.subtitle.confirm": "Ding afirmativo", "_": "->------------------------] Item Descriptions [------------------------<-", diff --git a/src/generated/resources/assets/create/lang/unfinished/es_es.json b/src/generated/resources/assets/create/lang/unfinished/es_es.json index 526549650..74c6c888b 100644 --- a/src/generated/resources/assets/create/lang/unfinished/es_es.json +++ b/src/generated/resources/assets/create/lang/unfinished/es_es.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 248", + "_": "Missing Localizations: 252", "_": "->------------------------] Game Elements [------------------------<-", @@ -1591,46 +1591,50 @@ "create.subtitle.contraption_disassemble": "Artefacto animado se para", "create.subtitle.peculiar_bell_use": "Campana peculiar suena", - "create.subtitle.mixing": "Mezclando", - "create.subtitle.mechanical_press_activation_belt": "Prensa mecánica apisona", - "create.subtitle.fwoomp": "Cañón de patatas sonando", "create.subtitle.worldshaper_place": "Moldeador de mundos coloca bloques", - "create.subtitle.sanding_long": "Lijando", - "create.subtitle.crushing_1": "Triturando", - "create.subtitle.depot_slide": "Objeto desliza", + "create.subtitle.steam": "UNLOCALIZED: Steam noises", "create.subtitle.saw_activate_stone": "Sierra mecánica activada", - "create.subtitle.blaze_munch": "Quemador de blaze masca", - "create.subtitle.funnel_flap": "Embudo aletea", "create.subtitle.schematicannon_finish": "Esquematicañón suena", - "create.subtitle.haunted_bell_use": "Campana maldita suena", - "create.subtitle.scroll_value": "", "create.subtitle.crafter_craft": "Ensamblador mecánico acaba", - "create.subtitle.controller_put": "", - "create.subtitle.cranking": "Manivela gira", "create.subtitle.wrench_remove": "Componente se rompe", - "create.subtitle.sanding_short": "Lijando", + "create.subtitle.train2": "UNLOCALIZED: Bogey wheels rumble", + "create.subtitle.train3": "UNLOCALIZED: Bogey wheels rumble muffled", "create.subtitle.whistle": "UNLOCALIZED: Whistling", "create.subtitle.cogs": "Engranajes retumban", "create.subtitle.slime_added": "Pegamento chapotea", + "create.subtitle.whistle_train_low": "UNLOCALIZED: Low whistling", + "create.subtitle.schematicannon_launch_block": "Esquematicañón dispara", + "create.subtitle.controller_take": "Atril vaciándose", + "create.subtitle.crafter_click": "Ensamblador mecánico suena", + "create.subtitle.depot_plop": "Objeto aterriza", + "create.subtitle.confirm": "Campaneo afirmativo", + "create.subtitle.mixing": "Mezclando", + "create.subtitle.mechanical_press_activation_belt": "Prensa mecánica apisona", + "create.subtitle.fwoomp": "Cañón de patatas sonando", + "create.subtitle.sanding_long": "Lijando", + "create.subtitle.crushing_1": "Triturando", + "create.subtitle.depot_slide": "Objeto desliza", + "create.subtitle.blaze_munch": "Quemador de blaze masca", + "create.subtitle.funnel_flap": "Embudo aletea", + "create.subtitle.haunted_bell_use": "Campana maldita suena", + "create.subtitle.scroll_value": "", + "create.subtitle.controller_put": "", + "create.subtitle.cranking": "Manivela gira", + "create.subtitle.sanding_short": "Lijando", "create.subtitle.wrench_rotate": "Llave inglesa usada", "create.subtitle.potato_hit": "Impacto de vegetal", "create.subtitle.saw_activate_wood": "Sierra mecánica activada", "create.subtitle.whistle_high": "UNLOCALIZED: High whistling", "create.subtitle.whistle_train": "UNLOCALIZED: Whistling", "create.subtitle.haunted_bell_convert": "Campana maldita se despierta", + "create.subtitle.train": "UNLOCALIZED: Bogey wheels rumble", "create.subtitle.whistle_train_high": "UNLOCALIZED: High whistling", - "create.subtitle.whistle_train_low": "UNLOCALIZED: Low whistling", "create.subtitle.deny": "Pitido denegante", "create.subtitle.controller_click": "", "create.subtitle.whistle_low": "UNLOCALIZED: Low whistling", - "create.subtitle.schematicannon_launch_block": "Esquematicañón dispara", "create.subtitle.copper_armor_equip": "Equipo de buceo tintinea", - "create.subtitle.controller_take": "Atril vaciándose", "create.subtitle.mechanical_press_activation": "Prensa mecánica apisona", "create.subtitle.contraption_assemble": "Artefacto animado se mueve", - "create.subtitle.crafter_click": "Ensamblador mecánico suena", - "create.subtitle.depot_plop": "Objeto aterriza", - "create.subtitle.confirm": "Campaneo afirmativo", "_": "->------------------------] Item Descriptions [------------------------<-", diff --git a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json index f7ab59113..818e071ad 100644 --- a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json +++ b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1822", + "_": "Missing Localizations: 1826", "_": "->------------------------] Game Elements [------------------------<-", @@ -1591,46 +1591,50 @@ "create.subtitle.contraption_disassemble": "UNLOCALIZED: Contraption stops", "create.subtitle.peculiar_bell_use": "UNLOCALIZED: Peculiar Bell tolls", - "create.subtitle.mixing": "UNLOCALIZED: Mixing noises", - "create.subtitle.mechanical_press_activation_belt": "UNLOCALIZED: Mechanical Press bonks", - "create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps", "create.subtitle.worldshaper_place": "UNLOCALIZED: Worldshaper zaps", - "create.subtitle.sanding_long": "UNLOCALIZED: Sanding noises", - "create.subtitle.crushing_1": "UNLOCALIZED: Crushing noises", - "create.subtitle.depot_slide": "UNLOCALIZED: Item slides", + "create.subtitle.steam": "UNLOCALIZED: Steam noises", "create.subtitle.saw_activate_stone": "UNLOCALIZED: Mechanical Saw activates", - "create.subtitle.blaze_munch": "UNLOCALIZED: Blaze Burner munches", - "create.subtitle.funnel_flap": "UNLOCALIZED: Funnel flaps", "create.subtitle.schematicannon_finish": "Fin de schémacanon", - "create.subtitle.haunted_bell_use": "UNLOCALIZED: Haunted Bell tolls", - "create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks", "create.subtitle.crafter_craft": "UNLOCALIZED: Crafter crafts", - "create.subtitle.controller_put": "UNLOCALIZED: Controller thumps", - "create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns", "create.subtitle.wrench_remove": "UNLOCALIZED: Component breaks", - "create.subtitle.sanding_short": "UNLOCALIZED: Sanding noises", + "create.subtitle.train2": "UNLOCALIZED: Bogey wheels rumble", + "create.subtitle.train3": "UNLOCALIZED: Bogey wheels rumble muffled", "create.subtitle.whistle": "UNLOCALIZED: Whistling", "create.subtitle.cogs": "UNLOCALIZED: Cogwheels rumble", "create.subtitle.slime_added": "Bruit de slime", + "create.subtitle.whistle_train_low": "UNLOCALIZED: Low whistling", + "create.subtitle.schematicannon_launch_block": "Tir de schémacanon", + "create.subtitle.controller_take": "UNLOCALIZED: Lectern empties", + "create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks", + "create.subtitle.depot_plop": "UNLOCALIZED: Item lands", + "create.subtitle.confirm": "UNLOCALIZED: Affirmative ding", + "create.subtitle.mixing": "UNLOCALIZED: Mixing noises", + "create.subtitle.mechanical_press_activation_belt": "UNLOCALIZED: Mechanical Press bonks", + "create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps", + "create.subtitle.sanding_long": "UNLOCALIZED: Sanding noises", + "create.subtitle.crushing_1": "UNLOCALIZED: Crushing noises", + "create.subtitle.depot_slide": "UNLOCALIZED: Item slides", + "create.subtitle.blaze_munch": "UNLOCALIZED: Blaze Burner munches", + "create.subtitle.funnel_flap": "UNLOCALIZED: Funnel flaps", + "create.subtitle.haunted_bell_use": "UNLOCALIZED: Haunted Bell tolls", + "create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks", + "create.subtitle.controller_put": "UNLOCALIZED: Controller thumps", + "create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns", + "create.subtitle.sanding_short": "UNLOCALIZED: Sanding noises", "create.subtitle.wrench_rotate": "UNLOCALIZED: Wrench used", "create.subtitle.potato_hit": "UNLOCALIZED: Vegetable impacts", "create.subtitle.saw_activate_wood": "UNLOCALIZED: Mechanical Saw activates", "create.subtitle.whistle_high": "UNLOCALIZED: High whistling", "create.subtitle.whistle_train": "UNLOCALIZED: Whistling", "create.subtitle.haunted_bell_convert": "UNLOCALIZED: Haunted Bell awakens", + "create.subtitle.train": "UNLOCALIZED: Bogey wheels rumble", "create.subtitle.whistle_train_high": "UNLOCALIZED: High whistling", - "create.subtitle.whistle_train_low": "UNLOCALIZED: Low whistling", "create.subtitle.deny": "UNLOCALIZED: Declining boop", "create.subtitle.controller_click": "UNLOCALIZED: Controller clicks", "create.subtitle.whistle_low": "UNLOCALIZED: Low whistling", - "create.subtitle.schematicannon_launch_block": "Tir de schémacanon", "create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks", - "create.subtitle.controller_take": "UNLOCALIZED: Lectern empties", "create.subtitle.mechanical_press_activation": "Activation de la presse mechanique", "create.subtitle.contraption_assemble": "UNLOCALIZED: Contraption moves", - "create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks", - "create.subtitle.depot_plop": "UNLOCALIZED: Item lands", - "create.subtitle.confirm": "UNLOCALIZED: Affirmative ding", "_": "->------------------------] Item Descriptions [------------------------<-", diff --git a/src/generated/resources/assets/create/lang/unfinished/it_it.json b/src/generated/resources/assets/create/lang/unfinished/it_it.json index 1d930c0fc..270ffda71 100644 --- a/src/generated/resources/assets/create/lang/unfinished/it_it.json +++ b/src/generated/resources/assets/create/lang/unfinished/it_it.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1511", + "_": "Missing Localizations: 1515", "_": "->------------------------] Game Elements [------------------------<-", @@ -1591,46 +1591,50 @@ "create.subtitle.contraption_disassemble": "UNLOCALIZED: Contraption stops", "create.subtitle.peculiar_bell_use": "UNLOCALIZED: Peculiar Bell tolls", - "create.subtitle.mixing": "UNLOCALIZED: Mixing noises", - "create.subtitle.mechanical_press_activation_belt": "UNLOCALIZED: Mechanical Press bonks", - "create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps", "create.subtitle.worldshaper_place": "UNLOCALIZED: Worldshaper zaps", - "create.subtitle.sanding_long": "UNLOCALIZED: Sanding noises", - "create.subtitle.crushing_1": "UNLOCALIZED: Crushing noises", - "create.subtitle.depot_slide": "UNLOCALIZED: Item slides", + "create.subtitle.steam": "UNLOCALIZED: Steam noises", "create.subtitle.saw_activate_stone": "UNLOCALIZED: Mechanical Saw activates", - "create.subtitle.blaze_munch": "Il blaze lo gusta felicemente", - "create.subtitle.funnel_flap": "UNLOCALIZED: Funnel flaps", "create.subtitle.schematicannon_finish": "Finiture cannoneschematico", - "create.subtitle.haunted_bell_use": "UNLOCALIZED: Haunted Bell tolls", - "create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks", "create.subtitle.crafter_craft": "UNLOCALIZED: Crafter crafts", - "create.subtitle.controller_put": "UNLOCALIZED: Controller thumps", - "create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns", "create.subtitle.wrench_remove": "UNLOCALIZED: Component breaks", - "create.subtitle.sanding_short": "UNLOCALIZED: Sanding noises", + "create.subtitle.train2": "UNLOCALIZED: Bogey wheels rumble", + "create.subtitle.train3": "UNLOCALIZED: Bogey wheels rumble muffled", "create.subtitle.whistle": "UNLOCALIZED: Whistling", "create.subtitle.cogs": "UNLOCALIZED: Cogwheels rumble", "create.subtitle.slime_added": "Slime schiacciato", + "create.subtitle.whistle_train_low": "UNLOCALIZED: Low whistling", + "create.subtitle.schematicannon_launch_block": "Tiri del cannoneschematico", + "create.subtitle.controller_take": "UNLOCALIZED: Lectern empties", + "create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks", + "create.subtitle.depot_plop": "UNLOCALIZED: Item lands", + "create.subtitle.confirm": "UNLOCALIZED: Affirmative ding", + "create.subtitle.mixing": "UNLOCALIZED: Mixing noises", + "create.subtitle.mechanical_press_activation_belt": "UNLOCALIZED: Mechanical Press bonks", + "create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps", + "create.subtitle.sanding_long": "UNLOCALIZED: Sanding noises", + "create.subtitle.crushing_1": "UNLOCALIZED: Crushing noises", + "create.subtitle.depot_slide": "UNLOCALIZED: Item slides", + "create.subtitle.blaze_munch": "Il blaze lo gusta felicemente", + "create.subtitle.funnel_flap": "UNLOCALIZED: Funnel flaps", + "create.subtitle.haunted_bell_use": "UNLOCALIZED: Haunted Bell tolls", + "create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks", + "create.subtitle.controller_put": "UNLOCALIZED: Controller thumps", + "create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns", + "create.subtitle.sanding_short": "UNLOCALIZED: Sanding noises", "create.subtitle.wrench_rotate": "UNLOCALIZED: Wrench used", "create.subtitle.potato_hit": "UNLOCALIZED: Vegetable impacts", "create.subtitle.saw_activate_wood": "UNLOCALIZED: Mechanical Saw activates", "create.subtitle.whistle_high": "UNLOCALIZED: High whistling", "create.subtitle.whistle_train": "UNLOCALIZED: Whistling", "create.subtitle.haunted_bell_convert": "UNLOCALIZED: Haunted Bell awakens", + "create.subtitle.train": "UNLOCALIZED: Bogey wheels rumble", "create.subtitle.whistle_train_high": "UNLOCALIZED: High whistling", - "create.subtitle.whistle_train_low": "UNLOCALIZED: Low whistling", "create.subtitle.deny": "UNLOCALIZED: Declining boop", "create.subtitle.controller_click": "UNLOCALIZED: Controller clicks", "create.subtitle.whistle_low": "UNLOCALIZED: Low whistling", - "create.subtitle.schematicannon_launch_block": "Tiri del cannoneschematico", "create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks", - "create.subtitle.controller_take": "UNLOCALIZED: Lectern empties", "create.subtitle.mechanical_press_activation": "Pressa meccanica attiva", "create.subtitle.contraption_assemble": "UNLOCALIZED: Contraption moves", - "create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks", - "create.subtitle.depot_plop": "UNLOCALIZED: Item lands", - "create.subtitle.confirm": "UNLOCALIZED: Affirmative ding", "_": "->------------------------] Item Descriptions [------------------------<-", diff --git a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json index f7ac41819..c5ab57767 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json +++ b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 250", + "_": "Missing Localizations: 254", "_": "->------------------------] Game Elements [------------------------<-", @@ -1591,46 +1591,50 @@ "create.subtitle.contraption_disassemble": "からくりが止まる", "create.subtitle.peculiar_bell_use": "風変わりな鐘が鳴る", - "create.subtitle.mixing": "混ぜる音", - "create.subtitle.mechanical_press_activation_belt": "メカニカルプレスがボンと鳴る", - "create.subtitle.fwoomp": "ポテトランチャーがバキューンと鳴る", "create.subtitle.worldshaper_place": "ワールドシェーパーが設置する", - "create.subtitle.sanding_long": "研磨音", - "create.subtitle.crushing_1": "粉砕音", - "create.subtitle.depot_slide": "アイテムが滑る", + "create.subtitle.steam": "UNLOCALIZED: Steam noises", "create.subtitle.saw_activate_stone": "メカニカルソーが動作する", - "create.subtitle.blaze_munch": "ブレイズの咀嚼音", - "create.subtitle.funnel_flap": "ファンネルがはためく", "create.subtitle.schematicannon_finish": "概略図砲が作業を終える", - "create.subtitle.haunted_bell_use": "憑りつかれた鐘が鳴る", - "create.subtitle.scroll_value": "スクロールのカチカチ音", "create.subtitle.crafter_craft": "メカニカルクラフターがクラフトする", - "create.subtitle.controller_put": "コントローラのトントン音", - "create.subtitle.cranking": "ハンドクランクが回る", "create.subtitle.wrench_remove": "機械を壊す", - "create.subtitle.sanding_short": "研磨音", + "create.subtitle.train2": "UNLOCALIZED: Bogey wheels rumble", + "create.subtitle.train3": "UNLOCALIZED: Bogey wheels rumble muffled", "create.subtitle.whistle": "UNLOCALIZED: Whistling", "create.subtitle.cogs": "歯車がゴロゴロと鳴る", "create.subtitle.slime_added": "スライムがぐしゃっとつぶれる", + "create.subtitle.whistle_train_low": "UNLOCALIZED: Low whistling", + "create.subtitle.schematicannon_launch_block": "概略図砲が発射する", + "create.subtitle.controller_take": "書見台が空になる", + "create.subtitle.crafter_click": "メカニカルクラフターのカチカチ音", + "create.subtitle.depot_plop": "デプロイヤーにアイテムが入れられる", + "create.subtitle.confirm": "成功音", + "create.subtitle.mixing": "混ぜる音", + "create.subtitle.mechanical_press_activation_belt": "メカニカルプレスがボンと鳴る", + "create.subtitle.fwoomp": "ポテトランチャーがバキューンと鳴る", + "create.subtitle.sanding_long": "研磨音", + "create.subtitle.crushing_1": "粉砕音", + "create.subtitle.depot_slide": "アイテムが滑る", + "create.subtitle.blaze_munch": "ブレイズの咀嚼音", + "create.subtitle.funnel_flap": "ファンネルがはためく", + "create.subtitle.haunted_bell_use": "憑りつかれた鐘が鳴る", + "create.subtitle.scroll_value": "スクロールのカチカチ音", + "create.subtitle.controller_put": "コントローラのトントン音", + "create.subtitle.cranking": "ハンドクランクが回る", + "create.subtitle.sanding_short": "研磨音", "create.subtitle.wrench_rotate": "レンチが使用される", "create.subtitle.potato_hit": "野菜の衝撃", "create.subtitle.saw_activate_wood": "メカニカルソーが動作する", "create.subtitle.whistle_high": "UNLOCALIZED: High whistling", "create.subtitle.whistle_train": "UNLOCALIZED: Whistling", "create.subtitle.haunted_bell_convert": "憑りつかれた鐘が目覚める", + "create.subtitle.train": "UNLOCALIZED: Bogey wheels rumble", "create.subtitle.whistle_train_high": "UNLOCALIZED: High whistling", - "create.subtitle.whistle_train_low": "UNLOCALIZED: Low whistling", "create.subtitle.deny": "失敗音", "create.subtitle.controller_click": "コントローラーのカチカチ音", "create.subtitle.whistle_low": "UNLOCALIZED: Low whistling", - "create.subtitle.schematicannon_launch_block": "概略図砲が発射する", "create.subtitle.copper_armor_equip": "潜水服がチャリンと鳴る", - "create.subtitle.controller_take": "書見台が空になる", "create.subtitle.mechanical_press_activation": "メカニカルプレスがガーンと鳴る", "create.subtitle.contraption_assemble": "からくりが動く", - "create.subtitle.crafter_click": "メカニカルクラフターのカチカチ音", - "create.subtitle.depot_plop": "デプロイヤーにアイテムが入れられる", - "create.subtitle.confirm": "成功音", "_": "->------------------------] Item Descriptions [------------------------<-", diff --git a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json index 48ba4d08b..f6a17dbef 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json +++ b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 250", + "_": "Missing Localizations: 254", "_": "->------------------------] Game Elements [------------------------<-", @@ -1591,46 +1591,50 @@ "create.subtitle.contraption_disassemble": "구조물이 멈춤", "create.subtitle.peculiar_bell_use": "황동 종이 울림", - "create.subtitle.mixing": "섞는 소리", - "create.subtitle.mechanical_press_activation_belt": "압착기가 작동함", - "create.subtitle.fwoomp": "감자포를 쏨", "create.subtitle.worldshaper_place": "세계편집기가 쏨", - "create.subtitle.sanding_long": "사포를 사용함", - "create.subtitle.crushing_1": "분쇄되는 소리", - "create.subtitle.depot_slide": "아이템이 미끄러짐", + "create.subtitle.steam": "UNLOCALIZED: Steam noises", "create.subtitle.saw_activate_stone": "톱이 작동함", - "create.subtitle.blaze_munch": "블레이즈 버너가 섭취함", - "create.subtitle.funnel_flap": "퍼널이 펄럭거림", "create.subtitle.schematicannon_finish": "청사진 대포가 끝남", - "create.subtitle.haunted_bell_use": "귀신들린 종이 울림", - "create.subtitle.scroll_value": "스크롤 소리", "create.subtitle.crafter_craft": "조합기가 조합함", - "create.subtitle.controller_put": "조작기를 놓음", - "create.subtitle.cranking": "크랭크가 돌아감", "create.subtitle.wrench_remove": "장치가 부숴짐", - "create.subtitle.sanding_short": "사포를 사용함", + "create.subtitle.train2": "UNLOCALIZED: Bogey wheels rumble", + "create.subtitle.train3": "UNLOCALIZED: Bogey wheels rumble muffled", "create.subtitle.whistle": "UNLOCALIZED: Whistling", "create.subtitle.cogs": "톱니바퀴가 돌아감", "create.subtitle.slime_added": "슬라임이 철퍽거림", + "create.subtitle.whistle_train_low": "UNLOCALIZED: Low whistling", + "create.subtitle.schematicannon_launch_block": "청사진 대포가 발사함", + "create.subtitle.controller_take": "독서대가 비워짐", + "create.subtitle.crafter_click": "조합기가 작동함", + "create.subtitle.depot_plop": "아이템이 놓임", + "create.subtitle.confirm": "확인음", + "create.subtitle.mixing": "섞는 소리", + "create.subtitle.mechanical_press_activation_belt": "압착기가 작동함", + "create.subtitle.fwoomp": "감자포를 쏨", + "create.subtitle.sanding_long": "사포를 사용함", + "create.subtitle.crushing_1": "분쇄되는 소리", + "create.subtitle.depot_slide": "아이템이 미끄러짐", + "create.subtitle.blaze_munch": "블레이즈 버너가 섭취함", + "create.subtitle.funnel_flap": "퍼널이 펄럭거림", + "create.subtitle.haunted_bell_use": "귀신들린 종이 울림", + "create.subtitle.scroll_value": "스크롤 소리", + "create.subtitle.controller_put": "조작기를 놓음", + "create.subtitle.cranking": "크랭크가 돌아감", + "create.subtitle.sanding_short": "사포를 사용함", "create.subtitle.wrench_rotate": "렌치를 사용함", "create.subtitle.potato_hit": "채소가 부딫힘", "create.subtitle.saw_activate_wood": "톱이 작동함", "create.subtitle.whistle_high": "UNLOCALIZED: High whistling", "create.subtitle.whistle_train": "UNLOCALIZED: Whistling", "create.subtitle.haunted_bell_convert": "종에 귀신이 들림", + "create.subtitle.train": "UNLOCALIZED: Bogey wheels rumble", "create.subtitle.whistle_train_high": "UNLOCALIZED: High whistling", - "create.subtitle.whistle_train_low": "UNLOCALIZED: Low whistling", "create.subtitle.deny": "취소음", "create.subtitle.controller_click": "조작기를 누름", "create.subtitle.whistle_low": "UNLOCALIZED: Low whistling", - "create.subtitle.schematicannon_launch_block": "청사진 대포가 발사함", "create.subtitle.copper_armor_equip": "잠수용 장비가 철커덕거림", - "create.subtitle.controller_take": "독서대가 비워짐", "create.subtitle.mechanical_press_activation": "압착기가 작동함", "create.subtitle.contraption_assemble": "구조물이 움직임", - "create.subtitle.crafter_click": "조합기가 작동함", - "create.subtitle.depot_plop": "아이템이 놓임", - "create.subtitle.confirm": "확인음", "_": "->------------------------] Item Descriptions [------------------------<-", diff --git a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json index 7d3fd6d3c..21a78e558 100644 --- a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json +++ b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 2174", + "_": "Missing Localizations: 2178", "_": "->------------------------] Game Elements [------------------------<-", @@ -1591,46 +1591,50 @@ "create.subtitle.contraption_disassemble": "UNLOCALIZED: Contraption stops", "create.subtitle.peculiar_bell_use": "UNLOCALIZED: Peculiar Bell tolls", - "create.subtitle.mixing": "UNLOCALIZED: Mixing noises", - "create.subtitle.mechanical_press_activation_belt": "UNLOCALIZED: Mechanical Press bonks", - "create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps", "create.subtitle.worldshaper_place": "UNLOCALIZED: Worldshaper zaps", - "create.subtitle.sanding_long": "UNLOCALIZED: Sanding noises", - "create.subtitle.crushing_1": "UNLOCALIZED: Crushing noises", - "create.subtitle.depot_slide": "UNLOCALIZED: Item slides", + "create.subtitle.steam": "UNLOCALIZED: Steam noises", "create.subtitle.saw_activate_stone": "UNLOCALIZED: Mechanical Saw activates", - "create.subtitle.blaze_munch": "UNLOCALIZED: Blaze Burner munches", - "create.subtitle.funnel_flap": "UNLOCALIZED: Funnel flaps", "create.subtitle.schematicannon_finish": "UNLOCALIZED: Schematicannon dings", - "create.subtitle.haunted_bell_use": "UNLOCALIZED: Haunted Bell tolls", - "create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks", "create.subtitle.crafter_craft": "UNLOCALIZED: Crafter crafts", - "create.subtitle.controller_put": "UNLOCALIZED: Controller thumps", - "create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns", "create.subtitle.wrench_remove": "UNLOCALIZED: Component breaks", - "create.subtitle.sanding_short": "UNLOCALIZED: Sanding noises", + "create.subtitle.train2": "UNLOCALIZED: Bogey wheels rumble", + "create.subtitle.train3": "UNLOCALIZED: Bogey wheels rumble muffled", "create.subtitle.whistle": "UNLOCALIZED: Whistling", "create.subtitle.cogs": "UNLOCALIZED: Cogwheels rumble", "create.subtitle.slime_added": "UNLOCALIZED: Slime squishes", + "create.subtitle.whistle_train_low": "UNLOCALIZED: Low whistling", + "create.subtitle.schematicannon_launch_block": "UNLOCALIZED: Schematicannon fires", + "create.subtitle.controller_take": "UNLOCALIZED: Lectern empties", + "create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks", + "create.subtitle.depot_plop": "UNLOCALIZED: Item lands", + "create.subtitle.confirm": "UNLOCALIZED: Affirmative ding", + "create.subtitle.mixing": "UNLOCALIZED: Mixing noises", + "create.subtitle.mechanical_press_activation_belt": "UNLOCALIZED: Mechanical Press bonks", + "create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps", + "create.subtitle.sanding_long": "UNLOCALIZED: Sanding noises", + "create.subtitle.crushing_1": "UNLOCALIZED: Crushing noises", + "create.subtitle.depot_slide": "UNLOCALIZED: Item slides", + "create.subtitle.blaze_munch": "UNLOCALIZED: Blaze Burner munches", + "create.subtitle.funnel_flap": "UNLOCALIZED: Funnel flaps", + "create.subtitle.haunted_bell_use": "UNLOCALIZED: Haunted Bell tolls", + "create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks", + "create.subtitle.controller_put": "UNLOCALIZED: Controller thumps", + "create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns", + "create.subtitle.sanding_short": "UNLOCALIZED: Sanding noises", "create.subtitle.wrench_rotate": "UNLOCALIZED: Wrench used", "create.subtitle.potato_hit": "UNLOCALIZED: Vegetable impacts", "create.subtitle.saw_activate_wood": "UNLOCALIZED: Mechanical Saw activates", "create.subtitle.whistle_high": "UNLOCALIZED: High whistling", "create.subtitle.whistle_train": "UNLOCALIZED: Whistling", "create.subtitle.haunted_bell_convert": "UNLOCALIZED: Haunted Bell awakens", + "create.subtitle.train": "UNLOCALIZED: Bogey wheels rumble", "create.subtitle.whistle_train_high": "UNLOCALIZED: High whistling", - "create.subtitle.whistle_train_low": "UNLOCALIZED: Low whistling", "create.subtitle.deny": "UNLOCALIZED: Declining boop", "create.subtitle.controller_click": "UNLOCALIZED: Controller clicks", "create.subtitle.whistle_low": "UNLOCALIZED: Low whistling", - "create.subtitle.schematicannon_launch_block": "UNLOCALIZED: Schematicannon fires", "create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks", - "create.subtitle.controller_take": "UNLOCALIZED: Lectern empties", "create.subtitle.mechanical_press_activation": "UNLOCALIZED: Mechanical Press clangs", "create.subtitle.contraption_assemble": "UNLOCALIZED: Contraption moves", - "create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks", - "create.subtitle.depot_plop": "UNLOCALIZED: Item lands", - "create.subtitle.confirm": "UNLOCALIZED: Affirmative ding", "_": "->------------------------] Item Descriptions [------------------------<-", diff --git a/src/generated/resources/assets/create/lang/unfinished/pl_pl.json b/src/generated/resources/assets/create/lang/unfinished/pl_pl.json index 3f5e61c16..21fe4d5b0 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pl_pl.json +++ b/src/generated/resources/assets/create/lang/unfinished/pl_pl.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 623", + "_": "Missing Localizations: 627", "_": "->------------------------] Game Elements [------------------------<-", @@ -1591,46 +1591,50 @@ "create.subtitle.contraption_disassemble": "Maszyna staje", "create.subtitle.peculiar_bell_use": "Dziwny dzwon dzwoni", - "create.subtitle.mixing": "Dźwięki mieszania", - "create.subtitle.mechanical_press_activation_belt": "Mechaniczna prasa stuka", - "create.subtitle.fwoomp": "Armata na ziemniaki strzela", "create.subtitle.worldshaper_place": "Kształter strzela", - "create.subtitle.sanding_long": "UNLOCALIZED: Sanding noises", - "create.subtitle.crushing_1": "Dźwięki kruszenia", - "create.subtitle.depot_slide": "Przedmiot ślizga się", + "create.subtitle.steam": "UNLOCALIZED: Steam noises", "create.subtitle.saw_activate_stone": "Mechaniczna piła aktywuje się", - "create.subtitle.blaze_munch": "Płomyk szczęśliwie przeżuwa", - "create.subtitle.funnel_flap": "Lejek trzepocze", "create.subtitle.schematicannon_finish": "Schematoarmata skończyła", - "create.subtitle.haunted_bell_use": "Nawiedzony dzwoń dzwoni", - "create.subtitle.scroll_value": "Kliknięcie", "create.subtitle.crafter_craft": "Mechaniczny stół rzemieślniczy konstruuje", - "create.subtitle.controller_put": "Sterownik klika", - "create.subtitle.cranking": "Ręczna korba obraca się", "create.subtitle.wrench_remove": "Komponent niszczy się", - "create.subtitle.sanding_short": "UNLOCALIZED: Sanding noises", + "create.subtitle.train2": "UNLOCALIZED: Bogey wheels rumble", + "create.subtitle.train3": "UNLOCALIZED: Bogey wheels rumble muffled", "create.subtitle.whistle": "UNLOCALIZED: Whistling", "create.subtitle.cogs": "Koła zębate terkoczą", "create.subtitle.slime_added": "Szlam plaska", + "create.subtitle.whistle_train_low": "UNLOCALIZED: Low whistling", + "create.subtitle.schematicannon_launch_block": "Schematoarmata strzela", + "create.subtitle.controller_take": "Pulpit opróżnia się", + "create.subtitle.crafter_click": "Mechaniczny stół rzemieślniczy stuka", + "create.subtitle.depot_plop": "Przedmiot ląduje", + "create.subtitle.confirm": "Dźwięk potwierdzenia", + "create.subtitle.mixing": "Dźwięki mieszania", + "create.subtitle.mechanical_press_activation_belt": "Mechaniczna prasa stuka", + "create.subtitle.fwoomp": "Armata na ziemniaki strzela", + "create.subtitle.sanding_long": "UNLOCALIZED: Sanding noises", + "create.subtitle.crushing_1": "Dźwięki kruszenia", + "create.subtitle.depot_slide": "Przedmiot ślizga się", + "create.subtitle.blaze_munch": "Płomyk szczęśliwie przeżuwa", + "create.subtitle.funnel_flap": "Lejek trzepocze", + "create.subtitle.haunted_bell_use": "Nawiedzony dzwoń dzwoni", + "create.subtitle.scroll_value": "Kliknięcie", + "create.subtitle.controller_put": "Sterownik klika", + "create.subtitle.cranking": "Ręczna korba obraca się", + "create.subtitle.sanding_short": "UNLOCALIZED: Sanding noises", "create.subtitle.wrench_rotate": "Klucz skrzypi", "create.subtitle.potato_hit": "Warzywo ląduje", "create.subtitle.saw_activate_wood": "Mechaniczna piła aktywuje się", "create.subtitle.whistle_high": "UNLOCALIZED: High whistling", "create.subtitle.whistle_train": "UNLOCALIZED: Whistling", "create.subtitle.haunted_bell_convert": "Nawiedzony dzwon budzi się", + "create.subtitle.train": "UNLOCALIZED: Bogey wheels rumble", "create.subtitle.whistle_train_high": "UNLOCALIZED: High whistling", - "create.subtitle.whistle_train_low": "UNLOCALIZED: Low whistling", "create.subtitle.deny": "Dźwięk odmowy", "create.subtitle.controller_click": "Sterownik klika", "create.subtitle.whistle_low": "UNLOCALIZED: Low whistling", - "create.subtitle.schematicannon_launch_block": "Schematoarmata strzela", "create.subtitle.copper_armor_equip": "Sprzęt do nurkowania pobrzękuje", - "create.subtitle.controller_take": "Pulpit opróżnia się", "create.subtitle.mechanical_press_activation": "Mechaniczna prasa się uruchamia", "create.subtitle.contraption_assemble": "Maszyna przesuwa się", - "create.subtitle.crafter_click": "Mechaniczny stół rzemieślniczy stuka", - "create.subtitle.depot_plop": "Przedmiot ląduje", - "create.subtitle.confirm": "Dźwięk potwierdzenia", "_": "->------------------------] Item Descriptions [------------------------<-", diff --git a/src/generated/resources/assets/create/lang/unfinished/pt_br.json b/src/generated/resources/assets/create/lang/unfinished/pt_br.json index 0cfbc97d5..bdd49e822 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pt_br.json +++ b/src/generated/resources/assets/create/lang/unfinished/pt_br.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1118", + "_": "Missing Localizations: 1122", "_": "->------------------------] Game Elements [------------------------<-", @@ -1591,46 +1591,50 @@ "create.subtitle.contraption_disassemble": "Engenhoca para", "create.subtitle.peculiar_bell_use": "Sino peculiar toca", - "create.subtitle.mixing": "Sons de mistura", - "create.subtitle.mechanical_press_activation_belt": "Bonks da prensa mecanica", - "create.subtitle.fwoomp": "Fwoomps do canhão de batata", "create.subtitle.worldshaper_place": "Zaps do terraformador", - "create.subtitle.sanding_long": "Sons de lixa", - "create.subtitle.crushing_1": "Sons de trituração", - "create.subtitle.depot_slide": "Item escorrega", + "create.subtitle.steam": "UNLOCALIZED: Steam noises", "create.subtitle.saw_activate_stone": "Serra mecânica ativa", - "create.subtitle.blaze_munch": "Queimador de blazer mastiga", - "create.subtitle.funnel_flap": "Abas do funil batendo", "create.subtitle.schematicannon_finish": "Ding do canhão de esquema", - "create.subtitle.haunted_bell_use": "Sino assombrado toca", - "create.subtitle.scroll_value": "click do scroll", "create.subtitle.crafter_craft": "Fabricador fábrica", - "create.subtitle.controller_put": "Thumps do controle", - "create.subtitle.cranking": "Manivela gira", "create.subtitle.wrench_remove": "Componente quebra", - "create.subtitle.sanding_short": "Sons de lixa", + "create.subtitle.train2": "UNLOCALIZED: Bogey wheels rumble", + "create.subtitle.train3": "UNLOCALIZED: Bogey wheels rumble muffled", "create.subtitle.whistle": "UNLOCALIZED: Whistling", "create.subtitle.cogs": "tremer da rodas dentadas", "create.subtitle.slime_added": "Slime sendo espremido", + "create.subtitle.whistle_train_low": "UNLOCALIZED: Low whistling", + "create.subtitle.schematicannon_launch_block": "Canhão de esquema atira", + "create.subtitle.controller_take": "Atril esvaziado", + "create.subtitle.crafter_click": "Clicks do fabricador", + "create.subtitle.depot_plop": "Item pousa", + "create.subtitle.confirm": "Ding afirmativo", + "create.subtitle.mixing": "Sons de mistura", + "create.subtitle.mechanical_press_activation_belt": "Bonks da prensa mecanica", + "create.subtitle.fwoomp": "Fwoomps do canhão de batata", + "create.subtitle.sanding_long": "Sons de lixa", + "create.subtitle.crushing_1": "Sons de trituração", + "create.subtitle.depot_slide": "Item escorrega", + "create.subtitle.blaze_munch": "Queimador de blazer mastiga", + "create.subtitle.funnel_flap": "Abas do funil batendo", + "create.subtitle.haunted_bell_use": "Sino assombrado toca", + "create.subtitle.scroll_value": "click do scroll", + "create.subtitle.controller_put": "Thumps do controle", + "create.subtitle.cranking": "Manivela gira", + "create.subtitle.sanding_short": "Sons de lixa", "create.subtitle.wrench_rotate": "Chave inglesa usada", "create.subtitle.potato_hit": "Impacto vegetal", "create.subtitle.saw_activate_wood": "Serra mecânica ativa", "create.subtitle.whistle_high": "UNLOCALIZED: High whistling", "create.subtitle.whistle_train": "UNLOCALIZED: Whistling", "create.subtitle.haunted_bell_convert": "Sino assombrado acorda", + "create.subtitle.train": "UNLOCALIZED: Bogey wheels rumble", "create.subtitle.whistle_train_high": "UNLOCALIZED: High whistling", - "create.subtitle.whistle_train_low": "UNLOCALIZED: Low whistling", "create.subtitle.deny": "Boop de negação", "create.subtitle.controller_click": "Clicks do controle", "create.subtitle.whistle_low": "UNLOCALIZED: Low whistling", - "create.subtitle.schematicannon_launch_block": "Canhão de esquema atira", "create.subtitle.copper_armor_equip": "Tilintar dos equipamentos de mergulho", - "create.subtitle.controller_take": "Atril esvaziado", "create.subtitle.mechanical_press_activation": "Clang da prensa mecânica", "create.subtitle.contraption_assemble": "Engenhoca move", - "create.subtitle.crafter_click": "Clicks do fabricador", - "create.subtitle.depot_plop": "Item pousa", - "create.subtitle.confirm": "Ding afirmativo", "_": "->------------------------] Item Descriptions [------------------------<-", diff --git a/src/generated/resources/assets/create/lang/unfinished/pt_pt.json b/src/generated/resources/assets/create/lang/unfinished/pt_pt.json index cf75443ac..c516c5b38 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pt_pt.json +++ b/src/generated/resources/assets/create/lang/unfinished/pt_pt.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1796", + "_": "Missing Localizations: 1800", "_": "->------------------------] Game Elements [------------------------<-", @@ -1591,46 +1591,50 @@ "create.subtitle.contraption_disassemble": "UNLOCALIZED: Contraption stops", "create.subtitle.peculiar_bell_use": "UNLOCALIZED: Peculiar Bell tolls", - "create.subtitle.mixing": "UNLOCALIZED: Mixing noises", - "create.subtitle.mechanical_press_activation_belt": "UNLOCALIZED: Mechanical Press bonks", - "create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps", "create.subtitle.worldshaper_place": "UNLOCALIZED: Worldshaper zaps", - "create.subtitle.sanding_long": "UNLOCALIZED: Sanding noises", - "create.subtitle.crushing_1": "UNLOCALIZED: Crushing noises", - "create.subtitle.depot_slide": "UNLOCALIZED: Item slides", + "create.subtitle.steam": "UNLOCALIZED: Steam noises", "create.subtitle.saw_activate_stone": "UNLOCALIZED: Mechanical Saw activates", - "create.subtitle.blaze_munch": "UNLOCALIZED: Blaze Burner munches", - "create.subtitle.funnel_flap": "UNLOCALIZED: Funnel flaps", "create.subtitle.schematicannon_finish": "UNLOCALIZED: Schematicannon dings", - "create.subtitle.haunted_bell_use": "UNLOCALIZED: Haunted Bell tolls", - "create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks", "create.subtitle.crafter_craft": "UNLOCALIZED: Crafter crafts", - "create.subtitle.controller_put": "UNLOCALIZED: Controller thumps", - "create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns", "create.subtitle.wrench_remove": "UNLOCALIZED: Component breaks", - "create.subtitle.sanding_short": "UNLOCALIZED: Sanding noises", + "create.subtitle.train2": "UNLOCALIZED: Bogey wheels rumble", + "create.subtitle.train3": "UNLOCALIZED: Bogey wheels rumble muffled", "create.subtitle.whistle": "UNLOCALIZED: Whistling", "create.subtitle.cogs": "UNLOCALIZED: Cogwheels rumble", "create.subtitle.slime_added": "UNLOCALIZED: Slime squishes", + "create.subtitle.whistle_train_low": "UNLOCALIZED: Low whistling", + "create.subtitle.schematicannon_launch_block": "UNLOCALIZED: Schematicannon fires", + "create.subtitle.controller_take": "UNLOCALIZED: Lectern empties", + "create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks", + "create.subtitle.depot_plop": "UNLOCALIZED: Item lands", + "create.subtitle.confirm": "UNLOCALIZED: Affirmative ding", + "create.subtitle.mixing": "UNLOCALIZED: Mixing noises", + "create.subtitle.mechanical_press_activation_belt": "UNLOCALIZED: Mechanical Press bonks", + "create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps", + "create.subtitle.sanding_long": "UNLOCALIZED: Sanding noises", + "create.subtitle.crushing_1": "UNLOCALIZED: Crushing noises", + "create.subtitle.depot_slide": "UNLOCALIZED: Item slides", + "create.subtitle.blaze_munch": "UNLOCALIZED: Blaze Burner munches", + "create.subtitle.funnel_flap": "UNLOCALIZED: Funnel flaps", + "create.subtitle.haunted_bell_use": "UNLOCALIZED: Haunted Bell tolls", + "create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks", + "create.subtitle.controller_put": "UNLOCALIZED: Controller thumps", + "create.subtitle.cranking": "UNLOCALIZED: Hand Crank turns", + "create.subtitle.sanding_short": "UNLOCALIZED: Sanding noises", "create.subtitle.wrench_rotate": "UNLOCALIZED: Wrench used", "create.subtitle.potato_hit": "UNLOCALIZED: Vegetable impacts", "create.subtitle.saw_activate_wood": "UNLOCALIZED: Mechanical Saw activates", "create.subtitle.whistle_high": "UNLOCALIZED: High whistling", "create.subtitle.whistle_train": "UNLOCALIZED: Whistling", "create.subtitle.haunted_bell_convert": "UNLOCALIZED: Haunted Bell awakens", + "create.subtitle.train": "UNLOCALIZED: Bogey wheels rumble", "create.subtitle.whistle_train_high": "UNLOCALIZED: High whistling", - "create.subtitle.whistle_train_low": "UNLOCALIZED: Low whistling", "create.subtitle.deny": "UNLOCALIZED: Declining boop", "create.subtitle.controller_click": "UNLOCALIZED: Controller clicks", "create.subtitle.whistle_low": "UNLOCALIZED: Low whistling", - "create.subtitle.schematicannon_launch_block": "UNLOCALIZED: Schematicannon fires", "create.subtitle.copper_armor_equip": "UNLOCALIZED: Diving equipment clinks", - "create.subtitle.controller_take": "UNLOCALIZED: Lectern empties", "create.subtitle.mechanical_press_activation": "UNLOCALIZED: Mechanical Press clangs", "create.subtitle.contraption_assemble": "UNLOCALIZED: Contraption moves", - "create.subtitle.crafter_click": "UNLOCALIZED: Crafter clicks", - "create.subtitle.depot_plop": "UNLOCALIZED: Item lands", - "create.subtitle.confirm": "UNLOCALIZED: Affirmative ding", "_": "->------------------------] Item Descriptions [------------------------<-", diff --git a/src/generated/resources/assets/create/lang/unfinished/ro_ro.json b/src/generated/resources/assets/create/lang/unfinished/ro_ro.json index 9d0774e38..c14a00023 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ro_ro.json +++ b/src/generated/resources/assets/create/lang/unfinished/ro_ro.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 251", + "_": "Missing Localizations: 255", "_": "->------------------------] Game Elements [------------------------<-", @@ -1591,46 +1591,50 @@ "create.subtitle.contraption_disassemble": "Invenție se oprește", "create.subtitle.peculiar_bell_use": "Clopot Ciudat bate", - "create.subtitle.mixing": "Sunete de amestecare", - "create.subtitle.mechanical_press_activation_belt": "Presă Mecanică face bonk", - "create.subtitle.fwoomp": "Lansator de Cartofi face fwoomp", "create.subtitle.worldshaper_place": "Modelator de Lume face zap", - "create.subtitle.sanding_long": "Sunete de șlefuit", - "create.subtitle.crushing_1": "Sunete de zdrobit", - "create.subtitle.depot_slide": "Obiect alunecă", + "create.subtitle.steam": "UNLOCALIZED: Steam noises", "create.subtitle.saw_activate_stone": "Ferăstrău Mecanic se activează", - "create.subtitle.blaze_munch": "Arzător de Dogoreală plescăie", - "create.subtitle.funnel_flap": "Pâlnie falfâie", "create.subtitle.schematicannon_finish": "Tun de Schemă face ding", - "create.subtitle.haunted_bell_use": "Clopot Bântuit bate", - "create.subtitle.scroll_value": "Acțiune de Scroll clickuiește", "create.subtitle.crafter_craft": "Meșter lucrează", - "create.subtitle.controller_put": "Controlor bocăne", - "create.subtitle.cranking": "Manivelă se rotește", "create.subtitle.wrench_remove": "Component se sparge", - "create.subtitle.sanding_short": "Sunete de șlefuit", + "create.subtitle.train2": "UNLOCALIZED: Bogey wheels rumble", + "create.subtitle.train3": "UNLOCALIZED: Bogey wheels rumble muffled", "create.subtitle.whistle": "UNLOCALIZED: Whistling", "create.subtitle.cogs": "Roți Dințate vuie", "create.subtitle.slime_added": "Mâzgă zdrobește", + "create.subtitle.whistle_train_low": "UNLOCALIZED: Low whistling", + "create.subtitle.schematicannon_launch_block": "Tun de Schemă trage", + "create.subtitle.controller_take": "Pupitru se golește", + "create.subtitle.crafter_click": "Meșter clickuiește", + "create.subtitle.depot_plop": "Obiect aterizează", + "create.subtitle.confirm": "Ding afirmativ", + "create.subtitle.mixing": "Sunete de amestecare", + "create.subtitle.mechanical_press_activation_belt": "Presă Mecanică face bonk", + "create.subtitle.fwoomp": "Lansator de Cartofi face fwoomp", + "create.subtitle.sanding_long": "Sunete de șlefuit", + "create.subtitle.crushing_1": "Sunete de zdrobit", + "create.subtitle.depot_slide": "Obiect alunecă", + "create.subtitle.blaze_munch": "Arzător de Dogoreală plescăie", + "create.subtitle.funnel_flap": "Pâlnie falfâie", + "create.subtitle.haunted_bell_use": "Clopot Bântuit bate", + "create.subtitle.scroll_value": "Acțiune de Scroll clickuiește", + "create.subtitle.controller_put": "Controlor bocăne", + "create.subtitle.cranking": "Manivelă se rotește", + "create.subtitle.sanding_short": "Sunete de șlefuit", "create.subtitle.wrench_rotate": "Cheie folosită", "create.subtitle.potato_hit": "Impact de legumă", "create.subtitle.saw_activate_wood": "Ferăstrău Mecanic se activează", "create.subtitle.whistle_high": "UNLOCALIZED: High whistling", "create.subtitle.whistle_train": "UNLOCALIZED: Whistling", "create.subtitle.haunted_bell_convert": "Clopot Bântuit se trezețte", + "create.subtitle.train": "UNLOCALIZED: Bogey wheels rumble", "create.subtitle.whistle_train_high": "UNLOCALIZED: High whistling", - "create.subtitle.whistle_train_low": "UNLOCALIZED: Low whistling", "create.subtitle.deny": "Boop de refuz", "create.subtitle.controller_click": "Controlor clickuiește", "create.subtitle.whistle_low": "UNLOCALIZED: Low whistling", - "create.subtitle.schematicannon_launch_block": "Tun de Schemă trage", "create.subtitle.copper_armor_equip": "Echipament de scufundare ciocăne", - "create.subtitle.controller_take": "Pupitru se golește", "create.subtitle.mechanical_press_activation": "Presă Mecanică zăngăne", "create.subtitle.contraption_assemble": "Invenție se mișcă", - "create.subtitle.crafter_click": "Meșter clickuiește", - "create.subtitle.depot_plop": "Obiect aterizează", - "create.subtitle.confirm": "Ding afirmativ", "_": "->------------------------] Item Descriptions [------------------------<-", diff --git a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json index 6d662a090..51fbe3d15 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json +++ b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 628", + "_": "Missing Localizations: 632", "_": "->------------------------] Game Elements [------------------------<-", @@ -1591,46 +1591,50 @@ "create.subtitle.contraption_disassemble": "Штуковина останавливается", "create.subtitle.peculiar_bell_use": "Особенный колокол звонит", - "create.subtitle.mixing": "Шум смешивания", - "create.subtitle.mechanical_press_activation_belt": "Механический пресс делает «бонк»", - "create.subtitle.fwoomp": "Картофельная пушка делает «Свомп»", "create.subtitle.worldshaper_place": "Ручной редактор мира делает «Зап»", - "create.subtitle.sanding_long": "UNLOCALIZED: Sanding noises", - "create.subtitle.crushing_1": "Шум разрушения", - "create.subtitle.depot_slide": "Шелест предметов", + "create.subtitle.steam": "UNLOCALIZED: Steam noises", "create.subtitle.saw_activate_stone": "Активируется механическая пила", - "create.subtitle.blaze_munch": "Всполох радостно жуёт", - "create.subtitle.funnel_flap": "Занавески воронок хлопают", "create.subtitle.schematicannon_finish": "Схематичная пушка закончила работу", - "create.subtitle.haunted_bell_use": "Призрачный колокол звонит", - "create.subtitle.scroll_value": "Щелчки колеса прокрутки", "create.subtitle.crafter_craft": "Крафтер создаёт", - "create.subtitle.controller_put": "Контроллер стучит", - "create.subtitle.cranking": "Вращается рукоятка", "create.subtitle.wrench_remove": "Компонент ломается", - "create.subtitle.sanding_short": "UNLOCALIZED: Sanding noises", + "create.subtitle.train2": "UNLOCALIZED: Bogey wheels rumble", + "create.subtitle.train3": "UNLOCALIZED: Bogey wheels rumble muffled", "create.subtitle.whistle": "UNLOCALIZED: Whistling", "create.subtitle.cogs": "Шестерни грохочут", "create.subtitle.slime_added": "Намазывание слизи", + "create.subtitle.whistle_train_low": "UNLOCALIZED: Low whistling", + "create.subtitle.schematicannon_launch_block": "Выстрелы схематичной пушки", + "create.subtitle.controller_take": "Кафедра опустошается", + "create.subtitle.crafter_click": "Крафтер кликает", + "create.subtitle.depot_plop": "Предмет падает", + "create.subtitle.confirm": "Утвердительный «Динь»", + "create.subtitle.mixing": "Шум смешивания", + "create.subtitle.mechanical_press_activation_belt": "Механический пресс делает «бонк»", + "create.subtitle.fwoomp": "Картофельная пушка делает «Свомп»", + "create.subtitle.sanding_long": "UNLOCALIZED: Sanding noises", + "create.subtitle.crushing_1": "Шум разрушения", + "create.subtitle.depot_slide": "Шелест предметов", + "create.subtitle.blaze_munch": "Всполох радостно жуёт", + "create.subtitle.funnel_flap": "Занавески воронок хлопают", + "create.subtitle.haunted_bell_use": "Призрачный колокол звонит", + "create.subtitle.scroll_value": "Щелчки колеса прокрутки", + "create.subtitle.controller_put": "Контроллер стучит", + "create.subtitle.cranking": "Вращается рукоятка", + "create.subtitle.sanding_short": "UNLOCALIZED: Sanding noises", "create.subtitle.wrench_rotate": "Использован гаечный ключ", "create.subtitle.potato_hit": "Овощ врезается", "create.subtitle.saw_activate_wood": "Активируется механическая пила", "create.subtitle.whistle_high": "UNLOCALIZED: High whistling", "create.subtitle.whistle_train": "UNLOCALIZED: Whistling", "create.subtitle.haunted_bell_convert": "Призрачный колокол пробуждается", + "create.subtitle.train": "UNLOCALIZED: Bogey wheels rumble", "create.subtitle.whistle_train_high": "UNLOCALIZED: High whistling", - "create.subtitle.whistle_train_low": "UNLOCALIZED: Low whistling", "create.subtitle.deny": "Отрицательный «Буп»", "create.subtitle.controller_click": "Клики контроллера", "create.subtitle.whistle_low": "UNLOCALIZED: Low whistling", - "create.subtitle.schematicannon_launch_block": "Выстрелы схематичной пушки", "create.subtitle.copper_armor_equip": "Позвякивание снаряжения для дайвинга", - "create.subtitle.controller_take": "Кафедра опустошается", "create.subtitle.mechanical_press_activation": "Механический пресс активирован", "create.subtitle.contraption_assemble": "Штуковина движется", - "create.subtitle.crafter_click": "Крафтер кликает", - "create.subtitle.depot_plop": "Предмет падает", - "create.subtitle.confirm": "Утвердительный «Динь»", "_": "->------------------------] Item Descriptions [------------------------<-", diff --git a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json index 66479d416..380e84553 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 248", + "_": "Missing Localizations: 252", "_": "->------------------------] Game Elements [------------------------<-", @@ -1591,46 +1591,50 @@ "create.subtitle.contraption_disassemble": "结构:停止移动", "create.subtitle.peculiar_bell_use": "奇异钟:鸣响", - "create.subtitle.mixing": "搅拌器:搅拌声", - "create.subtitle.mechanical_press_activation_belt": "辊压机:撞击传送带", - "create.subtitle.fwoomp": "土豆加农炮:发射", "create.subtitle.worldshaper_place": "环境塑型器:放置方块", - "create.subtitle.sanding_long": "打磨噪音", - "create.subtitle.crushing_1": "粉碎噪音", - "create.subtitle.depot_slide": "物品:滑入", + "create.subtitle.steam": "UNLOCALIZED: Steam noises", "create.subtitle.saw_activate_stone": "动力锯:切割", - "create.subtitle.blaze_munch": "烈焰人:咀嚼", - "create.subtitle.funnel_flap": "漏斗:垂帘碰撞", "create.subtitle.schematicannon_finish": "蓝图加农炮:叮", - "create.subtitle.haunted_bell_use": "缠魂钟:鸣响", - "create.subtitle.scroll_value": "拨码输入:咔哒", "create.subtitle.crafter_craft": "动力合成器:合成中", - "create.subtitle.controller_put": "遥控器:放进讲台", - "create.subtitle.cranking": "手摇曲柄:转动", "create.subtitle.wrench_remove": "组件:被破坏", - "create.subtitle.sanding_short": "打磨噪音", + "create.subtitle.train2": "UNLOCALIZED: Bogey wheels rumble", + "create.subtitle.train3": "UNLOCALIZED: Bogey wheels rumble muffled", "create.subtitle.whistle": "UNLOCALIZED: Whistling", "create.subtitle.cogs": "齿轮:嘎吱作响", "create.subtitle.slime_added": "黏液:压扁", + "create.subtitle.whistle_train_low": "UNLOCALIZED: Low whistling", + "create.subtitle.schematicannon_launch_block": "蓝图加农炮:发射", + "create.subtitle.controller_take": "讲台:取走物品", + "create.subtitle.crafter_click": "动力合成器:咔哒声", + "create.subtitle.depot_plop": "物品:着地", + "create.subtitle.confirm": "提示声:接受", + "create.subtitle.mixing": "搅拌器:搅拌声", + "create.subtitle.mechanical_press_activation_belt": "辊压机:撞击传送带", + "create.subtitle.fwoomp": "土豆加农炮:发射", + "create.subtitle.sanding_long": "打磨噪音", + "create.subtitle.crushing_1": "粉碎噪音", + "create.subtitle.depot_slide": "物品:滑入", + "create.subtitle.blaze_munch": "烈焰人:咀嚼", + "create.subtitle.funnel_flap": "漏斗:垂帘碰撞", + "create.subtitle.haunted_bell_use": "缠魂钟:鸣响", + "create.subtitle.scroll_value": "拨码输入:咔哒", + "create.subtitle.controller_put": "遥控器:放进讲台", + "create.subtitle.cranking": "手摇曲柄:转动", + "create.subtitle.sanding_short": "打磨噪音", "create.subtitle.wrench_rotate": "扳手:拧动", "create.subtitle.potato_hit": "土豆:击中", "create.subtitle.saw_activate_wood": "动力锯:切割", "create.subtitle.whistle_high": "UNLOCALIZED: High whistling", "create.subtitle.whistle_train": "UNLOCALIZED: Whistling", "create.subtitle.haunted_bell_convert": "奇异钟:转化", + "create.subtitle.train": "UNLOCALIZED: Bogey wheels rumble", "create.subtitle.whistle_train_high": "UNLOCALIZED: High whistling", - "create.subtitle.whistle_train_low": "UNLOCALIZED: Low whistling", "create.subtitle.deny": "提示声:出错", "create.subtitle.controller_click": "遥控器:按下按钮", "create.subtitle.whistle_low": "UNLOCALIZED: Low whistling", - "create.subtitle.schematicannon_launch_block": "蓝图加农炮:发射", "create.subtitle.copper_armor_equip": "潜水装备:铿锵", - "create.subtitle.controller_take": "讲台:取走物品", "create.subtitle.mechanical_press_activation": "辊压机:工作中", "create.subtitle.contraption_assemble": "结构:开始移动", - "create.subtitle.crafter_click": "动力合成器:咔哒声", - "create.subtitle.depot_plop": "物品:着地", - "create.subtitle.confirm": "提示声:接受", "_": "->------------------------] Item Descriptions [------------------------<-", diff --git a/src/generated/resources/assets/create/lang/unfinished/zh_tw.json b/src/generated/resources/assets/create/lang/unfinished/zh_tw.json index 4a68fe47e..bd3a15967 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_tw.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_tw.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 642", + "_": "Missing Localizations: 646", "_": "->------------------------] Game Elements [------------------------<-", @@ -1591,46 +1591,50 @@ "create.subtitle.contraption_disassemble": "結構停止", "create.subtitle.peculiar_bell_use": "黃銅鐘聲", - "create.subtitle.mixing": "攪拌機噪音", - "create.subtitle.mechanical_press_activation_belt": "液壓機工作", - "create.subtitle.fwoomp": "馬鈴薯大砲發射", "create.subtitle.worldshaper_place": "地形塑造器發射聲", - "create.subtitle.sanding_long": "UNLOCALIZED: Sanding noises", - "create.subtitle.crushing_1": "粉碎機咀嚼聲", - "create.subtitle.depot_slide": "物品滑動聲", + "create.subtitle.steam": "UNLOCALIZED: Steam noises", "create.subtitle.saw_activate_stone": "機械鋸子聲", - "create.subtitle.blaze_munch": "烈焰使者開心地吃著", - "create.subtitle.funnel_flap": "UNLOCALIZED: Funnel flaps", "create.subtitle.schematicannon_finish": "藍圖大炮完成任務", - "create.subtitle.haunted_bell_use": "靈魂鐘敲響", - "create.subtitle.scroll_value": "滾動輸入聲", "create.subtitle.crafter_craft": "機械合成器合成聲", - "create.subtitle.controller_put": "遙控器放置聲", - "create.subtitle.cranking": "手搖把手轉動聲", "create.subtitle.wrench_remove": "零件移除聲", - "create.subtitle.sanding_short": "UNLOCALIZED: Sanding noises", + "create.subtitle.train2": "UNLOCALIZED: Bogey wheels rumble", + "create.subtitle.train3": "UNLOCALIZED: Bogey wheels rumble muffled", "create.subtitle.whistle": "UNLOCALIZED: Whistling", "create.subtitle.cogs": "齒輪隆隆聲", "create.subtitle.slime_added": "黏液擠壓", + "create.subtitle.whistle_train_low": "UNLOCALIZED: Low whistling", + "create.subtitle.schematicannon_launch_block": "藍圖大炮發射", + "create.subtitle.controller_take": "拿下遙控器", + "create.subtitle.crafter_click": "機械合成器工作聲", + "create.subtitle.depot_plop": "UNLOCALIZED: Item lands", + "create.subtitle.confirm": "UNLOCALIZED: Affirmative ding", + "create.subtitle.mixing": "攪拌機噪音", + "create.subtitle.mechanical_press_activation_belt": "液壓機工作", + "create.subtitle.fwoomp": "馬鈴薯大砲發射", + "create.subtitle.sanding_long": "UNLOCALIZED: Sanding noises", + "create.subtitle.crushing_1": "粉碎機咀嚼聲", + "create.subtitle.depot_slide": "物品滑動聲", + "create.subtitle.blaze_munch": "烈焰使者開心地吃著", + "create.subtitle.funnel_flap": "UNLOCALIZED: Funnel flaps", + "create.subtitle.haunted_bell_use": "靈魂鐘敲響", + "create.subtitle.scroll_value": "滾動輸入聲", + "create.subtitle.controller_put": "遙控器放置聲", + "create.subtitle.cranking": "手搖把手轉動聲", + "create.subtitle.sanding_short": "UNLOCALIZED: Sanding noises", "create.subtitle.wrench_rotate": "UNLOCALIZED: Wrench used", "create.subtitle.potato_hit": "食物撞擊聲", "create.subtitle.saw_activate_wood": "機械鋸子運作聲", "create.subtitle.whistle_high": "UNLOCALIZED: High whistling", "create.subtitle.whistle_train": "UNLOCALIZED: Whistling", "create.subtitle.haunted_bell_convert": "靈魂鐘轉化聲", + "create.subtitle.train": "UNLOCALIZED: Bogey wheels rumble", "create.subtitle.whistle_train_high": "UNLOCALIZED: High whistling", - "create.subtitle.whistle_train_low": "UNLOCALIZED: Low whistling", "create.subtitle.deny": "UNLOCALIZED: Declining boop", "create.subtitle.controller_click": "遙控器按鍵聲", "create.subtitle.whistle_low": "UNLOCALIZED: Low whistling", - "create.subtitle.schematicannon_launch_block": "藍圖大炮發射", "create.subtitle.copper_armor_equip": "潛水裝裝備聲", - "create.subtitle.controller_take": "拿下遙控器", "create.subtitle.mechanical_press_activation": "液壓機工作", "create.subtitle.contraption_assemble": "結構移動", - "create.subtitle.crafter_click": "機械合成器工作聲", - "create.subtitle.depot_plop": "UNLOCALIZED: Item lands", - "create.subtitle.confirm": "UNLOCALIZED: Affirmative ding", "_": "->------------------------] Item Descriptions [------------------------<-", diff --git a/src/generated/resources/assets/create/sounds.json b/src/generated/resources/assets/create/sounds.json index e5da11631..b5cb0b9d9 100644 --- a/src/generated/resources/assets/create/sounds.json +++ b/src/generated/resources/assets/create/sounds.json @@ -389,6 +389,46 @@ ], "subtitle": "create.subtitle.slime_added" }, + "steam": { + "sounds": [ + { + "name": "create:steam", + "type": "file", + "attenuation_distance": 32 + } + ], + "subtitle": "create.subtitle.steam" + }, + "train": { + "sounds": [ + { + "name": "create:train", + "type": "file", + "attenuation_distance": 128 + } + ], + "subtitle": "create.subtitle.train" + }, + "train2": { + "sounds": [ + { + "name": "create:train2", + "type": "file", + "attenuation_distance": 128 + } + ], + "subtitle": "create.subtitle.train2" + }, + "train3": { + "sounds": [ + { + "name": "create:train3", + "type": "file", + "attenuation_distance": 16 + } + ], + "subtitle": "create.subtitle.train3" + }, "whistle": { "sounds": [ { diff --git a/src/main/java/com/simibubi/create/AllSoundEvents.java b/src/main/java/com/simibubi/create/AllSoundEvents.java index a5275e6e3..c6b37e479 100644 --- a/src/main/java/com/simibubi/create/AllSoundEvents.java +++ b/src/main/java/com/simibubi/create/AllSoundEvents.java @@ -238,6 +238,26 @@ public class AllSoundEvents { .attenuationDistance(64) .build(), + STEAM = create("steam").subtitle("Steam noises") + .category(SoundSource.NEUTRAL) + .attenuationDistance(32) + .build(), + + TRAIN = create("train").subtitle("Bogey wheels rumble") + .category(SoundSource.NEUTRAL) + .attenuationDistance(128) + .build(), + + TRAIN2 = create("train2").subtitle("Bogey wheels rumble") + .category(SoundSource.NEUTRAL) + .attenuationDistance(128) + .build(), + + TRAIN3 = create("train3").subtitle("Bogey wheels rumble muffled") + .category(SoundSource.NEUTRAL) + .attenuationDistance(16) + .build(), + WHISTLE_TRAIN_HIGH = create("whistle_train_high").subtitle("High whistling") .category(SoundSource.RECORDS) .build(), @@ -406,7 +426,7 @@ public class AllSoundEvents { public SoundEntry build() { SoundEntry entry = wrappedEvents.isEmpty() ? new CustomSoundEntry(id, variants, subtitle, category, attenuationDistance) - : new WrappedSoundEntry(id, subtitle, wrappedEvents, category); + : new WrappedSoundEntry(id, subtitle, wrappedEvents, category, attenuationDistance); entries.put(entry.getId(), entry); return entry; } @@ -418,11 +438,13 @@ public class AllSoundEvents { protected ResourceLocation id; protected String subtitle; protected SoundSource category; + protected int attenuationDistance; - public SoundEntry(ResourceLocation id, String subtitle, SoundSource category) { + public SoundEntry(ResourceLocation id, String subtitle, SoundSource category, int attenuationDistance) { this.id = id; this.subtitle = subtitle; this.category = category; + this.attenuationDistance = attenuationDistance; } public abstract void prepare(); @@ -498,8 +520,8 @@ public class AllSoundEvents { private List>> compiledEvents; public WrappedSoundEntry(ResourceLocation id, String subtitle, - List>> wrappedEvents, SoundSource category) { - super(id, subtitle, category); + List>> wrappedEvents, SoundSource category, int attenuationDistance) { + super(id, subtitle, category, attenuationDistance); this.wrappedEvents = wrappedEvents; compiledEvents = Lists.newArrayList(); } @@ -541,6 +563,8 @@ public class AllSoundEvents { .getLocation() .toString()); s.addProperty("type", "event"); + if (attenuationDistance != 0) + s.addProperty("attenuation_distance", attenuationDistance); list.add(s); entry.add("sounds", list); if (i == 0 && hasSubtitle()) @@ -572,13 +596,11 @@ public class AllSoundEvents { protected List variants; protected SoundEvent event; - protected int attenuationDistance; public CustomSoundEntry(ResourceLocation id, List variants, String subtitle, SoundSource category, int attenuationDistance) { - super(id, subtitle, category); + super(id, subtitle, category, attenuationDistance); this.variants = variants; - this.attenuationDistance = attenuationDistance; } @Override diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/steam/SteamEngineTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/steam/SteamEngineTileEntity.java index 4440c0ba3..621d00d91 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/steam/SteamEngineTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/steam/SteamEngineTileEntity.java @@ -6,6 +6,7 @@ import java.util.List; import javax.annotation.Nullable; import com.simibubi.create.AllBlocks; +import com.simibubi.create.AllSoundEvents; import com.simibubi.create.content.contraptions.base.GeneratingKineticTileEntity; import com.simibubi.create.content.contraptions.base.IRotate; import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer; @@ -21,6 +22,8 @@ import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; import net.minecraft.core.Direction.AxisDirection; import net.minecraft.network.chat.Component; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; import net.minecraft.util.Mth; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; @@ -56,7 +59,7 @@ public class SteamEngineTileEntity extends SmartTileEntity implements IHaveGoggl boolean verticalTarget = false; BlockState shaftState = shaft.getBlockState(); Axis targetAxis = Axis.X; - if (shaftState.getBlock()instanceof IRotate ir) + if (shaftState.getBlock() instanceof IRotate ir) targetAxis = ir.getRotationAxis(shaftState); verticalTarget = targetAxis == Axis.Y; @@ -93,7 +96,7 @@ public class SteamEngineTileEntity extends SmartTileEntity implements IHaveGoggl protected AABB createRenderBoundingBox() { return super.createRenderBoundingBox().inflate(2); } - + public PoweredShaftTileEntity getShaft() { PoweredShaftTileEntity shaft = target.get(); if (shaft == null || shaft.isRemoved() || !shaft.canBePoweredBy(worldPosition)) { @@ -152,6 +155,18 @@ public class SteamEngineTileEntity extends SmartTileEntity implements IHaveGoggl return; } + FluidTankTileEntity sourceTE = source.get(); + if (sourceTE != null) { + FluidTankTileEntity controller = sourceTE.getControllerTE(); + if (controller != null && controller.boiler != null) { + float volume = 3f / Math.max(2, controller.boiler.attachedEngines / 6); + float pitch = 1.18f - level.random.nextFloat() * .25f; + level.playLocalSound(worldPosition.getX(), worldPosition.getY(), worldPosition.getZ(), + SoundEvents.CANDLE_EXTINGUISH, SoundSource.BLOCKS, volume, pitch, false); + AllSoundEvents.STEAM.playAt(level, worldPosition, volume / 16, .8f, false); + } + } + Direction facing = SteamEngineBlock.getFacing(getBlockState()); for (int i = 0; i < 2; i++) { @@ -197,7 +212,7 @@ public class SteamEngineTileEntity extends SmartTileEntity implements IHaveGoggl angle *= -1; return angle; } - + @Override public boolean addToGoggleTooltip(List tooltip, boolean isPlayerSneaking) { PoweredShaftTileEntity shaft = getShaft(); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionCollider.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionCollider.java index acab09263..a9c0ce257 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionCollider.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionCollider.java @@ -39,6 +39,7 @@ import net.minecraft.tags.BlockTags; import net.minecraft.util.Mth; import net.minecraft.world.damagesource.EntityDamageSource; import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.MobCategory; import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.Level; @@ -333,6 +334,8 @@ public class ContraptionCollider { EntityDamageSource pSource = new EntityDamageSource("create.run_over", contraptionEntity); double damage = diffMotion.length(); + if (entity.getClassification(false) == MobCategory.MONSTER) + damage *= 2; if (!(entity instanceof Player p) || !p.isCreative() && !p.isSpectator()) { if (playerType == PlayerType.CLIENT) { @@ -346,9 +349,7 @@ public class ContraptionCollider { SoundSource.NEUTRAL, 1, .75f); } - Vec3 added = entityMotion.add(entity.position() - .subtract(contraptionPosition) - .multiply(1, 0, 1) + Vec3 added = entityMotion.add(contraptionMotion.multiply(1, 0, 1) .normalize() .add(0, .25, 0) .scale(damage * 4)) diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionHandler.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionHandler.java index 337d8ca34..82e1cb253 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionHandler.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionHandler.java @@ -67,6 +67,7 @@ public class ContraptionHandler { if (entityLiving.getVehicle() == null) entityLiving.teleportTo(position.x, position.y, position.z); data.remove("ContraptionDismountLocation"); + entityLiving.setOnGround(false); } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerMovementBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerMovementBehaviour.java index 2da04b8e6..c01f96181 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerMovementBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerMovementBehaviour.java @@ -46,7 +46,7 @@ public class BlazeBurnerMovementBehaviour implements MovementBehaviour { Vec3 c = context.position; Vec3 v = c.add(VecHelper.offsetRandomly(Vec3.ZERO, r, .125f) .multiply(1, 0, 1)); - if (r.nextInt(3) == 0) + if (r.nextInt(3) == 0 && context.motion.length() < 1 / 64f) context.world.addParticle(ParticleTypes.LARGE_SMOKE, v.x, v.y, v.z, 0, 0, 0); LerpedFloat headAngle = getHeadAngle(context); diff --git a/src/main/java/com/simibubi/create/content/curiosities/deco/SlidingDoorMovementBehaviour.java b/src/main/java/com/simibubi/create/content/curiosities/deco/SlidingDoorMovementBehaviour.java index 354539f56..6ff0d1510 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/deco/SlidingDoorMovementBehaviour.java +++ b/src/main/java/com/simibubi/create/content/curiosities/deco/SlidingDoorMovementBehaviour.java @@ -45,7 +45,7 @@ public class SlidingDoorMovementBehaviour implements MovementBehaviour { if (!wasSettled && doorTE.animation.settled() && !open) context.world.playLocalSound(context.position.x, context.position.y, context.position.z, - SoundEvents.IRON_DOOR_CLOSE, SoundSource.BLOCKS, .5f, 1, false); + SoundEvents.IRON_DOOR_CLOSE, SoundSource.BLOCKS, .125f, 1, false); } protected void tickOpen(MovementContext context, boolean currentlyOpen) { @@ -67,7 +67,7 @@ public class SlidingDoorMovementBehaviour implements MovementBehaviour { if (shouldOpen) context.world.playSound(null, new BlockPos(context.position), SoundEvents.IRON_DOOR_OPEN, - SoundSource.BLOCKS, .5f, 1); + SoundSource.BLOCKS, .125f, 1); } private void toggleDoor(BlockPos pos, Contraption contraption, StructureBlockInfo info) { diff --git a/src/main/java/com/simibubi/create/content/logistics/block/display/DisplayLinkScreen.java b/src/main/java/com/simibubi/create/content/logistics/block/display/DisplayLinkScreen.java index 261238073..36b652908 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/display/DisplayLinkScreen.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/display/DisplayLinkScreen.java @@ -227,7 +227,7 @@ public class DisplayLinkScreen extends AbstractSimiScreen { .renderGuiItem(targetIcon, x + 37, y + 105); ms.pushPose(); - ms.translate(0, guiTop + 48, 0); + ms.translate(0, guiTop + 46, 0); configWidgets.getFirst() .renderWidgetBG(guiLeft, ms); ms.translate(0, 21, 0); diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/entity/ArrivalSoundQueue.java b/src/main/java/com/simibubi/create/content/logistics/trains/entity/ArrivalSoundQueue.java index ceb24a635..9797adadb 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/entity/ArrivalSoundQueue.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/entity/ArrivalSoundQueue.java @@ -106,7 +106,7 @@ public class ArrivalSoundQueue { playSimple(entity, SoundEvents.BELL_BLOCK, 1, 1); } - if (state.getBlock()instanceof NoteBlock nb) { + if (state.getBlock() instanceof NoteBlock nb) { float f = (float) Math.pow(2, (state.getValue(NoteBlock.NOTE) - 12) / 12.0); playSimple(entity, state.getValue(NoteBlock.INSTRUMENT) .getSoundEvent(), 1, f); @@ -114,14 +114,14 @@ public class ArrivalSoundQueue { if (state.getBlock() instanceof WhistleBlock && info.nbt != null) { int pitch = info.nbt.getInt("Pitch"); - float f = (float) Math.pow(2, (pitch - 12) / 12.0); WhistleSize size = state.getValue(WhistleBlock.SIZE); - playSimple(entity, (size == WhistleSize.LARGE ? AllSoundEvents.WHISTLE_TRAIN_LOW - : size == WhistleSize.MEDIUM ? AllSoundEvents.WHISTLE_TRAIN_MEDIUM : AllSoundEvents.WHISTLE_TRAIN_HIGH) + float f = (float) Math.pow(2, ((size == WhistleSize.SMALL ? 12 : 0) - pitch) / 12.0); + playSimple(entity, + (size == WhistleSize.LARGE ? AllSoundEvents.WHISTLE_TRAIN_LOW : AllSoundEvents.WHISTLE_TRAIN_MEDIUM) .getMainEvent(), 1, f); - playSimple(entity, AllSoundEvents.WHISTLE_CHIFF.getMainEvent(), .75f, - size == WhistleSize.SMALL ? f + .75f : f); +// playSimple(entity, AllSoundEvents.WHISTLE_CHIFF.getMainEvent(), .75f, +// size == WhistleSize.SMALL ? f + .75f : f); } } diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageContraptionEntity.java b/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageContraptionEntity.java index f6daa65a7..026d36477 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageContraptionEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageContraptionEntity.java @@ -81,6 +81,11 @@ public class CarriageContraptionEntity extends OrientedContraptionEntity { private Vec3 serverPrevPos; + @OnlyIn(Dist.CLIENT) + public CarriageSounds sounds; + @OnlyIn(Dist.CLIENT) + public CarriageParticles particles; + public CarriageContraptionEntity(EntityType type, Level world) { super(type, world); validForRender = false; @@ -271,6 +276,14 @@ public class CarriageContraptionEntity extends OrientedContraptionEntity { dce.alignEntity(this); + if (sounds == null) + sounds = new CarriageSounds(this); + sounds.tick(dce); + + if (particles == null) + particles = new CarriageParticles(this); + particles.tick(dce); + double distanceTo = 0; if (!firstPositionUpdate) { Vec3 diff = position().subtract(xo, yo, zo); @@ -414,6 +427,8 @@ public class CarriageContraptionEntity extends OrientedContraptionEntity { carriage.trailingBogey().couplingAnchors = Couple.create(null, null); } firstPositionUpdate = true; + if (sounds != null) + sounds.stop(); } @Override diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageParticles.java b/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageParticles.java new file mode 100644 index 000000000..107511351 --- /dev/null +++ b/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageParticles.java @@ -0,0 +1,120 @@ +package com.simibubi.create.content.logistics.trains.entity; + +import java.util.Random; + +import com.simibubi.create.content.logistics.trains.entity.Carriage.DimensionalCarriageEntity; +import com.simibubi.create.foundation.utility.Iterate; +import com.simibubi.create.foundation.utility.VecHelper; +import com.simibubi.create.foundation.utility.animation.LerpedFloat; +import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; + +import net.minecraft.client.Minecraft; +import net.minecraft.core.Direction.Axis; +import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.level.Level; +import net.minecraft.world.phys.Vec3; + +public class CarriageParticles { + + CarriageContraptionEntity entity; + boolean arrived; + int depressurise; + + double prevMotion; + LerpedFloat brakes; + + public CarriageParticles(CarriageContraptionEntity entity) { + this.entity = entity; + arrived = true; + depressurise = 0; + prevMotion = 0; + brakes = LerpedFloat.linear(); + } + + public void tick(DimensionalCarriageEntity dce) { + Minecraft mc = Minecraft.getInstance(); + Entity camEntity = mc.cameraEntity; + if (camEntity == null) + return; + Vec3 leadingAnchor = dce.leadingAnchor(); + if (leadingAnchor == null || !leadingAnchor.closerThan(camEntity.position(), 64)) + return; + + Random r = entity.level.random; + Vec3 contraptionMotion = entity.position() + .subtract(entity.getPrevPositionVec()); + double length = contraptionMotion.length(); + if (arrived && length > 0.01f) + arrived = false; + arrived |= entity.isStalled(); + + boolean stopped = length < .002f; + if (stopped) { + if (!arrived) { + arrived = true; + depressurise = 20; + } + } else + depressurise = 0; + + if (depressurise > 0) + depressurise--; + + brakes.chase(prevMotion > length + length / 512f ? 1 : 0, .25f, Chaser.exp(.625f)); + brakes.tickChaser(); + prevMotion = length; + + Level level = entity.level; + Vec3 position = entity.getPosition(0); + float viewYRot = entity.getViewYRot(0); + float viewXRot = entity.getViewXRot(0); + int bogeySpacing = entity.getCarriage().bogeySpacing; + + for (CarriageBogey bogey : entity.getCarriage().bogeys) { + if (bogey == null) + continue; + + boolean spark = depressurise == 0 || depressurise > 10; + + float cutoff = length < 1 / 8f ? 0 : 1 / 8f; + + if (length > 1 / 6f) + cutoff = Math.max(cutoff, brakes.getValue() * 1.15f); + + for (int j : Iterate.positiveAndNegative) { + if (r.nextFloat() > cutoff && (spark || r.nextInt(4) == 0)) + continue; + for (int i : Iterate.positiveAndNegative) { + if (r.nextFloat() > cutoff && (spark || r.nextInt(4) == 0)) + continue; + + Vec3 v = Vec3.ZERO.add(j * 1.15, spark ? -.6f : .32, i); + Vec3 m = Vec3.ZERO.add(j * (spark ? .5 : .25), spark ? .49 : -.29, 0); + + m = VecHelper.rotate(m, bogey.pitch.getValue(0), Axis.X); + m = VecHelper.rotate(m, bogey.yaw.getValue(0), Axis.Y); + + v = VecHelper.rotate(v, bogey.pitch.getValue(0), Axis.X); + v = VecHelper.rotate(v, bogey.yaw.getValue(0), Axis.Y); + + v = VecHelper.rotate(v, -viewYRot - 90, Axis.Y); + v = VecHelper.rotate(v, viewXRot, Axis.X); + v = VecHelper.rotate(v, -180, Axis.Y); + + v = v.add(0, 0, bogey.isLeading ? 0 : -bogeySpacing); + v = VecHelper.rotate(v, 180, Axis.Y); + v = VecHelper.rotate(v, -viewXRot, Axis.X); + v = VecHelper.rotate(v, viewYRot + 90, Axis.Y); + v = v.add(position); + + m = m.add(contraptionMotion.scale(.75f)); + + level.addParticle(spark ? ParticleTypes.CRIT : ParticleTypes.POOF, v.x, v.y, v.z, m.x, m.y, m.z); + } + } + } + + } + +} diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageSounds.java b/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageSounds.java new file mode 100644 index 000000000..b3d0431ca --- /dev/null +++ b/src/main/java/com/simibubi/create/content/logistics/trains/entity/CarriageSounds.java @@ -0,0 +1,233 @@ +package com.simibubi.create.content.logistics.trains.entity; + +import com.simibubi.create.AllSoundEvents; +import com.simibubi.create.content.logistics.trains.entity.Carriage.DimensionalCarriageEntity; +import com.simibubi.create.foundation.utility.animation.LerpedFloat; +import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.sounds.AbstractTickableSoundInstance; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.util.Mth; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.phys.Vec3; + +public class CarriageSounds { + + CarriageContraptionEntity entity; + + LerpedFloat distanceFactor; + LerpedFloat speedFactor; + LerpedFloat approachFactor; + LerpedFloat seatCrossfade; + + LoopingSound minecartEsqueSound; + LoopingSound sharedWheelSound; + LoopingSound sharedWheelSoundSeated; + + boolean arrived; + + int tick; + int prevSharedTick; + + public CarriageSounds(CarriageContraptionEntity entity) { + this.entity = entity; + distanceFactor = LerpedFloat.linear(); + speedFactor = LerpedFloat.linear(); + approachFactor = LerpedFloat.linear(); + seatCrossfade = LerpedFloat.linear(); + arrived = true; + } + + public void tick(DimensionalCarriageEntity dce) { + Minecraft mc = Minecraft.getInstance(); + Entity camEntity = mc.cameraEntity; + if (camEntity == null) + return; + + Vec3 leadingAnchor = dce.leadingAnchor(); + Vec3 trailingAnchor = dce.trailingAnchor(); + if (leadingAnchor == null || trailingAnchor == null) + return; + + tick++; + + Vec3 cam = camEntity.getEyePosition(); + Vec3 contraptionMotion = entity.position() + .subtract(entity.getPrevPositionVec()); + Vec3 combinedMotion = contraptionMotion.subtract(camEntity.getDeltaMovement()); + + if (arrived && contraptionMotion.length() > 0.01f) + arrived = false; + arrived |= entity.isStalled(); + + Vec3 toBogey1 = leadingAnchor.subtract(cam); + Vec3 toBogey2 = trailingAnchor.subtract(cam); + double distance1 = toBogey1.length(); + double distance2 = toBogey2.length(); + + Vec3 toCarriage = distance1 > distance2 ? toBogey2 : toBogey1; + double distance = Math.min(distance1, distance2); + Vec3 soundLocation = cam.add(toCarriage); + + double dot = toCarriage.normalize() + .dot(combinedMotion.normalize()); + + speedFactor.chase(contraptionMotion.length(), .25f, Chaser.exp(.05f)); + distanceFactor.chase(Mth.clampedLerp(100, 0, (distance - 3) / 64d), .25f, Chaser.exp(50f)); + approachFactor.chase(Mth.clampedLerp(50, 200, .5f * (dot + 1)), .25f, Chaser.exp(10f)); + seatCrossfade.chase(camEntity.getVehicle() instanceof CarriageContraptionEntity ? 1 : 0, .1f, Chaser.EXP); + + speedFactor.tickChaser(); + distanceFactor.tickChaser(); + approachFactor.tickChaser(); + seatCrossfade.tickChaser(); + + minecartEsqueSound = playIfMissing(mc, minecartEsqueSound, AllSoundEvents.TRAIN.getMainEvent()); + sharedWheelSound = playIfMissing(mc, sharedWheelSound, AllSoundEvents.TRAIN2.getMainEvent()); + sharedWheelSoundSeated = playIfMissing(mc, sharedWheelSoundSeated, AllSoundEvents.TRAIN3.getMainEvent()); + + float volume = Math.min(Math.min(speedFactor.getValue(), distanceFactor.getValue() / 100), + approachFactor.getValue() / 300 + .0125f); + + if (entity.carriageIndex == 0) { + float v = volume * (1 - seatCrossfade.getValue() * .35f) * .75f; + if ((3 + tick) % 4 == 0) + AllSoundEvents.STEAM.playAt(entity.level, soundLocation, v * ((tick + 7) % 8 == 0 ? 0.75f : .45f), 1.17f, + false); + if (tick % 16 == 0) + AllSoundEvents.STEAM.playAt(entity.level, soundLocation, v * 1.5f, .8f, false); + } + + if (!arrived && speedFactor.getValue() < .002f) { + arrived = true; + entity.level.playLocalSound(soundLocation.x, soundLocation.y, soundLocation.z, SoundEvents.LAVA_EXTINGUISH, + SoundSource.NEUTRAL, .25f, .78f, false); + entity.level.playLocalSound(soundLocation.x, soundLocation.y, soundLocation.z, + SoundEvents.WOODEN_TRAPDOOR_CLOSE, SoundSource.NEUTRAL, .2f, 1.5f, false); + AllSoundEvents.STEAM.playAt(entity.level, soundLocation, .75f, .5f, false); + } + + float pitchModifier = ((entity.getId() * 10) % 13) / 36f; + + volume = Math.min(volume, distanceFactor.getValue() / 800); + + float pitch = Mth.clamp(speedFactor.getValue() * 2 + .25f, .75f, 1.95f) - pitchModifier; + float pitch2 = Mth.clamp(speedFactor.getValue() * 2, 0.75f, 1.25f) - pitchModifier; + + minecartEsqueSound.setPitch(pitch * 1.5f); + + volume = Math.min(volume, distanceFactor.getValue() / 1000); + + Train train = entity.getCarriage().train; + for (Carriage carriage : train.carriages) { + DimensionalCarriageEntity mainDCE = carriage.getDimensionalIfPresent(entity.level.dimension()); + if (mainDCE == null) + continue; + CarriageContraptionEntity mainEntity = mainDCE.entity.get(); + if (mainEntity == null) + continue; + if (mainEntity.sounds == null) + mainEntity.sounds = new CarriageSounds(mainEntity); + mainEntity.sounds.submitSharedSoundVolume(soundLocation, volume); + if (carriage != entity.getCarriage()) + finalizeSharedVolume(0); + return; + } + + finalizeSharedVolume(volume); + minecartEsqueSound.setLocation(soundLocation); + sharedWheelSound.setPitch(pitch2); + sharedWheelSound.setLocation(soundLocation); + sharedWheelSoundSeated.setPitch(pitch2); + sharedWheelSoundSeated.setLocation(soundLocation); + } + + private LoopingSound playIfMissing(Minecraft mc, LoopingSound loopingSound, SoundEvent sound) { + if (loopingSound == null) { + loopingSound = new LoopingSound(sound, SoundSource.NEUTRAL); + mc.getSoundManager() + .play(loopingSound); + } + return loopingSound; + } + + public void submitSharedSoundVolume(Vec3 location, float volume) { + sharedWheelSound = + playIfMissing(Minecraft.getInstance(), sharedWheelSound, AllSoundEvents.TRAIN2.getMainEvent()); + sharedWheelSoundSeated = + playIfMissing(Minecraft.getInstance(), sharedWheelSoundSeated, AllSoundEvents.TRAIN3.getMainEvent()); + + boolean approach = true; + + if (tick != prevSharedTick) { + prevSharedTick = tick; + approach = false; + } else if (sharedWheelSound.getVolume() > volume) + return; + + Vec3 currentLoc = new Vec3(minecartEsqueSound.getX(), minecartEsqueSound.getY(), minecartEsqueSound.getZ()); + Vec3 newLoc = approach ? currentLoc.add(location.subtract(currentLoc) + .scale(.125f)) : location; + + minecartEsqueSound.setLocation(newLoc); + sharedWheelSound.setLocation(newLoc); + sharedWheelSoundSeated.setLocation(newLoc); + finalizeSharedVolume(volume); + } + + public void finalizeSharedVolume(float volume) { + float crossfade = seatCrossfade.getValue(); + minecartEsqueSound.setVolume((1 - crossfade * .65f) * volume / 2); + volume = Math.min(volume, Math.max((speedFactor.getValue() - .25f) / 4 + 0.01f, 0)); + sharedWheelSoundSeated.setVolume(volume * crossfade); + sharedWheelSound.setVolume(volume * (1 - crossfade) * 1.5f); + } + + public void stop() { + if (minecartEsqueSound != null) + minecartEsqueSound.stopSound(); + if (sharedWheelSound != null) + sharedWheelSound.stopSound(); + if (sharedWheelSoundSeated != null) + sharedWheelSoundSeated.stopSound(); + } + + class LoopingSound extends AbstractTickableSoundInstance { + + protected LoopingSound(SoundEvent p_119606_, SoundSource p_119607_) { + super(p_119606_, p_119607_); + attenuation = Attenuation.LINEAR; + looping = true; + delay = 0; + volume = 0.0001f; + } + + @Override + public void tick() {} + + public void setVolume(float volume) { + this.volume = volume; + } + + public void setPitch(float pitch) { + this.pitch = pitch; + } + + public void setLocation(Vec3 location) { + x = location.x; + y = location.y; + z = location.z; + } + + public void stopSound() { + Minecraft.getInstance() + .getSoundManager() + .stop(this); + } + + } + +} diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/entity/Train.java b/src/main/java/com/simibubi/create/content/logistics/trains/entity/Train.java index 776394698..40bb4e800 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/entity/Train.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/entity/Train.java @@ -924,6 +924,8 @@ public class Train { int i = iterateFromBack ? carriageCount - 1 - index : index; Carriage carriage = carriages.get(i); IItemHandlerModifiable fuelItems = carriage.storage.getFuelItems(); + if (fuelItems == null) + continue; for (int slot = 0; slot < fuelItems.getSlots(); slot++) { ItemStack stack = fuelItems.extractItem(slot, 1, true); diff --git a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/StationScreen.java b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/StationScreen.java index 6e4afd7e6..fcd6e8859 100644 --- a/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/StationScreen.java +++ b/src/main/java/com/simibubi/create/content/logistics/trains/management/edgePoint/station/StationScreen.java @@ -254,11 +254,10 @@ public class StationScreen extends AbstractStationScreen { for (int i = carriages.size() - 1; i > 0; i--) { RenderSystem.setShaderColor(1, 1, 1, Math.min(1f, Math.min((position + offset - 10) / 30f, (background.width - 40 - position - offset) / 30f))); - - if (i == carriages.size() - 1 && train.doubleEnded) { - offset += icon.render(TrainIconType.FLIPPED_ENGINE, ms, x + offset, y + 20) + 1; - continue; - } +// if (i == carriages.size() - 1 && train.doubleEnded) { +// offset += icon.render(TrainIconType.FLIPPED_ENGINE, ms, x + offset, y + 20) + 1; +// continue; +// } Carriage carriage = carriages.get(te.trainBackwards ? carriages.size() - i - 1 : i); offset += icon.render(carriage.bogeySpacing, ms, x + offset, y + 20) + 1; } diff --git a/src/main/java/com/simibubi/create/foundation/data/BuilderTransformers.java b/src/main/java/com/simibubi/create/foundation/data/BuilderTransformers.java index d44b6679b..daf568007 100644 --- a/src/main/java/com/simibubi/create/foundation/data/BuilderTransformers.java +++ b/src/main/java/com/simibubi/create/foundation/data/BuilderTransformers.java @@ -140,7 +140,7 @@ public class BuilderTransformers { public static NonNullUnaryOperator> ladder(String name, Supplier ingredient) { return b -> b.initialProperties(() -> Blocks.LADDER) - .addLayer(() -> RenderType::cutoutMipped) + .addLayer(() -> RenderType::cutout) .blockstate((c, p) -> p.horizontalBlock(c.get(), p.models() .withExistingParent(c.getName(), p.modLoc("block/ladder")) .texture("0", p.modLoc("block/ladder_" + name + "_hoop")) diff --git a/src/main/java/com/simibubi/create/foundation/utility/BlockHelper.java b/src/main/java/com/simibubi/create/foundation/utility/BlockHelper.java index f95a41faf..a8945b3d3 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/BlockHelper.java +++ b/src/main/java/com/simibubi/create/foundation/utility/BlockHelper.java @@ -288,7 +288,7 @@ public class BlockHelper { public static double getBounceMultiplier(Block block) { if (block instanceof SlimeBlock) return 0.8D; - if (block instanceof BedBlock || block instanceof SeatBlock) + if (block instanceof BedBlock) return 0.66 * 0.8D; return 0; } diff --git a/src/main/resources/assets/create/sounds/steam.ogg b/src/main/resources/assets/create/sounds/steam.ogg new file mode 100644 index 0000000000000000000000000000000000000000..acc75ff16380f1f0f6dd4f4a85e2a710fff5b0e0 GIT binary patch literal 11589 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 F{|E78@b&-z literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/create/sounds/train.ogg b/src/main/resources/assets/create/sounds/train.ogg new file mode 100644 index 0000000000000000000000000000000000000000..534618f3ccb7ad1f4a7c50229e5b076033f04974 GIT binary patch literal 15354 zcmd6NbyQr>v**Q~5G?56?i$=ZxI4k!9Rh)%!QC0$VQ>geAh<(t2?X~9O|a~c@9)W; zeQ)>d*?+cAPfttr=XOp+D8!FV~lnc2EOSHMVB zKmP$hP{%+2pI}s;d;WWP?g;}e?F?{5y%7HMp93e{KR7JVW?fqs8&(xJYjOu$Gwr|V z>TVI&`3_NVQypUX=Ul;X>D!k!SD=3P>d{fMTRda>QNHNgc>mn11ahX5=b;2m;!qw8gUBr;-7NdtD4i& z%%dwjk`(r-Efgi>7{ZbikV-U^CFFS07StI?-PP6Y#1Ej4lxQIj#rQCtp!Gb?UNJ19 z22?;50I;G82%=y^!>eHdP5^+&DY)@i~%nTi`vTipiB_mJpHmp<56jW9T6O<}x4e{$e2 zd*b$$&vk?RWg)II1W>xHraf^x-UVnKep4yG9qRxzN4dKv@5nk2%}w${N&Y64ugctA zl%J6cZ}#+^Bwj&tB7|lB?h?;+|3UYUc%b}>6Yz$+mXXWl6$KMWN7@b-Bdr(pQ`?}s zp;pKi6(y=4k*8=5$}{Bt!#OelP=w;D%Ta{=D~Y5CComgkD9ibP%2-ic7{xit+&IoT z_M9BoHBJhguz$glM6YSWexuYpuWMe@wx45|b$08=oyhXvAGg*5g0okh_p5b zaWsA9wSMdQ?bdU9G0api&GLVW|F90_BnV3a`5#6~2+YSh_VbffCH{>~a_9ql)kp?h zsb$@$N0ON3leynC3Qf!jDP2ja;VR8(O6zz?uQy3ArzkCYC@p(v=`|bawKy&>IGUt6 ze!C6$PtlX~FN<;ja3B{~EEiQQ7q`uqL=96wQ3U{m&)P&ERm2y!Etf1zB815XDIy6Ur41;XsKUVY6qduZa8j-{GTH0Uj{e2><|g>V9=*S$A&v6wNoy zno7-@Z}7BKwEjedVc8Dr|vNc61X3Q*JDeAEmgHUaOC4v5!L!rZm2h;!{ltYf87}qR@zbr>GhG9R$J)C2Y z#66CGKi@;0aX-gHS>X!-v{;tot}Z~A>aMInR{+%y015g-E0|8egAvOCg2a=AR4%yH zQn*!cr8PW^)VPfnFNEf=6g9MjXEe1mv>cZ;we-@2rnrUYG_|IsoQnQ+Uq9a^BO?z|+X+ zR#78OX))Du&eL%<)zZk@a`~2L&ckR<%W~PnXxYnBr`1UBCScAp>|3g(iH@ZnftS&3 zn89M|u7}aOj-}3PZD^~(V%XM#r)j2;iWU^vXo}lN$J59}$7peZXD;O#d0Ep)&kKrd zq_f~T#r=%D%4?*P_Kd8P=DF?xCAQT2rKNM@skfNAwcxn*+Gz1sOYbHO+WL&#=4nJA zqIDgh;T5*!Vfk$_?3G5FW zeRo3)vm%9aUmJAKOW^c?pAB@d}rc= z+JEWcY2<5VG<4(Xu`SCNI0~IwnCGd*85Jv_V1f<0;T4?*X=#W*)+|f|A3OPAyFV-uq@CDo2fuT@;i6K?KU^_psO(mGVveK@yvZk_< z*#O#_bx=`C7X_^;t;won94oC{X|Szqaj2|x?5I4sYj8YnhmORtvXmve((W0#fqAu^ z4LYi4sG|Tv z(%{B(G1b##F<^Vqa(%D8;dHE_=DxD(uI22$&*d2M0~G)WTmS%>y#O7Tr~w;@gsuuP zrZF7IvFeljNCj%6{QKk(){}Lp|TKw!j2w0zk;NE>xa{b}J3$@?fY`D=J$~<Z@40_B-v2d``|le5%N`Z~JE;G%$Nv@l z{|CgW|GlXGU-&}>5~5sy1iydNOgX5M#i%JT4CaJjaqJP8Ps`IYn2qxfl0a2)mn0NR z-Ik?w6sn`eU)3Em-PQG@p+sE!#l^S=6Z{eC>e2OkS@vheP1^Plo_&4&DxSq0_ldS9 ze0vDg3wIymfF@ACkKkX<9|Ew+%?AX5mg)rh{+mj}5|%uZ9AK%(@b5z(N*VTC zM5fSuE_z@|loPl=+ev7`-&UyOR8i&N#v8t0PuVkdnU{#(qp9uktT-3M@Oc`B@hz6A|xOn0Fi-G;$q?>V}oNNqd&&R zgonpPhsH!XY@2SMSLDKDf`|f2^22kn{*)tY~gZf|a!M#DjHuXFLor0&)~FClL0 z*ZvR9VMeWHp_dcwwHY7rKTY9HqO%u}g!l>5c|7qnXIrkK7FXejB(I7!iMXZ8&xkV) z=M$AMB~|DiV$l{ApqI1@$OIp{5M>A95}LdD+n%DAWjIhvd{)>e@!sq*B4ZF3OqX;I zsEt1cj5{G#1}U{q33ZV^evs^r!!&%@-iEKEoJ>PJ{x3%I_%=j2m#D)|+&9&uB!{YM zRYTmSUR+<_p%9mJhFi0TUlFdYizH8-c4AF9MM(~yN_kt^)G}=Gy(krTswW#s59Ug} zwFD5EkLpIKO@cX!r^Mw6d#B;!ZnIHt1LpAF*5U{R=0Hx>?cTh?UZ6D2&Z`mjZ?DGy z7RD4_a%-jReA{}jyoJvw)U~x>A|uk6 z8oxC65>+rsH!XVe=LE4iiN`p;(pf3*#qvz>?|J`Tk0IBDIxO8QUZ_g5{B#MZnZ`u+ z-&JlARe{*N`{9id3~7NCT8HZ%2Okld(h=ihb)F^^98YY}zyZ}iD&5eTe&4qY-PE1; zwOj=*S%RwxN?amdtGg#k&`8dTgDPM2SIU0t>5(d_AzPRk_B|IV;X{}O{H9QyBRbmK z@dkB1zyDQtLFTzVv2MZ=`i|Hxx7PK?I(+%INWM?{;AiH=GIG3B1aCl+@w11C0j(}R z7Vv~#YfEhXfih&;;KlXuN3`ikDPUT^3}0>e_Wjh zdawZm(*=!lXybG`{E+iu+5K0A;_Y~RG2BY-%U1hRBESZ^^YyHPvv3w5?)P(z=jWPv z@^yoHHG#}B<@jUXegKor>YebN!D0bBsY-743bl3RXA%*c2Z!f1|g4P^OEmmpG+=6x5x55)eAce5v=!O-`IfO7%6V zEo;SG1fSL=56P=`CsSD7lenK*#bW{7pMkBi?z?q=j_!TB%!DLFReKjF-FR!KZ=mk* z0NF18j_gE^y8($>o0E%oVs;tI>lu5SR`zbn@5X!&wszK6PP{Kgs)!da;tvjIvQJx- z8l0k*U2NvlB~|EG8zTad?U!dZX@ zDm$sObp_XZJ%aQ<$OpcjU4Z7Q$MR!4Di;4@RHNpXwVd@+6tdj2q4ho0E`LhEW4%3S zpNuY;;BN7rn0MLN?Y_qJoN8;$dT?9_GZEjyh&bxD$3YzRTeo7{kY0+kD*Cb*vPHD! zcvmb4btRj2wRxY2&*}&cIrhUb%hR2Oh^FBa^SOYIFT-LRhql7c`A5+GBJ#e0=l!`a z*!W!J-c7^s=lMvKRVSY3^?d$mgV;5}L+;k^ob`lSUG5~aUq;1ZIl07DuW^Il{=Ikyd z#83x?Gc$Q`G&IYox}WOWALkX^yXn)^#R2Gjo^uCiFU&3~_>MmbsVBEDO91M@&%k}=Ar9b2)oYZ)H2bctpzakHD>SiWZ z)2tMC6nFq&lJmO-o8nzi7A(a>4)JmuMq(dq!tbOuX0$w$yW4?kqq1e4Uzg$Bq%t82 zuTIZ-IDg!CHHJ6_T}=FN``~g?v{Rc($JBNA>4tSh}gfyDcy zsiAAbmfV>xb)6Xc$6=;D9Z-FN=fkNjA9!#--n7m%_18wU(R8?xVnYSl4R7`vnx}(V zA;r><*(!A0m%8P*d;UzWRT#f2h((;J3S(p#4GrQ0HxGsK9@s3Crg0b4KO<^N%q>O@ z44*C61A|h3`mTtV5qCCU!auE2y=5Y&2Csnz)WShdQSd@Pc{{#Il-t*%0bdnxQZ1Jp z50h7iPkrH5cxJ0p=c#>miuY?fWJlmAul>%x*;CJLXN>e%G-MxpoO~*rH!AjwlyOdq z^7gOcd3!>~QA1@FeQZI<%p=M`sY%W$!GUjsBJEVHQL}qg5m{wMI z=ajQg$RF<4225GuNR8tDBomrrjWew)xk>HfOConC08b|y?T#sC*3|pKA1*CxLuSMW zM^4`06RJJD>xti%$;!J+J@5I#&ER??1%~fOakdz!!E@nXO}f%7XsK5a7e#tYM}%zo z{Rbv#UCW+XR3Zp7(U@%& z>LU7VwG71BMFM`ksc=(bTv`oNph447vhKNe421QU8i*5{zILO{xCC)W4B}GJB7;wy zE?!>mh-GaBzPrS}#W+epfltsc9*uG1Pv7}NsIK;hrxJ}7RD(n>d`Q=%PR9bmhGG+w`j(N8L~Vix^w>dLDkm=>%39SUss19+E3+^v$FpTH$xPhj3)dYP~p z9`MlP)U~i3TG%6_`}teqF0VUPXZ5^}5~C%jc#=zq|E6O&N1UwS#Cy`^@xJ3szQyBcOmLngAM~Sb~=~^%5wj;Oo zS8Jn>gRA_c6p$hN<_IpLEmBzU zvlfa|NJGbs7U<^A`Lm{C8~%yv_KJB@M?krij5kQaDu%{(DVHYsoF}ezR*qT#H5&%l z7zd9D6Ac7GcZG4!g)-yl6D45Uljfym;^Dnd!5d@)1MfwzYu^^+jbcW=b-9L>Li@v% z{lURYslz(Qj2ViMFjhsr_CREE4-CLrb02Wq@WY0r;Sm$F>0pGfIB%tSF@J^fLP7t zmvX59MpDou-hyL1sYWv|mEYJK0~_VRyyQvL%yRek^@a<~#;ORuFNw4V*HioEvi$@~ z$9~Sg&2h><%YP8CO7p`^G|a7fjktR~tid!$`ZhbG($qo;vT*JWUfhjBFd#q}FuV7s9+(ny&>0aFa zK-OyrG3W0Rj)2^x@^T4H!g1Z3SM5yO_(p?P(?r5)!3}dg zY`tF^x=n3Sx>DSKBuf=sx8DCl*$4aJ!vZl3(Gz;!7hak)`Gg6|+f;+MI$uL+{OikE z2ERBQ)eVlj_sARdRFUA#NIG!*5Nnu_H`56Ap)&un_U4TFbyOQ?7^}um%;_)7B78)r z)^ipuUm~uE9-&x;VDt&eI)~S>GVr(WNhgspkWk5gj*@v85!>tq|8%4yoeosieHgXa z3`K!>q5>kqWVO>3>bJ+;jXNW(;9{BRR+y7#=z zQCvF4ampLynMMzHUNV1o%{8NhQ{mj&`$GXSQJ}byV|t#fv=!!4c{t`1bKVX}k}Hay zawo8*(9>evKOZKjy*Dj#^p{BO@5_z;?~%wwj<+xL9n%*w7uUK3HfO9a)c5ieWU$|z z;E~Aws!kkfee2;>u~miTiog4!Lh3{H~e&6G?k&PYR*!}p5tol*CE16Axl&?Lo`=34qJ>KK zhbuG&r^pelQRxWcXm^@M6DEe0!$1G_S~N70YzT@z-rcu$jxa2KkBxH@HHFkB1lR_ zHRWY?{e-u_d0gh9^}O6v{AdAdR4|hh7n;)cFDmKt;M|WLPG9FHnImOJeSR64+xIF* zc;DV-owo7r#U~{M(#IG@#hbJp-CtR0H5;t^Fq$JHKN0k%knI;wwVpCCP9F?m8{!`s zd81t;Ll5`k;6WaF656jb$lzS6TUT^p{V_ry2BAe?R}1`S-1EWt{I+eVf3bx({uN6w z^U%5>PgXi9iSo`uVF|O#9tRG!0_GF+Qve*vs6!2DI9k1uj zSbfpWXrHJ5@g;1~>Pgi*c`g=no@-*N0zqA@JE7}}gzekg{CpvOE*S9Ijg`vb)-*Fd zj80z0e4{`~f@6tpqFz_7Eb_i7_?-W-wJ5GC`ez|KaX7Kja5~(SAS7>B+W$*orbDft zw}pK_d-o#!XY=;;IFi(ID@2cgJWXY?ygT2S8s$#wga;pG)eoW}u&(Lnv+@4C+Py46 zH!gl2>1ma0?b~Th--7wyLi{?xA;jP-cq|sEI|I4EuNYI#s&?G&=CtyiQfHPKm5zy$ zH+XIR)%5f-(i)t16t%i*YZuvwC&{_LV?vJZkoUL^Df3~sDytpW=%%o+)||?2t}D5~ z3|JRSd1sty`fW1hYbTpcSp&kQ#&QhXO|U#R?Ge}(zg^?UF+?a__+)-z5qFH%f%W#%LRW+M@@^XrYj9(Oh;dM3!bjZ zfRref{|PDgxFa*&=|jwd9AE2e?@b##q=sK}!M7HR!KG#DMvEM|tW_vIHG1k)!HicU z9C$Uuhi4*>qat5S$$svSp#Qe?2?BKLky*XqFFpgI08E#p22wONeBTK2>VpOfkTZqqC=z-Ka{V=in5vGMF6Kt)0mrK`#j$Fqx8 z+7bO;gUi5xOo59W$#JhRgacMLHs_5;(k{-yYR(Ts$(}ZKF{TL*eeyDc-|*mS@B@uP zqb>O!i(^_XJZTnuLW!aoRt?zseQU*GRgHcmPdE1*2C9szP`Gi&5EI*IvjE$f&azS~ zZj?~#Tn6UG-KC2z&#`oqsh0dp6t5mR71A8WSRU(pvDys7yIv5YLk)@xZ=O4!4B0EI zF&7g_;1|k;sKhiI53ZS@8DC##-#V&~mMw;IDe{_N`T35$tAWfij<|_zl~v*n_`Qqroslo=rBFzy%?K zs&6hLr~65=1TtOeQVavyDLiO!dePsPMVyJAip zUK2rb{ceS3FDKHE9O1)bqND-@nr*rmT3jyPxEj=xtQ*nf+DF8ubs(*Wc!UBkW=`2C z+%vd=EIZOURMVDsvf;7qA==Z!wU&~Gh`&6ZTfo^qCd>A}*>URpVjt^1>Dri0tG=qP3b^1%&#e?$Z6M&kGpJlNFc9i&XXUxarQY zi+bYah;%P3vo1J|6+IK|y$+pp?`T^~AmPA4V2*HA!J=iLBq~T({Ct-DD zQQ>n@hjBXCW$Nb(W~9P6HF*FuA@ZGOngoEvmvebdtR4V1?4$CU*UgUF?v|5}uS-Q& zzs4O-s&YB_8}ox|Z&4%{An!EQcG4N@!S57M=~dt?zY##hJzrU{zVASVXs1YG$D!cp z7~XJ}w<}|GQJ2>8lyRFDx2XW$G4*TeorOd)WjEwJ-6j$*bkOM!==JCPf$p`lL;U45 z446-|C(AX;q?`i^;?k-8+9FPDo{R?XD!ipUSu{k(bxE28MNpZz3_weXRt&o60lEe8{0IhYpT81YWvdqmxy$BZ(wz8>aEmv zk8G9QZ$CRB9XGkY09P(hG4eG=CWOwZJz(4|Y9_6pj`k1Q{TvU%jZ5-}jJ4q&X1!g6 zNyovpCVMNVF_zO#E&K5V+Lg2=%bzmOzGk-c@$q_Zb^>8NGSDuY0XNl20R-EW_ zh}t(!0c_~|o^6(-9a?1MwRFEJ7S3Z|Z;+?FrCM73iG#Y;P7`&ryLpett8j`z%poRo zjRF02NUm<$IJNK(utHJaYXPxOfx&HjgkMF>W!iWa==4v$*i5*nF4g*bGh#1Iy5KDM z8NX!Jyrt}NBt1v_%$Z$&xkN-=&IjRxVH&(j9rzfIuOWdXg6{l_=+!_tFqwYxq(Cwv z#5ShD@k+}p#6EWJZtekjv8PLhjZFOfZjDgLFQTF&iOZK9_oS?7Kg7edeknPc^vtiP zUt3q^lqm1lpbkh%+tS`sfI<3;FG@vNQE_Pz?`_hK)~zyBDLVKeff z!bC;T#Q{Y`D^srtK}ZB6?~zK0I+>CZ^`g13OgEXk{;QTWI*#6-o`8UK>k45LgKO7w zxB0NGaow-$l3YH&BQWG7URI4S(sC!y4rTXO4KbjqxH`p)RWGbiqOKamg5s2$(5oxr znMc3coT#r;j4qePHr00ku!R>KR!C^ysgn+0{@gF7A$IW(z@WR+s>5VKgGng{z-wn` z>o@p{$eRz8Zn8#bN91JK05wx8k+zj@R*y&(S$x3BuR=K9JCYH*n5BJC<|1>l8pwin zATW&MSjtUXxGPcEV@(;w!ze@gy|v?NL6iaM;lyi6s&48|tjYPq1=O${k>gz37Wr-d z@9>RR*+25`U|`=7I>tXS6{6z(E?>sS!ua3ER&Xh|*6)+}a-3;&j8`f(Gt$nAbHQyFIuz~;p}~DH zQ9Pu|D3E|HN<}UjS5gXK>u?rS*F^~srA3F$j4o03K62EULIII1>hU;+OQsYo+jPe5 zPd{C$I$wnG)1Z~i9bD>Esj(!=5 zxjZ+s=WEz(rMsi0YqbJHA|}NFi7tNrI2}P!NBPXr$AX&u;DTDdTlax>D~P`cF>dFD z+xPkQ621>!8DG#yZm6XUZ_H|~z8nh$e??>YLEOqThp_pLel(1^3U(37Pzrb>#WkM1Hrf z-W-%uGrs%rI|hG_nQaIww)e+N`4r);141?u7@UuNg)kc@XHTG7D^B!HGhAtp+qI7B z#^NY~ikcboJz+?~wSmbH)3KoY__b41a>H58QRsn9@-G}>OKj4+#g z@oxEuSl8X+EI#$B!i&lkm)ud{`{0+3_kD^vPsoHgrIRg?xsD5$nvMbrQlys@I_;JD zVC@86wkE8m&WWhyTRaprX7D)l7;Tx!6m)f%yKh?|W3~PfUKJOuBs^8=UQX9MK(H3& zxRht-$53=7#qR`4tC74tjw*YpI>>j8tQrw?&D8v(LQNHfeK^sCD$_sUyNf-JNjc#c z)Q(#A(3iK3DGA$%N|nxgq4imK>|VunKKE)nvp;sTFEdX}5#~6|r<)Rgn&9ZfmXbA| zpa}hQBLQ!(^v@Tt&tFu)LvJLGf3Y4DL}z>q3H$gV+9y0FA}l7{??YrlY*=_$Okg$W z5wz0)<8uA!=4f*GV5WZjFf#nQ?D`#%xyiTdD&d~Tnz`Q@1M;TTV3qj6TVngzVSIMu zBemVo%V{tXq0(abNe<2k(OhiFJU z>dCIc5Xy($aZeVQ?wn?6@o{CgZrtFPow;xxH^FnK-73=cY& zTIP0&R?;@X-%x)GOa?J9Q*!4=aOA`Y3nIUT4ea!?%8M~XWbR$Hq7+<2?1Tk+$KOQJ z&qSFeJGpIV7P4YwW9U|;4n?8H9@}-IOLGXj3%+T{`q1|WtLH}nQA5w0OX?~}p;_75 z{`a%dEw@f0egaA+7uYDTIic12HJn(?N|kmepA%b-;1vx!IBmA*9+ptVvrbWpU2e3; za&C5x<|09k16c6Gjal|=Kl#Vru-}3-3e~o4k>v~Pb}ZE+&MN7x8Lz!Dnb>eWmw35x zNb(m)Z=}z=2-uFUeYQNEd}{U(zg-B=#(_7J-QZRhNp)8J*t$OYE5cz*i<}=C=wAp4 zzObebgpi~#q11i!g71jK&+Ejtun(eFTfaa;@zRa3aS+%fMteHuy#nD)D8YT=dK_w$ksiMZ&AS8f6SU8nIumpRISUe-R?- zN?=9^T#)d`N5H}RQxgtEi^vALMqQ7xKI#{t>Dn!GG?rcP0C4rA@miJa>P z5%UrMtTnTH%&+OrFeFg-8tWOMB4-;;cJLeF@AhLg9bAo&Xep^QFXz3|rv2NOwj8`S zJpxmETKpK|O~y<%%F4d8YJ8sK{k&z-<*tYMd9+U*J8se9+WeBt4u*cMiDnS)V+~%RS(| z)k3M)7{u3c+bi8XFI_SdZ2KhX7s2~#Qm0~YO zCFGrC#b@z0aqn<6zNlN(5TCcnLDr~&??7Y1GTb&494IFC+otC1g-|tmDV-_YydED& z_C3J6fo+QI$aX_RGw!t0oRtL45Y=@S>8rJ=U-BuPmx$&Y1osKHY8T~5Y&m4D?a7Df zAsm!?!dO<`UzRN@nTw?Zo1AAGFW`E~;<4JJ9Bh;{GkYmG>z$@a32LVIVlf#X6b&cy z;hy}{&WK82gd-u4fz^c%2zuJsRN;v{pv2dt0fQ-}of;gh9$8$B`w$g{x!*dB-@Ipa zQIUG{CWKg@?q25Uua67z@WY%;Omx_&see!RLZK3~S?E1EvnUD+X6)!G>J=*;auih|$b%za(Pr5)$vt zjJbS6rd@f(;5?i4so}Ibf5^yirBTU--zoIh&OUh!0wB_|LqGL)XxjZ$@W-h#eE#=!b*$-?ae0H@ctq<04D^GMZe%8{m++0Z>yYb3 zpG(M@*^i4D!Dch#@x2Dc(YeX_;ch`9{j|)?+e9qGjg$vV^;?lcEDk^TS8g{lUONk2 zah4vc=;-?HF)w?&o<4^slQ0^^Fsa5_WabX`awWCb@?^UwQpWbLQFU)g!ga5KCa8!8 zg5l#JUZjlzt&&o>3^r0!I*&JjckOQ`n-%uY*NnSm=6TAzt3qp@EOAyv?doD7&X8p5 zJbEd0O?`XU>^_GuVm9kATJ^j70F9&fh}EFeK&BAkjH9SOaFExRD15h>!oN{lTs!et zzq+~&o+eeH+l)OpSf{5^zI4}O>`bmf^_^CvZF{fJCjnPALpYoJ!J@5DDbFh<;_md3+A7CUb^?7Jp4 z_?qjc4*;Ma=tR%;Je44(35=^exbj$*47?>p6e~+73pw8z<}I20z?@QDKmLpzj<+9;nd83&QxYwHFs_&Y=Pk7)m8oPZmB*66wj@Pm*G-EGHoW_KcD zF_LeJ*Kb3!%CulmV%WCDj<$Dy6gU5HVm=xJPBUUK=+OMbEUsh3RE6u9Jl0Mu6%6zi z1pGiK4p%6>`5@)6BIixzb&SyKXPi=zXes)gi=1qBN$26kZ*wXHwfL7u1%;L<6| z&{zsKu%;14n^m=14vtObVmFAuF#;^Kh09@1v`EfMrtHPo?f@eU7UV7~zb@531Dz7V z2yknDzVW9Dn%n~~@<-P^bS>qds*Ovn6MZ?6-GY3#?%Y7G#W4pd<2C?Qohf@m^Y4Ls zu84S*1X`+r2fvTVM${>H7cCzb<`Nzk=rzr>pFDWSVpc*&7-c0~e-2WMSx1pvWNFmL z$X)sEY4`nVUcY&Y%EY&tMlEai5P^;5F14n=SP|px;g^NYMT&>(ZBvW_G%^hLPB1vf z;zPQD?i}zOm1+?3MBKAF?iA(>&~uDv^g`pH=& zqIIA5F&ddFDZMU7bx;@u$&H-CJeE+~JOzqkRx54L0MNTQzxb&B{3eAs-3Qn(5(Wx5 zF^M!zL@Kn~VI^sy_Z-E>t764v`B?ylN$#>WEq3*N6T8`9X#oZ=^kp;pyJRZ3(Y3&# zS08L)9LNiqZmr%OtNFP-{QRW%M-;UV?PUgu`w@)T)F~2P2EVk$9hW-{Jp1RaBSQ#` zHQ|E3Kz;aoVvP=1a5ZEXdkalsxCPm$Do$^$!aZ{_^+Qy{gTX_L$7+LJLlLJ*?5vMU z*cN`SL&eS*V(43~*E$7+F)H_a{bW^}q>`DIt6j7c4dV>;ZXeW+gm7p_c3;A4xHM&F z^XO`Mej`>MuCPlH6A79uekW=$$y?IxmyWIjql(D`&Q}>FOuiCJ#RT7XO)ipSOQEm~ zFMv8S^Ve8EAvr3HSn(IDa5Kwm9|K-C@8B2_IJgp f-Do51l)icnYy=XJw%Cl>%)yRoT@(V_jrczR1bhmu literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/create/sounds/train2.ogg b/src/main/resources/assets/create/sounds/train2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..8ecf15f50f9c572f54b953faacfb71fc811812c3 GIT binary patch literal 29639 zcmagF1ymi)(k?tW1a~JJ0)dTta3{dVA$V|ich?XsI0OrB!Cis{cXta;kU)??2qAaK zd(L;x`u>02JF9oo(=}byUHw#bb>Oa>o!at0-LAtiJlNGD7izUR)+C=j& zdx#u_lbw^D{RKNWgh9>R%-z)5!4e|v;9>3J=wNT|;0ApZ0*CYu52%EsCLDkY)^I35 z`h%w8H2?qy0E}p%SVNh(8syt@>?tMl|WFURKM_}eZGEf>QLNJZ0j%qr9;KkK>|PpiOEuj6R16A zCXv(;Bw+T2!exlMB+KOqV`*;46V4$>r~>EL!XzbuucZZX0!IuDQxfPb4KpwWj(JVf zst#m*Ki3KVgRFmLXn)560sA6>OlpQBf%?ck5?Y+@0Kp4zBNh1E0Zv8iJ z9@F2UL*RhiXZ)!<(0m%Q{B8bxgs_MTc);vYB@nbk8fapHT(N~sm33y5)yF3L(K_bQ zI*h-MfRl^(*c%|%I-~gilPq*n&Hvv?%xZ`c5Ce5N=u9!_Oe?KMJLtlU@>jz{063>& zYRvsE+%m4*gRVkgl5vw7PF5JdQo#QABs@+#0Elr=^gB}wgW6DInRVgOaur^5Ra^vB z@u-pi`xX2bFW^9^vn^6>f>62QjsL182xLo=hboEjk0kJc$h=)h##F}TI6qd#UTzsd z=4{W~SDEy!W$BrJXV7kfbO)SE=*av2-1k!%t`l+?8Abn;yzw$oD$8cTI?{tItN~JE z@Hy+543x5EZLqD*RK|X3D*;$~o197C*!t=pe*c0+nL*Y>5C0a};_XVNZ7Z5SSo&#} z^=%yOvF?AvM+}@d<0X=T>=1~59I^=kbuo1kmD@Y4q+E_6XdzW>+)G$lsEQgXeUV$p z-;qNAAPna(ivOMch4McrE=-JK9AT&*;~Zsv%qn^(1deNZaU?M~Kom3cfGCb_+|O~X z;+M58YFyA|DoR#^L5u#eC~#6CX7S?4q<@VhBHd*KS^`?de^1;w?IbSc^nazv?-Z(d zbYPn1WKri5)_A3%y9wt$ZD=;tccn1-J4g_cXq=Dz~CKq5d?X`z(>UII z`Mihua+A4Uv%gN$zYOLdv)Np9|1ZmVG!Yv9xE8fAYU9$118MJ*p%!>L4pf%MoD_;IHM&W5tp>EQ||2+W!&>fE<|JRSGsV8lJ2+ z0o{*R8{ycaP=oQ8WT{W^qf&;Aa3E)g;y{Zi)F+^W6k%iHds(4V;tT))>4pP;5)9mC z(f|%U@WqLCGKpKBfKDD?dXm6=5npjJg?pTvNA;D)D89!0D~(kmMU5spMSMlYt5+KM z(i(&sv#E+2jrNn==F6`%)`>Lco6J{<0<==yH@Osbz}p3o>b{ujZ@6HupZ+gaiUfaI z@oFqK@u<3KsA`z&ywcF|FxR=!&|2`92dV0c%Y+&lO&ZJB_8O`FTW%WqTIS0)8ahM) zdW+#(Km4~y9yu@0yMt8Y1#{zO_e}=t3~QVG(((+3^769sCj0WLO1=EU^8E6VI?M8^ zijlhNk5zWZAhoKrypFlNocUv2#jkSauH1?5MbjH91xM(WOv+t?c1sZ}-H*OT>k zw7_xL8+zvG-GtZK3wBlh8UY#1-11L4QnZ52>K(|zx`9h3QDeTiBFhZ0r{$HIFgwal=tNf)u{u zK&Ez8g7s4*tH5liljj%*Ag|)&hO(0IU{=uN88wu=A{CfzUh;yPZEf+K$tk3e2xiTa zJfmwDqBDWU1NlfV~1)CBp1j26Xil8r^Yp(f{_UvQg94 zrg8ujPFF-C536k?vUT9tCxcm6J_;}EC(?@pg{#~06ff9367=ka7cyL7l?!ufu^_?J zzGFVa_w3&zH?d(ESTL!46wX+ik_ZalU(t=>Po6OWStY8)fGzawT8mR{KthIEbmRVt zs~yjeIo*m!8S>x?;rg!iS`+j-K?s0Y5Sn@JqYHU7Tk%M>2{~&Vmoa`uG>I{O`Z5;< z2`E%!OdOT2ae^NT?O)(Wr7I$mXJqNuw1q;!QLun<$6vEWR(#tJ_XJZ14Uht@cmM+W z9c0oXlF%uVLIP79nj#W#UWy1zLEVzLVo5NPnofu_K*LmEjL>i#m>gXZ80kKt0OL8k zsbp;mutWd&5hDx}42}qh+bd2++%N?geOWN5(Mop^3Pt^6x;B*!OJb;%;R~GdbRZNg zD*MuPnE>Df?9jQJplklCom$aQ8jZ7Nyr6#COqK%=rdvb zD0#^*p#zZQL^V(xIHWQc3{ZFdnvaBJ-4h514LcqW91vCmx{|QUer?+->Y@dc3Z6v} z#EttIwlI)jJKhQaYe*VDg_5+W*fW%D^}aR});V2S~_K|B1?9;{Clf zwfk3)p8n76f5q(oiQfNjB|Y0p5OV*W0b*TGP=G%u}uFSG1sJ14(P8lpx3${+8ʌlj++Q$; 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 z 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¦^3KrXlIfH*Pg?;m9h$Q7Ox~Qsnu1_D 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 diff --git a/src/main/resources/assets/create/sounds/whistle_train_low.ogg b/src/main/resources/assets/create/sounds/whistle_train_low.ogg index 379275e872e8ab9ead52237f3140591f7677a334..56e44f597071754f5cc81bb5839ef8cb9e17b394 100644 GIT binary patch delta 14834 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 delta 6852 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