From 40fef0eaf9ef0120de137edf706cdd35ea44f4a5 Mon Sep 17 00:00:00 2001 From: MRH0 Date: Fri, 5 Mar 2021 00:50:51 +0100 Subject: [PATCH 01/20] Update KineticTileEntity.java --- .../create/content/contraptions/base/KineticTileEntity.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/simibubi/create/content/contraptions/base/KineticTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/base/KineticTileEntity.java index 8df6884c4..c229f4764 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/base/KineticTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/base/KineticTileEntity.java @@ -53,8 +53,8 @@ public abstract class KineticTileEntity extends SmartTileEntity private int flickerTally; private int networkSize; private int validationCountdown; - private float lastStressApplied; - private float lastCapacityProvided; + protected float lastStressApplied; + protected float lastCapacityProvided; public KineticTileEntity(TileEntityType typeIn) { super(typeIn); @@ -154,7 +154,7 @@ public abstract class KineticTileEntity extends SmartTileEntity } public float calculateStressApplied() { - float impact = (float) AllConfigs.SERVER.kinetics.stressValues.getImpactOf(getBlockState().getBlock()); + float impact = (float) AllConfigs.SERVER.kinetics.stressValues.getImpactOf(getStressConfigKey()); this.lastStressApplied = impact; return impact; } From 8dbfd4877e6284f30bb78db2494bc3749c959b06 Mon Sep 17 00:00:00 2001 From: Christof Date: Fri, 2 Apr 2021 18:07:53 +0200 Subject: [PATCH 02/20] Update de_de.json Added the translations for a lot of blocks and a few advancements --- .../resources/assets/create/lang/de_de.json | 231 +++++++++++++++++- 1 file changed, 222 insertions(+), 9 deletions(-) diff --git a/src/main/resources/assets/create/lang/de_de.json b/src/main/resources/assets/create/lang/de_de.json index 9e0aab18c..9a9c5ee79 100644 --- a/src/main/resources/assets/create/lang/de_de.json +++ b/src/main/resources/assets/create/lang/de_de.json @@ -42,7 +42,7 @@ "block.create.brown_sail": "Braunes Segel", "block.create.brown_seat": "Brauner Sitz", "block.create.brown_valve_handle": "Brauner Ventilgriff", - "block.create.cart_assembler": "Lohrenmonteur", + "block.create.cart_assembler": "Lorenmonteur", "block.create.chiseled_dark_scoria": "Gemeißelte dunkle Schlacke", "block.create.chiseled_dolomite": "Gemeißeltes Dolomit", "block.create.chiseled_gabbro": "Gemeißeltes Gabbro", @@ -162,7 +162,7 @@ "block.create.gabbro_pillar": "Gabelsteinsäule", "block.create.gearbox": "Getriebe", "block.create.gearshift": "Gangschaltung", - "block.create.glass_fluid_pipe": "Glaswasserrohr", + "block.create.glass_fluid_pipe": "Glasrohr", "block.create.granite_bricks": "Granitziegel", "block.create.granite_bricks_slab": "Granitziegelstufe", "block.create.granite_bricks_stairs": "Granitziegeltreppe", @@ -180,7 +180,7 @@ "block.create.green_valve_handle": "Grüner Ventilgriff", "block.create.hand_crank": "Handkurbel", "block.create.honey": "Honig", - "block.create.horizontal_framed_glass": "Horizontal Gerahmes Glas", + "block.create.horizontal_framed_glass": "Horizontal Gerahmtes Glas", "block.create.horizontal_framed_glass_pane": "Horizontal Gerahmte Glasscheibe", "block.create.hose_pulley": "Umlenkrolle", "block.create.item_drain": "Abfluss", @@ -235,62 +235,253 @@ "block.create.mechanical_saw": "Mechanische Säge", "block.create.metal_bracket": "Metallhalterung", "block.create.millstone": "Mahlstein", + "block.create.minecart_anchor": "Lorenanker", + "block.create.mossy_andesite": "Moosiger Andesit", + "block.create.mossy_dark_scoria": "Moosige Dunkle Schlacke", + "block.create.mossy_diorite": "Moosiger Diorit", + "block.create.mossy_dolomite": "Moosiger Dolomit", + "block.create.mossy_gabbro": "Moosiger Gabelstein", + "block.create.mossy_granite": "Moosiger Granit", + "block.create.mossy_limestone": "Moosiger Kalkstein", + "block.create.mossy_scoria": "Moosige Schlacke", + "block.create.mossy_weathered_limestone": "Moosiger Verwitterter Kalkstein", + "block.create.mysterious_cuckoo_clock": "Kuckucksuhr", + "block.create.natural_scoria": "Natürliche Schlacke", + "block.create.nixie_tube": "Nixie-Röhre", + "block.create.nozzle": "Düse", + "block.create.oak_window": "Eichenfenster", + "block.create.oak_window_pane": "Eichenfensterscheibe", + "block.create.orange_sail": "Oranges Segel", + "block.create.orange_seat": "Oranger Sitz", + "block.create.orange_valve_handle": "Oranger Ventilgriff", + "block.create.ornate_iron_window": "Kunstvolles Eisenfenster", + "block.create.ornate_iron_window_pane": "Kunstvolle Eisenfensterscheibe", + "block.create.overgrown_andesite": "Überwachsener Andesit", + "block.create.overgrown_dark_scoria": "Überwachsene Dunkle Schlacke", + "block.create.overgrown_diorite": "Überwachsener Diorit", + "block.create.overgrown_dolomite": "Überwachsener Dolomit", + "block.create.overgrown_gabbro": "Überwachsener Gabelstein", + "block.create.overgrown_granite": "Überwachsener Granit", + "block.create.overgrown_limestone": "Überwachsener Kalkstein", + "block.create.overgrown_scoria": "Überwachsener Schlacke", + "block.create.overgrown_weathered_limestone": "Überwachsener Verwitterter Kalkstein", + "block.create.paved_andesite": "Gepflasterter Andesit", + "block.create.paved_andesite_slab": "Gepflasterte Andesitstufe", + "block.create.paved_andesite_stairs": "Gepflasterte Andesittreppe", + "block.create.paved_andesite_wall": "Gepflasterte Andesitmauer", + "block.create.paved_dark_scoria": "Gepflasterte Dunkle Schlacke", + "block.create.paved_dark_scoria_slab": "Gepflasterte Dunkle Schlackenstufe", + "block.create.paved_dark_scoria_stairs": "Gepflasterte Dunkle Schlackentreppe", + "block.create.paved_dark_scoria_wall": "Gepflasterte Dunkle Schlackenmauer", + "block.create.paved_diorite": "Gepflasterter Diorit", + "block.create.paved_diorite_slab": "Gepflasterte Dioritstufe", + "block.create.paved_diorite_stairs": "Gepflasterte Diorittreppe", + "block.create.paved_diorite_wall": "Gepflasterte Dioritmauer", + "block.create.paved_dolomite": "Gepflasterter Dolomit", + "block.create.paved_dolomite_slab": "Gepflasterte Dolomitstufe", + "block.create.paved_dolomite_stairs": "Gepflasterte Dolomittreppe", + "block.create.paved_dolomite_wall": "Gepflasterte Dolomitmauer", + "block.create.paved_gabbro": "Gepflasterter Gabelstein", + "block.create.paved_gabbro_slab": "Gepflasterte Gabelsteinstufe", + "block.create.paved_gabbro_stairs": "Gepflasterte Gabelsteintreppe", + "block.create.paved_gabbro_wall": "Gepflasterte Gabelsteinmauer", + "block.create.paved_granite": "Gepflasterter Granit", + "block.create.paved_granite_slab": "Gepflasterte Granitstufe", + "block.create.paved_granite_stairs": "Gepflasterte Granittreppe", + "block.create.paved_granite_wall": "Gepflasterte Granitmauer", + "block.create.paved_limestone": "Gepflasterter Kalkstein", + "block.create.paved_limestone_slab": "Gepflasterte Kalksteinstufe", + "block.create.paved_limestone_stairs": "Gepflasterte Kalksteintreppe", + "block.create.paved_limestone_wall": "Gepflasterte Kalksteinmauer", + "block.create.paved_scoria": "Gepflasterte Schlacke", + "block.create.paved_scoria_slab": "Gepflasterte Schlackenstufe", + "block.create.paved_scoria_stairs": "Gepflasterte Schlackentreppe", + "block.create.paved_scoria_wall": "Gepflasterte Schlackenmauer", + "block.create.paved_weathered_limestone": "Gepflasterter Verwitterter Kalkstein", + "block.create.paved_weathered_limestone_slab": "Gepflasterte Verwitterte Kalksteinstufe", + "block.create.paved_weathered_limestone_stairs": "Gepflasterte Verwitterte Kalksteintreppe", + "block.create.paved_weathered_limestone_wall": "Gepflasterte Verwitterte Kalksteinmauer", "block.create.pink_sail": "Rosa Segel", "block.create.pink_seat": "Rosa Sitz", "block.create.pink_valve_handle": "Rosa Ventilgriff", "block.create.piston_extension_pole": "Kolben-Pleuelverlängerung", + "block.create.polished_dark_scoria": "Polierte Dunkle Schlacke", + "block.create.polished_dark_scoria_slab": "Polierte Dunkle Schlackenstufe", + "block.create.polished_dark_scoria_stairs": "Polierte Dunkle Schlackentreppe", + "block.create.polished_dark_scoria_wall": "Polierte Dunkle Schlackenmauer", "block.create.polished_dolomite": "Polierter Dolomit", + "block.create.polished_dolomite_slab": "Polierte Dolomitstufe", + "block.create.polished_dolomite_stairs": "Polierte Dolomittreppe", + "block.create.polished_dolomite_wall": "Polierte Dolomitmauer", "block.create.polished_gabbro": "Polierter Gabelstein", + "block.create.polished_gabbro_slab": "Polierte Gabelsteinstufe", + "block.create.polished_gabbro_stairs": "Polierte Gabelsteintreppe", + "block.create.polished_gabbro_wall": "Polierte Gabelsteinmauer", "block.create.polished_limestone": "Polierter Kalkstein", "block.create.polished_limestone_slab": "Polierte Kalksteinstufe", + "block.create.polished_limestone_stairs": "Polierte Kalksteintreppe", + "block.create.polished_limestone_wall": "Polierte Kalksteinmauer", "block.create.polished_scoria": "Polierte Schlacke", + "block.create.polished_scoria_slab": "Polierte Schlackenstufe", + "block.create.polished_scoria_stairs": "Polierte Schlackentreppe", + "block.create.polished_scoria_wall": "Polierte Schlackenmauer", "block.create.polished_weathered_limestone": "Polierter Verwitterter Kalkstein", "block.create.polished_weathered_limestone_slab": "Polierte Verwitterte Kalksteinstufe", - "block.create.powered_latch": "UNLOCALIZED: Powered Latch", + "block.create.polished_weathered_limestone_stairs": "Polierte Verwitterte Kalksteintreppe", + "block.create.polished_weathered_limestone_wall": "Polierte Verwitterte Kalksteinmauer", + "block.create.portable_fluid_interface": "Portable Flüssigkeitsschnittstelle", + "block.create.portable_storage_interface": "Portable Lagerschnittstelle", + "block.create.powered_latch": "RS-Flipflop", + "block.create.powered_toggle_latch": "T-Flipflop", + "block.create.pulley_magnet": "Rollenmagnet", "block.create.pulse_repeater": "Pulsierender Verstärker", + "block.create.purple_sail": "Lila Segel", + "block.create.purple_seat": "Lila Sitz", + "block.create.purple_valve_handle": "Lila Ventilgriff", "block.create.radial_chassis": "Drehgerüst", + "block.create.red_sail": "Rote Segel", + "block.create.red_seat": "Roter Sitz", + "block.create.red_valve_handle": "Roter Ventilgriff", "block.create.redstone_contact": "Redstone-Kontakt", "block.create.redstone_link": "Redstone-Verbindung", + "block.create.refined_radiance_casing": "Glanzgehäuse", + "block.create.reinforced_rail": "Verstärkte Schiene", + "block.create.rope": "Seil", + "block.create.rope_pulley": "Seilrolle", + "block.create.rotation_speed_controller": "Rotationsgeschwindigkeitsregler", + "block.create.sail_frame": "Segelrahmen", "block.create.schematic_table": "Bauplantisch", "block.create.schematicannon": "Bauplankanone", + "block.create.scoria": "Schlacke", + "block.create.scoria_bricks": "Schlackenziegel", + "block.create.scoria_bricks_slab": "Schlackenziegelstufe", + "block.create.scoria_bricks_stairs": "Schlackenziegeltreppe", + "block.create.scoria_bricks_wall": "Schlackenziegelmauer", + "block.create.scoria_cobblestone": "Schlackenbruchstein", + "block.create.scoria_cobblestone_slab": "Schlackenpflasterstufe", + "block.create.scoria_cobblestone_stairs": "Schlackenpflastertreppe", + "block.create.scoria_cobblestone_wall": "Schlackenpflastermauer", + "block.create.scoria_pillar": "Schlackensäule", + "block.create.secondary_linear_chassis": "Sekundäres Schubgerüst", + "block.create.sequenced_gearshift": "Sequenzielles Gangschaltung", + "block.create.shadow_steel_casing": "Schattengehäuse", "block.create.shaft": "Welle", + "block.create.smart_chute": "Schlaue Rinne", + "block.create.smart_fluid_pipe": "Schlaues Flüssigkeitsrohr", + "block.create.speedometer": "Tachometer", + "block.create.spout": "Ausguss", + "block.create.spruce_window": "Fichtenfenster", + "block.create.spruce_window_pane": "Fichtenfensterscheibe", + "block.create.sticker": "Aufkleber", "block.create.sticky_mechanical_piston": "Klebriger Mechanischer Kolben", "block.create.stockpile_switch": "Vorratssensor", + "block.create.stressometer": "Stressometer", "block.create.tiled_glass": "Glasfliesen", "block.create.tiled_glass_pane": "Glasfliesenscheibe", "block.create.turntable": "Drehtisch", + "block.create.vertical_framed_glass": "Vertikal Gerahmtes Glas", + "block.create.vertical_framed_glass_pane": "Vertikal Gerahmte Glasscheibe", "block.create.water_wheel": "Wasserrad", "block.create.weathered_limestone": "Verwitterter Kalkstein", "block.create.weathered_limestone_bricks": "Verwitterte Kalksteinziegel", "block.create.weathered_limestone_bricks_slab": "Verwitterte Kalksteinziegelstufe", "block.create.weathered_limestone_bricks_stairs": "Verwitterte Kalksteinziegeltreppe", "block.create.weathered_limestone_bricks_wall": "Verwitterte Kalksteinziegelmauer", + "block.create.weathered_limestone_cobblestone": "Verwittertes Kalksteinpflaster", + "block.create.weathered_limestone_cobblestone_slab": "Verwitterte Kalksteinpflasterstufe", + "block.create.weathered_limestone_cobblestone_stairs": "Verwitterte Kalksteinpflastertreppe", + "block.create.weathered_limestone_cobblestone_wall": "Verwitterte Limestonepflastermauer", "block.create.weathered_limestone_pillar": "Verwitterte Kalksteinsäule", + "block.create.white_sail": "Weiße Segel", + "block.create.white_seat": "Weißer Sitz", + "block.create.white_valve_handle": "Weißer Ventilgriff", + "block.create.windmill_bearing": "Windmühlenlager", + "block.create.wooden_bracket": "Holzhalterung", + "block.create.yellow_sail": "Gelbes Segel", + "block.create.yellow_seat": "Gelber Sitz", + "block.create.yellow_valve_handle": "Gelber Ventilgriff", + "block.create.zinc_block": "Zinkblock", + "block.create.zinc_ore": "Zinkerz", + + "entity.create.contraption": "Vorrichtung", + "entity.create.seat": "Sitz", + "entity.create.stationary_contraption": "Stationärer Vorrichtung", + "entity.create.super_glue": "Superkleber", "fluid.create.milk": "Milch", "fluid.create.potion": "Trank", "fluid.create.tea": "Bauherrentee", + "item.create.andesite_alloy": "Andesitlegierung", + "item.create.attribute_filter": "Attribut Filter", "item.create.bar_of_chocolate": "Schokoladetafel", "item.create.belt_connector": "Mechanischer Riemen", + "item.create.blaze_cake": "Lohenkuchen", + "item.create.blaze_cake_base": "Lohenkuchenbasis", + "item.create.brass_hand": "Messing Hand", + "item.create.brass_ingot": "Messingbarren", + "item.create.brass_nugget": "Messingklumpen", + "item.create.brass_sheet": "Messingblech", + "item.create.builders_tea": "Baumeisters Tee", + "item.create.chest_minecart_contraption": "Güterloren Vorrichtung", + "item.create.chocolate_bucket": "Schokoladeneimer", + "item.create.chocolate_glazed_berries": "Schokoladenglasierte Beeren", + "item.create.chromatic_compound": "Chromatische Verbindung", + "item.create.cinder_flour": "Aschenmehl", + "item.create.copper_ingot": "Kupferbarren", + "item.create.copper_nugget": "Kupferklumpen", + "item.create.copper_sheet": "Kupferblech", + "item.create.crafter_slot_cover": "Handwerkseinheit Slot Abdeckung", + "item.create.crushed_aluminum_ore": "Zerkleinertes Aluminiumerz", + "item.create.crushed_brass": "Zerkleinertes Messing", + "item.create.crushed_copper_ore": "Zerkleinertes Kupfererz", + "item.create.crushed_gold_ore": "Zerkleinertes Golderz", + "item.create.crushed_iron_ore": "Zerkleinertes Eisenerz", + "item.create.crushed_lead_ore": "Zerkleinertes Bleierz", + "item.create.crushed_nickel_ore": "Zerkleinertes Nickelerz", + "item.create.crushed_osmium_ore": "Zerkleinertes Osmiumerz", + "item.create.crushed_platinum_ore": "Zerkleinertes Platinerz", + "item.create.crushed_quicksilver_ore": "Zerkleinertes Quecksilbererz", + "item.create.crushed_silver_ore": "Zerkleinertes Silbererz", + "item.create.crushed_tin_ore": "Zerkleinertes Zinnerz", + "item.create.crushed_uranium_ore": "Zerkleinertes Uranerz", + "item.create.crushed_zinc_ore": "Zerkleinertes Zinkerz", "item.create.deforester": "Entforster", "item.create.dough": "Teig", + "item.create.electron_tube": "Elektronenröhre", + "item.create.empty_blaze_burner": "Leerer Lohenbrenner", "item.create.empty_schematic": "Leerer Bauplan", + "item.create.extendo_grip": "Extendo Griff", "item.create.filter": "Filter", + "item.create.furnace_minecart_contraption": "Antriebsloren Vorrichtung", + "item.create.goggles": "Ingenieursbrille", + "item.create.golden_sheet": "Goldblech", "item.create.handheld_blockzapper": "Blockpistole", "item.create.handheld_worldshaper": "Geländeformer", "item.create.honey_bucket": "Honigeimer", + "item.create.honeyed_apple": "Honigapfel", + "item.create.integrated_circuit": "Integrierter Schaltkreis", "item.create.iron_sheet": "Eisenblech", + "item.create.lapis_sheet": "Lapislazuliblech", + "item.create.minecart_contraption": "Loren Vorrichtung", + "item.create.minecart_coupling": "Lorenkupplung", + "item.create.polished_rose_quartz": "Polierter Rosenquarz", + "item.create.powdered_obsidian": "Pulverisierter Obsidian", "item.create.propeller": "Propeller", "item.create.red_sand_paper": "Rotes Schmirgelpapier", + "item.create.refined_radiance": "Raffinierter Glanz", "item.create.rose_quartz": "Rosenquarz", "item.create.sand_paper": "Schmirgelpapier", "item.create.schematic": "Bauplan", "item.create.schematic_and_quill": "Bauplan und Feder", + "item.create.shadow_steel": "Schattenstahl", "item.create.super_glue": "Superkleber", + "item.create.sweet_roll": "Rosinenschnecke", "item.create.tree_fertilizer": "Baumdünger", + "item.create.vertical_gearbox": "Vertikales Getriebe", "item.create.wand_of_symmetry": "Symmetriestab", "item.create.wheat_flour": "Weizenmehl", + "item.create.whisk": "Rührstab", "item.create.wrench": "Schraubenschlüssel", "item.create.zinc_ingot": "Zinkbarren", "item.create.zinc_nugget": "Zinkklumpen", @@ -310,6 +501,22 @@ "advancement.create.overstressed.desc": "Erfahre die Limits der Belastung aus erster Hand.", "advancement.create.belt": "Befördere es alles", "advancement.create.belt.desc": "Verbinde zwei Wllen mit einem Mechanischem Riemen", + "advancement.create.tunnel": "Geht in Deckung!", + "advancement.create.tunnel.desc": "Verschönere deinen Mechanischem Riemen mit einem Tunnel.", + "advancement.create.splitter_tunnel": "Divide & Conquer", + "advancement.create.splitter_tunnel.desc": "Mache einen Teiler aus einer Gruppe von Messingtunneln.", + "advancement.create.chute": "Abstürzen", + "advancement.create.chute.desc": "Platziere eine Rinne, das vertikale Gegenstück des Riemens.", + "advancement.create.upward_chute": "Luftentführung", + "advancement.create.upward_chute.desc": "Sieh ein geworfenes Item in eine propellerbetriebene Rinne fliegen.", + "advancement.create.fan": "Mechanischer Luftbändiger", + "advancement.create.fan.desc": "Reite den Luftstrom eines eingeschlossenen Propellers.", + "advancement.create.extendo_grip": "Boioioing!", + "advancement.create.extendo_grip.desc": "Beschaffe einen Extendo Griff.", + "advancement.create.dual_extendo_grip": "Ultimatives Boing-Zeitalter", + "advancement.create.dual_extendo_grip.desc": "Schwinge zwei Extendo Griffe gleichzeitig für eine übermenschliche Reichweite.", + "advancement.create.eob": "Ende der Beta", + "advancement.create.eob.desc": "Erwarte mehr Inhalt in der Zukunft. <3", "_": "->------------------------] UI & Messages [------------------------<-", @@ -325,6 +532,7 @@ "death.attack.create.cuckoo_clock_explosion": "%1$s wurde durch eine falsche Kuckucksuhr gesprengt", "create.block.deployer.damage_source_name": "einem Finger", + "create.block.cart_assembler.invalid": "Platziere deinen Lorenmonteur auf einer Schiene.", "create.recipe.crushing": "Mahlen (Mahlwerk)", "create.recipe.milling": "Mahlen (Mahlstein)", @@ -340,6 +548,9 @@ "create.generic.range": "Reichweite", "create.generic.radius": "Radius", + "create.generic.width": "Breite", + "create.generic.height": "Höhe", + "create.generic.length": "Länge", "create.generic.speed": "Geschwindigkeit", "create.generic.delay": "Verzögerung", "create.generic.unit.ticks": "Ticks", @@ -362,6 +573,7 @@ "create.gui.scrollInput.defaultTitle": "Wähle eine Option:", "create.gui.scrollInput.scrollToModify": "Mausrad zum Ändern", + "create.gui.scrollInput.scrollToAdjustAmount": "Mausrad um Betrag anzupassen", "create.gui.scrollInput.scrollToSelect": "Mausrad zum Auswählen", "create.gui.scrollInput.shiftScrollsFaster": "Shift zum schnelleren Auswählen", "create.gui.toolmenu.focusKey": "Halte [%1$s] zum Fokussieren", @@ -548,11 +760,12 @@ "item.create.handheld_blockzapper.tooltip.action2": "_Platziert_ oder _Ersetzt_ den ausgewählten Block.", "item.create.handheld_blockzapper.tooltip.control3": "R-Klick beim Schleichen", "item.create.handheld_blockzapper.tooltip.action3": "Öffnet das _Konfigurationsmenü_", - + "item.create.tree_fertilizer.tooltip": "BAUMDÜNGER", "item.create.tree_fertilizer.tooltip.summary": "Eine Mischung aus Mineralien, die sich für weit verbreitete Baumarten eignet", "item.create.tree_fertilizer.tooltip.condition1": "Wenn auf einen Setzling angewendet", "item.create.tree_fertilizer.tooltip.behaviour1": "Lässt Bäume unabhängig vom Platz um sie herum wachsen", + "item.create.empty_schematic.tooltip": "LEERER BAUPLAN", "item.create.empty_schematic.tooltip.summary": "Wird für die Herstellung und das Schreiben auf dem _Bauplantisch_ verwendet", @@ -720,8 +933,8 @@ "block.create.creative_crate.tooltip": "BAUPLANKANONENMACHER", "block.create.creative_crate.tooltip.summary": "Stellt einen unendlichen Vorrat an Blöcken für benachbarte _Bauplaenkanonen_ bereit.", - "block.create.creative_crate.tooltip.condition1": "UNLOCALIZED: When Item in Filter Slot", - "block.create.creative_crate.tooltip.behaviour1": "UNLOCALIZED: Anything _extracting_ from this container will provide an _endless supply_ of the item specified. Items _inserted_ into this crate will be _voided._", + "block.create.creative_crate.tooltip.condition1": "Wenn Item in Filter Slot", + "block.create.creative_crate.tooltip.behaviour1": "Alles _extrahierende_ von diesem Container wird einen _endlosen Vorrat_ des angegebenen Items zur Verfügung stellen. In diese Kiste _eingefügte_ Items werden _entsorgt_.", "block.create.pulse_repeater.tooltip": "PULSIERENDER VERSTÄRKER", "block.create.pulse_repeater.tooltip.summary": "Ein einfacher Schaltkreis, um durchgehende Redstone-Signale auf eine Länge von _1_ _tick_ zu reduzieren.", @@ -731,7 +944,7 @@ "create.tooltip.wip": "WIP", "create.tooltip.workInProgress": "Work in progress!", - + "_": "Thank you for translating Create!" -} +} \ No newline at end of file From 1d31271bcbe9806d84b72590d9043c6de4f5003c Mon Sep 17 00:00:00 2001 From: Christof Date: Fri, 2 Apr 2021 18:23:11 +0200 Subject: [PATCH 03/20] Update de_de.json Typos and Gabelstein = Gabbro --- .../resources/assets/create/lang/de_de.json | 54 +++++++++---------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/src/main/resources/assets/create/lang/de_de.json b/src/main/resources/assets/create/lang/de_de.json index 9a9c5ee79..4309f1061 100644 --- a/src/main/resources/assets/create/lang/de_de.json +++ b/src/main/resources/assets/create/lang/de_de.json @@ -123,10 +123,10 @@ "block.create.fancy_dolomite_bricks_slab": "Schöne Dolomitziegelstufe", "block.create.fancy_dolomite_bricks_stairs": "Schöne Dolomitziegeltreppe", "block.create.fancy_dolomite_bricks_wall": "Schöne Dolomitziegelmauer", - "block.create.fancy_gabbro_bricks": "Schöne Gabelsteinziegel", - "block.create.fancy_gabbro_bricks_slab": "Schöne Gabelsteinziegelstufe", - "block.create.fancy_gabbro_bricks_stairs": "Schöne Gabelsteinziegeltreppe", - "block.create.fancy_gabbro_bricks_wall": "Schöne Gabelsteinziegelmauer", + "block.create.fancy_gabbro_bricks": "Schöne Gabbroziegel", + "block.create.fancy_gabbro_bricks_slab": "Schöne Gabbroziegelstufe", + "block.create.fancy_gabbro_bricks_stairs": "Schöne Gabbroziegeltreppe", + "block.create.fancy_gabbro_bricks_wall": "Schöne Gabbroziegelmauer", "block.create.fancy_granite_bricks": "Schöne Granitziegel", "block.create.fancy_granite_bricks_slab": "Schöne Granitziegelstufe", "block.create.fancy_granite_bricks_stairs": "Schöne Granitziegeltreppe", @@ -150,16 +150,16 @@ "block.create.framed_glass": "Gerahmtes Glas", "block.create.framed_glass_pane": "Gerahmte Glasscheibe", "block.create.furnace_engine": "Ofenmotor", - "block.create.gabbro": "Gabelstein", - "block.create.gabbro_bricks": "Gabelsteinziegel", - "block.create.gabbro_bricks_slab": "Gabelsteinziegelstufe", - "block.create.gabbro_bricks_stairs": "Gabelsteinziegeltreppe", - "block.create.gabbro_bricks_wall": "Gabelsteinziegelmauer", - "block.create.gabbro_cobblestone": "Gabelsteinbruchstein", - "block.create.gabbro_cobblestone_slab": "Gabelsteinbruchstein", - "block.create.gabbro_cobblestone_stairs": "Gabelsteinbruchstein", - "block.create.gabbro_cobblestone_wall": "Gabelsteinbruchstein", - "block.create.gabbro_pillar": "Gabelsteinsäule", + "block.create.gabbro": "Gabbro", + "block.create.gabbro_bricks": "Gabbroziegel", + "block.create.gabbro_bricks_slab": "Gabbroziegelstufe", + "block.create.gabbro_bricks_stairs": "Gabbroziegeltreppe", + "block.create.gabbro_bricks_wall": "Gabbroziegelmauer", + "block.create.gabbro_cobblestone": "Gabbrobruchstein", + "block.create.gabbro_cobblestone_slab": "Gabbrobruchstein", + "block.create.gabbro_cobblestone_stairs": "Gabbrobruchstein", + "block.create.gabbro_cobblestone_wall": "Gabbrobruchstein", + "block.create.gabbro_pillar": "Gabbrosäule", "block.create.gearbox": "Getriebe", "block.create.gearshift": "Gangschaltung", "block.create.glass_fluid_pipe": "Glasrohr", @@ -185,13 +185,13 @@ "block.create.hose_pulley": "Umlenkrolle", "block.create.item_drain": "Abfluss", "block.create.jungle_window": "Tropenholzfenster", - "block.create.jungle_window_pane": "Tropenholzfensterscheib", + "block.create.jungle_window_pane": "Tropenholzfensterscheibe", "block.create.large_cogwheel": "Großes Zahnrad", "block.create.layered_andesite": "Geschichteter Andesit", "block.create.layered_dark_scoria": "Geschichtete Dunkle Schlacke", "block.create.layered_diorite": "Geschichteter Diorit", "block.create.layered_dolomite": "Geschichteter Dolomit", - "block.create.layered_gabbro": "Geschichteter Gabelstein", + "block.create.layered_gabbro": "Geschichteter Gabbro", "block.create.layered_granite": "Geschichteter Granit", "block.create.layered_limestone": "Geschichteter Kalkstein", "block.create.layered_scoria": "Geschichtete Schlacke", @@ -240,7 +240,7 @@ "block.create.mossy_dark_scoria": "Moosige Dunkle Schlacke", "block.create.mossy_diorite": "Moosiger Diorit", "block.create.mossy_dolomite": "Moosiger Dolomit", - "block.create.mossy_gabbro": "Moosiger Gabelstein", + "block.create.mossy_gabbro": "Moosiger Gabbro", "block.create.mossy_granite": "Moosiger Granit", "block.create.mossy_limestone": "Moosiger Kalkstein", "block.create.mossy_scoria": "Moosige Schlacke", @@ -260,7 +260,7 @@ "block.create.overgrown_dark_scoria": "Überwachsene Dunkle Schlacke", "block.create.overgrown_diorite": "Überwachsener Diorit", "block.create.overgrown_dolomite": "Überwachsener Dolomit", - "block.create.overgrown_gabbro": "Überwachsener Gabelstein", + "block.create.overgrown_gabbro": "Überwachsener Gabbro", "block.create.overgrown_granite": "Überwachsener Granit", "block.create.overgrown_limestone": "Überwachsener Kalkstein", "block.create.overgrown_scoria": "Überwachsener Schlacke", @@ -281,10 +281,10 @@ "block.create.paved_dolomite_slab": "Gepflasterte Dolomitstufe", "block.create.paved_dolomite_stairs": "Gepflasterte Dolomittreppe", "block.create.paved_dolomite_wall": "Gepflasterte Dolomitmauer", - "block.create.paved_gabbro": "Gepflasterter Gabelstein", - "block.create.paved_gabbro_slab": "Gepflasterte Gabelsteinstufe", - "block.create.paved_gabbro_stairs": "Gepflasterte Gabelsteintreppe", - "block.create.paved_gabbro_wall": "Gepflasterte Gabelsteinmauer", + "block.create.paved_gabbro": "Gepflasterter Gabbro", + "block.create.paved_gabbro_slab": "Gepflasterte Gabbrostufe", + "block.create.paved_gabbro_stairs": "Gepflasterte Gabbrotreppe", + "block.create.paved_gabbro_wall": "Gepflasterte Gabbromauer", "block.create.paved_granite": "Gepflasterter Granit", "block.create.paved_granite_slab": "Gepflasterte Granitstufe", "block.create.paved_granite_stairs": "Gepflasterte Granittreppe", @@ -313,10 +313,10 @@ "block.create.polished_dolomite_slab": "Polierte Dolomitstufe", "block.create.polished_dolomite_stairs": "Polierte Dolomittreppe", "block.create.polished_dolomite_wall": "Polierte Dolomitmauer", - "block.create.polished_gabbro": "Polierter Gabelstein", - "block.create.polished_gabbro_slab": "Polierte Gabelsteinstufe", - "block.create.polished_gabbro_stairs": "Polierte Gabelsteintreppe", - "block.create.polished_gabbro_wall": "Polierte Gabelsteinmauer", + "block.create.polished_gabbro": "Polierter Gabbro", + "block.create.polished_gabbro_slab": "Polierte Gabbrostufe", + "block.create.polished_gabbro_stairs": "Polierte Gabbrotreppe", + "block.create.polished_gabbro_wall": "Polierte Gabbromauer", "block.create.polished_limestone": "Polierter Kalkstein", "block.create.polished_limestone_slab": "Polierte Kalksteinstufe", "block.create.polished_limestone_stairs": "Polierte Kalksteintreppe", @@ -414,7 +414,7 @@ "item.create.andesite_alloy": "Andesitlegierung", "item.create.attribute_filter": "Attribut Filter", - "item.create.bar_of_chocolate": "Schokoladetafel", + "item.create.bar_of_chocolate": "Schokoladentafel", "item.create.belt_connector": "Mechanischer Riemen", "item.create.blaze_cake": "Lohenkuchen", "item.create.blaze_cake_base": "Lohenkuchenbasis", From b1bec1a1f9be4cf1f39f208a2029ceb8042ab079 Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Fri, 2 Apr 2021 19:22:41 +0200 Subject: [PATCH 04/20] Fix-ups - Filterless Creative Crates now serve as universal supply to schematic-driven deployers - An attempt to force-update ejectors to not miss out on lid animations - Fixed schematic-driven deployers not copying safe nbt data --- .../deployer/DeployerMovementBehaviour.java | 35 ++++++++++--------- .../structureMovement/Contraption.java | 10 ++++++ .../block/depot/EjectorTileEntity.java | 2 +- 3 files changed, 29 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerMovementBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerMovementBehaviour.java index d1825eef9..20e9a0d0f 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerMovementBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerMovementBehaviour.java @@ -74,7 +74,7 @@ public class DeployerMovementBehaviour extends MovementBehaviour { World world = context.world; ItemStack filter = getFilter(context); - if (AllItems.SCHEMATIC.isIn(filter)) + if (AllItems.SCHEMATIC.isIn(filter)) activateAsSchematicPrinter(context, pos, player, world, filter); Vec3d facingVec = new Vec3d(context.state.get(DeployerBlock.FACING) @@ -87,8 +87,8 @@ public class DeployerMovementBehaviour extends MovementBehaviour { DeployerHandler.activate(player, vec, pos, facingVec, mode); } - protected void activateAsSchematicPrinter(MovementContext context, BlockPos pos, DeployerFakePlayer player, World world, - ItemStack filter) { + protected void activateAsSchematicPrinter(MovementContext context, BlockPos pos, DeployerFakePlayer player, + World world, ItemStack filter) { if (!filter.hasTag()) return; if (!world.getBlockState(pos) @@ -112,24 +112,25 @@ public class DeployerMovementBehaviour extends MovementBehaviour { List requiredItems = requirement.getRequiredItems(); ItemStack firstRequired = requiredItems.isEmpty() ? ItemStack.EMPTY : requiredItems.get(0); - IItemHandler iItemHandler = context.contraption.inventory; - - for (ItemStack required : requiredItems) { - int amountFound = ItemHelper - .extract(iItemHandler, s -> ItemRequirement.validate(required, s), ExtractionCountMode.UPTO, - required.getCount(), true) - .getCount(); - if (amountFound < required.getCount()) - return; + + if (!context.contraption.hasUniversalCreativeCrate) { + IItemHandler iItemHandler = context.contraption.inventory; + for (ItemStack required : requiredItems) { + int amountFound = ItemHelper + .extract(iItemHandler, s -> ItemRequirement.validate(required, s), ExtractionCountMode.UPTO, + required.getCount(), true) + .getCount(); + if (amountFound < required.getCount()) + return; + } + for (ItemStack required : requiredItems) + ItemHelper.extract(iItemHandler, s -> ItemRequirement.validate(required, s), ExtractionCountMode.UPTO, + required.getCount(), false); } - for (ItemStack required : requiredItems) - ItemHelper.extract(iItemHandler, s -> ItemRequirement.validate(required, s), ExtractionCountMode.UPTO, - required.getCount(), false); - CompoundNBT data = null; if (AllBlockTags.SAFE_NBT.matches(blockState)) { - TileEntity tile = world.getTileEntity(pos); + TileEntity tile = schematicWorld.getTileEntity(pos); if (tile != null) { data = tile.write(new CompoundNBT()); data = NBTProcessors.process(tile, data, true); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/Contraption.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/Contraption.java index 659c2f591..67f945497 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/Contraption.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/Contraption.java @@ -51,12 +51,14 @@ import com.simibubi.create.content.contraptions.fluids.tank.FluidTankTileEntity; import com.simibubi.create.content.contraptions.relays.advanced.GantryShaftBlock; import com.simibubi.create.content.contraptions.relays.belt.BeltBlock; import com.simibubi.create.content.logistics.block.inventories.AdjustableCrateBlock; +import com.simibubi.create.content.logistics.block.inventories.CreativeCrateTileEntity; import com.simibubi.create.content.logistics.block.redstone.RedstoneContactBlock; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.fluid.CombinedTankWrapper; import com.simibubi.create.foundation.render.backend.instancing.IFlywheelWorld; import com.simibubi.create.foundation.render.backend.light.EmptyLighter; import com.simibubi.create.foundation.render.backend.light.GridAlignedBB; +import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour; import com.simibubi.create.foundation.utility.BlockFace; import com.simibubi.create.foundation.utility.Coordinate; import com.simibubi.create.foundation.utility.Iterate; @@ -123,6 +125,7 @@ public abstract class Contraption { public AxisAlignedBB bounds; public BlockPos anchor; public boolean stalled; + public boolean hasUniversalCreativeCrate; protected Map blocks; protected Map storage; @@ -623,6 +626,11 @@ public abstract class Contraption { fluidStorage.put(localPos, new MountedFluidStorage(te)); if (AllMovementBehaviours.contains(captured.state.getBlock())) actors.add(MutablePair.of(blockInfo, null)); + if (te instanceof CreativeCrateTileEntity + && ((CreativeCrateTileEntity) te).getBehaviour(FilteringBehaviour.TYPE) + .getFilter() + .isEmpty()) + hasUniversalCreativeCrate = true; } @Nullable @@ -735,6 +743,7 @@ public abstract class Contraption { bounds = NBTHelper.readAABB(nbt.getList("BoundsFront", 5)); stalled = nbt.getBoolean("Stalled"); + hasUniversalCreativeCrate = nbt.getBoolean("BottomlessSupply"); anchor = NBTUtil.readBlockPos(nbt.getCompound("Anchor")); } @@ -810,6 +819,7 @@ public abstract class Contraption { nbt.put("FluidStorage", fluidStorageNBT); nbt.put("Anchor", NBTUtil.writeBlockPos(anchor)); nbt.putBoolean("Stalled", stalled); + nbt.putBoolean("BottomlessSupply", hasUniversalCreativeCrate); if (bounds != null) { ListNBT bb = NBTHelper.writeAABB(bounds); diff --git a/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorTileEntity.java index a5d0bf6e1..5ce6c5490 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorTileEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorTileEntity.java @@ -496,7 +496,7 @@ public class EjectorTileEntity extends KineticTileEntity { powered = compound.getBoolean("Powered"); state = NBTHelper.readEnum(compound, "State", State.class); - lidProgress.readNBT(compound.getCompound("Lid"), clientPacket); + lidProgress.readNBT(compound.getCompound("Lid"), false); launchedItems = NBTHelper.readCompoundList(compound.getList("LaunchedItems", NBT.TAG_COMPOUND), nbt -> IntAttached.read(nbt, ItemStack::read)); From f17a804f43712eeb7a5e7a470769310fed910773 Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Fri, 2 Apr 2021 21:09:40 +0200 Subject: [PATCH 05/20] post-PR datagen --- src/generated/resources/.cache/cache | 2 +- .../assets/create/lang/unfinished/de_de.json | 472 +++++++++--------- 2 files changed, 237 insertions(+), 237 deletions(-) diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index 5daf0f71f..f5ef40be2 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -404,7 +404,7 @@ a3a11524cd3515fc01d905767b4b7ea782adaf03 assets/create/blockstates/yellow_seat.j b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json ce0e5405da381a86625b908c569c5dbe347abdba assets/create/lang/en_ud.json 1054888c62303be2e61b24dfc2d809cca9f9b823 assets/create/lang/en_us.json -5acabeac2d947b7feac58fb27ec2416a7896e179 assets/create/lang/unfinished/de_de.json +a300d43c8e8ce0c484764eb92994e939da9e8df1 assets/create/lang/unfinished/de_de.json 2fa1f1b2862309a85771fe411c8abd768f9de2b6 assets/create/lang/unfinished/es_es.json 69c9f259de6fbf97c63612f2d78dfd074172e6be assets/create/lang/unfinished/es_mx.json 926bba2613e754019fd475543d3d3bdd0d5cd9f4 assets/create/lang/unfinished/fr_fr.json 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 32d2ccdf5..2255932c0 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: 1342", + "_": "Missing Localizations: 1131", "_": "->------------------------] Game Elements [------------------------<-", @@ -44,7 +44,7 @@ "block.create.brown_sail": "Braunes Segel", "block.create.brown_seat": "Brauner Sitz", "block.create.brown_valve_handle": "Brauner Ventilgriff", - "block.create.cart_assembler": "Lohrenmonteur", + "block.create.cart_assembler": "Lorenmonteur", "block.create.chiseled_dark_scoria": "Gemeißelte dunkle Schlacke", "block.create.chiseled_dolomite": "Gemeißeltes Dolomit", "block.create.chiseled_gabbro": "Gemeißeltes Gabbro", @@ -125,10 +125,10 @@ "block.create.fancy_dolomite_bricks_slab": "Schöne Dolomitziegelstufe", "block.create.fancy_dolomite_bricks_stairs": "Schöne Dolomitziegeltreppe", "block.create.fancy_dolomite_bricks_wall": "Schöne Dolomitziegelmauer", - "block.create.fancy_gabbro_bricks": "Schöne Gabelsteinziegel", - "block.create.fancy_gabbro_bricks_slab": "Schöne Gabelsteinziegelstufe", - "block.create.fancy_gabbro_bricks_stairs": "Schöne Gabelsteinziegeltreppe", - "block.create.fancy_gabbro_bricks_wall": "Schöne Gabelsteinziegelmauer", + "block.create.fancy_gabbro_bricks": "Schöne Gabbroziegel", + "block.create.fancy_gabbro_bricks_slab": "Schöne Gabbroziegelstufe", + "block.create.fancy_gabbro_bricks_stairs": "Schöne Gabbroziegeltreppe", + "block.create.fancy_gabbro_bricks_wall": "Schöne Gabbroziegelmauer", "block.create.fancy_granite_bricks": "Schöne Granitziegel", "block.create.fancy_granite_bricks_slab": "Schöne Granitziegelstufe", "block.create.fancy_granite_bricks_stairs": "Schöne Granitziegeltreppe", @@ -152,21 +152,21 @@ "block.create.framed_glass": "Gerahmtes Glas", "block.create.framed_glass_pane": "Gerahmte Glasscheibe", "block.create.furnace_engine": "Ofenmotor", - "block.create.gabbro": "Gabelstein", - "block.create.gabbro_bricks": "Gabelsteinziegel", - "block.create.gabbro_bricks_slab": "Gabelsteinziegelstufe", - "block.create.gabbro_bricks_stairs": "Gabelsteinziegeltreppe", - "block.create.gabbro_bricks_wall": "Gabelsteinziegelmauer", - "block.create.gabbro_cobblestone": "Gabelsteinbruchstein", - "block.create.gabbro_cobblestone_slab": "Gabelsteinbruchstein", - "block.create.gabbro_cobblestone_stairs": "Gabelsteinbruchstein", - "block.create.gabbro_cobblestone_wall": "Gabelsteinbruchstein", - "block.create.gabbro_pillar": "Gabelsteinsäule", + "block.create.gabbro": "Gabbro", + "block.create.gabbro_bricks": "Gabbroziegel", + "block.create.gabbro_bricks_slab": "Gabbroziegelstufe", + "block.create.gabbro_bricks_stairs": "Gabbroziegeltreppe", + "block.create.gabbro_bricks_wall": "Gabbroziegelmauer", + "block.create.gabbro_cobblestone": "Gabbrobruchstein", + "block.create.gabbro_cobblestone_slab": "Gabbrobruchstein", + "block.create.gabbro_cobblestone_stairs": "Gabbrobruchstein", + "block.create.gabbro_cobblestone_wall": "Gabbrobruchstein", + "block.create.gabbro_pillar": "Gabbrosäule", "block.create.gantry_carriage": "UNLOCALIZED: Gantry Carriage", "block.create.gantry_shaft": "UNLOCALIZED: Gantry Shaft", "block.create.gearbox": "Getriebe", "block.create.gearshift": "Gangschaltung", - "block.create.glass_fluid_pipe": "Glaswasserrohr", + "block.create.glass_fluid_pipe": "Glasrohr", "block.create.granite_bricks": "Granitziegel", "block.create.granite_bricks_slab": "Granitziegelstufe", "block.create.granite_bricks_stairs": "Granitziegeltreppe", @@ -184,18 +184,18 @@ "block.create.green_valve_handle": "Grüner Ventilgriff", "block.create.hand_crank": "Handkurbel", "block.create.honey": "Honig", - "block.create.horizontal_framed_glass": "Horizontal Gerahmes Glas", + "block.create.horizontal_framed_glass": "Horizontal Gerahmtes Glas", "block.create.horizontal_framed_glass_pane": "Horizontal Gerahmte Glasscheibe", "block.create.hose_pulley": "Umlenkrolle", "block.create.item_drain": "Abfluss", "block.create.jungle_window": "Tropenholzfenster", - "block.create.jungle_window_pane": "Tropenholzfensterscheib", + "block.create.jungle_window_pane": "Tropenholzfensterscheibe", "block.create.large_cogwheel": "Großes Zahnrad", "block.create.layered_andesite": "Geschichteter Andesit", "block.create.layered_dark_scoria": "Geschichtete Dunkle Schlacke", "block.create.layered_diorite": "Geschichteter Diorit", "block.create.layered_dolomite": "Geschichteter Dolomit", - "block.create.layered_gabbro": "Geschichteter Gabelstein", + "block.create.layered_gabbro": "Geschichteter Gabbro", "block.create.layered_granite": "Geschichteter Granit", "block.create.layered_limestone": "Geschichteter Kalkstein", "block.create.layered_scoria": "Geschichtete Schlacke", @@ -239,255 +239,255 @@ "block.create.mechanical_saw": "Mechanische Säge", "block.create.metal_bracket": "Metallhalterung", "block.create.millstone": "Mahlstein", - "block.create.minecart_anchor": "UNLOCALIZED: Minecart Anchor", - "block.create.mossy_andesite": "UNLOCALIZED: Mossy Andesite", - "block.create.mossy_dark_scoria": "UNLOCALIZED: Mossy Dark Scoria", - "block.create.mossy_diorite": "UNLOCALIZED: Mossy Diorite", - "block.create.mossy_dolomite": "UNLOCALIZED: Mossy Dolomite", - "block.create.mossy_gabbro": "UNLOCALIZED: Mossy Gabbro", - "block.create.mossy_granite": "UNLOCALIZED: Mossy Granite", - "block.create.mossy_limestone": "UNLOCALIZED: Mossy Limestone", - "block.create.mossy_scoria": "UNLOCALIZED: Mossy Scoria", - "block.create.mossy_weathered_limestone": "UNLOCALIZED: Mossy Weathered Limestone", - "block.create.mysterious_cuckoo_clock": "UNLOCALIZED: Cuckoo Clock", - "block.create.natural_scoria": "UNLOCALIZED: Natural Scoria", - "block.create.nixie_tube": "UNLOCALIZED: Nixie Tube", - "block.create.nozzle": "UNLOCALIZED: Nozzle", - "block.create.oak_window": "UNLOCALIZED: Oak Window", - "block.create.oak_window_pane": "UNLOCALIZED: Oak Window Pane", - "block.create.orange_sail": "UNLOCALIZED: Orange Sail", - "block.create.orange_seat": "UNLOCALIZED: Orange Seat", - "block.create.orange_valve_handle": "UNLOCALIZED: Orange Valve Handle", - "block.create.ornate_iron_window": "UNLOCALIZED: Ornate Iron Window", - "block.create.ornate_iron_window_pane": "UNLOCALIZED: Ornate Iron Window Pane", - "block.create.overgrown_andesite": "UNLOCALIZED: Overgrown Andesite", - "block.create.overgrown_dark_scoria": "UNLOCALIZED: Overgrown Dark Scoria", - "block.create.overgrown_diorite": "UNLOCALIZED: Overgrown Diorite", - "block.create.overgrown_dolomite": "UNLOCALIZED: Overgrown Dolomite", - "block.create.overgrown_gabbro": "UNLOCALIZED: Overgrown Gabbro", - "block.create.overgrown_granite": "UNLOCALIZED: Overgrown Granite", - "block.create.overgrown_limestone": "UNLOCALIZED: Overgrown Limestone", - "block.create.overgrown_scoria": "UNLOCALIZED: Overgrown Scoria", - "block.create.overgrown_weathered_limestone": "UNLOCALIZED: Overgrown Weathered Limestone", - "block.create.paved_andesite": "UNLOCALIZED: Paved Andesite", - "block.create.paved_andesite_slab": "UNLOCALIZED: Paved Andesite Slab", - "block.create.paved_andesite_stairs": "UNLOCALIZED: Paved Andesite Stairs", - "block.create.paved_andesite_wall": "UNLOCALIZED: Paved Andesite Wall", - "block.create.paved_dark_scoria": "UNLOCALIZED: Paved Dark Scoria", - "block.create.paved_dark_scoria_slab": "UNLOCALIZED: Paved Dark Scoria Slab", - "block.create.paved_dark_scoria_stairs": "UNLOCALIZED: Paved Dark Scoria Stairs", - "block.create.paved_dark_scoria_wall": "UNLOCALIZED: Paved Dark Scoria Wall", - "block.create.paved_diorite": "UNLOCALIZED: Paved Diorite", - "block.create.paved_diorite_slab": "UNLOCALIZED: Paved Diorite Slab", - "block.create.paved_diorite_stairs": "UNLOCALIZED: Paved Diorite Stairs", - "block.create.paved_diorite_wall": "UNLOCALIZED: Paved Diorite Wall", - "block.create.paved_dolomite": "UNLOCALIZED: Paved Dolomite", - "block.create.paved_dolomite_slab": "UNLOCALIZED: Paved Dolomite Slab", - "block.create.paved_dolomite_stairs": "UNLOCALIZED: Paved Dolomite Stairs", - "block.create.paved_dolomite_wall": "UNLOCALIZED: Paved Dolomite Wall", - "block.create.paved_gabbro": "UNLOCALIZED: Paved Gabbro", - "block.create.paved_gabbro_slab": "UNLOCALIZED: Paved Gabbro Slab", - "block.create.paved_gabbro_stairs": "UNLOCALIZED: Paved Gabbro Stairs", - "block.create.paved_gabbro_wall": "UNLOCALIZED: Paved Gabbro Wall", - "block.create.paved_granite": "UNLOCALIZED: Paved Granite", - "block.create.paved_granite_slab": "UNLOCALIZED: Paved Granite Slab", - "block.create.paved_granite_stairs": "UNLOCALIZED: Paved Granite Stairs", - "block.create.paved_granite_wall": "UNLOCALIZED: Paved Granite Wall", - "block.create.paved_limestone": "UNLOCALIZED: Paved Limestone", - "block.create.paved_limestone_slab": "UNLOCALIZED: Paved Limestone Slab", - "block.create.paved_limestone_stairs": "UNLOCALIZED: Paved Limestone Stairs", - "block.create.paved_limestone_wall": "UNLOCALIZED: Paved Limestone Wall", - "block.create.paved_scoria": "UNLOCALIZED: Paved Scoria", - "block.create.paved_scoria_slab": "UNLOCALIZED: Paved Scoria Slab", - "block.create.paved_scoria_stairs": "UNLOCALIZED: Paved Scoria Stairs", - "block.create.paved_scoria_wall": "UNLOCALIZED: Paved Scoria Wall", - "block.create.paved_weathered_limestone": "UNLOCALIZED: Paved Weathered Limestone", - "block.create.paved_weathered_limestone_slab": "UNLOCALIZED: Paved Weathered Limestone Slab", - "block.create.paved_weathered_limestone_stairs": "UNLOCALIZED: Paved Weathered Limestone Stairs", - "block.create.paved_weathered_limestone_wall": "UNLOCALIZED: Paved Weathered Limestone Wall", + "block.create.minecart_anchor": "Lorenanker", + "block.create.mossy_andesite": "Moosiger Andesit", + "block.create.mossy_dark_scoria": "Moosige Dunkle Schlacke", + "block.create.mossy_diorite": "Moosiger Diorit", + "block.create.mossy_dolomite": "Moosiger Dolomit", + "block.create.mossy_gabbro": "Moosiger Gabbro", + "block.create.mossy_granite": "Moosiger Granit", + "block.create.mossy_limestone": "Moosiger Kalkstein", + "block.create.mossy_scoria": "Moosige Schlacke", + "block.create.mossy_weathered_limestone": "Moosiger Verwitterter Kalkstein", + "block.create.mysterious_cuckoo_clock": "Kuckucksuhr", + "block.create.natural_scoria": "Natürliche Schlacke", + "block.create.nixie_tube": "Nixie-Röhre", + "block.create.nozzle": "Düse", + "block.create.oak_window": "Eichenfenster", + "block.create.oak_window_pane": "Eichenfensterscheibe", + "block.create.orange_sail": "Oranges Segel", + "block.create.orange_seat": "Oranger Sitz", + "block.create.orange_valve_handle": "Oranger Ventilgriff", + "block.create.ornate_iron_window": "Kunstvolles Eisenfenster", + "block.create.ornate_iron_window_pane": "Kunstvolle Eisenfensterscheibe", + "block.create.overgrown_andesite": "Überwachsener Andesit", + "block.create.overgrown_dark_scoria": "Überwachsene Dunkle Schlacke", + "block.create.overgrown_diorite": "Überwachsener Diorit", + "block.create.overgrown_dolomite": "Überwachsener Dolomit", + "block.create.overgrown_gabbro": "Überwachsener Gabbro", + "block.create.overgrown_granite": "Überwachsener Granit", + "block.create.overgrown_limestone": "Überwachsener Kalkstein", + "block.create.overgrown_scoria": "Überwachsener Schlacke", + "block.create.overgrown_weathered_limestone": "Überwachsener Verwitterter Kalkstein", + "block.create.paved_andesite": "Gepflasterter Andesit", + "block.create.paved_andesite_slab": "Gepflasterte Andesitstufe", + "block.create.paved_andesite_stairs": "Gepflasterte Andesittreppe", + "block.create.paved_andesite_wall": "Gepflasterte Andesitmauer", + "block.create.paved_dark_scoria": "Gepflasterte Dunkle Schlacke", + "block.create.paved_dark_scoria_slab": "Gepflasterte Dunkle Schlackenstufe", + "block.create.paved_dark_scoria_stairs": "Gepflasterte Dunkle Schlackentreppe", + "block.create.paved_dark_scoria_wall": "Gepflasterte Dunkle Schlackenmauer", + "block.create.paved_diorite": "Gepflasterter Diorit", + "block.create.paved_diorite_slab": "Gepflasterte Dioritstufe", + "block.create.paved_diorite_stairs": "Gepflasterte Diorittreppe", + "block.create.paved_diorite_wall": "Gepflasterte Dioritmauer", + "block.create.paved_dolomite": "Gepflasterter Dolomit", + "block.create.paved_dolomite_slab": "Gepflasterte Dolomitstufe", + "block.create.paved_dolomite_stairs": "Gepflasterte Dolomittreppe", + "block.create.paved_dolomite_wall": "Gepflasterte Dolomitmauer", + "block.create.paved_gabbro": "Gepflasterter Gabbro", + "block.create.paved_gabbro_slab": "Gepflasterte Gabbrostufe", + "block.create.paved_gabbro_stairs": "Gepflasterte Gabbrotreppe", + "block.create.paved_gabbro_wall": "Gepflasterte Gabbromauer", + "block.create.paved_granite": "Gepflasterter Granit", + "block.create.paved_granite_slab": "Gepflasterte Granitstufe", + "block.create.paved_granite_stairs": "Gepflasterte Granittreppe", + "block.create.paved_granite_wall": "Gepflasterte Granitmauer", + "block.create.paved_limestone": "Gepflasterter Kalkstein", + "block.create.paved_limestone_slab": "Gepflasterte Kalksteinstufe", + "block.create.paved_limestone_stairs": "Gepflasterte Kalksteintreppe", + "block.create.paved_limestone_wall": "Gepflasterte Kalksteinmauer", + "block.create.paved_scoria": "Gepflasterte Schlacke", + "block.create.paved_scoria_slab": "Gepflasterte Schlackenstufe", + "block.create.paved_scoria_stairs": "Gepflasterte Schlackentreppe", + "block.create.paved_scoria_wall": "Gepflasterte Schlackenmauer", + "block.create.paved_weathered_limestone": "Gepflasterter Verwitterter Kalkstein", + "block.create.paved_weathered_limestone_slab": "Gepflasterte Verwitterte Kalksteinstufe", + "block.create.paved_weathered_limestone_stairs": "Gepflasterte Verwitterte Kalksteintreppe", + "block.create.paved_weathered_limestone_wall": "Gepflasterte Verwitterte Kalksteinmauer", "block.create.pink_sail": "Rosa Segel", "block.create.pink_seat": "Rosa Sitz", "block.create.pink_valve_handle": "Rosa Ventilgriff", "block.create.piston_extension_pole": "Kolben-Pleuelverlängerung", - "block.create.polished_dark_scoria": "UNLOCALIZED: Polished Dark Scoria", - "block.create.polished_dark_scoria_slab": "UNLOCALIZED: Polished Dark Scoria Slab", - "block.create.polished_dark_scoria_stairs": "UNLOCALIZED: Polished Dark Scoria Stairs", - "block.create.polished_dark_scoria_wall": "UNLOCALIZED: Polished Dark Scoria Wall", + "block.create.polished_dark_scoria": "Polierte Dunkle Schlacke", + "block.create.polished_dark_scoria_slab": "Polierte Dunkle Schlackenstufe", + "block.create.polished_dark_scoria_stairs": "Polierte Dunkle Schlackentreppe", + "block.create.polished_dark_scoria_wall": "Polierte Dunkle Schlackenmauer", "block.create.polished_dolomite": "Polierter Dolomit", - "block.create.polished_dolomite_slab": "UNLOCALIZED: Polished Dolomite Slab", - "block.create.polished_dolomite_stairs": "UNLOCALIZED: Polished Dolomite Stairs", - "block.create.polished_dolomite_wall": "UNLOCALIZED: Polished Dolomite Wall", - "block.create.polished_gabbro": "Polierter Gabelstein", - "block.create.polished_gabbro_slab": "UNLOCALIZED: Polished Gabbro Slab", - "block.create.polished_gabbro_stairs": "UNLOCALIZED: Polished Gabbro Stairs", - "block.create.polished_gabbro_wall": "UNLOCALIZED: Polished Gabbro Wall", + "block.create.polished_dolomite_slab": "Polierte Dolomitstufe", + "block.create.polished_dolomite_stairs": "Polierte Dolomittreppe", + "block.create.polished_dolomite_wall": "Polierte Dolomitmauer", + "block.create.polished_gabbro": "Polierter Gabbro", + "block.create.polished_gabbro_slab": "Polierte Gabbrostufe", + "block.create.polished_gabbro_stairs": "Polierte Gabbrotreppe", + "block.create.polished_gabbro_wall": "Polierte Gabbromauer", "block.create.polished_limestone": "Polierter Kalkstein", "block.create.polished_limestone_slab": "Polierte Kalksteinstufe", - "block.create.polished_limestone_stairs": "UNLOCALIZED: Polished Limestone Stairs", - "block.create.polished_limestone_wall": "UNLOCALIZED: Polished Limestone Wall", + "block.create.polished_limestone_stairs": "Polierte Kalksteintreppe", + "block.create.polished_limestone_wall": "Polierte Kalksteinmauer", "block.create.polished_scoria": "Polierte Schlacke", - "block.create.polished_scoria_slab": "UNLOCALIZED: Polished Scoria Slab", - "block.create.polished_scoria_stairs": "UNLOCALIZED: Polished Scoria Stairs", - "block.create.polished_scoria_wall": "UNLOCALIZED: Polished Scoria Wall", + "block.create.polished_scoria_slab": "Polierte Schlackenstufe", + "block.create.polished_scoria_stairs": "Polierte Schlackentreppe", + "block.create.polished_scoria_wall": "Polierte Schlackenmauer", "block.create.polished_weathered_limestone": "Polierter Verwitterter Kalkstein", "block.create.polished_weathered_limestone_slab": "Polierte Verwitterte Kalksteinstufe", - "block.create.polished_weathered_limestone_stairs": "UNLOCALIZED: Polished Weathered Limestone Stairs", - "block.create.polished_weathered_limestone_wall": "UNLOCALIZED: Polished Weathered Limestone Wall", - "block.create.portable_fluid_interface": "UNLOCALIZED: Portable Fluid Interface", - "block.create.portable_storage_interface": "UNLOCALIZED: Portable Storage Interface", - "block.create.powered_latch": "UNLOCALIZED: Powered Latch", - "block.create.powered_toggle_latch": "UNLOCALIZED: Powered Toggle Latch", - "block.create.pulley_magnet": "UNLOCALIZED: Pulley Magnet", + "block.create.polished_weathered_limestone_stairs": "Polierte Verwitterte Kalksteintreppe", + "block.create.polished_weathered_limestone_wall": "Polierte Verwitterte Kalksteinmauer", + "block.create.portable_fluid_interface": "Portable Flüssigkeitsschnittstelle", + "block.create.portable_storage_interface": "Portable Lagerschnittstelle", + "block.create.powered_latch": "RS-Flipflop", + "block.create.powered_toggle_latch": "T-Flipflop", + "block.create.pulley_magnet": "Rollenmagnet", "block.create.pulse_repeater": "Pulsierender Verstärker", - "block.create.purple_sail": "UNLOCALIZED: Purple Sail", - "block.create.purple_seat": "UNLOCALIZED: Purple Seat", - "block.create.purple_valve_handle": "UNLOCALIZED: Purple Valve Handle", + "block.create.purple_sail": "Lila Segel", + "block.create.purple_seat": "Lila Sitz", + "block.create.purple_valve_handle": "Lila Ventilgriff", "block.create.radial_chassis": "Drehgerüst", - "block.create.red_sail": "UNLOCALIZED: Red Sail", - "block.create.red_seat": "UNLOCALIZED: Red Seat", - "block.create.red_valve_handle": "UNLOCALIZED: Red Valve Handle", + "block.create.red_sail": "Rote Segel", + "block.create.red_seat": "Roter Sitz", + "block.create.red_valve_handle": "Roter Ventilgriff", "block.create.redstone_contact": "Redstone-Kontakt", "block.create.redstone_link": "Redstone-Verbindung", - "block.create.refined_radiance_casing": "UNLOCALIZED: Radiant Casing", - "block.create.reinforced_rail": "UNLOCALIZED: Reinforced Rail", - "block.create.rope": "UNLOCALIZED: Rope", - "block.create.rope_pulley": "UNLOCALIZED: Rope Pulley", - "block.create.rotation_speed_controller": "UNLOCALIZED: Rotation Speed Controller", - "block.create.sail_frame": "UNLOCALIZED: Sail Frame", + "block.create.refined_radiance_casing": "Glanzgehäuse", + "block.create.reinforced_rail": "Verstärkte Schiene", + "block.create.rope": "Seil", + "block.create.rope_pulley": "Seilrolle", + "block.create.rotation_speed_controller": "Rotationsgeschwindigkeitsregler", + "block.create.sail_frame": "Segelrahmen", "block.create.schematic_table": "Bauplantisch", "block.create.schematicannon": "Bauplankanone", - "block.create.scoria": "UNLOCALIZED: Scoria", - "block.create.scoria_bricks": "UNLOCALIZED: Scoria Bricks", - "block.create.scoria_bricks_slab": "UNLOCALIZED: Scoria Bricks Slab", - "block.create.scoria_bricks_stairs": "UNLOCALIZED: Scoria Bricks Stairs", - "block.create.scoria_bricks_wall": "UNLOCALIZED: Scoria Bricks Wall", - "block.create.scoria_cobblestone": "UNLOCALIZED: Scoria Cobblestone", - "block.create.scoria_cobblestone_slab": "UNLOCALIZED: Scoria Cobblestone Slab", - "block.create.scoria_cobblestone_stairs": "UNLOCALIZED: Scoria Cobblestone Stairs", - "block.create.scoria_cobblestone_wall": "UNLOCALIZED: Scoria Cobblestone Wall", - "block.create.scoria_pillar": "UNLOCALIZED: Scoria Pillar", - "block.create.secondary_linear_chassis": "UNLOCALIZED: Secondary Linear Chassis", - "block.create.sequenced_gearshift": "UNLOCALIZED: Sequenced Gearshift", - "block.create.shadow_steel_casing": "UNLOCALIZED: Shadow Casing", + "block.create.scoria": "Schlacke", + "block.create.scoria_bricks": "Schlackenziegel", + "block.create.scoria_bricks_slab": "Schlackenziegelstufe", + "block.create.scoria_bricks_stairs": "Schlackenziegeltreppe", + "block.create.scoria_bricks_wall": "Schlackenziegelmauer", + "block.create.scoria_cobblestone": "Schlackenbruchstein", + "block.create.scoria_cobblestone_slab": "Schlackenpflasterstufe", + "block.create.scoria_cobblestone_stairs": "Schlackenpflastertreppe", + "block.create.scoria_cobblestone_wall": "Schlackenpflastermauer", + "block.create.scoria_pillar": "Schlackensäule", + "block.create.secondary_linear_chassis": "Sekundäres Schubgerüst", + "block.create.sequenced_gearshift": "Sequenzielles Gangschaltung", + "block.create.shadow_steel_casing": "Schattengehäuse", "block.create.shaft": "Welle", - "block.create.smart_chute": "UNLOCALIZED: Smart Chute", - "block.create.smart_fluid_pipe": "UNLOCALIZED: Smart Fluid Pipe", - "block.create.speedometer": "UNLOCALIZED: Speedometer", - "block.create.spout": "UNLOCALIZED: Spout", - "block.create.spruce_window": "UNLOCALIZED: Spruce Window", - "block.create.spruce_window_pane": "UNLOCALIZED: Spruce Window Pane", - "block.create.sticker": "UNLOCALIZED: Sticker", + "block.create.smart_chute": "Schlaue Rinne", + "block.create.smart_fluid_pipe": "Schlaues Flüssigkeitsrohr", + "block.create.speedometer": "Tachometer", + "block.create.spout": "Ausguss", + "block.create.spruce_window": "Fichtenfenster", + "block.create.spruce_window_pane": "Fichtenfensterscheibe", + "block.create.sticker": "Aufkleber", "block.create.sticky_mechanical_piston": "Klebriger Mechanischer Kolben", "block.create.stockpile_switch": "Vorratssensor", - "block.create.stressometer": "UNLOCALIZED: Stressometer", + "block.create.stressometer": "Stressometer", "block.create.tiled_glass": "Glasfliesen", "block.create.tiled_glass_pane": "Glasfliesenscheibe", "block.create.turntable": "Drehtisch", - "block.create.vertical_framed_glass": "UNLOCALIZED: Vertical Framed Glass", - "block.create.vertical_framed_glass_pane": "UNLOCALIZED: Vertical Framed Glass Pane", + "block.create.vertical_framed_glass": "Vertikal Gerahmtes Glas", + "block.create.vertical_framed_glass_pane": "Vertikal Gerahmte Glasscheibe", "block.create.water_wheel": "Wasserrad", "block.create.weathered_limestone": "Verwitterter Kalkstein", "block.create.weathered_limestone_bricks": "Verwitterte Kalksteinziegel", "block.create.weathered_limestone_bricks_slab": "Verwitterte Kalksteinziegelstufe", "block.create.weathered_limestone_bricks_stairs": "Verwitterte Kalksteinziegeltreppe", "block.create.weathered_limestone_bricks_wall": "Verwitterte Kalksteinziegelmauer", - "block.create.weathered_limestone_cobblestone": "UNLOCALIZED: Weathered Limestone Cobblestone", - "block.create.weathered_limestone_cobblestone_slab": "UNLOCALIZED: Weathered Limestone Cobblestone Slab", - "block.create.weathered_limestone_cobblestone_stairs": "UNLOCALIZED: Weathered Limestone Cobblestone Stairs", - "block.create.weathered_limestone_cobblestone_wall": "UNLOCALIZED: Weathered Limestone Cobblestone Wall", + "block.create.weathered_limestone_cobblestone": "Verwittertes Kalksteinpflaster", + "block.create.weathered_limestone_cobblestone_slab": "Verwitterte Kalksteinpflasterstufe", + "block.create.weathered_limestone_cobblestone_stairs": "Verwitterte Kalksteinpflastertreppe", + "block.create.weathered_limestone_cobblestone_wall": "Verwitterte Limestonepflastermauer", "block.create.weathered_limestone_pillar": "Verwitterte Kalksteinsäule", "block.create.weighted_ejector": "UNLOCALIZED: Weighted Ejector", - "block.create.white_sail": "UNLOCALIZED: White Sail", - "block.create.white_seat": "UNLOCALIZED: White Seat", - "block.create.white_valve_handle": "UNLOCALIZED: White Valve Handle", - "block.create.windmill_bearing": "UNLOCALIZED: Windmill Bearing", - "block.create.wooden_bracket": "UNLOCALIZED: Wooden Bracket", - "block.create.yellow_sail": "UNLOCALIZED: Yellow Sail", - "block.create.yellow_seat": "UNLOCALIZED: Yellow Seat", - "block.create.yellow_valve_handle": "UNLOCALIZED: Yellow Valve Handle", - "block.create.zinc_block": "UNLOCALIZED: Zinc Block", - "block.create.zinc_ore": "UNLOCALIZED: Zinc Ore", + "block.create.white_sail": "Weiße Segel", + "block.create.white_seat": "Weißer Sitz", + "block.create.white_valve_handle": "Weißer Ventilgriff", + "block.create.windmill_bearing": "Windmühlenlager", + "block.create.wooden_bracket": "Holzhalterung", + "block.create.yellow_sail": "Gelbes Segel", + "block.create.yellow_seat": "Gelber Sitz", + "block.create.yellow_valve_handle": "Gelber Ventilgriff", + "block.create.zinc_block": "Zinkblock", + "block.create.zinc_ore": "Zinkerz", - "entity.create.contraption": "UNLOCALIZED: Contraption", + "entity.create.contraption": "Vorrichtung", "entity.create.gantry_contraption": "UNLOCALIZED: Gantry Contraption", - "entity.create.seat": "UNLOCALIZED: Seat", - "entity.create.stationary_contraption": "UNLOCALIZED: Stationary Contraption", - "entity.create.super_glue": "UNLOCALIZED: Super Glue", + "entity.create.seat": "Sitz", + "entity.create.stationary_contraption": "Stationärer Vorrichtung", + "entity.create.super_glue": "Superkleber", "fluid.create.milk": "Milch", "fluid.create.potion": "Trank", "fluid.create.tea": "Bauherrentee", - "item.create.andesite_alloy": "UNLOCALIZED: Andesite Alloy", - "item.create.attribute_filter": "UNLOCALIZED: Attribute Filter", - "item.create.bar_of_chocolate": "Schokoladetafel", + "item.create.andesite_alloy": "Andesitlegierung", + "item.create.attribute_filter": "Attribut Filter", + "item.create.bar_of_chocolate": "Schokoladentafel", "item.create.belt_connector": "Mechanischer Riemen", - "item.create.blaze_cake": "UNLOCALIZED: Blaze Cake", - "item.create.blaze_cake_base": "UNLOCALIZED: Blaze Cake Base", - "item.create.brass_hand": "UNLOCALIZED: Brass Hand", - "item.create.brass_ingot": "UNLOCALIZED: Brass Ingot", - "item.create.brass_nugget": "UNLOCALIZED: Brass Nugget", - "item.create.brass_sheet": "UNLOCALIZED: Brass Sheet", - "item.create.builders_tea": "UNLOCALIZED: Builder's Tea", - "item.create.chest_minecart_contraption": "UNLOCALIZED: Chest Minecart Contraption", - "item.create.chocolate_bucket": "UNLOCALIZED: Chocolate Bucket", - "item.create.chocolate_glazed_berries": "UNLOCALIZED: Chocolate Glazed Berries", - "item.create.chromatic_compound": "UNLOCALIZED: Chromatic Compound", - "item.create.cinder_flour": "UNLOCALIZED: Cinder Flour", - "item.create.copper_ingot": "UNLOCALIZED: Copper Ingot", - "item.create.copper_nugget": "UNLOCALIZED: Copper Nugget", - "item.create.copper_sheet": "UNLOCALIZED: Copper Sheet", - "item.create.crafter_slot_cover": "UNLOCALIZED: Crafter Slot Cover", - "item.create.crushed_aluminum_ore": "UNLOCALIZED: Crushed Aluminum Ore", - "item.create.crushed_brass": "UNLOCALIZED: Crushed Brass", - "item.create.crushed_copper_ore": "UNLOCALIZED: Crushed Copper Ore", - "item.create.crushed_gold_ore": "UNLOCALIZED: Crushed Gold Ore", - "item.create.crushed_iron_ore": "UNLOCALIZED: Crushed Iron Ore", - "item.create.crushed_lead_ore": "UNLOCALIZED: Crushed Lead Ore", - "item.create.crushed_nickel_ore": "UNLOCALIZED: Crushed Nickel Ore", - "item.create.crushed_osmium_ore": "UNLOCALIZED: Crushed Osmium Ore", - "item.create.crushed_platinum_ore": "UNLOCALIZED: Crushed Platinum Ore", - "item.create.crushed_quicksilver_ore": "UNLOCALIZED: Crushed Quicksilver Ore", - "item.create.crushed_silver_ore": "UNLOCALIZED: Crushed Silver Ore", - "item.create.crushed_tin_ore": "UNLOCALIZED: Crushed Tin Ore", - "item.create.crushed_uranium_ore": "UNLOCALIZED: Crushed Uranium Ore", - "item.create.crushed_zinc_ore": "UNLOCALIZED: Crushed Zinc Ore", + "item.create.blaze_cake": "Lohenkuchen", + "item.create.blaze_cake_base": "Lohenkuchenbasis", + "item.create.brass_hand": "Messing Hand", + "item.create.brass_ingot": "Messingbarren", + "item.create.brass_nugget": "Messingklumpen", + "item.create.brass_sheet": "Messingblech", + "item.create.builders_tea": "Baumeisters Tee", + "item.create.chest_minecart_contraption": "Güterloren Vorrichtung", + "item.create.chocolate_bucket": "Schokoladeneimer", + "item.create.chocolate_glazed_berries": "Schokoladenglasierte Beeren", + "item.create.chromatic_compound": "Chromatische Verbindung", + "item.create.cinder_flour": "Aschenmehl", + "item.create.copper_ingot": "Kupferbarren", + "item.create.copper_nugget": "Kupferklumpen", + "item.create.copper_sheet": "Kupferblech", + "item.create.crafter_slot_cover": "Handwerkseinheit Slot Abdeckung", + "item.create.crushed_aluminum_ore": "Zerkleinertes Aluminiumerz", + "item.create.crushed_brass": "Zerkleinertes Messing", + "item.create.crushed_copper_ore": "Zerkleinertes Kupfererz", + "item.create.crushed_gold_ore": "Zerkleinertes Golderz", + "item.create.crushed_iron_ore": "Zerkleinertes Eisenerz", + "item.create.crushed_lead_ore": "Zerkleinertes Bleierz", + "item.create.crushed_nickel_ore": "Zerkleinertes Nickelerz", + "item.create.crushed_osmium_ore": "Zerkleinertes Osmiumerz", + "item.create.crushed_platinum_ore": "Zerkleinertes Platinerz", + "item.create.crushed_quicksilver_ore": "Zerkleinertes Quecksilbererz", + "item.create.crushed_silver_ore": "Zerkleinertes Silbererz", + "item.create.crushed_tin_ore": "Zerkleinertes Zinnerz", + "item.create.crushed_uranium_ore": "Zerkleinertes Uranerz", + "item.create.crushed_zinc_ore": "Zerkleinertes Zinkerz", "item.create.deforester": "Entforster", "item.create.dough": "Teig", - "item.create.electron_tube": "UNLOCALIZED: Electron Tube", - "item.create.empty_blaze_burner": "UNLOCALIZED: Empty Blaze Burner", + "item.create.electron_tube": "Elektronenröhre", + "item.create.empty_blaze_burner": "Leerer Lohenbrenner", "item.create.empty_schematic": "Leerer Bauplan", - "item.create.extendo_grip": "UNLOCALIZED: Extendo Grip", + "item.create.extendo_grip": "Extendo Griff", "item.create.filter": "Filter", - "item.create.furnace_minecart_contraption": "UNLOCALIZED: Furnace Minecart Contraption", - "item.create.goggles": "UNLOCALIZED: Engineer's Goggles", - "item.create.golden_sheet": "UNLOCALIZED: Golden Sheet", + "item.create.furnace_minecart_contraption": "Antriebsloren Vorrichtung", + "item.create.goggles": "Ingenieursbrille", + "item.create.golden_sheet": "Goldblech", "item.create.handheld_blockzapper": "Blockpistole", "item.create.handheld_worldshaper": "Geländeformer", "item.create.honey_bucket": "Honigeimer", - "item.create.honeyed_apple": "UNLOCALIZED: Honeyed Apple", - "item.create.integrated_circuit": "UNLOCALIZED: Integrated Circuit", + "item.create.honeyed_apple": "Honigapfel", + "item.create.integrated_circuit": "Integrierter Schaltkreis", "item.create.iron_sheet": "Eisenblech", - "item.create.lapis_sheet": "UNLOCALIZED: Lapis Sheet", - "item.create.minecart_contraption": "UNLOCALIZED: Minecart Contraption", - "item.create.minecart_coupling": "UNLOCALIZED: Minecart Coupling", - "item.create.polished_rose_quartz": "UNLOCALIZED: Polished Rose Quartz", - "item.create.powdered_obsidian": "UNLOCALIZED: Powdered Obsidian", + "item.create.lapis_sheet": "Lapislazuliblech", + "item.create.minecart_contraption": "Loren Vorrichtung", + "item.create.minecart_coupling": "Lorenkupplung", + "item.create.polished_rose_quartz": "Polierter Rosenquarz", + "item.create.powdered_obsidian": "Pulverisierter Obsidian", "item.create.propeller": "Propeller", "item.create.red_sand_paper": "Rotes Schmirgelpapier", - "item.create.refined_radiance": "UNLOCALIZED: Refined Radiance", + "item.create.refined_radiance": "Raffinierter Glanz", "item.create.rose_quartz": "Rosenquarz", "item.create.sand_paper": "Schmirgelpapier", "item.create.schematic": "Bauplan", "item.create.schematic_and_quill": "Bauplan und Feder", - "item.create.shadow_steel": "UNLOCALIZED: Shadow Steel", + "item.create.shadow_steel": "Schattenstahl", "item.create.super_glue": "Superkleber", - "item.create.sweet_roll": "UNLOCALIZED: Sweet Roll", + "item.create.sweet_roll": "Rosinenschnecke", "item.create.tree_fertilizer": "Baumdünger", - "item.create.vertical_gearbox": "UNLOCALIZED: Vertical Gearbox", + "item.create.vertical_gearbox": "Vertikales Getriebe", "item.create.wand_of_symmetry": "Symmetriestab", "item.create.wheat_flour": "Weizenmehl", - "item.create.whisk": "UNLOCALIZED: Whisk", + "item.create.whisk": "Rührstab", "item.create.wrench": "Schraubenschlüssel", "item.create.zinc_ingot": "Zinkbarren", "item.create.zinc_nugget": "Zinkklumpen", @@ -507,20 +507,20 @@ "advancement.create.overstressed.desc": "Erfahre die Limits der Belastung aus erster Hand.", "advancement.create.belt": "Befördere es alles", "advancement.create.belt.desc": "Verbinde zwei Wllen mit einem Mechanischem Riemen", - "advancement.create.tunnel": "UNLOCALIZED: Take cover!", - "advancement.create.tunnel.desc": "UNLOCALIZED: Embellish your mechanical belt with a Tunnel.", - "advancement.create.splitter_tunnel": "UNLOCALIZED: Divide and Conquer", - "advancement.create.splitter_tunnel.desc": "UNLOCALIZED: Create a splitter with a group of Brass Tunnels.", - "advancement.create.chute": "UNLOCALIZED: Tumbling down", - "advancement.create.chute.desc": "UNLOCALIZED: Place a chute, the vertical counterpart of the belt.", - "advancement.create.upward_chute": "UNLOCALIZED: Aerial Abduction", - "advancement.create.upward_chute.desc": "UNLOCALIZED: Watch a thrown item fly up into a fan-powered chute.", + "advancement.create.tunnel": "Geht in Deckung!", + "advancement.create.tunnel.desc": "Verschönere deinen Mechanischem Riemen mit einem Tunnel.", + "advancement.create.splitter_tunnel": "Divide & Conquer", + "advancement.create.splitter_tunnel.desc": "Mache einen Teiler aus einer Gruppe von Messingtunneln.", + "advancement.create.chute": "Abstürzen", + "advancement.create.chute.desc": "Platziere eine Rinne, das vertikale Gegenstück des Riemens.", + "advancement.create.upward_chute": "Luftentführung", + "advancement.create.upward_chute.desc": "Sieh ein geworfenes Item in eine propellerbetriebene Rinne fliegen.", "advancement.create.belt_funnel": "UNLOCALIZED: Funnels' Flappy Danglers", "advancement.create.belt_funnel.desc": "UNLOCALIZED: Place a sideways funnel on top of a belt or depot to create a special type.", "advancement.create.belt_funnel_kiss": "UNLOCALIZED: The Parrots and the Flaps", "advancement.create.belt_funnel_kiss.desc": "UNLOCALIZED: Make two belt mounted funnels kiss.", - "advancement.create.fan": "UNLOCALIZED: Mechanical Airbender", - "advancement.create.fan.desc": "UNLOCALIZED: Ride the stream of air provided by an Encased Fan.", + "advancement.create.fan": "Mechanischer Luftbändiger", + "advancement.create.fan.desc": "Reite den Luftstrom eines eingeschlossenen Propellers.", "advancement.create.fan_lava": "UNLOCALIZED: Geothermal Space Heater", "advancement.create.fan_lava.desc": "UNLOCALIZED: Get caught in a stream of air that smelts things.", "advancement.create.fan_water": "UNLOCALIZED: Wacky Washing", @@ -649,12 +649,12 @@ "advancement.create.wand_of_symmetry.desc": "UNLOCALIZED: Craft a Staff of Symmetry.", "advancement.create.deforester": "UNLOCALIZED: Radiant Chopping", "advancement.create.deforester.desc": "UNLOCALIZED: Craft a Deforester, and say goodbye to the local forest.", - "advancement.create.extendo_grip": "UNLOCALIZED: Boioioing!", - "advancement.create.extendo_grip.desc": "UNLOCALIZED: Get hold of an Extendo Grip.", - "advancement.create.dual_extendo_grip": "UNLOCALIZED: Ultimate Boing-age", - "advancement.create.dual_extendo_grip.desc": "UNLOCALIZED: Dual wield Extendo Grips for super-human reach.", - "advancement.create.eob": "UNLOCALIZED: End of Beta", - "advancement.create.eob.desc": "UNLOCALIZED: Expect more content here in the future. <3", + "advancement.create.extendo_grip": "Boioioing!", + "advancement.create.extendo_grip.desc": "Beschaffe einen Extendo Griff.", + "advancement.create.dual_extendo_grip": "Ultimatives Boing-Zeitalter", + "advancement.create.dual_extendo_grip.desc": "Schwinge zwei Extendo Griffe gleichzeitig für eine übermenschliche Reichweite.", + "advancement.create.eob": "Ende der Beta", + "advancement.create.eob.desc": "Erwarte mehr Inhalt in der Zukunft. <3", "_": "->------------------------] UI & Messages [------------------------<-", @@ -670,7 +670,7 @@ "death.attack.create.cuckoo_clock_explosion": "%1$s wurde durch eine falsche Kuckucksuhr gesprengt", "create.block.deployer.damage_source_name": "einem Finger", - "create.block.cart_assembler.invalid": "UNLOCALIZED: Place your Cart Assembler on a rail block", + "create.block.cart_assembler.invalid": "Platziere deinen Lorenmonteur auf einer Schiene.", "create.recipe.crushing": "Mahlen (Mahlwerk)", "create.recipe.milling": "Mahlen (Mahlstein)", @@ -703,9 +703,9 @@ "create.generic.range": "Reichweite", "create.generic.radius": "Radius", - "create.generic.width": "UNLOCALIZED: Width", - "create.generic.height": "UNLOCALIZED: Height", - "create.generic.length": "UNLOCALIZED: Length", + "create.generic.width": "Breite", + "create.generic.height": "Höhe", + "create.generic.length": "Länge", "create.generic.speed": "Geschwindigkeit", "create.generic.delay": "Verzögerung", "create.generic.unit.ticks": "Ticks", @@ -730,7 +730,7 @@ "create.gui.scrollInput.defaultTitle": "Wähle eine Option:", "create.gui.scrollInput.scrollToModify": "Mausrad zum Ändern", - "create.gui.scrollInput.scrollToAdjustAmount": "UNLOCALIZED: Scroll to Adjust Amount", + "create.gui.scrollInput.scrollToAdjustAmount": "Mausrad um Betrag anzupassen", "create.gui.scrollInput.scrollToSelect": "Mausrad zum Auswählen", "create.gui.scrollInput.shiftScrollsFaster": "Shift zum schnelleren Auswählen", "create.gui.toolmenu.focusKey": "Halte [%1$s] zum Fokussieren", @@ -1386,8 +1386,8 @@ "block.create.creative_crate.tooltip": "BAUPLANKANONENMACHER", "block.create.creative_crate.tooltip.summary": "Stellt einen unendlichen Vorrat an Blöcken für benachbarte _Bauplaenkanonen_ bereit.", - "block.create.creative_crate.tooltip.condition1": "UNLOCALIZED: When Item in Filter Slot", - "block.create.creative_crate.tooltip.behaviour1": "UNLOCALIZED: Anything _extracting_ from this container will provide an _endless supply_ of the item specified. Items _inserted_ into this crate will be _voided._", + "block.create.creative_crate.tooltip.condition1": "Wenn Item in Filter Slot", + "block.create.creative_crate.tooltip.behaviour1": "Alles _extrahierende_ von diesem Container wird einen _endlosen Vorrat_ des angegebenen Items zur Verfügung stellen. In diese Kiste _eingefügte_ Items werden _entsorgt_.", "block.create.controller_rail.tooltip": "UNLOCALIZED: CONTROLLER RAIL", "block.create.controller_rail.tooltip.summary": "UNLOCALIZED: A _uni-directional powered rail_ capable of _fine control_ over a minecarts' _movement speed_.", From 7a6b1c694901c4803041588b23b89a7d592385e9 Mon Sep 17 00:00:00 2001 From: zelophed Date: Sat, 3 Apr 2021 00:54:28 +0200 Subject: [PATCH 06/20] 0.3.1 hotfixes, part I --- .../create/foundation/config/CClient.java | 10 +++++-- .../utility/placement/PlacementHelpers.java | 30 +++++++++++-------- 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/simibubi/create/foundation/config/CClient.java b/src/main/java/com/simibubi/create/foundation/config/CClient.java index bdaf48de0..3c5bfc2e2 100644 --- a/src/main/java/com/simibubi/create/foundation/config/CClient.java +++ b/src/main/java/com/simibubi/create/foundation/config/CClient.java @@ -18,8 +18,10 @@ public class CClient extends ConfigBase { "Offset the overlay from goggle- and hover- information by this many pixels on the X axis; Use /create overlay"); public ConfigInt overlayOffsetY = i(0, Integer.MIN_VALUE, Integer.MAX_VALUE, "overlayOffsetY", "Offset the overlay from goggle- and hover- information by this many pixels on the Y axis; Use /create overlay"); - public ConfigBool smoothPlacementIndicator = b(false, "smoothPlacementIndicator", - "Use an alternative indicator when showing where the assisted placement ends up relative to your crosshair"); + + public ConfigGroup placementAssist = group(1, "placementAssist", "Settings for the Placement Assist"); + public ConfigEnum placementIndicator = e(PlacementIndicatorSetting.TEXTURE, "indicatorType", "What indicator should be used when showing where the assisted placement ends up relative to your crosshair", "Choose 'NONE' to disable the Indicator altogether"); + public ConfigFloat indicatorScale = f(1.0f, 0f, "indicatorScale", "Change the size of the Indicator by this multiplier"); public ConfigGroup ponder = group(1, "ponder", "Ponder settings"); public ConfigBool comfyReading = @@ -29,4 +31,8 @@ public class CClient extends ConfigBase { public String getName() { return "client"; } + + public enum PlacementIndicatorSetting { + TEXTURE, TRIANGLE, NONE + } } diff --git a/src/main/java/com/simibubi/create/foundation/utility/placement/PlacementHelpers.java b/src/main/java/com/simibubi/create/foundation/utility/placement/PlacementHelpers.java index 48b2185d0..3e0a88cc5 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/placement/PlacementHelpers.java +++ b/src/main/java/com/simibubi/create/foundation/utility/placement/PlacementHelpers.java @@ -1,12 +1,5 @@ package com.simibubi.create.foundation.utility.placement; -import com.mojang.blaze3d.systems.RenderSystem; -import com.simibubi.create.foundation.config.AllConfigs; -import com.simibubi.create.foundation.gui.AllGuiTextures; -import com.simibubi.create.foundation.gui.widgets.InterpolatedChasingAngle; -import com.simibubi.create.foundation.gui.widgets.InterpolatedChasingValue; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.VecHelper; import net.minecraft.block.BlockState; import net.minecraft.client.MainWindow; import net.minecraft.client.Minecraft; @@ -25,11 +18,19 @@ import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.client.event.RenderGameOverlayEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; -import org.lwjgl.opengl.GL11; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; +import org.lwjgl.opengl.GL11; +import com.mojang.blaze3d.systems.RenderSystem; +import com.simibubi.create.foundation.config.AllConfigs; +import com.simibubi.create.foundation.config.CClient; +import com.simibubi.create.foundation.gui.AllGuiTextures; +import com.simibubi.create.foundation.gui.widgets.InterpolatedChasingAngle; +import com.simibubi.create.foundation.gui.widgets.InterpolatedChasingValue; +import com.simibubi.create.foundation.utility.AngleHelper; +import com.simibubi.create.foundation.utility.VecHelper; @Mod.EventBusSubscriber public class PlacementHelpers { @@ -205,11 +206,10 @@ public class PlacementHelpers { float length = 10; //TOD O if the target is off screen, use length to show a meaningful distance - boolean flag = AllConfigs.CLIENT.smoothPlacementIndicator.get(); - if (flag) + CClient.PlacementIndicatorSetting mode = AllConfigs.CLIENT.placementIndicator.get(); + if (mode == CClient.PlacementIndicatorSetting.TRIANGLE) fadedArrow(centerX, centerY, r, g, b, a, length, snappedAngle); - - else + else if (mode == CClient.PlacementIndicatorSetting.TEXTURE) textured(centerX, centerY, a, snappedAngle); } @@ -224,6 +224,8 @@ public class PlacementHelpers { RenderSystem.translated(centerX, centerY, 0); RenderSystem.rotatef(angle.get(0), 0, 0, 1); //RenderSystem.rotatef(snappedAngle, 0, 0, 1); + double scale = AllConfigs.CLIENT.indicatorScale.get(); + RenderSystem.scaled(scale, scale, 1); Tessellator tessellator = Tessellator.getInstance(); BufferBuilder bufferbuilder = tessellator.getBuffer(); @@ -263,7 +265,9 @@ public class PlacementHelpers { //RenderSystem.rotatef(angle.get(0.1f), 0, 0, -1); //RenderSystem.translated(0, 10, 0); //RenderSystem.rotatef(angle.get(0.1f), 0, 0, 1); - RenderSystem.scaled(12, 12, 0); + double scale = AllConfigs.CLIENT.indicatorScale.get(); + RenderSystem.scaled(scale, scale, 1); + RenderSystem.scaled(12, 12, 1); float index = snappedAngle / 22.5f; float tex_size = 16f/256f; From 75f25164081391a2111686597962843c0d69844b Mon Sep 17 00:00:00 2001 From: JozsefA Date: Sat, 3 Apr 2021 00:42:21 -0700 Subject: [PATCH 07/20] Hopefully fix ServerWorld class cast exception - Avoid changing Entity.world, maintain contraption related state in the mixin. - Add a mixin to playSound to shift the position of the sound. --- ...=> EntityContraptionInteractionMixin.java} | 70 ++++++++++++------- src/main/resources/create.mixins.json | 2 +- 2 files changed, 47 insertions(+), 25 deletions(-) rename src/main/java/com/simibubi/create/foundation/mixin/{StepSoundMixin.java => EntityContraptionInteractionMixin.java} (68%) diff --git a/src/main/java/com/simibubi/create/foundation/mixin/StepSoundMixin.java b/src/main/java/com/simibubi/create/foundation/mixin/EntityContraptionInteractionMixin.java similarity index 68% rename from src/main/java/com/simibubi/create/foundation/mixin/StepSoundMixin.java rename to src/main/java/com/simibubi/create/foundation/mixin/EntityContraptionInteractionMixin.java index f7ecb40c2..06578f4f7 100644 --- a/src/main/java/com/simibubi/create/foundation/mixin/StepSoundMixin.java +++ b/src/main/java/com/simibubi/create/foundation/mixin/EntityContraptionInteractionMixin.java @@ -8,13 +8,17 @@ import net.minecraft.block.BlockRenderType; import net.minecraft.block.BlockState; import net.minecraft.entity.Entity; import net.minecraft.entity.MoverType; +import net.minecraft.entity.player.PlayerEntity; import net.minecraft.particles.BlockParticleData; import net.minecraft.particles.ParticleTypes; +import net.minecraft.util.SoundEvent; import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3d; import net.minecraft.world.World; import net.minecraft.world.gen.feature.template.Template; +import net.minecraftforge.common.capabilities.CapabilityProvider; + import org.apache.logging.log4j.util.TriConsumer; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; @@ -30,14 +34,14 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.stream.Collectors; @Mixin(Entity.class) -public abstract class StepSoundMixin { +public abstract class EntityContraptionInteractionMixin extends CapabilityProvider { + private EntityContraptionInteractionMixin(Class baseClass) { + super(baseClass); + } + private final Entity self = (Entity) (Object) this; - @Shadow - public boolean collided; - - @Shadow - public World world; + private AbstractContraptionEntity contraption; @Final @Shadow @@ -46,30 +50,21 @@ public abstract class StepSoundMixin { @Shadow private float nextStepDistance; - @Shadow - public abstract BlockPos getPosition(); - - @Shadow - public abstract Vec3d getPositionVec(); - @Shadow protected abstract float determineNextStepDistance(); - @Shadow - public abstract AxisAlignedBB getBoundingBox(); - @Shadow protected abstract void playStepSound(BlockPos p_180429_1_, BlockState p_180429_2_); private Set getIntersectingContraptions() { - Set contraptions = ContraptionHandler.loadedContraptions.get(this.world) + Set contraptions = ContraptionHandler.loadedContraptions.get(self.world) .values() .stream() .map(Reference::get) .filter(cEntity -> cEntity != null && cEntity.collidingEntities.containsKey(self)) .collect(Collectors.toSet()); - contraptions.addAll(this.world.getEntitiesWithinAABB(AbstractContraptionEntity.class, getBoundingBox().grow(1f))); + contraptions.addAll(self.world.getEntitiesWithinAABB(AbstractContraptionEntity.class, self.getBoundingBox().grow(1f))); return contraptions; } @@ -98,20 +93,18 @@ public abstract class StepSoundMixin { method = "move" ) private void movementMixin(MoverType mover, Vec3d movement, CallbackInfo ci) { - World entityWorld = world; Vec3d worldPos = self.getPositionVector().add(0, -0.2, 0); AtomicBoolean stepped = new AtomicBoolean(false); forCollision(worldPos, (contraption, blockstate, blockPos) -> { - this.world = contraption.getContraptionWorld(); - this.playStepSound(blockPos, blockstate); + bindContraption(contraption); + playStepSound(blockPos, blockstate); + unbindContraption(); stepped.set(true); }); if (stepped.get()) this.nextStepDistance = this.determineNextStepDistance(); - - world = entityWorld; } @Inject(method = "createRunningParticles", at = @At("TAIL")) @@ -120,13 +113,42 @@ public abstract class StepSoundMixin { BlockPos pos = new BlockPos(worldPos); // pos where particles are spawned forCollision(worldPos, (contraption, blockstate, blockpos) -> { - if (!blockstate.addRunningEffects(world, blockpos, self) && blockstate.getRenderType() != BlockRenderType.INVISIBLE) { + if (!blockstate.addRunningEffects(self.world, blockpos, self) && blockstate.getRenderType() != BlockRenderType.INVISIBLE) { Vec3d vec3d = self.getMotion(); - this.world.addParticle(new BlockParticleData(ParticleTypes.BLOCK, blockstate).setPos(pos), + self.world.addParticle(new BlockParticleData(ParticleTypes.BLOCK, blockstate).setPos(pos), self.getX() + ((double) rand.nextFloat() - 0.5D) * (double) self.getWidth(), self.getY() + 0.1D, self.getZ() + ((double) rand.nextFloat() - 0.5D) * (double) self.getWidth(), vec3d.x * -4.0D, 1.5D, vec3d.z * -4.0D); } }); } + + @Inject(method = "playSound", at = @At("HEAD"), cancellable = true) + private void playSoundShifted(SoundEvent event, float pitch, float volume, CallbackInfo ci) { + if (this.contraption != null && (!self.isSilent() || self instanceof PlayerEntity)) { + double x = self.getX(); + double y = self.getY(); + double z = self.getZ(); + Vec3d worldPos = ContraptionCollider.getWorldToLocalTranslation(new Vec3d(x, y, z), this.contraption); + + worldPos = worldPos.add(x, y, z); + + self.world.playSound(null, worldPos.x + x, worldPos.y + y, worldPos.z + z, event, self.getSoundCategory(), pitch, volume); + + ci.cancel(); + } + } + + private void bindContraption(Contraption contraption) { + bindContraption(contraption.entity); + } + + private void bindContraption(AbstractContraptionEntity contraption) { + this.contraption = contraption; + } + + private void unbindContraption() { + this.contraption = null; + } } + diff --git a/src/main/resources/create.mixins.json b/src/main/resources/create.mixins.json index 3ee1cb74c..81b7d6c55 100644 --- a/src/main/resources/create.mixins.json +++ b/src/main/resources/create.mixins.json @@ -13,7 +13,7 @@ "RenderHooksMixin", "ShaderCloseMixin", "TileRemoveMixin", - "StepSoundMixin" + "EntityContraptionInteractionMixin" ], "injectors": { "defaultRequire": 1 From 463854a2c011f555fe391f7ba407ba695bf5d7d5 Mon Sep 17 00:00:00 2001 From: Sarim Khan Date: Sat, 3 Apr 2021 21:53:39 +0600 Subject: [PATCH 08/20] allow smart chute to transfer whole stacks --- .../content/logistics/block/chute/ChuteTileEntity.java | 6 ++++-- .../content/logistics/block/chute/SmartChuteTileEntity.java | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/simibubi/create/content/logistics/block/chute/ChuteTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/chute/ChuteTileEntity.java index 9b21c5b09..09fa728fa 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/chute/ChuteTileEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/chute/ChuteTileEntity.java @@ -72,6 +72,7 @@ public class ChuteTileEntity extends SmartTileEntity implements IHaveGoggleInfor ChuteItemHandler itemHandler; LazyOptional lazyHandler; boolean canPickUpItems; + boolean canFilterItems; float bottomPullDistance; float beltBelowOffset; @@ -90,6 +91,7 @@ public class ChuteTileEntity extends SmartTileEntity implements IHaveGoggleInfor itemHandler = new ChuteItemHandler(this); lazyHandler = LazyOptional.of(() -> itemHandler); canPickUpItems = false; + canFilterItems = false; capAbove = LazyOptional.empty(); capBelow = LazyOptional.empty(); bottomPullDistance = 0; @@ -331,7 +333,7 @@ public class ChuteTileEntity extends SmartTileEntity implements IHaveGoggleInfor IItemHandler inv = capAbove.orElse(null); Predicate canAccept = this::canAcceptItem; if (count == 0) { - item = ItemHelper.extract(inv, canAccept, ExtractionCountMode.UPTO, 16, false); + item = ItemHelper.extract(inv, canAccept, ExtractionCountMode.UPTO, canFilterItems ? 64 : 16, false); return; } @@ -351,7 +353,7 @@ public class ChuteTileEntity extends SmartTileEntity implements IHaveGoggleInfor Predicate canAccept = this::canAcceptItem; if (count == 0) { - item = ItemHelper.extract(inv, canAccept, ExtractionCountMode.UPTO, 16, false); + item = ItemHelper.extract(inv, canAccept, ExtractionCountMode.UPTO, canFilterItems ? 64 : 16, false); return; } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/chute/SmartChuteTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/chute/SmartChuteTileEntity.java index 07cbb4fcb..ed0571239 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/chute/SmartChuteTileEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/chute/SmartChuteTileEntity.java @@ -17,6 +17,7 @@ public class SmartChuteTileEntity extends ChuteTileEntity { public SmartChuteTileEntity(TileEntityType tileEntityTypeIn) { super(tileEntityTypeIn); + canFilterItems = true; } @Override From f528520a5354479632cb31dc331a21a1456403d8 Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Sat, 3 Apr 2021 18:33:48 +0200 Subject: [PATCH 09/20] Destructive Pondering - Fixed a couple overlooked ponder lang issues - Fixed weighted ejector not accepting arbitrary gold plates in its recipe - Fix crash opening ponder from screens with an opened recipe book --- src/generated/resources/.cache/cache | 32 ++++----- .../create/blockstates/radial_chassis.json | 72 +++++++++---------- .../resources/assets/create/lang/en_us.json | 6 +- .../assets/create/lang/unfinished/de_de.json | 8 ++- .../assets/create/lang/unfinished/es_es.json | 8 ++- .../assets/create/lang/unfinished/es_mx.json | 8 ++- .../assets/create/lang/unfinished/fr_fr.json | 8 ++- .../assets/create/lang/unfinished/it_it.json | 8 ++- .../assets/create/lang/unfinished/ja_jp.json | 8 ++- .../assets/create/lang/unfinished/ko_kr.json | 8 ++- .../assets/create/lang/unfinished/nl_nl.json | 8 ++- .../assets/create/lang/unfinished/pt_br.json | 8 ++- .../assets/create/lang/unfinished/ru_ru.json | 8 ++- .../assets/create/lang/unfinished/zh_cn.json | 8 ++- .../assets/create/lang/unfinished/zh_tw.json | 8 ++- .../data/create/advancements/aesthetics.json | 4 +- .../crafting/kinetics/weighted_ejector.json | 2 +- .../data/recipe/CreateRecipeProvider.java | 2 +- .../data/recipe/StandardRecipeGen.java | 2 +- .../create/foundation/gui/ScreenOpener.java | 9 ++- .../ponder/content/FunnelScenes.java | 2 +- .../ponder/content/RedstoneScenes.java | 2 +- 22 files changed, 143 insertions(+), 86 deletions(-) diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index f5ef40be2..fad60244f 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -337,7 +337,7 @@ e8b0a401c10d1ba67ed71ba31bd5f9bc28571b65 assets/create/blockstates/powered_toggl d06cd9a1101b18d306a786320aab12018b1325d6 assets/create/blockstates/purple_sail.json 92957119abd5fbcca36a113b2a80255fd70fc303 assets/create/blockstates/purple_seat.json 61035f8afe75ff7bbd291da5d8690bcbebe679eb assets/create/blockstates/purple_valve_handle.json -4439fc83a8c7370ab44b211a3fd48abde20a4728 assets/create/blockstates/radial_chassis.json +6fa36883e76e9e403bb429c8f86b8c0d3bba0cff assets/create/blockstates/radial_chassis.json 45877c4d90a7185c2f304edbd67379d800920439 assets/create/blockstates/red_sail.json da1b08387af7afa0855ee8d040f620c01f20660a assets/create/blockstates/red_seat.json 722fc77bbf387af8a4016e42cbf9501d2b968881 assets/create/blockstates/red_valve_handle.json @@ -403,19 +403,19 @@ a3a11524cd3515fc01d905767b4b7ea782adaf03 assets/create/blockstates/yellow_seat.j 7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json ce0e5405da381a86625b908c569c5dbe347abdba assets/create/lang/en_ud.json -1054888c62303be2e61b24dfc2d809cca9f9b823 assets/create/lang/en_us.json -a300d43c8e8ce0c484764eb92994e939da9e8df1 assets/create/lang/unfinished/de_de.json -2fa1f1b2862309a85771fe411c8abd768f9de2b6 assets/create/lang/unfinished/es_es.json -69c9f259de6fbf97c63612f2d78dfd074172e6be assets/create/lang/unfinished/es_mx.json -926bba2613e754019fd475543d3d3bdd0d5cd9f4 assets/create/lang/unfinished/fr_fr.json -7e6dabdf0388836d713f76cc28b4b3b7f8f936be assets/create/lang/unfinished/it_it.json -27fef05dc79f8804cb6bc31da4b0873a8a94e732 assets/create/lang/unfinished/ja_jp.json -321a8b6baec49ef8fea65160d19132a8f671c5cb assets/create/lang/unfinished/ko_kr.json -ee54588035529a747f4a66bd6bd716e5b22301e5 assets/create/lang/unfinished/nl_nl.json -3edfd05cb280afce3f4d34fa519d0344e1d00d7d assets/create/lang/unfinished/pt_br.json -428ec797097f49d5a246ff2e8d07a4c619a37b9f assets/create/lang/unfinished/ru_ru.json -25b8695b90afd2bc9a542cfc9012561bd467bfc6 assets/create/lang/unfinished/zh_cn.json -0a9ed91be5d3828ccf8d8de9bd259e39e1fb82e5 assets/create/lang/unfinished/zh_tw.json +8d7a354696019a15170d7b9a6b463953b05e6c5f assets/create/lang/en_us.json +e150751efd62793b2827e4f5dc52daf83e3f1038 assets/create/lang/unfinished/de_de.json +49c322f52ee8ed82eef3997e7b238621ef88e08d assets/create/lang/unfinished/es_es.json +65d15c4bfe19719b63a26dc723c5c96e45e434b0 assets/create/lang/unfinished/es_mx.json +040fdf75186a23ba97e29bdf29c627134dc9f644 assets/create/lang/unfinished/fr_fr.json +a1cb070af4295e107116858487e22fcb525f9dc6 assets/create/lang/unfinished/it_it.json +4a62487db5834c2fe30e30ab7c2be1c42cd8d3b3 assets/create/lang/unfinished/ja_jp.json +5e2c5d0caa0a7b436e2b87235ae7479ac4635758 assets/create/lang/unfinished/ko_kr.json +b00a03074be21b1967bab26b2a7a7bd18fa1d4e5 assets/create/lang/unfinished/nl_nl.json +38935b6594edf97254fc7db528d97d4de4ec4bca assets/create/lang/unfinished/pt_br.json +b97ce7199bbfba9bc5f841ad4fe249b2369536c3 assets/create/lang/unfinished/ru_ru.json +e03d4064b5f34a84882add2155539ef07937deaf assets/create/lang/unfinished/zh_cn.json +28bd3281204a4d09439fa71e21e250dfb5396c99 assets/create/lang/unfinished/zh_tw.json 846200eb548d3bfa2e77b41039de159b4b6cfb45 assets/create/models/block/acacia_window.json 1930fa3a3c98d53dd19e4ee7f55bc27fd47aa281 assets/create/models/block/acacia_window_pane_noside.json 1763ea2c9b981d187f5031ba608f3d5d3be3986a assets/create/models/block/acacia_window_pane_noside_alt.json @@ -1587,7 +1587,7 @@ d080b1b25e5bc8baf5aee68691b08c7f12ece3b0 assets/create/models/item/windmill_bear 9f9455ccb5fc9e3cbfce73862b46078346a522a5 assets/create/models/item/zinc_nugget.json b1689617190c05ef34bd18456b0c7ae09bb3210f assets/create/models/item/zinc_ore.json e76041b7ae829fdd7dc0524f6ca4d2f89fca51bb assets/create/sounds.json -0f1b4b980afba9bf2caf583b88e261bba8b10313 data/create/advancements/aesthetics.json +5d0cc4c0255dc241e61c173b31ddca70c88d08e4 data/create/advancements/aesthetics.json 187921fa131b06721bfaf63f2623a28c141aae9a data/create/advancements/andesite_alloy.json 0ea2db7173b5be28b289ea7c9a6a0cf5805c60c7 data/create/advancements/andesite_casing.json 356f4855a2a6c65be3fb51d7d1aabf2ca6034d42 data/create/advancements/arm_blaze_burner.json @@ -2891,7 +2891,7 @@ af5854ee2fa3be195ad9abcdeebe6ed7306b651c data/create/recipes/crafting/kinetics/s 8494f5fcd85a740fa0f0384e3522d8cdd905ce49 data/create/recipes/crafting/kinetics/turntable.json 057c889b0a306f44b8835c896663154ccd9ff12f data/create/recipes/crafting/kinetics/vertical_gearboxfrom_conversion.json 4fb009b86a51b2e259bd1f73848803f6276dd820 data/create/recipes/crafting/kinetics/water_wheel.json -254265966b3c7c7a307e908c313a15ce92d20c83 data/create/recipes/crafting/kinetics/weighted_ejector.json +06b5b371ae9dd81df8fd3dee6d3559b1ed0db35c data/create/recipes/crafting/kinetics/weighted_ejector.json f508d510576c93712e7f5265345a32e8818bbf0d data/create/recipes/crafting/kinetics/whisk.json d80a741d2f0d4f742217b43d7e4d37f003ec9f9d data/create/recipes/crafting/kinetics/white_sail.json f4d88aa2edea548d29cf2678a111d8bb5db7720a data/create/recipes/crafting/kinetics/white_seat.json diff --git a/src/generated/resources/assets/create/blockstates/radial_chassis.json b/src/generated/resources/assets/create/blockstates/radial_chassis.json index 8bd829ffc..f97d8c8bc 100644 --- a/src/generated/resources/assets/create/blockstates/radial_chassis.json +++ b/src/generated/resources/assets/create/blockstates/radial_chassis.json @@ -89,8 +89,8 @@ }, { "when": { - "axis": "x", - "sticky_west": "true" + "sticky_west": "true", + "axis": "x" }, "apply": { "model": "create:block/radial_chassis_side_x_sticky", @@ -99,8 +99,8 @@ }, { "when": { - "axis": "y", - "sticky_west": "true" + "sticky_west": "true", + "axis": "y" }, "apply": { "model": "create:block/radial_chassis_side_y_sticky", @@ -109,8 +109,8 @@ }, { "when": { - "axis": "z", - "sticky_west": "true" + "sticky_west": "true", + "axis": "z" }, "apply": { "model": "create:block/radial_chassis_side_z_sticky", @@ -119,8 +119,8 @@ }, { "when": { - "axis": "x", - "sticky_west": "false" + "sticky_west": "false", + "axis": "x" }, "apply": { "model": "create:block/radial_chassis_side_x", @@ -129,8 +129,8 @@ }, { "when": { - "axis": "y", - "sticky_west": "false" + "sticky_west": "false", + "axis": "y" }, "apply": { "model": "create:block/radial_chassis_side_y", @@ -139,8 +139,8 @@ }, { "when": { - "axis": "z", - "sticky_west": "false" + "sticky_west": "false", + "axis": "z" }, "apply": { "model": "create:block/radial_chassis_side_z", @@ -149,8 +149,8 @@ }, { "when": { - "axis": "x", - "sticky_north": "true" + "sticky_north": "true", + "axis": "x" }, "apply": { "model": "create:block/radial_chassis_side_x_sticky" @@ -158,8 +158,8 @@ }, { "when": { - "axis": "y", - "sticky_north": "true" + "sticky_north": "true", + "axis": "y" }, "apply": { "model": "create:block/radial_chassis_side_y_sticky", @@ -168,8 +168,8 @@ }, { "when": { - "axis": "z", - "sticky_north": "true" + "sticky_north": "true", + "axis": "z" }, "apply": { "model": "create:block/radial_chassis_side_x_sticky", @@ -178,8 +178,8 @@ }, { "when": { - "axis": "x", - "sticky_north": "false" + "sticky_north": "false", + "axis": "x" }, "apply": { "model": "create:block/radial_chassis_side_x" @@ -187,8 +187,8 @@ }, { "when": { - "axis": "y", - "sticky_north": "false" + "sticky_north": "false", + "axis": "y" }, "apply": { "model": "create:block/radial_chassis_side_y", @@ -197,8 +197,8 @@ }, { "when": { - "axis": "z", - "sticky_north": "false" + "sticky_north": "false", + "axis": "z" }, "apply": { "model": "create:block/radial_chassis_side_x", @@ -207,8 +207,8 @@ }, { "when": { - "axis": "x", - "sticky_east": "true" + "sticky_east": "true", + "axis": "x" }, "apply": { "model": "create:block/radial_chassis_side_x_sticky", @@ -217,8 +217,8 @@ }, { "when": { - "axis": "y", - "sticky_east": "true" + "sticky_east": "true", + "axis": "y" }, "apply": { "model": "create:block/radial_chassis_side_y_sticky", @@ -227,8 +227,8 @@ }, { "when": { - "axis": "z", - "sticky_east": "true" + "sticky_east": "true", + "axis": "z" }, "apply": { "model": "create:block/radial_chassis_side_z_sticky" @@ -236,8 +236,8 @@ }, { "when": { - "axis": "x", - "sticky_east": "false" + "sticky_east": "false", + "axis": "x" }, "apply": { "model": "create:block/radial_chassis_side_x", @@ -246,8 +246,8 @@ }, { "when": { - "axis": "y", - "sticky_east": "false" + "sticky_east": "false", + "axis": "y" }, "apply": { "model": "create:block/radial_chassis_side_y", @@ -256,8 +256,8 @@ }, { "when": { - "axis": "z", - "sticky_east": "false" + "sticky_east": "false", + "axis": "z" }, "apply": { "model": "create:block/radial_chassis_side_z" diff --git a/src/generated/resources/assets/create/lang/en_us.json b/src/generated/resources/assets/create/lang/en_us.json index 08de295ef..07310cee1 100644 --- a/src/generated/resources/assets/create/lang/en_us.json +++ b/src/generated/resources/assets/create/lang/en_us.json @@ -1738,7 +1738,7 @@ "create.ponder.funnel_transfer.header": "Direct transfer", "create.ponder.funnel_transfer.text_1": "Funnels cannot ever transfer between closed inventories directly.", "create.ponder.funnel_transfer.text_2": "Chutes or Smart chutes might be more suitable for such purposes.", - "create.ponder.funnel_transfer.text_3": "Same applies for horizontal movement.\nA mechanical belt should help here.", + "create.ponder.funnel_transfer.text_3": "Same applies for horizontal movement. A mechanical belt should help here.", "create.ponder.furnace_engine.header": "Generating Rotational Force using the Furnace Engine", "create.ponder.furnace_engine.text_1": "Furnace Engines generate Rotational Force while their attached Furnace is running", @@ -1928,6 +1928,10 @@ "create.ponder.millstone.text_4": "After some time, the result can be obtained via Right-click", "create.ponder.millstone.text_5": "The outputs can also be extracted by automation", + "create.ponder.nixie_tube.header": "Using Nixie Tubes", + "create.ponder.nixie_tube.text_1": "When powered by Redstone, Nixie Tubes will display the redstone signals' strength", + "create.ponder.nixie_tube.text_2": "Using name tags edited with an anvil, custom text can be displayed", + "create.ponder.piston_pole.header": "Piston Extension Poles", "create.ponder.piston_pole.text_1": "Without attached Poles, a Mechanical Piston cannot move", "create.ponder.piston_pole.text_2": "The Length of pole added at its back determines the Extension Range", 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 2255932c0..69a550dc6 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: 1131", + "_": "Missing Localizations: 1134", "_": "->------------------------] Game Elements [------------------------<-", @@ -1739,7 +1739,7 @@ "create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer", "create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.", "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", - "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement.\nA mechanical belt should help here.", + "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement. A mechanical belt should help here.", "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", @@ -1929,6 +1929,10 @@ "create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click", "create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation", + "create.ponder.nixie_tube.header": "UNLOCALIZED: Using Nixie Tubes", + "create.ponder.nixie_tube.text_1": "UNLOCALIZED: When powered by Redstone, Nixie Tubes will display the redstone signals' strength", + "create.ponder.nixie_tube.text_2": "UNLOCALIZED: Using name tags edited with an anvil, custom text can be displayed", + "create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles", "create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move", "create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range", 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 2c3c54323..159d1dbd7 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: 598", + "_": "Missing Localizations: 601", "_": "->------------------------] Game Elements [------------------------<-", @@ -1739,7 +1739,7 @@ "create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer", "create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.", "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", - "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement.\nA mechanical belt should help here.", + "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement. A mechanical belt should help here.", "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", @@ -1929,6 +1929,10 @@ "create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click", "create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation", + "create.ponder.nixie_tube.header": "UNLOCALIZED: Using Nixie Tubes", + "create.ponder.nixie_tube.text_1": "UNLOCALIZED: When powered by Redstone, Nixie Tubes will display the redstone signals' strength", + "create.ponder.nixie_tube.text_2": "UNLOCALIZED: Using name tags edited with an anvil, custom text can be displayed", + "create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles", "create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move", "create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range", diff --git a/src/generated/resources/assets/create/lang/unfinished/es_mx.json b/src/generated/resources/assets/create/lang/unfinished/es_mx.json index 3fd5db722..734e8166d 100644 --- a/src/generated/resources/assets/create/lang/unfinished/es_mx.json +++ b/src/generated/resources/assets/create/lang/unfinished/es_mx.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1262", + "_": "Missing Localizations: 1265", "_": "->------------------------] Game Elements [------------------------<-", @@ -1739,7 +1739,7 @@ "create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer", "create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.", "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", - "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement.\nA mechanical belt should help here.", + "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement. A mechanical belt should help here.", "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", @@ -1929,6 +1929,10 @@ "create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click", "create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation", + "create.ponder.nixie_tube.header": "UNLOCALIZED: Using Nixie Tubes", + "create.ponder.nixie_tube.text_1": "UNLOCALIZED: When powered by Redstone, Nixie Tubes will display the redstone signals' strength", + "create.ponder.nixie_tube.text_2": "UNLOCALIZED: Using name tags edited with an anvil, custom text can be displayed", + "create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles", "create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move", "create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range", 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 1f73d86f0..1b13d41b7 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: 1155", + "_": "Missing Localizations: 1158", "_": "->------------------------] Game Elements [------------------------<-", @@ -1739,7 +1739,7 @@ "create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer", "create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.", "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", - "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement.\nA mechanical belt should help here.", + "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement. A mechanical belt should help here.", "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", @@ -1929,6 +1929,10 @@ "create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click", "create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation", + "create.ponder.nixie_tube.header": "UNLOCALIZED: Using Nixie Tubes", + "create.ponder.nixie_tube.text_1": "UNLOCALIZED: When powered by Redstone, Nixie Tubes will display the redstone signals' strength", + "create.ponder.nixie_tube.text_2": "UNLOCALIZED: Using name tags edited with an anvil, custom text can be displayed", + "create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles", "create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move", "create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range", 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 bc43437ac..dc7d263f2 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: 615", + "_": "Missing Localizations: 618", "_": "->------------------------] Game Elements [------------------------<-", @@ -1739,7 +1739,7 @@ "create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer", "create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.", "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", - "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement.\nA mechanical belt should help here.", + "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement. A mechanical belt should help here.", "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", @@ -1929,6 +1929,10 @@ "create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click", "create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation", + "create.ponder.nixie_tube.header": "UNLOCALIZED: Using Nixie Tubes", + "create.ponder.nixie_tube.text_1": "UNLOCALIZED: When powered by Redstone, Nixie Tubes will display the redstone signals' strength", + "create.ponder.nixie_tube.text_2": "UNLOCALIZED: Using name tags edited with an anvil, custom text can be displayed", + "create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles", "create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move", "create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range", 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 6edd9bdf9..7ddb28443 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: 622", + "_": "Missing Localizations: 625", "_": "->------------------------] Game Elements [------------------------<-", @@ -1739,7 +1739,7 @@ "create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer", "create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.", "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", - "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement.\nA mechanical belt should help here.", + "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement. A mechanical belt should help here.", "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", @@ -1929,6 +1929,10 @@ "create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click", "create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation", + "create.ponder.nixie_tube.header": "UNLOCALIZED: Using Nixie Tubes", + "create.ponder.nixie_tube.text_1": "UNLOCALIZED: When powered by Redstone, Nixie Tubes will display the redstone signals' strength", + "create.ponder.nixie_tube.text_2": "UNLOCALIZED: Using name tags edited with an anvil, custom text can be displayed", + "create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles", "create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move", "create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range", 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 fe20f2138..afa9a0cc7 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: 668", + "_": "Missing Localizations: 671", "_": "->------------------------] Game Elements [------------------------<-", @@ -1739,7 +1739,7 @@ "create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer", "create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.", "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", - "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement.\nA mechanical belt should help here.", + "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement. A mechanical belt should help here.", "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", @@ -1929,6 +1929,10 @@ "create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click", "create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation", + "create.ponder.nixie_tube.header": "UNLOCALIZED: Using Nixie Tubes", + "create.ponder.nixie_tube.text_1": "UNLOCALIZED: When powered by Redstone, Nixie Tubes will display the redstone signals' strength", + "create.ponder.nixie_tube.text_2": "UNLOCALIZED: Using name tags edited with an anvil, custom text can be displayed", + "create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles", "create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move", "create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range", 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 961f84181..9e051b282 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: 1547", + "_": "Missing Localizations: 1550", "_": "->------------------------] Game Elements [------------------------<-", @@ -1739,7 +1739,7 @@ "create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer", "create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.", "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", - "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement.\nA mechanical belt should help here.", + "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement. A mechanical belt should help here.", "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", @@ -1929,6 +1929,10 @@ "create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click", "create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation", + "create.ponder.nixie_tube.header": "UNLOCALIZED: Using Nixie Tubes", + "create.ponder.nixie_tube.text_1": "UNLOCALIZED: When powered by Redstone, Nixie Tubes will display the redstone signals' strength", + "create.ponder.nixie_tube.text_2": "UNLOCALIZED: Using name tags edited with an anvil, custom text can be displayed", + "create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles", "create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move", "create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range", 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 23b1eb2aa..e9db5635c 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: 1601", + "_": "Missing Localizations: 1604", "_": "->------------------------] Game Elements [------------------------<-", @@ -1739,7 +1739,7 @@ "create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer", "create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.", "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", - "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement.\nA mechanical belt should help here.", + "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement. A mechanical belt should help here.", "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", @@ -1929,6 +1929,10 @@ "create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click", "create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation", + "create.ponder.nixie_tube.header": "UNLOCALIZED: Using Nixie Tubes", + "create.ponder.nixie_tube.text_1": "UNLOCALIZED: When powered by Redstone, Nixie Tubes will display the redstone signals' strength", + "create.ponder.nixie_tube.text_2": "UNLOCALIZED: Using name tags edited with an anvil, custom text can be displayed", + "create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles", "create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move", "create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range", 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 f3c9b06a6..8223c1406 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: 618", + "_": "Missing Localizations: 621", "_": "->------------------------] Game Elements [------------------------<-", @@ -1739,7 +1739,7 @@ "create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer", "create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.", "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", - "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement.\nA mechanical belt should help here.", + "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement. A mechanical belt should help here.", "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", @@ -1929,6 +1929,10 @@ "create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click", "create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation", + "create.ponder.nixie_tube.header": "UNLOCALIZED: Using Nixie Tubes", + "create.ponder.nixie_tube.text_1": "UNLOCALIZED: When powered by Redstone, Nixie Tubes will display the redstone signals' strength", + "create.ponder.nixie_tube.text_2": "UNLOCALIZED: Using name tags edited with an anvil, custom text can be displayed", + "create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles", "create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move", "create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range", 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 7e2b09d2f..99ad66230 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: 616", + "_": "Missing Localizations: 619", "_": "->------------------------] Game Elements [------------------------<-", @@ -1739,7 +1739,7 @@ "create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer", "create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.", "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", - "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement.\nA mechanical belt should help here.", + "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement. A mechanical belt should help here.", "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", @@ -1929,6 +1929,10 @@ "create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click", "create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation", + "create.ponder.nixie_tube.header": "UNLOCALIZED: Using Nixie Tubes", + "create.ponder.nixie_tube.text_1": "UNLOCALIZED: When powered by Redstone, Nixie Tubes will display the redstone signals' strength", + "create.ponder.nixie_tube.text_2": "UNLOCALIZED: Using name tags edited with an anvil, custom text can be displayed", + "create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles", "create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move", "create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range", 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 4a8f0d8ae..349c818d3 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: 621", + "_": "Missing Localizations: 624", "_": "->------------------------] Game Elements [------------------------<-", @@ -1739,7 +1739,7 @@ "create.ponder.funnel_transfer.header": "UNLOCALIZED: Direct transfer", "create.ponder.funnel_transfer.text_1": "UNLOCALIZED: Funnels cannot ever transfer between closed inventories directly.", "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", - "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement.\nA mechanical belt should help here.", + "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement. A mechanical belt should help here.", "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", @@ -1929,6 +1929,10 @@ "create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click", "create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation", + "create.ponder.nixie_tube.header": "UNLOCALIZED: Using Nixie Tubes", + "create.ponder.nixie_tube.text_1": "UNLOCALIZED: When powered by Redstone, Nixie Tubes will display the redstone signals' strength", + "create.ponder.nixie_tube.text_2": "UNLOCALIZED: Using name tags edited with an anvil, custom text can be displayed", + "create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles", "create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move", "create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range", diff --git a/src/generated/resources/data/create/advancements/aesthetics.json b/src/generated/resources/data/create/advancements/aesthetics.json index d723cbe38..59a86f429 100644 --- a/src/generated/resources/data/create/advancements/aesthetics.json +++ b/src/generated/resources/data/create/advancements/aesthetics.json @@ -28,8 +28,8 @@ "trigger": "create:bracket_apply", "conditions": { "accepted_entries": [ - "create:cogwheel", - "create:large_cogwheel" + "create:large_cogwheel", + "create:cogwheel" ] } }, diff --git a/src/generated/resources/data/create/recipes/crafting/kinetics/weighted_ejector.json b/src/generated/resources/data/create/recipes/crafting/kinetics/weighted_ejector.json index f1b065cd8..45f15793d 100644 --- a/src/generated/resources/data/create/recipes/crafting/kinetics/weighted_ejector.json +++ b/src/generated/resources/data/create/recipes/crafting/kinetics/weighted_ejector.json @@ -7,7 +7,7 @@ ], "key": { "A": { - "item": "create:golden_sheet" + "tag": "forge:plates/gold" }, "D": { "item": "create:depot" diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/CreateRecipeProvider.java b/src/main/java/com/simibubi/create/foundation/data/recipe/CreateRecipeProvider.java index 035fcc2f8..92910d3c1 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/CreateRecipeProvider.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/CreateRecipeProvider.java @@ -134,7 +134,7 @@ public abstract class CreateRecipeProvider extends RecipeProvider { static Tag copperSheet() { return AllTags.forgeItemTag("plates/copper"); } - + static Tag copperNugget() { return AllTags.forgeItemTag("nuggets/copper"); } diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java index a05b192a2..8cf8deda7 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java @@ -599,7 +599,7 @@ public class StandardRecipeGen extends CreateRecipeProvider { .patternLine("I")), WEIGHTED_EJECTOR = create(AllBlocks.WEIGHTED_EJECTOR).unlockedBy(I::andesiteCasing) - .viaShaped(b -> b.key('A', AllItems.GOLDEN_SHEET.get()) + .viaShaped(b -> b.key('A', I.goldSheet()) .key('D', AllBlocks.DEPOT.get()) .key('I', I.cog()) .patternLine("A") diff --git a/src/main/java/com/simibubi/create/foundation/gui/ScreenOpener.java b/src/main/java/com/simibubi/create/foundation/gui/ScreenOpener.java index 2d7c65352..9687042ab 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/ScreenOpener.java +++ b/src/main/java/com/simibubi/create/foundation/gui/ScreenOpener.java @@ -89,8 +89,13 @@ public class ScreenOpener { private static void openScreen(Screen screen) { Minecraft.getInstance() - .enqueue(() -> Minecraft.getInstance() - .displayGuiScreen(screen)); + .enqueue(() -> { + Minecraft.getInstance() + .displayGuiScreen(screen); + Screen previouslyRenderedScreen = getPreviouslyRenderedScreen(); + if (previouslyRenderedScreen != null && screen instanceof NavigatableSimiScreen) + previouslyRenderedScreen.init(Minecraft.getInstance(), screen.width, screen.height); + }); } } diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/FunnelScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/FunnelScenes.java index 38e243636..9e88c6033 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/FunnelScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/FunnelScenes.java @@ -498,7 +498,7 @@ public class FunnelScenes { scene.world.showSection(util.select.fromTo(0, 2, 2, 4, 2, 2), Direction.DOWN); scene.overlay.showText(120) .colored(PonderPalette.GREEN) - .text("Same applies for horizontal movement.\nA mechanical belt should help here.") + .text("Same applies for horizontal movement. A mechanical belt should help here.") .pointAt(util.vector.topOf(1, 2, 2)) .placeNearTarget(); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/RedstoneScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/RedstoneScenes.java index a0f2f3543..22745512b 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/RedstoneScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/RedstoneScenes.java @@ -617,7 +617,7 @@ public class RedstoneScenes { } public static void nixieTube(SceneBuilder scene, SceneBuildingUtil util) { - scene.title("analog_lever", "Using Nixie Tubes"); + scene.title("nixie_tube", "Using Nixie Tubes"); scene.configureBasePlate(0, 0, 5); scene.world.showSection(util.select.layer(0) .add(util.select.fromTo(2, 1, 1, 2, 1, 2)), Direction.UP); From 83e7074f12c42eaabca2bad8daa110e7493f76e5 Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Sat, 3 Apr 2021 18:59:10 +0200 Subject: [PATCH 10/20] Hot Fix-ups - Change to proper key handling for closing create screens - Fixed inconsistent collection behaviour of in-world funnels --- .../content/logistics/block/funnel/FunnelBlock.java | 3 ++- .../foundation/gui/AbstractSimiContainerScreen.java | 10 ++++++++-- .../create/foundation/gui/AbstractSimiScreen.java | 10 ++++++++-- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelBlock.java index c7cc47dab..ce48d0b05 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelBlock.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelBlock.java @@ -107,7 +107,8 @@ public abstract class FunnelBlock extends AbstractDirectionalFunnelBlock { Direction direction = getFunnelFacing(state); Vec3d diff = entityIn.getPositionVec() - .subtract(VecHelper.getCenterOf(pos)); + .subtract(VecHelper.getCenterOf(pos) + .add(new Vec3d(direction.getDirectionVec()).scale(-.325f))); double projectedDiff = direction.getAxis() .getCoordinate(diff.x, diff.y, diff.z); if (projectedDiff < 0 == (direction.getAxisDirection() == AxisDirection.POSITIVE)) diff --git a/src/main/java/com/simibubi/create/foundation/gui/AbstractSimiContainerScreen.java b/src/main/java/com/simibubi/create/foundation/gui/AbstractSimiContainerScreen.java index 106379330..7cf5f1cff 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/AbstractSimiContainerScreen.java +++ b/src/main/java/com/simibubi/create/foundation/gui/AbstractSimiContainerScreen.java @@ -18,6 +18,7 @@ import net.minecraft.client.renderer.Rectangle2d; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; +import net.minecraft.client.util.InputMappings; import net.minecraft.entity.player.PlayerInventory; import net.minecraft.inventory.container.Container; import net.minecraft.item.ItemStack; @@ -79,6 +80,13 @@ public abstract class AbstractSimiContainerScreen extends C if (widget.keyPressed(code, p_keyPressed_2_, p_keyPressed_3_)) return true; } + + InputMappings.Input mouseKey = InputMappings.getInputByCode(code, p_keyPressed_2_); + if (code == 256 || this.minecraft.gameSettings.keyBindInventory.isActiveAndMatches(mouseKey)) { + this.minecraft.player.closeScreen(); + return true; + } + return super.keyPressed(code, p_keyPressed_2_, p_keyPressed_3_); } @@ -88,8 +96,6 @@ public abstract class AbstractSimiContainerScreen extends C if (widget.charTyped(character, code)) return true; } - if (character == 'e') - onClose(); return super.charTyped(character, code); } diff --git a/src/main/java/com/simibubi/create/foundation/gui/AbstractSimiScreen.java b/src/main/java/com/simibubi/create/foundation/gui/AbstractSimiScreen.java index a6cd30944..7842b8101 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/AbstractSimiScreen.java +++ b/src/main/java/com/simibubi/create/foundation/gui/AbstractSimiScreen.java @@ -9,6 +9,7 @@ import com.simibubi.create.foundation.gui.widgets.AbstractSimiWidget; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.widget.Widget; +import net.minecraft.client.util.InputMappings; import net.minecraft.util.text.StringTextComponent; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @@ -69,6 +70,13 @@ public abstract class AbstractSimiScreen extends Screen { for (Widget widget : widgets) if (widget.keyPressed(code, p_keyPressed_2_, p_keyPressed_3_)) return true; + + InputMappings.Input mouseKey = InputMappings.getInputByCode(code, p_keyPressed_2_); + if (code == 256 || this.minecraft.gameSettings.keyBindInventory.isActiveAndMatches(mouseKey)) { + this.minecraft.player.closeScreen(); + return true; + } + return super.keyPressed(code, p_keyPressed_2_, p_keyPressed_3_); } @@ -78,8 +86,6 @@ public abstract class AbstractSimiScreen extends Screen { if (widget.charTyped(character, code)) return true; } - if (character == 'e') - onClose(); return super.charTyped(character, code); } From d1c8ad38fc533fd65b7dd72d63d691ba111eae3f Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Sat, 3 Apr 2021 19:41:33 +0200 Subject: [PATCH 11/20] Chute extraction refactor --- .../block/chute/ChuteTileEntity.java | 45 +++++++------------ .../block/chute/SmartChuteTileEntity.java | 10 ++++- 2 files changed, 24 insertions(+), 31 deletions(-) diff --git a/src/main/java/com/simibubi/create/content/logistics/block/chute/ChuteTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/chute/ChuteTileEntity.java index 09fa728fa..16fec0f34 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/chute/ChuteTileEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/chute/ChuteTileEntity.java @@ -72,7 +72,6 @@ public class ChuteTileEntity extends SmartTileEntity implements IHaveGoggleInfor ChuteItemHandler itemHandler; LazyOptional lazyHandler; boolean canPickUpItems; - boolean canFilterItems; float bottomPullDistance; float beltBelowOffset; @@ -91,7 +90,6 @@ public class ChuteTileEntity extends SmartTileEntity implements IHaveGoggleInfor itemHandler = new ChuteItemHandler(this); lazyHandler = LazyOptional.of(() -> itemHandler); canPickUpItems = false; - canFilterItems = false; capAbove = LazyOptional.empty(); capBelow = LazyOptional.empty(); bottomPullDistance = 0; @@ -326,40 +324,25 @@ public class ChuteTileEntity extends SmartTileEntity implements IHaveGoggleInfor private void handleInputFromAbove() { if (!capAbove.isPresent()) capAbove = grabCapability(Direction.UP); - if (!capAbove.isPresent()) - return; - - int count = getExtractionAmount(); - IItemHandler inv = capAbove.orElse(null); - Predicate canAccept = this::canAcceptItem; - if (count == 0) { - item = ItemHelper.extract(inv, canAccept, ExtractionCountMode.UPTO, canFilterItems ? 64 : 16, false); - return; - } - - if (!ItemHelper.extract(inv, canAccept, ExtractionCountMode.EXACTLY, count, true) - .isEmpty()) - item = ItemHelper.extract(inv, canAccept, ExtractionCountMode.EXACTLY, count, false); + handleInput(capAbove.orElse(null)); } private void handleInputFromBelow() { if (!capBelow.isPresent()) capBelow = grabCapability(Direction.DOWN); - if (!capBelow.isPresent()) - return; + handleInput(capBelow.orElse(null)); + } - int count = getExtractionAmount(); - IItemHandler inv = capBelow.orElse(null); + private void handleInput(IItemHandler inv) { + if (inv == null) + return; Predicate canAccept = this::canAcceptItem; - - if (count == 0) { - item = ItemHelper.extract(inv, canAccept, ExtractionCountMode.UPTO, canFilterItems ? 64 : 16, false); - return; - } - - if (!ItemHelper.extract(inv, canAccept, ExtractionCountMode.EXACTLY, count, true) + int count = getExtractionAmount(); + ExtractionCountMode mode = getExtractionMode(); + if (mode == ExtractionCountMode.UPTO || !ItemHelper.extract(inv, canAccept, mode, count, true) .isEmpty()) - item = ItemHelper.extract(inv, canAccept, ExtractionCountMode.EXACTLY, count, false); + item = ItemHelper.extract(inv, canAccept, mode, count, false); + } private boolean handleDownwardOutput(boolean simulate) { @@ -477,7 +460,11 @@ public class ChuteTileEntity extends SmartTileEntity implements IHaveGoggleInfor } protected int getExtractionAmount() { - return 0; + return 16; + } + + protected ExtractionCountMode getExtractionMode() { + return ExtractionCountMode.UPTO; } protected boolean canCollectItemsFromBelow() { diff --git a/src/main/java/com/simibubi/create/content/logistics/block/chute/SmartChuteTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/chute/SmartChuteTileEntity.java index ed0571239..3bd9d7d2d 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/chute/SmartChuteTileEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/chute/SmartChuteTileEntity.java @@ -2,6 +2,7 @@ package com.simibubi.create.content.logistics.block.chute; import java.util.List; +import com.simibubi.create.foundation.item.ItemHelper.ExtractionCountMode; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour; @@ -17,7 +18,6 @@ public class SmartChuteTileEntity extends ChuteTileEntity { public SmartChuteTileEntity(TileEntityType tileEntityTypeIn) { super(tileEntityTypeIn); - canFilterItems = true; } @Override @@ -27,7 +27,13 @@ public class SmartChuteTileEntity extends ChuteTileEntity { @Override protected int getExtractionAmount() { - return filtering.isCountVisible() ? filtering.getAmount() : 0; + return filtering.isCountVisible() && !filtering.anyAmount() ? filtering.getAmount() : 64; + } + + @Override + protected ExtractionCountMode getExtractionMode() { + return filtering.isCountVisible() && !filtering.anyAmount() ? ExtractionCountMode.EXACTLY + : ExtractionCountMode.UPTO; } @Override From 69c3a57c76d71109843a64e97013336d4812caf2 Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Sat, 3 Apr 2021 19:46:26 +0200 Subject: [PATCH 12/20] Quell the outrage! - Placement indicator arrow is slightly smaller by default --- .../create/foundation/utility/placement/PlacementHelpers.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/simibubi/create/foundation/utility/placement/PlacementHelpers.java b/src/main/java/com/simibubi/create/foundation/utility/placement/PlacementHelpers.java index 3e0a88cc5..f27603925 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/placement/PlacementHelpers.java +++ b/src/main/java/com/simibubi/create/foundation/utility/placement/PlacementHelpers.java @@ -265,7 +265,7 @@ public class PlacementHelpers { //RenderSystem.rotatef(angle.get(0.1f), 0, 0, -1); //RenderSystem.translated(0, 10, 0); //RenderSystem.rotatef(angle.get(0.1f), 0, 0, 1); - double scale = AllConfigs.CLIENT.indicatorScale.get(); + double scale = AllConfigs.CLIENT.indicatorScale.get() * .75; RenderSystem.scaled(scale, scale, 1); RenderSystem.scaled(12, 12, 1); From b845809b5855f9a1a3ee75bcb9cf7dd2d329515d Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Sat, 3 Apr 2021 19:50:42 +0200 Subject: [PATCH 13/20] The great Escape - Adresses #1324 --- .../com/simibubi/create/foundation/utility/FilesHelper.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/main/java/com/simibubi/create/foundation/utility/FilesHelper.java b/src/main/java/com/simibubi/create/foundation/utility/FilesHelper.java index 2cbff0055..cd916fd4a 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/FilesHelper.java +++ b/src/main/java/com/simibubi/create/foundation/utility/FilesHelper.java @@ -40,11 +40,7 @@ public class FilesHelper { } public static String slug(String name) { - return Lang.asId(name) - .replace(' ', '_') - .replace('!', '_') - .replace(':', '_') - .replace('?', '_'); + return Lang.asId(name).replaceAll("\\W+", "_"); } public static boolean saveTagCompoundAsJson(CompoundNBT compound, String path) { From ba91eaa4ef554b20628d3ac66f2a78c151313932 Mon Sep 17 00:00:00 2001 From: JozsefA Date: Sat, 3 Apr 2021 14:23:00 -0700 Subject: [PATCH 14/20] Probably fix ghost hands appearing by the player --- .../components/deployer/DeployerInstance.java | 36 ++++++++++--------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerInstance.java index 818cddfc5..a905070c8 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerInstance.java @@ -30,7 +30,7 @@ public class DeployerInstance extends ShaftInstance implements IDynamicInstance, protected OrientedData hand; AllBlockPartials currentHand; - float progress = Float.NaN; + float progress; private boolean newHand = false; public DeployerInstance(InstancedTileRenderer dispatcher, KineticTileEntity tile) { @@ -50,9 +50,9 @@ public class DeployerInstance extends ShaftInstance implements IDynamicInstance, updateHandPose(); relight(pos, pole); + progress = getProgress(AnimationTickHolder.getPartialTicks()); updateRotation(pole, hand, yRot, zRot, zRotPole); - - beginFrame(); + updatePosition(); } @Override @@ -70,19 +70,7 @@ public class DeployerInstance extends ShaftInstance implements IDynamicInstance, progress = newProgress; newHand = false; - float handLength = currentHand == AllBlockPartials.DEPLOYER_HAND_POINTING ? 0 - : currentHand == AllBlockPartials.DEPLOYER_HAND_HOLDING ? 4 / 16f : 3 / 16f; - float distance = Math.min(MathHelper.clamp(progress, 0, 1) * (tile.reach + handLength), 21 / 16f); - Vec3i facingVec = facing.getDirectionVec(); - BlockPos blockPos = getInstancePosition(); - - float x = blockPos.getX() + ((float) facingVec.getX()) * distance; - float y = blockPos.getY() + ((float) facingVec.getY()) * distance; - float z = blockPos.getZ() + ((float) facingVec.getZ()) * distance; - - pole.setPosition(x, y, z); - hand.setPosition(x, y, z); - + updatePosition(); } @Override @@ -110,6 +98,7 @@ public class DeployerInstance extends ShaftInstance implements IDynamicInstance, relight(pos, hand); updateRotation(pole, hand, yRot, zRot, zRotPole); + updatePosition(); return true; } @@ -122,6 +111,21 @@ public class DeployerInstance extends ShaftInstance implements IDynamicInstance, return 0; } + private void updatePosition() { + float handLength = currentHand == AllBlockPartials.DEPLOYER_HAND_POINTING ? 0 + : currentHand == AllBlockPartials.DEPLOYER_HAND_HOLDING ? 4 / 16f : 3 / 16f; + float distance = Math.min(MathHelper.clamp(progress, 0, 1) * (tile.reach + handLength), 21 / 16f); + Vec3i facingVec = facing.getDirectionVec(); + BlockPos blockPos = getInstancePosition(); + + float x = blockPos.getX() + ((float) facingVec.getX()) * distance; + float y = blockPos.getY() + ((float) facingVec.getY()) * distance; + float z = blockPos.getZ() + ((float) facingVec.getZ()) * distance; + + pole.setPosition(x, y, z); + hand.setPosition(x, y, z); + } + static void updateRotation(OrientedData pole, OrientedData hand, float yRot, float zRot, float zRotPole) { Quaternion q = Direction.SOUTH.getUnitVector().getDegreesQuaternion(zRot); From 62b1fe82b7545a3ed9b90c0803d78237d75601ce Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Sat, 3 Apr 2021 23:49:59 +0200 Subject: [PATCH 15/20] Fix-ups Cont'd - Fixed Spawners losing nbt data when moved - Nixie tubes now update their texts starting from the clicked block, rather than the leftmost one in the chain - Fixed inconsistency between block and item model of the furnace engine --- .../block/redstone/NixieTubeBlock.java | 12 ++++++------ .../ponder/content/RedstoneScenes.java | 5 +++-- .../foundation/utility/NBTProcessors.java | 3 +++ .../models/block/furnace_engine/item.json | 17 +++++++++++++++-- 4 files changed, 27 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/simibubi/create/content/logistics/block/redstone/NixieTubeBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/redstone/NixieTubeBlock.java index fcd47f20d..32b20f9b9 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/redstone/NixieTubeBlock.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/redstone/NixieTubeBlock.java @@ -63,12 +63,12 @@ public class NixieTubeBlock extends HorizontalBlock implements ITE Date: Sat, 3 Apr 2021 15:08:06 -0700 Subject: [PATCH 16/20] Compromise for render bounding box caching - Recalculating it once per tick is better than doing it every frame. - Only ever doing it once has proven unreliable. --- .../create/content/contraptions/base/KineticTileEntity.java | 5 +++-- .../content/contraptions/relays/belt/BeltTileEntity.java | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/simibubi/create/content/contraptions/base/KineticTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/base/KineticTileEntity.java index bdab3e194..cd32c6e3d 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/base/KineticTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/base/KineticTileEntity.java @@ -89,8 +89,10 @@ public abstract class KineticTileEntity extends SmartTileEntity super.tick(); effects.tick(); - if (world.isRemote) + if (world.isRemote) { + cachedBoundingBox = null; // cache the bounding box for every frame between ticks return; + } if (validationCountdown-- <= 0) { validationCountdown = AllConfigs.SERVER.kinetics.kineticValidationFrequency.get(); @@ -220,7 +222,6 @@ public abstract class KineticTileEntity extends SmartTileEntity boolean overStressedBefore = overStressed; clearKineticInformation(); - cachedBoundingBox = null; // DO NOT READ kinetic information when placed after movement if (wasMoved) { super.read(compound, clientPacket); diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltTileEntity.java index 4fe5b0f48..2aa6807d6 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltTileEntity.java @@ -285,7 +285,6 @@ public class BeltTileEntity extends KineticTileEntity implements LightUpdateList public void setController(BlockPos controller) { this.controller = controller; - cachedBoundingBox = null; } public BlockPos getController() { From e8338d48050b771ef35e95879cddecb35bc1a6a5 Mon Sep 17 00:00:00 2001 From: zelophed Date: Sun, 4 Apr 2021 00:36:31 +0200 Subject: [PATCH 17/20] too much backtracking --- .../simibubi/create/foundation/ponder/NavigatableSimiScreen.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/simibubi/create/foundation/ponder/NavigatableSimiScreen.java b/src/main/java/com/simibubi/create/foundation/ponder/NavigatableSimiScreen.java index 18add9b8b..19f3e446a 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/NavigatableSimiScreen.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/NavigatableSimiScreen.java @@ -58,6 +58,7 @@ public abstract class NavigatableSimiScreen extends AbstractSimiScreen { @Override protected void init() { super.init(); + backTrack = null; List screenHistory = ScreenOpener.getScreenHistory(); if (screenHistory.isEmpty()) return; From b05a03d41706cfbac416ca8f2a2bdf21c3975261 Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Sun, 4 Apr 2021 01:30:01 +0200 Subject: [PATCH 18/20] Update NixieTubeBlock.java - Revert rushed solution to auto nixie control --- .../logistics/block/redstone/NixieTubeBlock.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/simibubi/create/content/logistics/block/redstone/NixieTubeBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/redstone/NixieTubeBlock.java index 32b20f9b9..fcd47f20d 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/redstone/NixieTubeBlock.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/redstone/NixieTubeBlock.java @@ -63,12 +63,12 @@ public class NixieTubeBlock extends HorizontalBlock implements ITE Date: Sun, 4 Apr 2021 01:52:55 +0200 Subject: [PATCH 19/20] Version up --- gradle.properties | 2 +- src/main/java/com/simibubi/create/Create.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index d70b89e89..2c8ca2e66 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,7 +4,7 @@ org.gradle.jvmargs=-Xmx3G org.gradle.daemon=false # mod version info -mod_version=0.3.1 +mod_version=0.3.1a minecraft_version=1.15.2 forge_version=31.2.47 diff --git a/src/main/java/com/simibubi/create/Create.java b/src/main/java/com/simibubi/create/Create.java index 4a13fc88d..7a22821ee 100644 --- a/src/main/java/com/simibubi/create/Create.java +++ b/src/main/java/com/simibubi/create/Create.java @@ -51,7 +51,7 @@ public class Create { public static final String ID = "create"; public static final String NAME = "Create"; - public static final String VERSION = "0.3.1"; + public static final String VERSION = "0.3.1a"; public static Logger logger = LogManager.getLogger(); public static ItemGroup baseCreativeTab = new CreateItemGroup(); From 7a1445f00ac99e8ca075f16d4c798867f78bbb5e Mon Sep 17 00:00:00 2001 From: JozsefA Date: Sat, 3 Apr 2021 18:33:47 -0700 Subject: [PATCH 20/20] Fix nullpointer with starlight --- .../utility/worldWrappers/WrappedChunkProvider.java | 9 +-------- .../utility/worldWrappers/chunk/WrappedChunk.java | 10 +++++----- 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/WrappedChunkProvider.java b/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/WrappedChunkProvider.java index f6a22d102..f589c16cc 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/WrappedChunkProvider.java +++ b/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/WrappedChunkProvider.java @@ -56,14 +56,7 @@ public class WrappedChunkProvider extends AbstractChunkProvider { public WrappedChunk getChunk(int x, int z) { long pos = ChunkPos.asLong(x, z); - WrappedChunk chunk = chunks.get(pos); - - if (chunk == null) { - chunk = new WrappedChunk(world, x, z); - chunks.put(pos, chunk); - } - - return chunk; + return chunks.computeIfAbsent(pos, $ -> new WrappedChunk(world, x, z)); } @Override diff --git a/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/chunk/WrappedChunk.java b/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/chunk/WrappedChunk.java index c6904537d..f1c672e6c 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/chunk/WrappedChunk.java +++ b/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/chunk/WrappedChunk.java @@ -71,6 +71,11 @@ public class WrappedChunk implements IChunk { return sections; } + @Override + public ChunkStatus getStatus() { + return ChunkStatus.LIGHT; + } + @Nullable @Override public BlockState setBlockState(BlockPos p_177436_1_, BlockState p_177436_2_, boolean p_177436_3_) { @@ -148,11 +153,6 @@ public class WrappedChunk implements IChunk { return false; } - @Override - public ChunkStatus getStatus() { - return null; - } - @Override public void removeTileEntity(BlockPos p_177425_1_) {