Merging langs

- Set up a data generator to combine the generated lang from registrate with manual langs from assets/
This commit is contained in:
simibubi 2020-05-23 21:03:35 +02:00
parent 78ad674c22
commit 61aab48cdb
16 changed files with 2105 additions and 1108 deletions

View file

@ -324,7 +324,7 @@ c60c3115fd6eeaa3a696428a87a74d184ab7d62d assets\create\blockstates\weathered_lim
7f39521b211441f5c3e06d60c5978cebe16cacfb assets\create\blockstates\zinc_block.json
b7181bcd8182b2f17088e5aa881f374c9c65470c assets\create\blockstates\zinc_ore.json
efa942851f247891194d2c6ecdd8724a23b05aa0 assets\create\lang\en_ud.json
f2331719165149b6b3c90ca97f230a0138d20612 assets\create\lang\en_us.json
fe4c49a84016a3861a86e116df2c7603d6d4b91f assets\create\lang\en_us.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
@ -1419,7 +1419,7 @@ cb315814960850b5080598b89ee94c833b5048f7 data\create\loot_tables\blocks\limeston
8db1e3f0dac48b91a4839206a7d5a88cef415fdc data\create\loot_tables\blocks\limestone_cobblestone_stairs.json
92fb16606f289ad33860270d098fad2522b24e09 data\create\loot_tables\blocks\limestone_cobblestone_wall.json
371115e5ceb08c07a9ab2371509960c31e0baa8a data\create\loot_tables\blocks\limestone_pillar.json
dac789cf53b00eed34308848b5e267b7ccec090c data\create\loot_tables\blocks\linked_extractor.json
205f5899101262f31f5c1a88bb7d954918d08d04 data\create\loot_tables\blocks\linked_extractor.json
205f5899101262f31f5c1a88bb7d954918d08d04 data\create\loot_tables\blocks\linked_transposer.json
90ddf7b5c3b61758a4ad12a1e6ef16fe6ebf7794 data\create\loot_tables\blocks\mechanical_bearing.json
e93872a90e4f4642a003539e7db28fdacfdcd114 data\create\loot_tables\blocks\mechanical_crafter.json

File diff suppressed because it is too large Load diff

View file

@ -6,7 +6,7 @@
"entries": [
{
"type": "minecraft:item",
"name": "create:linked_extractor"
"name": "minecraft:air"
}
],
"conditions": [

View file

@ -1,5 +1,7 @@
package com.simibubi.create;
import com.simibubi.create.foundation.command.CreateCommand;
import net.minecraft.world.IWorld;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.event.TickEvent.Phase;
@ -8,6 +10,7 @@ import net.minecraftforge.event.world.WorldEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.DistExecutor;
import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
import net.minecraftforge.fml.event.server.FMLServerStartingEvent;
import net.minecraftforge.fml.event.server.FMLServerStoppingEvent;
@EventBusSubscriber
@ -26,6 +29,11 @@ public class CommonEvents {
Create.shutdown();
}
@SubscribeEvent
public static void serverStarting(FMLServerStartingEvent event) {
new CreateCommand(event.getCommandDispatcher());
}
@SubscribeEvent
public static void onLoadWorld(WorldEvent.Load event) {
IWorld world = event.getWorld();

View file

@ -9,15 +9,18 @@ import com.simibubi.create.content.logistics.RedstoneLinkNetworkHandler;
import com.simibubi.create.content.palettes.AllPaletteBlocks;
import com.simibubi.create.content.palettes.PalettesItemGroup;
import com.simibubi.create.content.schematics.ServerSchematicLoader;
import com.simibubi.create.foundation.advancement.AllAdvancements;
import com.simibubi.create.foundation.advancement.AllTriggers;
import com.simibubi.create.foundation.command.CreateCommand;
import com.simibubi.create.foundation.command.ServerLagger;
import com.simibubi.create.foundation.config.AllConfigs;
import com.simibubi.create.foundation.data.AllItemsTagProvider;
import com.simibubi.create.foundation.data.CreateRegistrate;
import com.simibubi.create.foundation.data.LangMerger;
import com.simibubi.create.foundation.networking.AllPackets;
import com.simibubi.create.foundation.worldgen.AllWorldFeatures;
import com.tterrag.registrate.util.NonNullLazyValue;
import net.minecraft.data.DataGenerator;
import net.minecraft.entity.EntityType;
import net.minecraft.inventory.container.ContainerType;
import net.minecraft.item.Item;
@ -27,11 +30,11 @@ import net.minecraft.particles.ParticleType;
import net.minecraft.tileentity.TileEntityType;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.SoundEvent;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.eventbus.api.EventPriority;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
import net.minecraftforge.fml.event.server.FMLServerStartingEvent;
import net.minecraftforge.fml.event.lifecycle.GatherDataEvent;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
@Mod(Create.ID)
@ -53,11 +56,10 @@ public class Create {
private static final NonNullLazyValue<CreateRegistrate> registrate = CreateRegistrate.lazy(ID);
public Create() {
IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
IEventBus modEventBus = FMLJavaModLoadingContext.get()
.getModEventBus();
modEventBus.addListener(Create::init);
MinecraftForge.EVENT_BUS.addListener(Create::serverStarting);
AllBlocks.register();
AllPaletteBlocks.register();
@ -71,6 +73,9 @@ public class Create {
modEventBus.addListener(AllConfigs::onLoad);
modEventBus.addListener(AllConfigs::onReload);
// Ensure registrate runs first
modEventBus.addListener(EventPriority.LOWEST, this::gatherData);
CreateClient.addListeners(modEventBus);
AllConfigs.registerClientCommon();
}
@ -88,10 +93,6 @@ public class Create {
AllConfigs.registerServer();
}
public static void serverStarting(FMLServerStartingEvent event) {
new CreateCommand(event.getCommandDispatcher());
}
public static void tick() {
if (schematicReceiver == null)
schematicReceiver = new ServerSchematicLoader();
@ -112,4 +113,11 @@ public class Create {
return new ResourceLocation(ID, path);
}
public void gatherData(GatherDataEvent event) {
DataGenerator gen = event.getGenerator();
gen.addProvider(new AllItemsTagProvider(gen));
gen.addProvider(new AllAdvancements(gen));
gen.addProvider(new LangMerger(gen));
}
}

View file

@ -16,7 +16,7 @@ public class AllItemsTagProvider extends ItemTagsProvider {
static Map<ResourceLocation, ItemTags.Wrapper> createdTags;
protected AllItemsTagProvider(DataGenerator generatorIn) {
public AllItemsTagProvider(DataGenerator generatorIn) {
super(generatorIn);
}

View file

@ -0,0 +1,22 @@
package com.simibubi.create.foundation.data;
public enum AllLangPartials {
TEMPORARY("We aren't in Registrate yet"),
ADVANCEMENTS("Advancements"),
MESSAGES("UI & Messages"),
TOOLTIPS("Item Descriptions"),
;
private String display;
private AllLangPartials(String display) {
this.display = display;
}
public String getDisplay() {
return display;
}
}

View file

@ -30,15 +30,15 @@ import net.minecraftforge.registries.IForgeRegistryEntry;
public class CreateRegistrate extends AbstractRegistrate<CreateRegistrate> {
protected CreateRegistrate(String modid) {
super(modid);
}
public static NonNullLazyValue<CreateRegistrate> lazy(String modid) {
return new NonNullLazyValue<>(() -> new CreateRegistrate(modid)
.registerEventListeners(FMLJavaModLoadingContext.get().getModEventBus()));
}
protected CreateRegistrate(String modid) {
super(modid);
}
/* Section Tracking */
private static Map<RegistryEntry<?>, AllSections> sectionLookup = new IdentityHashMap<>();

View file

@ -1,20 +0,0 @@
package com.simibubi.create.foundation.data;
import com.simibubi.create.foundation.advancement.AllAdvancements;
import net.minecraft.data.DataGenerator;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.GatherDataEvent;
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
public class Generator {
@SubscribeEvent
public static void gatherData(GatherDataEvent event){
DataGenerator gen = event.getGenerator();
gen.addProvider(new AllItemsTagProvider(gen));
gen.addProvider(new AllAdvancements(gen));
}
}

View file

@ -0,0 +1,172 @@
package com.simibubi.create.foundation.data;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import org.apache.commons.lang3.mutable.MutableObject;
import org.apache.commons.lang3.text.translate.JavaUnicodeEscaper;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.simibubi.create.Create;
import com.simibubi.create.foundation.utility.FilesHelper;
import com.simibubi.create.foundation.utility.Lang;
import net.minecraft.data.DataGenerator;
import net.minecraft.data.DirectoryCache;
import net.minecraft.data.IDataProvider;
import net.minecraft.util.JSONUtils;
@SuppressWarnings("deprecation")
public class LangMerger implements IDataProvider {
private static final Gson GSON = (new GsonBuilder()).setPrettyPrinting()
.disableHtmlEscaping()
.create();
static final String CATEGORY_HEADER = "\t\"_\": \"->------------------------] %s [------------------------<-\",";
private DataGenerator gen;
private List<Object> data;
public LangMerger(DataGenerator gen) {
this.gen = gen;
this.data = new ArrayList<>();
}
@Override
public String getName() {
return "Lang merger";
}
@Override
public void act(DirectoryCache cache) throws IOException {
Path path = this.gen.getOutputFolder()
.resolve("assets/" + Create.ID + "/lang/" + "en_us.json");
collectExistingEntries(path);
collectEntries();
if (data.isEmpty())
return;
save(cache, path);
}
private void collectExistingEntries(Path path) throws IOException {
if (!Files.exists(path)) {
Create.logger.warn("Nothing to merge! It appears no lang was generated before me.");
return;
}
try (BufferedReader reader = Files.newBufferedReader(path)) {
JsonObject jsonobject = JSONUtils.fromJson(GSON, reader, JsonObject.class);
addAll("Game Elements", jsonobject);
reader.close();
}
}
protected void addAll(String header, JsonObject jsonobject) {
if (jsonobject == null)
return;
header = String.format(CATEGORY_HEADER, header);
data.add("\n");
data.add(header);
data.add("\n\n");
MutableObject<String> previousKey = new MutableObject<>("");
jsonobject.entrySet()
.stream()
.forEachOrdered(entry -> {
String key = entry.getKey();
String value = entry.getValue()
.getAsString();
if (!previousKey.getValue()
.isEmpty() && shouldAddLineBreak(key, previousKey.getValue()))
data.add("\n");
data.add(new LangEntry(key, value));
previousKey.setValue(key);
});
data.add("\n");
}
protected boolean shouldAddLineBreak(String key, String previousKey) {
// Always put tooltips in their own paragraphs
if (key.endsWith(".tooltip"))
return true;
key = new String(key).replaceFirst("\\.", "");
previousKey = new String(previousKey).replaceFirst("\\.", "");
String[] split = key.split("\\.");
String[] split2 = previousKey.split("\\.");
if (split.length == 0 || split2.length == 0)
return false;
// Start new paragraph if keys before second point do not match
return !split[0].equals(split2[0]);
}
private void collectEntries() {
for (AllLangPartials partial : AllLangPartials.values()) {
String fileName = Lang.asId(partial.name());
String filepath = "assets/" + Create.ID + "/lang/default/" + fileName + ".json";
JsonElement element = FilesHelper.loadJsonResource(filepath);
if (element == null)
throw new IllegalStateException(String.format("Could not find default lang file: %s", filepath));
addAll(partial.getDisplay(), element.getAsJsonObject());
}
}
private void save(DirectoryCache cache, Path target) throws IOException {
String data = createString();
data = JavaUnicodeEscaper.outsideOf(0, 0x7f)
.translate(data);
String hash = IDataProvider.HASH_FUNCTION.hashUnencodedChars(data)
.toString();
if (!Objects.equals(cache.getPreviousHash(target), hash) || !Files.exists(target)) {
Files.createDirectories(target.getParent());
try (BufferedWriter bufferedwriter = Files.newBufferedWriter(target)) {
bufferedwriter.write(data);
bufferedwriter.close();
}
}
cache.recordHash(target, hash);
}
protected String createString() {
StringBuilder builder = new StringBuilder();
builder.append("{\n");
data.forEach(builder::append);
builder.append("\t\"_\": \"Thank you for translating Create!\"\n\n");
builder.append("}");
return builder.toString();
}
private class LangEntry {
static final String ENTRY_FORMAT = "\t\"%s\": \"%s\",\n";
private String key;
private String value;
LangEntry(String key, String value) {
this.key = key;
this.value = value;
}
@Override
public String toString() {
return String.format(ENTRY_FORMAT, key, value);
}
}
}

View file

@ -14,18 +14,17 @@ import com.google.gson.JsonParser;
import com.google.gson.internal.Streams;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;
import com.mojang.brigadier.exceptions.CommandSyntaxException;
import com.simibubi.create.Create;
import net.minecraft.nbt.CompoundNBT;
import net.minecraft.nbt.JsonToNBT;
public class FilesHelper {
public static void createFolderIfMissing(String name) {
Path path = Paths.get(name);
if (path.getParent() != null)
createFolderIfMissing(path.getParent().toString());
createFolderIfMissing(path.getParent()
.toString());
if (!Files.isDirectory(path)) {
try {
@ -49,7 +48,10 @@ public class FilesHelper {
}
public static String slug(String name) {
return Lang.asId(name).replace(' ', '_').replace('!', '_').replace('?', '_');
return Lang.asId(name)
.replace(' ', '_')
.replace('!', '_')
.replace('?', '_');
}
public static boolean saveTagCompoundAsJson(CompoundNBT compound, String path) {
@ -80,29 +82,28 @@ public class FilesHelper {
}
public static CompoundNBT loadJsonNBT(InputStream inputStream) {
private static JsonElement loadJson(InputStream inputStream) {
try {
JsonReader reader = new JsonReader(new BufferedReader(new InputStreamReader(inputStream)));
reader.setLenient(true);
JsonElement element = Streams.parse(reader);
reader.close();
inputStream.close();
return JsonToNBT.getTagFromJson(element.toString());
return element;
} catch (IOException e) {
e.printStackTrace();
} catch (CommandSyntaxException e) {
e.printStackTrace();
}
return null;
}
public static CompoundNBT loadJsonResourceAsNBT(String filepath) {
return loadJsonNBT(Create.class.getClassLoader().getResourceAsStream(filepath));
public static JsonElement loadJsonResource(String filepath) {
return loadJson(Create.class.getClassLoader()
.getResourceAsStream(filepath));
}
public static CompoundNBT loadJsonAsNBT(String filepath) {
public static JsonElement loadJson(String filepath) {
try {
return loadJsonNBT(Files.newInputStream(Paths.get(filepath), StandardOpenOption.READ));
return loadJson(Files.newInputStream(Paths.get(filepath), StandardOpenOption.READ));
} catch (IOException e) {
e.printStackTrace();
}

View file

@ -0,0 +1,4 @@
Hi there!
Looking to contribute with a localization? Wonderful.
You will find the english lang file here:
https://github.com/Creators-of-Create/Create/blob/mc1.15/dev/src/generated/resources/assets/create/lang/en_us.json

View file

@ -0,0 +1,88 @@
{
"advancement.create.root": "Welcome to Create",
"advancement.create.root.desc": "It's time to start building some amazing Contraptions!",
"advancement.create.andesite_alloy": "Alliterations Aplenty",
"advancement.create.andesite_alloy.desc": "Create's materials have weird names, Andesite Alloy is one of them.",
"advancement.create.its_alive": "It's Alive!",
"advancement.create.its_alive.desc": "Watch your first kinetic component spin.",
"advancement.create.shifting_gears": "Shifting Gear",
"advancement.create.shifting_gears.desc": "Connect a large to a small cogwheel allowing you to change the speed of your contraption.",
"advancement.create.overstressed": "Overstressed",
"advancement.create.overstressed.desc": "Experience the limits of stress firsthand.",
"advancement.create.belt": "Convey it all",
"advancement.create.belt.desc": "Connect two shafts with a Mechanical Belt.",
"advancement.create.wrench": "Configure Conveniently",
"advancement.create.wrench.desc": "Create a Wrench to aid you in building your contraptions.",
"advancement.create.goggles": "Stress-o-vision",
"advancement.create.goggles.desc": "Create some goggles to aid you in getting more kinetic information for components.",
"advancement.create.speed_gauge": "But how fast exactly?",
"advancement.create.speed_gauge.desc": "Place and power a Speedometer. Look at it through your goggles to read its exact value.",
"advancement.create.stress_gauge": "But how stressed exactly?",
"advancement.create.stress_gauge.desc": "Place and power a Stressometer. Look at it through your goggles to read its exact value.",
"advancement.create.water_wheel": "Harnessing Hydraulics",
"advancement.create.water_wheel.desc": "Place a Water Wheel and try getting it to spin!",
"advancement.create.lava_wheel": "Magma Wheel",
"advancement.create.lava_wheel.desc": "This shouldn't have worked.",
"advancement.create.millstone": "Pocket Crusher",
"advancement.create.millstone.desc": "Place and power a Millstone",
"advancement.create.andesite_casing": "The Andesite Age",
"advancement.create.andesite_casing.desc": "Use some Andesite Alloy and Wood to create a basic Casing.",
"advancement.create.drill": "Stationary breakers",
"advancement.create.drill.desc": "Place and power a Mechanical Drill",
"advancement.create.press": "Press goes 'Bonk!'",
"advancement.create.press.desc": "Power a Mechanical Press and use it to create some Plates.",
"advancement.create.polished_rose_quartz": "Pink Diamonds",
"advancement.create.polished_rose_quartz.desc": "Use a piece of sand paper to polish Rose Quartz until it becomes transparent.",
"advancement.create.electron_tube": "Beep boop",
"advancement.create.electron_tube.desc": "Make some Electron Tubes, useful in crafting less primitive machinery.",
"advancement.create.saw": "Stationary Chopping",
"advancement.create.saw.desc": "Place and power a Mechanical Saw",
"advancement.create.basin": "Basin Operation",
"advancement.create.basin.desc": "Place a basin and try throwing items into it.",
"advancement.create.mixer": "Mixin' it Up",
"advancement.create.mixer.desc": "Place a Mechanical Mixer above the basin, power it, and start mixing some ingredients.",
"advancement.create.compact": "Automated Compacting",
"advancement.create.compact.desc": "Use a press and a basin to compact some items.",
"advancement.create.expert_lane_1": "The Andesite Expert Lane",
"advancement.create.expert_lane_1.desc": "Work in Progress",
"advancement.create.brass": "An Actual Alloy",
"advancement.create.brass.desc": "Use Crushed Copper and Crushed Zinc to create some Brass.",
"advancement.create.brass_casing": "The Brass Age",
"advancement.create.brass_casing.desc": "Use newly obtained Brass and some Wood to create a more advanced Casing.",
"advancement.create.copper_casing": "The Copper Age",
"advancement.create.copper_casing.desc": "Use some copper sheets to create Copper Casing.",
"advancement.create.crafter": "Automated Assembly",
"advancement.create.crafter.desc": "Place and power some Mechanical Crafters",
"advancement.create.deployer": "Poke, Place, and Attack",
"advancement.create.deployer.desc": "Place and power a Deployer, the perfect reflection of yourself.",
"advancement.create.fist_bump": "Pound It, Bro!",
"advancement.create.fist_bump.desc": "Make two Deployers fist-bump.",
"advancement.create.crushing_wheel": "A Pair of Giants",
"advancement.create.crushing_wheel.desc": "Create some Crushing Wheels to break down more materials more effectively.",
"advancement.create.chromatic_compound": "Bipolar Minerals",
"advancement.create.chromatic_compound.desc": "Create a Bar of Chromatic Compound.",
"advancement.create.shadow_steel": "Void Returner",
"advancement.create.shadow_steel.desc": "Create Shadow Steel, a metal bar of nothingness.",
"advancement.create.refined_radiance": "Bright and Inspiring",
"advancement.create.refined_radiance.desc": "Create Refined Radiance, a powerful chromatic substance.",
"advancement.create.zapper": "Building with style",
"advancement.create.zapper.desc": "Craft a Blockzapper. A radiant laser gun that helps you build.",
"advancement.create.upgraded_zapper": "Radiant Overdrive",
"advancement.create.upgraded_zapper.desc": "Create and activate a fully upgraded Blockzapper.",
"advancement.create.symmetry_wand": "Radiant Mirrors",
"advancement.create.symmetry_wand.desc": "Craft a Staff of Symmetry.",
"advancement.create.deforester": "Radiant Chopping",
"advancement.create.deforester.desc": "Craft a Deforester, and say goodbye to the local forest.",
"advancement.create.eob": "End of Beta",
"advancement.create.eob.desc": "Expect more content here in the future. <3"
}

View file

@ -0,0 +1,363 @@
{
"itemGroup.create.base": "Create",
"itemGroup.create.palettes": "Create Palettes",
"death.attack.create.crush": "%1$s was processed by Crushing Wheels",
"death.attack.create.fan_fire": "%1$s was burned to death by hot air",
"death.attack.create.fan_lava": "%1$s was burned to death by lava fan",
"death.attack.create.drill": "%1$s was impaled by Mechanical Drill",
"death.attack.create.saw": "%1$s got cut in half by Mechanical Saw",
"death.attack.create.cuckoo_clock_explosion": "%1$s was blown up by tampered cuckoo clock",
"create.block.deployer.damage_source_name": "a rogue Deployer",
"create.recipe.crushing": "Crushing",
"create.recipe.milling": "Milling",
"create.recipe.splashing": "Bulk Washing",
"create.recipe.splashing.fan": "Fan behind Flowing Water",
"create.recipe.smoking_via_fan": "Bulk Smoking",
"create.recipe.smoking_via_fan.fan": "Fan behind Fire",
"create.recipe.blasting_via_fan": "Bulk Smelting",
"create.recipe.blasting_via_fan.fan": "Fan behind Lava",
"create.recipe.pressing": "Pressing",
"create.recipe.mixing": "Mixing",
"create.recipe.packing": "Compacting",
"create.recipe.sawing": "Sawing",
"create.recipe.mechanical_crafting": "Mechanical Crafting",
"create.recipe.block_cutting": "Block Cutting",
"create.recipe.blockzapper_upgrade": "Handheld Blockzapper",
"create.recipe.sandpaper_polishing": "Sandpaper Polishing",
"create.recipe.mystery_conversion": "Chromatic Metamorphosis",
"create.recipe.processing.catalyst": "Catalyst",
"create.recipe.processing.chance": "%1$s%% Chance",
"create.recipe.processing.chanceToReturn": "%1$s%% Chance to Return",
"create.generic.range": "Range",
"create.generic.radius": "Radius",
"create.generic.width": "Width",
"create.generic.height": "Height",
"create.generic.length": "Length",
"create.generic.speed": "Speed",
"create.generic.delay": "Delay",
"create.generic.unit.ticks": "Ticks",
"create.generic.unit.seconds": "Seconds",
"create.generic.unit.minutes": "Minutes",
"create.generic.unit.rpm": "RPM",
"create.generic.unit.stress": "su",
"create.generic.unit.degrees": "°",
"create.action.scroll": "Scroll",
"create.action.confirm": "Confirm",
"create.action.abort": "Abort",
"create.action.saveToFile": "Save",
"create.action.discard": "Discard",
"create.keyinfo.toolmenu": "Focus Tool Menu",
"create.keyinfo.scrollup": "Simulate Mousewheel Up (inworld)",
"create.keyinfo.scrolldown": "Simulate Mousewheel Down (inworld)",
"create.gui.scrollInput.defaultTitle": "Choose an Option:",
"create.gui.scrollInput.scrollToModify": "Scroll to Modify",
"create.gui.scrollInput.scrollToAdjustAmount": "Scroll to Adjust Amount",
"create.gui.scrollInput.scrollToSelect": "Scroll to Select",
"create.gui.scrollInput.shiftScrollsFaster": "Shift to Scroll Faster",
"create.gui.toolmenu.focusKey": "Hold [%1$s] to Focus",
"create.gui.toolmenu.cycle": "[SCROLL] to Cycle",
"create.gui.symmetryWand.mirrorType": "Mirror",
"create.gui.symmetryWand.orientation": "Orientation",
"create.symmetry.mirror.plane": "Mirror Once",
"create.symmetry.mirror.doublePlane": "Rectangular",
"create.symmetry.mirror.triplePlane": "Octagonal",
"create.orientation.orthogonal": "Orthogonal",
"create.orientation.diagonal": "Diagonal",
"create.orientation.horizontal": "Horizontal",
"create.orientation.alongZ": "Along Z",
"create.orientation.alongX": "Along X",
"create.gui.blockzapper.title": "Handheld Blockzapper",
"create.gui.blockzapper.replaceMode": "Replace Mode",
"create.gui.blockzapper.searchDiagonal": "Follow Diagonals",
"create.gui.blockzapper.searchFuzzy": "Ignore Material Borders",
"create.gui.blockzapper.range": "Spread Range",
"create.gui.blockzapper.needsUpgradedAmplifier": "Requires Upgraded Amplifier",
"create.gui.blockzapper.patternSection": "Pattern",
"create.gui.blockzapper.pattern.solid": "Solid",
"create.gui.blockzapper.pattern.checkered": "Checkerboard",
"create.gui.blockzapper.pattern.inversecheckered": "Inverted Checkerboard",
"create.gui.blockzapper.pattern.chance25": "25% Roll",
"create.gui.blockzapper.pattern.chance50": "50% Roll",
"create.gui.blockzapper.pattern.chance75": "75% Roll",
"create.gui.terrainzapper.title": "Handheld Worldshaper",
"create.gui.terrainzapper.placement": "Placement",
"create.gui.terrainzapper.placement.merged": "Merged",
"create.gui.terrainzapper.placement.attached": "Attached",
"create.gui.terrainzapper.placement.inserted": "Inserted",
"create.gui.terrainzapper.brush": "Brush",
"create.gui.terrainzapper.brush.cuboid": "Cuboid",
"create.gui.terrainzapper.brush.sphere": "Sphere",
"create.gui.terrainzapper.brush.cylinder": "Cylinder",
"create.gui.terrainzapper.tool": "Tool",
"create.gui.terrainzapper.tool.fill": "Fill",
"create.gui.terrainzapper.tool.place": "Place",
"create.gui.terrainzapper.tool.replace": "Replace",
"create.gui.terrainzapper.tool.clear": "Clear",
"create.gui.terrainzapper.tool.overlay": "Overlay",
"create.gui.terrainzapper.tool.flatten": "Flatten",
"create.terrainzapper.shiftRightClickToSet": "Shift-Right-Click to Select a Shape",
"create.blockzapper.usingBlock": "Using: %1$s",
"create.blockzapper.componentUpgrades": "Component Upgrades:",
"create.blockzapper.component.body": "Body",
"create.blockzapper.component.amplifier": "Amplifier",
"create.blockzapper.component.accelerator": "Accelerator",
"create.blockzapper.component.retriever": "Retriever",
"create.blockzapper.component.scope": "Scope",
"create.blockzapper.componentTier.none": "None",
"create.blockzapper.componentTier.brass": "Brass",
"create.blockzapper.componentTier.chromatic": "Chromatic",
"create.blockzapper.leftClickToSet": "Left-Click a Block to set Material",
"create.blockzapper.empty": "Out of Blocks!",
"create.contraptions.movement_mode": "Movement Mode",
"create.contraptions.movement_mode.move_place": "Always Place when Stopped",
"create.contraptions.movement_mode.move_place_returned": "Place only in Starting Position",
"create.contraptions.movement_mode.move_never_place": "Place only when Anchor Destroyed",
"create.contraptions.movement_mode.rotate_place": "Always Place when Stopped",
"create.contraptions.movement_mode.rotate_place_returned": "Only Place near Initial Angle",
"create.contraptions.movement_mode.rotate_never_place": "Only Place when Anchor Destroyed",
"create.contraptions.cart_movement_mode": "Cart Movement Mode",
"create.contraptions.cart_movement_mode.rotate": "Always face toward motion",
"create.contraptions.cart_movement_mode.rotate_paused": "Pause actors while rotating",
"create.contraptions.cart_movement_mode.rotation_locked": "Lock rotation",
"create.logistics.filter": "Filter",
"create.logistics.firstFrequency": "Freq. #1",
"create.logistics.secondFrequency": "Freq. #2",
"create.gui.goggles.generator_stats": "Generator Stats:",
"create.gui.goggles.kinetic_stats": "Kinetic Stats:",
"create.gui.goggles.at_current_speed": "At current Speed",
"create.gui.goggles.base_value": "Base Value",
"create.gui.gauge.info_header": "Gauge Information:",
"create.gui.speed_gauge.title": "Rotation Speed",
"create.gui.stress_gauge.title": "Network Stress",
"create.gui.stress_gauge.capacity": "Remaining Capacity",
"create.gui.stress_gauge.overstressed": "Overstressed",
"create.gui.stress_gauge.no_rotation": "No Rotation",
"create.gui.contraptions.not_fast_enough": "It appears that this %1$s is _not_ rotating with _enough_ _speed_.",
"create.gui.contraptions.network_overstressed": "It appears that this contraption is _overstressed_. Add more sources or _slow_ _down_ the components with a high _stress_ _impact_.",
"create.gui.flexcrate.title": "Adjustable Crate",
"create.gui.flexcrate.storageSpace": "Storage Space",
"create.gui.stockswitch.title": "Stockpile Switch",
"create.gui.stockswitch.lowerLimit": "Lower Threshold",
"create.gui.stockswitch.upperLimit": "Upper Threshold",
"create.gui.stockswitch.startAt": "Start Signal at",
"create.gui.stockswitch.startAbove": "Start Signal above",
"create.gui.stockswitch.stopAt": "Stop Signal at",
"create.gui.stockswitch.stopBelow": "Stop Signal below",
"create.gui.sequenced_gearshift.title": "Sequenced Gearshift",
"create.gui.sequenced_gearshift.instruction": "Instruction",
"create.gui.sequenced_gearshift.instruction.turn_angle": "Turn",
"create.gui.sequenced_gearshift.instruction.turn_angle.angle": "Angle",
"create.gui.sequenced_gearshift.instruction.turn_distance": "Piston",
"create.gui.sequenced_gearshift.instruction.turn_distance.distance": "Distance",
"create.gui.sequenced_gearshift.instruction.wait": "Wait",
"create.gui.sequenced_gearshift.instruction.wait.duration": "Duration",
"create.gui.sequenced_gearshift.instruction.end": "End",
"create.gui.sequenced_gearshift.speed": "Speed, Direction",
"create.gui.sequenced_gearshift.speed.forward": "Input speed, Forwards",
"create.gui.sequenced_gearshift.speed.forward_fast": "Double speed, Forwards",
"create.gui.sequenced_gearshift.speed.back": "Input speed, Reversed",
"create.gui.sequenced_gearshift.speed.back_fast": "Double speed, Reversed",
"create.schematicAndQuill.dimensions": "Schematic Size: %1$sx%2$sx%3$s",
"create.schematicAndQuill.firstPos": "First position set.",
"create.schematicAndQuill.secondPos": "Second position set.",
"create.schematicAndQuill.noTarget": "Hold [Ctrl] to select Air blocks.",
"create.schematicAndQuill.abort": "Removed selection.",
"create.schematicAndQuill.prompt": "Enter a name for the Schematic:",
"create.schematicAndQuill.fallbackName": "My Schematic",
"create.schematicAndQuill.saved": "Saved as %1$s",
"create.schematic.invalid": "[!] Invalid Item - Use the Schematic Table instead",
"create.schematic.position": "Position",
"create.schematic.rotation": "Rotation",
"create.schematic.rotation.none": "None",
"create.schematic.rotation.cw90": "Clockwise 90",
"create.schematic.rotation.cw180": "Clockwise 180",
"create.schematic.rotation.cw270": "Clockwise 270",
"create.schematic.mirror": "Mirror",
"create.schematic.mirror.none": "None",
"create.schematic.mirror.frontBack": "Front-Back",
"create.schematic.mirror.leftRight": "Left-Right",
"create.schematic.tool.deploy": "Deploy",
"create.schematic.tool.move": "Move XZ",
"create.schematic.tool.movey": "Move Y",
"create.schematic.tool.rotate": "Rotate",
"create.schematic.tool.print": "Print",
"create.schematic.tool.flip": "Flip",
"create.schematic.tool.deploy.description.0": "Moves the structure to a location.",
"create.schematic.tool.deploy.description.1": "Right-Click on the ground to place.",
"create.schematic.tool.deploy.description.2": "Hold [Ctrl] to select at a fixed distance.",
"create.schematic.tool.deploy.description.3": "[Ctrl]-Scroll to change the distance.",
"create.schematic.tool.move.description.0": "Shifts the Schematic Horizontally.",
"create.schematic.tool.move.description.1": "Point at the Schematic and [CTRL]-Scroll to push it.",
"create.schematic.tool.move.description.2": "",
"create.schematic.tool.move.description.3": "",
"create.schematic.tool.movey.description.0": "Shifts the Schematic Vertically.",
"create.schematic.tool.movey.description.1": "[CTRL]-Scroll to move it up/down.",
"create.schematic.tool.movey.description.2": "",
"create.schematic.tool.movey.description.3": "",
"create.schematic.tool.rotate.description.0": "Rotates the Schematic around its center.",
"create.schematic.tool.rotate.description.1": "[CTRL]-Scroll to rotate by 90 Degrees.",
"create.schematic.tool.rotate.description.2": "",
"create.schematic.tool.rotate.description.3": "",
"create.schematic.tool.print.description.0": "Instantly places the structure in the world.",
"create.schematic.tool.print.description.1": "[Right-Click] to confirm placement at the current location.",
"create.schematic.tool.print.description.2": "This tool is for Creative Mode only.",
"create.schematic.tool.print.description.3": "",
"create.schematic.tool.flip.description.0": "Flips the Schematic along the face you select.",
"create.schematic.tool.flip.description.1": "Point at the Schematic and [CTRL]-Scroll to flip it.",
"create.schematic.tool.flip.description.2": "",
"create.schematic.tool.flip.description.3": "",
"create.schematics.synchronizing": "Syncing...",
"create.schematics.uploadTooLarge": "Your schematic is too big.",
"create.schematics.maxAllowedSize": "The maximum allowed schematic file size is:",
"create.gui.schematicTable.title": "Schematic Table",
"create.gui.schematicTable.availableSchematics": "Available Schematics",
"create.gui.schematicTable.noSchematics": "No Schematics Saved",
"create.gui.schematicTable.uploading": "Uploading...",
"create.gui.schematicTable.finished": "Upload Finished!",
"create.gui.schematicannon.title": "Schematicannon",
"create.gui.schematicannon.settingsTitle": "Placement Settings",
"create.gui.schematicannon.listPrinter": "Material List Printer",
"create.gui.schematicannon.gunpowderLevel": "Gunpowder at %1$s%%",
"create.gui.schematicannon.shotsRemaining": "Shots left: %1$s",
"create.gui.schematicannon.shotsRemainingWithBackup": "With backup: %1$s",
"create.gui.schematicannon.optionEnabled": "Currently Enabled",
"create.gui.schematicannon.optionDisabled": "Currently Disabled",
"create.gui.schematicannon.option.dontReplaceSolid": "Don't Replace Solid Blocks",
"create.gui.schematicannon.option.replaceWithSolid": "Replace Solid with Solid",
"create.gui.schematicannon.option.replaceWithAny": "Replace Solid with Any",
"create.gui.schematicannon.option.replaceWithEmpty": "Replace Solid with Empty",
"create.gui.schematicannon.option.skipMissing": "Skip missing Blocks",
"create.gui.schematicannon.option.skipTileEntities": "Protect Tile Entities",
"create.gui.schematicannon.option.skipMissing.description": "If the cannon cannot find a required Block for placement, it will continue at the next Location.",
"create.gui.schematicannon.option.skipTileEntities.description": "The cannon will avoid replacing data holding blocks such as Chests.",
"create.gui.schematicannon.option.dontReplaceSolid.description": "The cannon will never replace any Solid blocks in its working area, only non-Solid and Air.",
"create.gui.schematicannon.option.replaceWithSolid.description": "The cannon will only replace Solid blocks in its working area if the Schematic contains a solid Block at the Location.",
"create.gui.schematicannon.option.replaceWithAny.description": "The cannon will replace Solid blocks in its working area if the Schematic contains any Block at the Location.",
"create.gui.schematicannon.option.replaceWithEmpty.description": "The cannon will clear out all blocks in its working area, including those replaced by Air.",
"create.schematicannon.status.idle": "Idle",
"create.schematicannon.status.ready": "Ready",
"create.schematicannon.status.running": "Running",
"create.schematicannon.status.finished": "Finished",
"create.schematicannon.status.paused": "Paused",
"create.schematicannon.status.stopped": "Stopped",
"create.schematicannon.status.noGunpowder": "Out of Gunpowder",
"create.schematicannon.status.targetNotLoaded": "Target is not loaded",
"create.schematicannon.status.targetOutsideRange": "Target too far away",
"create.schematicannon.status.searching": "Searching",
"create.schematicannon.status.skipping": "Skipping",
"create.schematicannon.status.missingBlock": "Missing Item:",
"create.schematicannon.status.placing": "Placing",
"create.schematicannon.status.clearing": "Clearing Blocks",
"create.schematicannon.status.schematicInvalid": "Schematic Invalid",
"create.schematicannon.status.schematicNotPlaced": "Schematic Not Deployed",
"create.schematicannon.status.schematicExpired": "Schematic File Expired",
"create.gui.filter.blacklist": "Blacklist",
"create.gui.filter.blacklist.description": "Items pass if they do NOT match any of the above. An empty Blacklist accepts everything.",
"create.gui.filter.whitelist": "Whitelist",
"create.gui.filter.whitelist.description": "Items pass if they match any of the above. An empty Whitelist rejects everything.",
"create.gui.filter.respect_data": "Respect Data",
"create.gui.filter.respect_data.description": "Items only match if their durability, enchantments, and other attributes match as well.",
"create.gui.filter.ignore_data": "Ignore Data",
"create.gui.filter.ignore_data.description": "Items match regardless of their attributes.",
"create.item_attributes.placeable": "is placeable",
"create.item_attributes.consumable": "can be eaten",
"create.item_attributes.smeltable": "can be Smelted",
"create.item_attributes.washable": "can be Washed",
"create.item_attributes.smokable": "can be Smoked",
"create.item_attributes.blastable": "is smeltable in Blast Furnace",
"create.item_attributes.enchanted": "is enchanted",
"create.item_attributes.damaged": "is damaged",
"create.item_attributes.badly_damaged": "is heavily damaged",
"create.item_attributes.not_stackable": "cannot stack",
"create.item_attributes.equipable": "can be equipped",
"create.item_attributes.furnace_fuel": "is furnace fuel",
"create.item_attributes.in_tag": "is tagged %1$s",
"create.item_attributes.in_item_group": "belongs to %1$s",
"create.item_attributes.added_by": "was added by %1$s",
"create.gui.attribute_filter.no_selected_attributes": "No attributes selected",
"create.gui.attribute_filter.selected_attributes": "Selected attributes:",
"create.gui.attribute_filter.whitelist_disjunctive": "Whitelist (Any)",
"create.gui.attribute_filter.whitelist_disjunctive.description": "Items pass if they have any of the selected attributes.",
"create.gui.attribute_filter.whitelist_conjunctive": "Whitelist (All)",
"create.gui.attribute_filter.whitelist_conjunctive.description": "Items pass only if they have ALL of the selected attributes.",
"create.gui.attribute_filter.blacklist": "Blacklist",
"create.gui.attribute_filter.blacklist.description": "Items pass if they do NOT have any of the selected attributes.",
"create.gui.attribute_filter.add_reference_item": "Add Reference Item",
"create.tooltip.holdKey": "Hold [%1$s]",
"create.tooltip.holdKeyOrKey": "Hold [%1$s] or [%2$s]",
"create.tooltip.keyShift": "Shift",
"create.tooltip.keyCtrl": "Ctrl",
"create.tooltip.speedRequirement": "Speed Requirement: %1$s",
"create.tooltip.speedRequirement.none": "None",
"create.tooltip.speedRequirement.medium": "Moderate",
"create.tooltip.speedRequirement.high": "Fast",
"create.tooltip.stressImpact": "Stress Impact: %1$s",
"create.tooltip.stressImpact.low": "Low",
"create.tooltip.stressImpact.medium": "Moderate",
"create.tooltip.stressImpact.high": "High",
"create.tooltip.stressImpact.overstressed": "Overstressed",
"create.tooltip.capacityProvided": "Stress Capacity: %1$s",
"create.tooltip.capacityProvided.low": "Small",
"create.tooltip.capacityProvided.medium": "Medium",
"create.tooltip.capacityProvided.high": "Large",
"create.tooltip.capacityProvided.asGenerator": "(As Generator)",
"create.tooltip.generationSpeed" : "Generates at %1$s %2$s",
"create.tooltip.analogStrength": "Analog Strength: %1$s/15",
"create.mechanical_mixer.min_ingredients": "Min. Ingredients",
"create.command.killTPSCommand": "killtps",
"create.command.killTPSCommand.status.slowed_by.0": "[Create]: Server tick is currently slowed by %s ms :o",
"create.command.killTPSCommand.status.slowed_by.1": "[Create]: Server tick is slowed by %s ms now >:)",
"create.command.killTPSCommand.status.slowed_by.2": "[Create]: Server tick is back to regular speed :D",
"create.command.killTPSCommand.status.usage.0": "[Create]: use /killtps stop to bring back server tick to regular speed",
"create.command.killTPSCommand.status.usage.1": "[Create]: use /killtps start <tickTime> to artificially slow down the server tick",
"create.command.killTPSCommand.argument.tickTime": "tickTime",
"create.subtitle.schematicannon_launch_block": "Schematicannon shoots",
"create.subtitle.schematicannon_finish": "Schematicannon finishes",
"create.subtitle.slime_added": "Slime squishes",
"create.subtitle.mechanical_press_activation": "Mechanical Press activates",
"create.subtitle.mechanical_press_item_break": "Metal clanks",
"create.subtitle.blockzapper_place": "Blocks zap into place",
"create.subtitle.blockzapper_confirm": "Affirmative Ding",
"create.subtitle.blockzapper_deny": "Declining Boop",
"create.subtitle.block_funnel_eat": "Funnel CHOMPS"
}

View file

@ -0,0 +1,58 @@
{
"item.create.symmetry_wand": "Staff of Symmetry",
"item.create.placement_handgun": "Handheld Blockzapper",
"item.create.terrain_zapper": "Handheld Worldshaper",
"item.create.tree_fertilizer": "Tree Fertilizer",
"item.create.empty_blueprint": "Empty Schematic",
"item.create.andesite_alloy": "Andesite Alloy",
"item.create.chromatic_compound": "Chromatic Compound",
"item.create.shadow_steel": "Shadow Steel",
"item.create.blueprint_and_quill": "Schematic and Quill",
"item.create.blueprint": "Schematic",
"item.create.belt_connector": "Mechanical Belt",
"item.create.goggles": "Engineer's Goggles",
"item.create.filter": "Filter",
"item.create.property_filter": "Attribute Filter",
"item.create.rose_quartz": "Rose Quartz",
"item.create.polished_rose_quartz": "Polished Rose Quartz",
"item.create.refined_radiance": "Refined Radiance",
"item.create.iron_sheet": "Iron Sheets",
"item.create.gold_sheet": "Gold Sheets",
"item.create.lapis_plate": "Lapis Plating",
"item.create.obsidian_dust": "Powdered Obsidian",
"item.create.propeller": "Propeller",
"item.create.whisk": "Whisk",
"item.create.brass_hand": "Hand",
"item.create.slot_cover": "Crafter Slot Cover",
"item.create.flour": "Wheat Flour",
"item.create.dough": "Dough",
"item.create.wrench": "Wrench",
"item.create.deforester": "Deforester",
"item.create.crushed_iron": "Crushed Iron Ore",
"item.create.crushed_gold": "Crushed Gold Ore",
"item.create.sand_paper": "Sand Paper",
"item.create.red_sand_paper": "Red Sand Paper",
"item.create.super_glue": "Super Glue",
"item.create.minecart_contraption": "Minecart with Contraption",
"item.create.brass_ingot": "Brass Ingot",
"item.create.brass_sheet": "Brass Sheets",
"item.create.brass_nugget": "Brass Nugget",
"item.create.crushed_brass": "Crushed Brass",
"item.create.zinc_ingot": "Zinc Bar",
"item.create.zinc_nugget": "Zinc Nugget",
"item.create.crushed_zinc": "Crushed Zinc",
"item.create.copper_sheet": "Copper Sheets",
"item.create.copper_ingot": "Copper Ingot",
"item.create.copper_nugget": "Copper Nugget",
"item.create.crushed_copper": "Crushed Copper",
"item.create.electron_tube": "Electron Tube",
"item.create.integrated_circuit": "Integrated Circuit",
"entity.create.contraption": "Moving Contraption",
"entity.create.stationary_contraption": "Stationary Contraption",
"entity.create.super_glue": "Superglue"
}

View file

@ -1,729 +1,5 @@
{
"_comment": "-------------------------] GAME ELEMENTS [------------------------------------------------",
"item.create.symmetry_wand": "Staff of Symmetry",
"item.create.placement_handgun": "Handheld Blockzapper",
"item.create.terrain_zapper": "Handheld Worldshaper",
"item.create.tree_fertilizer": "Tree Fertilizer",
"item.create.empty_blueprint": "Empty Schematic",
"item.create.andesite_alloy": "Andesite Alloy",
"item.create.chromatic_compound": "Chromatic Compound",
"item.create.shadow_steel": "Shadow Steel",
"item.create.blueprint_and_quill": "Schematic and Quill",
"item.create.blueprint": "Schematic",
"item.create.belt_connector": "Mechanical Belt",
"item.create.goggles": "Engineer's Goggles",
"item.create.filter": "Filter",
"item.create.property_filter": "Attribute Filter",
"item.create.rose_quartz": "Rose Quartz",
"item.create.polished_rose_quartz": "Polished Rose Quartz",
"item.create.refined_radiance": "Refined Radiance",
"item.create.iron_sheet": "Iron Sheets",
"item.create.gold_sheet": "Gold Sheets",
"item.create.lapis_plate": "Lapis Plating",
"item.create.obsidian_dust": "Powdered Obsidian",
"item.create.propeller": "Propeller",
"item.create.whisk": "Whisk",
"item.create.brass_hand": "Hand",
"item.create.slot_cover": "Crafter Slot Cover",
"item.create.zinc_handle": "Quality Tool Handle",
"item.create.flour": "Wheat Flour",
"item.create.dough": "Dough",
"item.create.wrench": "Wrench",
"item.create.deforester": "Deforester",
"item.create.crushed_iron": "Crushed Iron Ore",
"item.create.crushed_gold": "Crushed Gold Ore",
"item.create.sand_paper": "Sand Paper",
"item.create.red_sand_paper": "Red Sand Paper",
"item.create.super_glue": "Super Glue",
"item.create.minecart_contraption": "Minecart with Contraption",
"item.create.brass_ingot": "Brass Ingot",
"item.create.brass_sheet": "Brass Sheets",
"item.create.brass_nugget": "Brass Nugget",
"item.create.crushed_brass": "Crushed Brass",
"item.create.zinc_ingot": "Zinc Bar",
"item.create.zinc_nugget": "Zinc Nugget",
"item.create.crushed_zinc": "Crushed Zinc",
"item.create.copper_sheet": "Copper Sheets",
"item.create.copper_ingot": "Copper Ingot",
"item.create.copper_nugget": "Copper Nugget",
"item.create.crushed_copper": "Crushed Copper",
"item.create.electron_tube": "Electron Tube",
"item.create.integrated_circuit": "Integrated Circuit",
"item.create.blazing_pickaxe": "Blazing Pickaxe",
"item.create.blazing_shovel": "Blazing Shovel",
"item.create.blazing_axe": "Blazing Axe",
"item.create.blazing_sword": "Blazing Cleaver",
"item.create.shadow_steel_pickaxe": "Shadow Steel Pickaxe",
"item.create.shadow_steel_mattock": "Shadow Steel Garden Mattock",
"item.create.shadow_steel_sword": "Shadow Steel Sword",
"item.create.rose_quartz_pickaxe": "Gilded Quartz Pickaxe",
"item.create.rose_quartz_shovel": "Gilded Quartz Shovel",
"item.create.rose_quartz_axe": "Gilded Quartz Axe",
"item.create.rose_quartz_sword": "Gilded Quartz Blade",
"block.create.copper_ore": "Copper Ore",
"block.create.copper_block": "Block of Copper",
"block.create.copper_shingles": "Copper Shingles",
"block.create.zinc_ore": "Zinc Ore",
"block.create.zinc_block": "Block of Zinc",
"block.create.brass_block": "Block of Brass",
"block.create.andesite_casing": "Andesite Casing",
"block.create.brass_casing": "Brass Casing",
"block.create.copper_casing": "Copper Casing",
"block.create.cogwheel": "Cogwheel",
"block.create.large_cogwheel": "Large Cogwheel",
"block.create.turntable": "Turntable",
"block.create.gearbox": "Gearbox",
"block.create.gearshift": "Gearshift",
"block.create.clutch": "Clutch",
"block.create.shaft": "Shaft",
"block.create.encased_belt": "Encased Belt",
"block.create.encased_shaft": "Encased Shaft",
"block.create.encased_fan": "Encased Fan",
"block.create.adjustable_pulley": "Analog Belt Pulley",
"block.create.nozzle": "Nozzle",
"block.create.hand_crank": "Hand Crank",
"block.create.cuckoo_clock": "Cuckoo Clock",
"block.create.creative_motor": "Motor",
"block.create.belt": "Mechanical Belt",
"block.create.millstone": "Millstone",
"block.create.crushing_wheel": "Crushing Wheel",
"block.create.drill": "Mechanical Drill",
"block.create.portable_storage_interface": "Portable Storage Interface",
"block.create.harvester": "Mechanical Harvester",
"block.create.plough": "Mechanical Plough",
"block.create.saw": "Mechanical Saw",
"block.create.water_wheel": "Water Wheel",
"block.create.mechanical_press": "Mechanical Press",
"block.create.mechanical_mixer": "Mechanical Mixer",
"block.create.deployer": "Deployer",
"block.create.basin": "Basin",
"block.create.mechanical_crafter": "Mechanical Crafter",
"block.create.flywheel": "Flywheel",
"block.create.furnace_engine": "Furnace Engine",
"block.create.speed_gauge": "Speedometer",
"block.create.stress_gauge": "Stressometer",
"block.create.cart_assembler": "Cart Assembler",
"block.create.analog_lever": "Analog Lever",
"block.create.rotation_speed_controller": "Rotation Speed Controller",
"block.create.sticky_mechanical_piston": "Sticky Mechanical Piston",
"block.create.mechanical_piston": "Mechanical Piston",
"block.create.mechanical_piston_head": "Mechanical Piston Head",
"block.create.piston_pole": "Piston Extension Pole",
"block.create.mechanical_bearing": "Mechanical Bearing",
"block.create.clockwork_bearing": "Clockwork Bearing",
"block.create.rope_pulley": "Rope Pulley",
"block.create.rope": "Rope",
"block.create.pulley_magnet": "Pulley Magnet",
"block.create.translation_chassis": "Linear Chassis",
"block.create.rotation_chassis": "Radial Chassis",
"block.create.contact": "Redstone Contact",
"block.create.redstone_bridge": "Redstone Link",
"block.create.stockswitch": "Stockpile Switch",
"block.create.flexcrate": "Adjustable Crate",
"block.create.creative_crate": "The Endless Crate",
"block.create.extractor": "Extractor",
"block.create.belt_funnel": "Funnel",
"block.create.linked_extractor": "Linked Extractor",
"block.create.transposer": "Transposer",
"block.create.linked_transposer": "Linked Transposer",
"block.create.pulse_repeater": "Pulse Repeater",
"block.create.flexpulsepeater": "Adjustable Pulse Repeater",
"block.create.redstone_latch": "Powered Latch",
"block.create.toggle_latch": "Powered Toggle Latch",
"block.create.flexpeater": "Adjustable Repeater",
"block.create.entity_detector": "Belt Observer",
"block.create.belt_tunnel": "Conveyor Tunnel",
"block.create.sequenced_gearshift": "Sequenced Gearshift",
"block.create.tiled_glass": "Tiled Glass",
"block.create.framed_glass": "Large Glass Window",
"block.create.vertical_framed_glass": "Vertical Glass Window",
"block.create.horizontal_framed_glass": "Horizontal Glass Window",
"block.create.oak_glass": "Oak Window",
"block.create.spruce_glass": "Spruce Window",
"block.create.birch_glass": "Birch Window",
"block.create.jungle_glass": "Jungle Window",
"block.create.dark_oak_glass": "Dark Oak Window",
"block.create.acacia_glass": "Acacia Window",
"block.create.iron_glass": "Ornate Iron Window",
"block.create.tiled_glass_pane": "Tiled Glass Pane",
"block.create.framed_glass_pane": "Large Glass Window Pane",
"block.create.vertical_framed_glass_pane": "Vertical Glass Window Pane",
"block.create.horizontal_framed_glass_pane": "Horizontal Glass Window Pane",
"block.create.oak_glass_pane": "Oak Window Pane",
"block.create.spruce_glass_pane": "Spruce Window Pane",
"block.create.birch_glass_pane": "Birch Window Pane",
"block.create.jungle_glass_pane": "Jungle Window Pane",
"block.create.dark_oak_glass_pane": "Dark Oak Window Pane",
"block.create.acacia_glass_pane": "Acacia Window Pane",
"block.create.iron_glass_pane": "Ornate Iron Window Pane",
"block.create.window_in_a_block": "Block with Glass Pane",
"block.create.andesite_bricks": "Andesite Bricks",
"block.create.andesite_layers": "Layered Andesite",
"block.create.diorite_bricks": "Diorite Bricks",
"block.create.diorite_layers": "Layered Diorite",
"block.create.granite_bricks": "Granite Bricks",
"block.create.granite_layers": "Layered Granite",
"block.create.gabbro": "Gabbro",
"block.create.gabbro_stairs": "Gabbro Stairs",
"block.create.gabbro_slab": "Gabbro Slab",
"block.create.gabbro_wall": "Gabbro Wall",
"block.create.polished_gabbro": "Polished Gabbro",
"block.create.gabbro_bricks": "Gabbro Bricks",
"block.create.gabbro_bricks_stairs": "Gabbro Brick Stairs",
"block.create.gabbro_bricks_wall": "Gabbro Brick Wall",
"block.create.paved_gabbro_bricks": "Paved Gabbro Bricks",
"block.create.paved_gabbro_bricks_slab": "Paved Gabbro Bricks Slab",
"block.create.indented_gabbro": "Indented Gabbro Tile",
"block.create.indented_gabbro_slab": "Indented Gabbro Slab",
"block.create.slightly_mossy_gabbro_bricks": "Mossy Gabbro Bricks",
"block.create.mossy_gabbro_bricks": "Overgrown Gabbro Bricks",
"block.create.gabbro_layers": "Layered Gabbro",
"block.create.weathered_limestone": "Weathered Limestone",
"block.create.weathered_limestone_stairs": "Weathered Limestone Stairs",
"block.create.weathered_limestone_wall": "Weathered Limestone Wall",
"block.create.weathered_limestone_slab": "Weathered Limestone Slab",
"block.create.polished_weathered_limestone": "Polished Weathered Limestone",
"block.create.polished_weathered_limestone_slab": "Polished Weathered Limestone Slab",
"block.create.weathered_limestone_bricks": "Weathered Limestone Bricks",
"block.create.weathered_limestone_bricks_stairs": "Weathered Limestone Brick Stairs",
"block.create.weathered_limestone_bricks_wall": "Weathered Limestone Brick Wall",
"block.create.weathered_limestone_bricks_slab": "Weathered Limestone Brick Slab",
"block.create.weathered_limestone_pillar": "Weathered Limestone Pillar",
"block.create.weathered_limestone_layers": "Layered Weathered Limestone",
"block.create.dolomite_pillar": "Dolomite Pillar",
"block.create.dolomite": "Dolomite",
"block.create.dolomite_stairs": "Dolomite Stairs",
"block.create.dolomite_wall": "Dolomite Wall",
"block.create.dolomite_slab": "Dolomite Slab",
"block.create.dolomite_bricks": "Dolomite Bricks",
"block.create.dolomite_bricks_wall": "Dolomite Brick Wall",
"block.create.dolomite_bricks_stairs": "Dolomite Brick Stairs",
"block.create.dolomite_bricks_slab": "Dolomite Brick Slab",
"block.create.polished_dolomite": "Polished Dolomite",
"block.create.dolomite_layers": "Layered Dolomite",
"block.create.limesand": "Limesand",
"block.create.limestone": "Limestone",
"block.create.limestone_stairs": "Limestone Stairs",
"block.create.limestone_slab": "Limestone Slab",
"block.create.limestone_wall": "Limestone Wall",
"block.create.limestone_bricks": "Limestone Bricks",
"block.create.limestone_bricks_stairs": "Limestone Brick Stairs",
"block.create.limestone_bricks_slab": "Limestone Brick Slab",
"block.create.limestone_bricks_wall": "Limestone Brick Wall",
"block.create.polished_limestone": "Polished Limestone",
"block.create.polished_limestone_slab": "Polished Limestone Slab",
"block.create.limestone_pillar": "Limestone Pillar",
"block.create.limestone_layers": "Layered Limestone",
"block.create.natural_scoria": "Natural Scoria",
"block.create.scoria": "Scoria",
"block.create.scoria_stairs": "Scoria Stairs",
"block.create.scoria_slab": "Scoria Slab",
"block.create.scoria_wall": "Scoria Wall",
"block.create.scoria_bricks": "Scoria Bricks",
"block.create.polished_scoria": "Polished Scoria",
"block.create.polished_scoria_slab": "Polished Scoria Slab",
"block.create.scoria_pillar": "Scoria Pillar",
"block.create.scoria_layers": "Layered Scoria",
"block.create.dark_scoria": "Dark Scoria",
"block.create.polished_dark_scoria": "Polished Dark Scoria",
"block.create.dark_scoria_tiles": "Dark Scoria Tiles",
"block.create.dark_scoria_tiles_stairs": "Dark Scoria Tile Stairs",
"block.create.dark_scoria_tiles_slab": "Dark Scoria Tile Slab",
"block.create.dark_scoria_bricks": "Dark Scoria Bricks",
"block.create.dark_scoria_bricks_stairs": "Dark Scoria Brick Stairs",
"block.create.dark_scoria_bricks_slab": "Dark Scoria Brick Slab",
"block.create.dark_scoria_bricks_wall": "Dark Scoria Brick Wall",
"block.create.schematicannon": "Schematicannon",
"block.create.schematic_table": "Schematic Table",
"block.create.cocoa_log": "Cocoa Jungle Log",
"entity.create.contraption": "Moving Contraption",
"entity.create.stationary_contraption": "Stationary Contraption",
"entity.create.super_glue": "Superglue",
"_comment": "-------------------------] UI & MESSAGES [------------------------------------------------",
"death.attack.create.crush": "%1$s was processed by Crushing Wheels",
"death.attack.create.fan_fire": "%1$s was burned to death by hot air",
"death.attack.create.fan_lava": "%1$s was burned to death by lava fan",
"death.attack.create.drill": "%1$s was impaled by Mechanical Drill",
"death.attack.create.saw": "%1$s got cut in half by Mechanical Saw",
"create.block.deployer.damage_source_name": "a rogue Deployer",
"death.attack.create.cuckoo_clock_explosion": "%1$s was blown up by tampered cuckoo clock",
"create.recipe.crushing": "Crushing",
"create.recipe.milling": "Milling",
"create.recipe.splashing": "Bulk Washing",
"create.recipe.splashing.fan": "Fan behind Flowing Water",
"create.recipe.smoking_via_fan": "Bulk Smoking",
"create.recipe.smoking_via_fan.fan": "Fan behind Fire",
"create.recipe.blasting_via_fan": "Bulk Smelting",
"create.recipe.blasting_via_fan.fan": "Fan behind Lava",
"create.recipe.pressing": "Pressing",
"create.recipe.mixing": "Mixing",
"create.recipe.packing": "Compacting",
"create.recipe.sawing": "Sawing",
"create.recipe.mechanical_crafting": "Mechanical Crafting",
"create.recipe.block_cutting": "Block Cutting",
"create.recipe.blockzapper_upgrade": "Handheld Blockzapper",
"create.recipe.sandpaper_polishing": "Sandpaper Polishing",
"create.recipe.mystery_conversion": "Chromatic Metamorphosis",
"create.recipe.processing.catalyst": "Catalyst",
"create.recipe.processing.chance": "%1$s%% Chance",
"create.recipe.processing.chanceToReturn": "%1$s%% Chance to Return",
"create.generic.range": "Range",
"create.generic.radius": "Radius",
"create.generic.width": "Width",
"create.generic.height": "Height",
"create.generic.length": "Length",
"create.generic.speed": "Speed",
"create.generic.delay": "Delay",
"create.generic.unit.ticks": "Ticks",
"create.generic.unit.seconds": "Seconds",
"create.generic.unit.minutes": "Minutes",
"create.generic.unit.rpm": "RPM",
"create.generic.unit.stress": "su",
"create.generic.unit.degrees": "°",
"create.action.scroll": "Scroll",
"create.action.confirm": "Confirm",
"create.action.abort": "Abort",
"create.action.saveToFile": "Save",
"create.action.discard": "Discard",
"create.keyinfo.toolmenu": "Focus Tool Menu",
"create.keyinfo.scrollup": "Simulate Mousewheel Up (inworld)",
"create.keyinfo.scrolldown": "Simulate Mousewheel Down (inworld)",
"create.gui.scrollInput.defaultTitle": "Choose an Option:",
"create.gui.scrollInput.scrollToModify": "Scroll to Modify",
"create.gui.scrollInput.scrollToAdjustAmount": "Scroll to Adjust Amount",
"create.gui.scrollInput.scrollToSelect": "Scroll to Select",
"create.gui.scrollInput.shiftScrollsFaster": "Shift to Scroll Faster",
"create.gui.toolmenu.focusKey": "Hold [%1$s] to Focus",
"create.gui.toolmenu.cycle": "[SCROLL] to Cycle",
"create.gui.symmetryWand.mirrorType": "Mirror",
"create.gui.symmetryWand.orientation": "Orientation",
"create.symmetry.mirror.plane": "Mirror Once",
"create.symmetry.mirror.doublePlane": "Rectangular",
"create.symmetry.mirror.triplePlane": "Octagonal",
"create.orientation.orthogonal": "Orthogonal",
"create.orientation.diagonal": "Diagonal",
"create.orientation.horizontal": "Horizontal",
"create.orientation.alongZ": "Along Z",
"create.orientation.alongX": "Along X",
"create.gui.blockzapper.title": "Handheld Blockzapper",
"create.gui.blockzapper.replaceMode": "Replace Mode",
"create.gui.blockzapper.searchDiagonal": "Follow Diagonals",
"create.gui.blockzapper.searchFuzzy": "Ignore Material Borders",
"create.gui.blockzapper.range": "Spread Range",
"create.gui.blockzapper.needsUpgradedAmplifier": "Requires Upgraded Amplifier",
"create.gui.blockzapper.patternSection": "Pattern",
"create.gui.blockzapper.pattern.solid": "Solid",
"create.gui.blockzapper.pattern.checkered": "Checkerboard",
"create.gui.blockzapper.pattern.inversecheckered": "Inverted Checkerboard",
"create.gui.blockzapper.pattern.chance25": "25% Roll",
"create.gui.blockzapper.pattern.chance50": "50% Roll",
"create.gui.blockzapper.pattern.chance75": "75% Roll",
"create.gui.terrainzapper.title": "Handheld Worldshaper",
"create.gui.terrainzapper.placement": "Placement",
"create.gui.terrainzapper.placement.merged": "Merged",
"create.gui.terrainzapper.placement.attached": "Attached",
"create.gui.terrainzapper.placement.inserted": "Inserted",
"create.gui.terrainzapper.brush": "Brush",
"create.gui.terrainzapper.brush.cuboid": "Cuboid",
"create.gui.terrainzapper.brush.sphere": "Sphere",
"create.gui.terrainzapper.brush.cylinder": "Cylinder",
"create.gui.terrainzapper.tool": "Tool",
"create.gui.terrainzapper.tool.fill": "Fill",
"create.gui.terrainzapper.tool.place": "Place",
"create.gui.terrainzapper.tool.replace": "Replace",
"create.gui.terrainzapper.tool.clear": "Clear",
"create.gui.terrainzapper.tool.overlay": "Overlay",
"create.gui.terrainzapper.tool.flatten": "Flatten",
"create.terrainzapper.shiftRightClickToSet": "Shift-Right-Click to Select a Shape",
"create.blockzapper.usingBlock": "Using: %1$s",
"create.blockzapper.componentUpgrades": "Component Upgrades:",
"create.blockzapper.component.body": "Body",
"create.blockzapper.component.amplifier": "Amplifier",
"create.blockzapper.component.accelerator": "Accelerator",
"create.blockzapper.component.retriever": "Retriever",
"create.blockzapper.component.scope": "Scope",
"create.blockzapper.componentTier.none": "None",
"create.blockzapper.componentTier.brass": "Brass",
"create.blockzapper.componentTier.chromatic": "Chromatic",
"create.blockzapper.leftClickToSet": "Left-Click a Block to set Material",
"create.blockzapper.empty": "Out of Blocks!",
"create.contraptions.movement_mode": "Movement Mode",
"create.contraptions.movement_mode.move_place": "Always Place when Stopped",
"create.contraptions.movement_mode.move_place_returned": "Place only in Starting Position",
"create.contraptions.movement_mode.move_never_place": "Place only when Anchor Destroyed",
"create.contraptions.movement_mode.rotate_place": "Always Place when Stopped",
"create.contraptions.movement_mode.rotate_place_returned": "Only Place near Initial Angle",
"create.contraptions.movement_mode.rotate_never_place": "Only Place when Anchor Destroyed",
"create.contraptions.cart_movement_mode": "Cart Movement Mode",
"create.contraptions.cart_movement_mode.rotate": "Always face toward motion",
"create.contraptions.cart_movement_mode.rotate_paused": "Pause actors while rotating",
"create.contraptions.cart_movement_mode.rotation_locked": "Lock rotation",
"create.logistics.filter": "Filter",
"create.logistics.firstFrequency": "Freq. #1",
"create.logistics.secondFrequency": "Freq. #2",
"create.gui.goggles.generator_stats": "Generator Stats:",
"create.gui.goggles.kinetic_stats": "Kinetic Stats:",
"create.gui.goggles.at_current_speed": "At current Speed",
"create.gui.goggles.base_value": "Base Value",
"create.gui.gauge.info_header": "Gauge Information:",
"create.gui.speed_gauge.title": "Rotation Speed",
"create.gui.stress_gauge.title": "Network Stress",
"create.gui.stress_gauge.capacity": "Remaining Capacity",
"create.gui.stress_gauge.overstressed": "Overstressed",
"create.gui.stress_gauge.no_rotation": "No Rotation",
"create.gui.contraptions.not_fast_enough": "It appears that this %1$s is _not_ rotating with _enough_ _speed_.",
"create.gui.contraptions.network_overstressed": "It appears that this contraption is _overstressed_. Add more sources or _slow_ _down_ the components with a high _stress_ _impact_.",
"create.gui.flexcrate.title": "Adjustable Crate",
"create.gui.flexcrate.storageSpace": "Storage Space",
"create.gui.stockswitch.title": "Stockpile Switch",
"create.gui.stockswitch.lowerLimit": "Lower Threshold",
"create.gui.stockswitch.upperLimit": "Upper Threshold",
"create.gui.stockswitch.startAt": "Start Signal at",
"create.gui.stockswitch.startAbove": "Start Signal above",
"create.gui.stockswitch.stopAt": "Stop Signal at",
"create.gui.stockswitch.stopBelow": "Stop Signal below",
"create.gui.sequenced_gearshift.title": "Sequenced Gearshift",
"create.gui.sequenced_gearshift.instruction": "Instruction",
"create.gui.sequenced_gearshift.instruction.turn_angle": "Turn",
"create.gui.sequenced_gearshift.instruction.turn_angle.angle": "Angle",
"create.gui.sequenced_gearshift.instruction.turn_distance": "Piston",
"create.gui.sequenced_gearshift.instruction.turn_distance.distance": "Distance",
"create.gui.sequenced_gearshift.instruction.wait": "Wait",
"create.gui.sequenced_gearshift.instruction.wait.duration": "Duration",
"create.gui.sequenced_gearshift.instruction.end": "End",
"create.gui.sequenced_gearshift.speed": "Speed, Direction",
"create.gui.sequenced_gearshift.speed.forward": "Input speed, Forwards",
"create.gui.sequenced_gearshift.speed.forward_fast": "Double speed, Forwards",
"create.gui.sequenced_gearshift.speed.back": "Input speed, Reversed",
"create.gui.sequenced_gearshift.speed.back_fast": "Double speed, Reversed",
"create.schematicAndQuill.dimensions": "Schematic Size: %1$sx%2$sx%3$s",
"create.schematicAndQuill.firstPos": "First position set.",
"create.schematicAndQuill.secondPos": "Second position set.",
"create.schematicAndQuill.noTarget": "Hold [Ctrl] to select Air blocks.",
"create.schematicAndQuill.abort": "Removed selection.",
"create.schematicAndQuill.prompt": "Enter a name for the Schematic:",
"create.schematicAndQuill.fallbackName": "My Schematic",
"create.schematicAndQuill.saved": "Saved as %1$s",
"create.schematic.invalid": "[!] Invalid Item - Use the Schematic Table instead",
"create.schematic.position": "Position",
"create.schematic.rotation": "Rotation",
"create.schematic.rotation.none": "None",
"create.schematic.rotation.cw90": "Clockwise 90",
"create.schematic.rotation.cw180": "Clockwise 180",
"create.schematic.rotation.cw270": "Clockwise 270",
"create.schematic.mirror": "Mirror",
"create.schematic.mirror.none": "None",
"create.schematic.mirror.frontBack": "Front-Back",
"create.schematic.mirror.leftRight": "Left-Right",
"create.schematic.tool.deploy": "Deploy",
"create.schematic.tool.move": "Move XZ",
"create.schematic.tool.movey": "Move Y",
"create.schematic.tool.rotate": "Rotate",
"create.schematic.tool.print": "Print",
"create.schematic.tool.flip": "Flip",
"create.schematic.tool.deploy.description.0": "Moves the structure to a location.",
"create.schematic.tool.deploy.description.1": "Right-Click on the ground to place.",
"create.schematic.tool.deploy.description.2": "Hold [Ctrl] to select at a fixed distance.",
"create.schematic.tool.deploy.description.3": "[Ctrl]-Scroll to change the distance.",
"create.schematic.tool.move.description.0": "Shifts the Schematic Horizontally.",
"create.schematic.tool.move.description.1": "Point at the Schematic and [CTRL]-Scroll to push it.",
"create.schematic.tool.move.description.2": "",
"create.schematic.tool.move.description.3": "",
"create.schematic.tool.movey.description.0": "Shifts the Schematic Vertically.",
"create.schematic.tool.movey.description.1": "[CTRL]-Scroll to move it up/down.",
"create.schematic.tool.movey.description.2": "",
"create.schematic.tool.movey.description.3": "",
"create.schematic.tool.rotate.description.0": "Rotates the Schematic around its center.",
"create.schematic.tool.rotate.description.1": "[CTRL]-Scroll to rotate by 90 Degrees.",
"create.schematic.tool.rotate.description.2": "",
"create.schematic.tool.rotate.description.3": "",
"create.schematic.tool.print.description.0": "Instantly places the structure in the world.",
"create.schematic.tool.print.description.1": "[Right-Click] to confirm placement at the current location.",
"create.schematic.tool.print.description.2": "This tool is for Creative Mode only.",
"create.schematic.tool.print.description.3": "",
"create.schematic.tool.flip.description.0": "Flips the Schematic along the face you select.",
"create.schematic.tool.flip.description.1": "Point at the Schematic and [CTRL]-Scroll to flip it.",
"create.schematic.tool.flip.description.2": "",
"create.schematic.tool.flip.description.3": "",
"create.schematics.synchronizing": "Syncing...",
"create.schematics.uploadTooLarge": "Your schematic is too big.",
"create.schematics.maxAllowedSize": "The maximum allowed schematic file size is:",
"create.gui.schematicTable.title": "Schematic Table",
"create.gui.schematicTable.availableSchematics": "Available Schematics",
"create.gui.schematicTable.noSchematics": "No Schematics Saved",
"create.gui.schematicTable.uploading": "Uploading...",
"create.gui.schematicTable.finished": "Upload Finished!",
"create.gui.schematicannon.title": "Schematicannon",
"create.gui.schematicannon.settingsTitle": "Placement Settings",
"create.gui.schematicannon.listPrinter": "Material List Printer",
"create.gui.schematicannon.gunpowderLevel": "Gunpowder at %1$s%%",
"create.gui.schematicannon.shotsRemaining": "Shots left: %1$s",
"create.gui.schematicannon.shotsRemainingWithBackup": "With backup: %1$s",
"create.gui.schematicannon.optionEnabled": "Currently Enabled",
"create.gui.schematicannon.optionDisabled": "Currently Disabled",
"create.gui.schematicannon.option.dontReplaceSolid": "Don't Replace Solid Blocks",
"create.gui.schematicannon.option.replaceWithSolid": "Replace Solid with Solid",
"create.gui.schematicannon.option.replaceWithAny": "Replace Solid with Any",
"create.gui.schematicannon.option.replaceWithEmpty": "Replace Solid with Empty",
"create.gui.schematicannon.option.skipMissing": "Skip missing Blocks",
"create.gui.schematicannon.option.skipTileEntities": "Protect Tile Entities",
"create.gui.schematicannon.option.skipMissing.description": "If the cannon cannot find a required Block for placement, it will continue at the next Location.",
"create.gui.schematicannon.option.skipTileEntities.description": "The cannon will avoid replacing data holding blocks such as Chests.",
"create.gui.schematicannon.option.dontReplaceSolid.description": "The cannon will never replace any Solid blocks in its working area, only non-Solid and Air.",
"create.gui.schematicannon.option.replaceWithSolid.description": "The cannon will only replace Solid blocks in its working area if the Schematic contains a solid Block at the Location.",
"create.gui.schematicannon.option.replaceWithAny.description": "The cannon will replace Solid blocks in its working area if the Schematic contains any Block at the Location.",
"create.gui.schematicannon.option.replaceWithEmpty.description": "The cannon will clear out all blocks in its working area, including those replaced by Air.",
"create.schematicannon.status.idle": "Idle",
"create.schematicannon.status.ready": "Ready",
"create.schematicannon.status.running": "Running",
"create.schematicannon.status.finished": "Finished",
"create.schematicannon.status.paused": "Paused",
"create.schematicannon.status.stopped": "Stopped",
"create.schematicannon.status.noGunpowder": "Out of Gunpowder",
"create.schematicannon.status.targetNotLoaded": "Target is not loaded",
"create.schematicannon.status.targetOutsideRange": "Target too far away",
"create.schematicannon.status.searching": "Searching",
"create.schematicannon.status.skipping": "Skipping",
"create.schematicannon.status.missingBlock": "Missing Item:",
"create.schematicannon.status.placing": "Placing",
"create.schematicannon.status.clearing": "Clearing Blocks",
"create.schematicannon.status.schematicInvalid": "Schematic Invalid",
"create.schematicannon.status.schematicNotPlaced": "Schematic Not Deployed",
"create.schematicannon.status.schematicExpired": "Schematic File Expired",
"create.gui.filter.blacklist": "Blacklist",
"create.gui.filter.blacklist.description": "Items pass if they do NOT match any of the above. An empty Blacklist accepts everything.",
"create.gui.filter.whitelist": "Whitelist",
"create.gui.filter.whitelist.description": "Items pass if they match any of the above. An empty Whitelist rejects everything.",
"create.gui.filter.respect_data": "Respect Data",
"create.gui.filter.respect_data.description": "Items only match if their durability, enchantments, and other attributes match as well.",
"create.gui.filter.ignore_data": "Ignore Data",
"create.gui.filter.ignore_data.description": "Items match regardless of their attributes.",
"create.item_attributes.placeable": "is placeable",
"create.item_attributes.consumable": "can be eaten",
"create.item_attributes.smeltable": "can be Smelted",
"create.item_attributes.washable": "can be Washed",
"create.item_attributes.smokable": "can be Smoked",
"create.item_attributes.blastable": "is smeltable in Blast Furnace",
"create.item_attributes.enchanted": "is enchanted",
"create.item_attributes.damaged": "is damaged",
"create.item_attributes.badly_damaged": "is heavily damaged",
"create.item_attributes.not_stackable": "cannot stack",
"create.item_attributes.equipable": "can be equipped",
"create.item_attributes.furnace_fuel": "is furnace fuel",
"create.item_attributes.in_tag": "is tagged %1$s",
"create.item_attributes.in_item_group": "belongs to %1$s",
"create.item_attributes.added_by": "was added by %1$s",
"create.gui.attribute_filter.no_selected_attributes": "No attributes selected",
"create.gui.attribute_filter.selected_attributes": "Selected attributes:",
"create.gui.attribute_filter.whitelist_disjunctive": "Whitelist (Any)",
"create.gui.attribute_filter.whitelist_disjunctive.description": "Items pass if they have any of the selected attributes.",
"create.gui.attribute_filter.whitelist_conjunctive": "Whitelist (All)",
"create.gui.attribute_filter.whitelist_conjunctive.description": "Items pass only if they have ALL of the selected attributes.",
"create.gui.attribute_filter.blacklist": "Blacklist",
"create.gui.attribute_filter.blacklist.description": "Items pass if they do NOT have any of the selected attributes.",
"create.gui.attribute_filter.add_reference_item": "Add Reference Item",
"create.tooltip.holdKey": "Hold [%1$s]",
"create.tooltip.holdKeyOrKey": "Hold [%1$s] or [%2$s]",
"create.tooltip.keyShift": "Shift",
"create.tooltip.keyCtrl": "Ctrl",
"create.tooltip.speedRequirement": "Speed Requirement: %1$s",
"create.tooltip.speedRequirement.none": "None",
"create.tooltip.speedRequirement.medium": "Moderate",
"create.tooltip.speedRequirement.high": "Fast",
"create.tooltip.stressImpact": "Stress Impact: %1$s",
"create.tooltip.stressImpact.low": "Low",
"create.tooltip.stressImpact.medium": "Moderate",
"create.tooltip.stressImpact.high": "High",
"create.tooltip.stressImpact.overstressed": "Overstressed",
"create.tooltip.capacityProvided": "Stress Capacity: %1$s",
"create.tooltip.capacityProvided.low": "Small",
"create.tooltip.capacityProvided.medium": "Medium",
"create.tooltip.capacityProvided.high": "Large",
"create.tooltip.capacityProvided.asGenerator": "(As Generator)",
"create.tooltip.generationSpeed" : "Generates at %1$s %2$s",
"create.tooltip.analogStrength": "Analog Strength: %1$s/15",
"create.tooltip.wip": "WIP",
"create.tooltip.workInProgress": "Work in progress!",
"create.tooltip.randomWipDescription0": "Please keep this item away from children.",
"create.tooltip.randomWipDescription1": "A baby panda dies every time you use this item. Every. Time.",
"create.tooltip.randomWipDescription2": "Use at your own risk.",
"create.tooltip.randomWipDescription3": "This is not the item you are looking for, *finger-wiggles* please disperse.",
"create.tooltip.randomWipDescription4": "This item will self-destruct in 10 seconds. 10, 9, 8...",
"create.tooltip.randomWipDescription5": "Believe me, it's useless.",
"create.tooltip.randomWipDescription6": "By using this item, you hereby consent to our disclaimer and agree to its terms.",
"create.tooltip.randomWipDescription7": "This one maybe isn't for you. What about that one?",
"create.tooltip.randomWipDescription8": "Use it and regret your decision immediately.",
"create.mechanical_mixer.min_ingredients": "Min. Ingredients",
"create.command.killTPSCommand": "killtps",
"create.command.killTPSCommand.status.slowed_by.0": "[Create]: Server tick is currently slowed by %s ms :o",
"create.command.killTPSCommand.status.slowed_by.1": "[Create]: Server tick is slowed by %s ms now >:)",
"create.command.killTPSCommand.status.slowed_by.2": "[Create]: Server tick is back to regular speed :D",
"create.command.killTPSCommand.status.usage.0": "[Create]: use /killtps stop to bring back server tick to regular speed",
"create.command.killTPSCommand.status.usage.1": "[Create]: use /killtps start <tickTime> to artificially slow down the server tick",
"create.command.killTPSCommand.argument.tickTime": "tickTime",
"advancement.create.root": "Welcome to Create",
"advancement.create.root.desc": "It's time to start building some amazing Contraptions!",
"advancement.create.andesite_alloy": "Alliterations Aplenty",
"advancement.create.andesite_alloy.desc": "Create's materials have weird names, Andesite Alloy is one of them.",
"advancement.create.its_alive": "It's Alive!",
"advancement.create.its_alive.desc": "Watch your first kinetic component spin.",
"advancement.create.shifting_gears": "Shifting Gear",
"advancement.create.shifting_gears.desc": "Connect a large to a small cogwheel allowing you to change the speed of your contraption.",
"advancement.create.overstressed": "Overstressed",
"advancement.create.overstressed.desc": "Experience the limits of stress firsthand.",
"advancement.create.belt": "Convey it all",
"advancement.create.belt.desc": "Connect two shafts with a Mechanical Belt.",
"advancement.create.wrench": "Configure Conveniently",
"advancement.create.wrench.desc": "Create a Wrench to aid you in building your contraptions.",
"advancement.create.goggles": "Stress-o-vision",
"advancement.create.goggles.desc": "Create some goggles to aid you in getting more kinetic information for components.",
"advancement.create.speed_gauge": "But how fast exactly?",
"advancement.create.speed_gauge.desc": "Place and power a Speedometer. Look at it through your goggles to read its exact value.",
"advancement.create.stress_gauge": "But how stressed exactly?",
"advancement.create.stress_gauge.desc": "Place and power a Stressometer. Look at it through your goggles to read its exact value.",
"advancement.create.water_wheel": "Harnessing Hydraulics",
"advancement.create.water_wheel.desc": "Place a Water Wheel and try getting it to spin!",
"advancement.create.lava_wheel": "Magma Wheel",
"advancement.create.lava_wheel.desc": "This shouldn't have worked.",
"advancement.create.millstone": "Pocket Crusher",
"advancement.create.millstone.desc": "Place and power a Millstone",
"advancement.create.andesite_casing": "The Andesite Age",
"advancement.create.andesite_casing.desc": "Use some Andesite Alloy and Wood to create a basic Casing.",
"advancement.create.drill": "Stationary breakers",
"advancement.create.drill.desc": "Place and power a Mechanical Drill",
"advancement.create.press": "Press goes 'Bonk!'",
"advancement.create.press.desc": "Power a Mechanical Press and use it to create some Plates.",
"advancement.create.polished_rose_quartz": "Pink Diamonds",
"advancement.create.polished_rose_quartz.desc": "Use a piece of sand paper to polish Rose Quartz until it becomes transparent.",
"advancement.create.electron_tube": "Beep boop",
"advancement.create.electron_tube.desc": "Make some Electron Tubes, useful in crafting less primitive machinery.",
"advancement.create.saw": "Stationary Chopping",
"advancement.create.saw.desc": "Place and power a Mechanical Saw",
"advancement.create.basin": "Basin Operation",
"advancement.create.basin.desc": "Place a basin and try throwing items into it.",
"advancement.create.mixer": "Mixin' it Up",
"advancement.create.mixer.desc": "Place a Mechanical Mixer above the basin, power it, and start mixing some ingredients.",
"advancement.create.compact": "Automated Compacting",
"advancement.create.compact.desc": "Use a press and a basin to compact some items.",
"advancement.create.expert_lane_1": "The Andesite Expert Lane",
"advancement.create.expert_lane_1.desc": "Work in Progress",
"advancement.create.brass": "An Actual Alloy",
"advancement.create.brass.desc": "Use Crushed Copper and Crushed Zinc to create some Brass.",
"advancement.create.brass_casing": "The Brass Age",
"advancement.create.brass_casing.desc": "Use newly obtained Brass and some Wood to create a more advanced Casing.",
"advancement.create.copper_casing": "The Copper Age",
"advancement.create.copper_casing.desc": "Use some copper sheets to create Copper Casing.",
"advancement.create.crafter": "Automated Assembly",
"advancement.create.crafter.desc": "Place and power some Mechanical Crafters",
"advancement.create.deployer": "Poke, Place, and Attack",
"advancement.create.deployer.desc": "Place and power a Deployer, the perfect reflection of yourself.",
"advancement.create.fist_bump": "Pound It, Bro!",
"advancement.create.fist_bump.desc": "Make two Deployers fist-bump.",
"advancement.create.crushing_wheel": "A Pair of Giants",
"advancement.create.crushing_wheel.desc": "Create some Crushing Wheels to break down more materials more effectively.",
"advancement.create.chromatic_compound": "Bipolar Minerals",
"advancement.create.chromatic_compound.desc": "Create a Bar of Chromatic Compound.",
"advancement.create.shadow_steel": "Void Returner",
"advancement.create.shadow_steel.desc": "Create Shadow Steel, a metal bar of nothingness.",
"advancement.create.refined_radiance": "Bright and Inspiring",
"advancement.create.refined_radiance.desc": "Create Refined Radiance, a powerful chromatic substance.",
"advancement.create.zapper": "Building with style",
"advancement.create.zapper.desc": "Craft a Blockzapper. A radiant laser gun that helps you build.",
"advancement.create.upgraded_zapper": "Radiant Overdrive",
"advancement.create.upgraded_zapper.desc": "Create and activate a fully upgraded Blockzapper.",
"advancement.create.symmetry_wand": "Radiant Mirrors",
"advancement.create.symmetry_wand.desc": "Craft a Staff of Symmetry.",
"advancement.create.deforester": "Radiant Chopping",
"advancement.create.deforester.desc": "Craft a Deforester, and say goodbye to the local forest.",
"advancement.create.eob": "End of Beta",
"advancement.create.eob.desc": "Expect more content here in the future. <3",
"create.subtitle.schematicannon_launch_block": "Schematicannon shoots",
"create.subtitle.schematicannon_finish": "Schematicannon finishes",
"create.subtitle.slime_added": "Slime squishes",
"create.subtitle.mechanical_press_activation": "Mechanical Press activates",
"create.subtitle.mechanical_press_item_break": "Metal clanks",
"create.subtitle.blockzapper_place": "Blocks zap into place",
"create.subtitle.blockzapper_confirm": "Affirmative Ding",
"create.subtitle.blockzapper_deny": "Declining Boop",
"create.subtitle.block_funnel_eat": "Funnel CHOMPS",
"_comment": "-------------------------] ITEM DESCRIPTIONS [------------------------------------------------",
"item.create.example_item.tooltip": "EXAMPLE ITEM (just a marker that this tooltip exists)",
"item.create.example_item.tooltip.summary": "A brief description of the item. _Underscores_ highlight a term.",
"item.create.example_item.tooltip.condition1": "When this",
@ -1221,6 +497,17 @@
"tool.create.rose_quartz.tooltip": "ROSE QUARTZ TOOLS",
"tool.create.rose_quartz.tooltip.summary": "This tool grants you a _greater_ _reach_ for _breaking_ _blocks_ or _placing_ _blocks_ from the off-hand.",
"itemGroup.create.base": "Create",
"itemGroup.create.palettes": "Create Palettes"
"create.tooltip.wip": "WIP",
"create.tooltip.workInProgress": "Work in progress!",
"create.tooltip.randomWipDescription0": "Please keep this item away from children.",
"create.tooltip.randomWipDescription1": "A baby panda dies every time you use this item. Every. Time.",
"create.tooltip.randomWipDescription2": "Use at your own risk.",
"create.tooltip.randomWipDescription3": "This is not the item you are looking for, *finger-wiggles* please disperse.",
"create.tooltip.randomWipDescription4": "This item will self-destruct in 10 seconds. 10, 9, 8...",
"create.tooltip.randomWipDescription5": "Believe me, it's useless.",
"create.tooltip.randomWipDescription6": "By using this item, you hereby consent to our disclaimer and agree to its terms.",
"create.tooltip.randomWipDescription7": "This one maybe isn't for you. What about that one?",
"create.tooltip.randomWipDescription8": "Use it and regret your decision immediately."
}