diff --git a/README.md b/README.md index 12e95524..335c64fd 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,9 @@ -# Extended Crafting: Unofficial +# Extended Crafting: Expanded Plus Adds some new ways to craft items, as well as extra crafting items and utilities. -Originally forked for use in Monifactory. "What if we tried more tables?" +Originally forked for use in Monifactory. "What if we tried more tables? ## Download - - [ExtendedCrafting: Monifactory Edition (Curseforge)](https://www.curseforge.com/minecraft/mc-mods/extended-crafting-monifactory-edition) - [BlakeBr0's Cucumber Library (required dependency)](https://www.curseforge.com/minecraft/mc-mods/cucumber) @@ -12,7 +11,7 @@ Originally forked for use in Monifactory. "What if we tried more tables?" ## What has changed from the original -- Added a new tier of table with a 11x11 grid and Netherite components +- Added a new tier of table with a 13x13 grid - Auto Table Speed is now configurable per tier (default to 8gt/0.4s per craft) - Auto Table item input logic reworked to allow the table to keep up, can now import more than one item per tick. - JEI Compatibility: Recipes with no tier restriction are only shown in the smallest table that can fit them. Tier-restricted recipes still show the warning icon. [TODO: Make this a config option] diff --git a/build.gradle b/build.gradle index 33498ed5..bb43d27a 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ plugins { id 'org.spongepowered.mixin' version '0.7.+' } -version = '1.20.1-6.1.5u' +version = '1.20.1-6.1.6u' group = 'com.witherschat.extendedcrafting' base { @@ -107,7 +107,7 @@ dependencies { jar { manifest { attributes([ - 'Specification-Title': 'Extended Crafting: Monifactory Edition', + 'Specification-Title': 'Extended Crafting: Expanded Plus', 'Specification-Vendor': 'WithersChat, BlakeBr0', 'Specification-Version': '1', 'Implementation-Title': project.name, diff --git a/gradle.properties b/gradle.properties index 45dc5a25..d422cbd9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,10 +3,10 @@ org.gradle.jvmargs=-Xmx3G org.gradle.daemon=false -forge_version=1.20.1-47.3.7 -cucumber_version=1.20.1-7.0.11 -jei_version=15.18.0.79 +forge_version=1.20.1-47.4.9 +cucumber_version=1.20.1-7.0.16 +jei_version=15.20.0.112 jei_mc_version=1.20.1 -jade_version=5672013 -patchouli_version=1.20.1-84-FORGE -crafttweaker_version=1.20.1:14.0.43 \ No newline at end of file +jade_version=6855440 +patchouli_version=1.20.1-84.1-FORGE +crafttweaker_version=1.20.1:14.0.59 \ No newline at end of file diff --git a/src/main/java/com/blakebr0/extendedcrafting/compat/JadeCompat.java b/src/main/java/com/blakebr0/extendedcrafting/compat/JadeCompat.java index 3c714910..47de0b84 100644 --- a/src/main/java/com/blakebr0/extendedcrafting/compat/JadeCompat.java +++ b/src/main/java/com/blakebr0/extendedcrafting/compat/JadeCompat.java @@ -16,9 +16,10 @@ import snownee.jade.api.WailaPlugin; import snownee.jade.api.config.IPluginConfig; +@SuppressWarnings("removal") @WailaPlugin public class JadeCompat implements IWailaPlugin { - private static final ResourceLocation CRAFTING_CORE_PROVIDER = new ResourceLocation(ExtendedCrafting.MOD_ID, "crafting_core"); + private static final ResourceLocation CRAFTING_CORE_PROVIDER = new ResourceLocation(ExtendedCrafting.MOD_ID + ":crafting_core"); private static final ResourceLocation BASIC_TABLE_PROVIDER = new ResourceLocation(ExtendedCrafting.MOD_ID, "basic_table"); private static final ResourceLocation ADVANCED_TABLE_PROVIDER = new ResourceLocation(ExtendedCrafting.MOD_ID, "advanced_table"); private static final ResourceLocation ELITE_TABLE_PROVIDER = new ResourceLocation(ExtendedCrafting.MOD_ID, "elite_table"); @@ -117,7 +118,7 @@ public ResourceLocation getUid() { } }, EpicTableBlock.class); - registration.registerBlockComponent(new IBlockComponentProvider() { + registration.registerBlockComponent(new IBlockComponentProvider() { @Override public void appendTooltip(ITooltip tooltip, BlockAccessor accessor, IPluginConfig config) { tooltip.add(ModTooltips.TIER.args(1).build()); diff --git a/src/main/java/com/blakebr0/extendedcrafting/compat/jei/JeiCompat.java b/src/main/java/com/blakebr0/extendedcrafting/compat/jei/JeiCompat.java index 4a616c1c..af6791d2 100644 --- a/src/main/java/com/blakebr0/extendedcrafting/compat/jei/JeiCompat.java +++ b/src/main/java/com/blakebr0/extendedcrafting/compat/jei/JeiCompat.java @@ -97,7 +97,7 @@ public void registerRecipes(IRecipeRegistration registration) { registration.addRecipes(EliteTableCategory.RECIPE_TYPE, recipes.getOrDefault(3, new ArrayList<>())); registration.addRecipes(UltimateTableCategory.RECIPE_TYPE, recipes.getOrDefault(4, new ArrayList<>())); registration.addRecipes(EpicTableCategory.RECIPE_TYPE, recipes.getOrDefault(5, new ArrayList<>())); - } + } if (ModConfigs.ENABLE_COMPRESSOR.get()) { registration.addRecipes(CompressorCraftingCategory.RECIPE_TYPE, manager.getAllRecipesFor(ModRecipeTypes.COMPRESSOR.get())); @@ -234,7 +234,7 @@ public void registerGuiHandlers(IGuiHandlerRegistration registration) { registration.addRecipeClickArea(AdvancedAutoTableScreen.class, 121, 39, 21, 14, AdvancedTableCategory.RECIPE_TYPE); registration.addRecipeClickArea(EliteAutoTableScreen.class, 158, 72, 21, 14, EliteTableCategory.RECIPE_TYPE); registration.addRecipeClickArea(UltimateAutoTableScreen.class, 193, 90, 21, 14, UltimateTableCategory.RECIPE_TYPE); - registration.addRecipeClickArea(EpicAutoTableScreen.class, 237, 108, 21, 14, UltimateTableCategory.RECIPE_TYPE); + registration.addRecipeClickArea(EpicAutoTableScreen.class, 237, 108, 21, 14, EpicTableCategory.RECIPE_TYPE); } } diff --git a/src/main/java/com/blakebr0/extendedcrafting/compat/jei/category/table/EpicTableCategory.java b/src/main/java/com/blakebr0/extendedcrafting/compat/jei/category/table/EpicTableCategory.java index e7621e21..a6cbe667 100644 --- a/src/main/java/com/blakebr0/extendedcrafting/compat/jei/category/table/EpicTableCategory.java +++ b/src/main/java/com/blakebr0/extendedcrafting/compat/jei/category/table/EpicTableCategory.java @@ -79,7 +79,8 @@ public void draw(ITableRecipe recipe, IRecipeSlotsView slots, GuiGraphics gfx, d matrix.popPose(); } - @Override + @SuppressWarnings("removal") + @Override public List getTooltipStrings(ITableRecipe recipe, IRecipeSlotsView slots, double mouseX, double mouseY) { var shapeless = recipe instanceof ShapelessTableRecipe; int sX = (shapeless ? 304 : 324) / 2, sY = 365 / 2; diff --git a/src/main/java/com/blakebr0/extendedcrafting/container/AdvancedAutoTableContainer.java b/src/main/java/com/blakebr0/extendedcrafting/container/AdvancedAutoTableContainer.java index 5d2b158a..989886bb 100644 --- a/src/main/java/com/blakebr0/extendedcrafting/container/AdvancedAutoTableContainer.java +++ b/src/main/java/com/blakebr0/extendedcrafting/container/AdvancedAutoTableContainer.java @@ -60,6 +60,9 @@ private AdvancedAutoTableContainer(MenuType type, int id, Inventory playerInv @Override public void slotsChanged(Container matrix) { + if (this.level.isClientSide) { + return; + } var recipe = this.level.getRecipeManager().getRecipeFor(ModRecipeTypes.TABLE.get(), matrix, this.level); if (recipe.isPresent()) { diff --git a/src/main/java/com/blakebr0/extendedcrafting/container/AdvancedTableContainer.java b/src/main/java/com/blakebr0/extendedcrafting/container/AdvancedTableContainer.java index 5d30a914..4f76d4a0 100644 --- a/src/main/java/com/blakebr0/extendedcrafting/container/AdvancedTableContainer.java +++ b/src/main/java/com/blakebr0/extendedcrafting/container/AdvancedTableContainer.java @@ -57,6 +57,9 @@ private AdvancedTableContainer(MenuType type, int id, Inventory playerInvento @Override public void slotsChanged(Container matrix) { + if (this.level.isClientSide) { + return; + } var recipe = this.level.getRecipeManager().getRecipeFor(ModRecipeTypes.TABLE.get(), matrix, this.level); if (recipe.isPresent()) { diff --git a/src/main/java/com/blakebr0/extendedcrafting/container/BasicAutoTableContainer.java b/src/main/java/com/blakebr0/extendedcrafting/container/BasicAutoTableContainer.java index 196f94f9..d54a0e9e 100644 --- a/src/main/java/com/blakebr0/extendedcrafting/container/BasicAutoTableContainer.java +++ b/src/main/java/com/blakebr0/extendedcrafting/container/BasicAutoTableContainer.java @@ -64,6 +64,9 @@ private BasicAutoTableContainer(MenuType type, int id, Inventory playerInvent @Override public void slotsChanged(Container matrix) { + if (this.level.isClientSide) { + return; + } var recipe = this.level.getRecipeManager().getRecipeFor(ModRecipeTypes.TABLE.get(), matrix, this.level); this.isVanillaRecipe = false; diff --git a/src/main/java/com/blakebr0/extendedcrafting/container/BasicTableContainer.java b/src/main/java/com/blakebr0/extendedcrafting/container/BasicTableContainer.java index b8274b26..fee96da6 100644 --- a/src/main/java/com/blakebr0/extendedcrafting/container/BasicTableContainer.java +++ b/src/main/java/com/blakebr0/extendedcrafting/container/BasicTableContainer.java @@ -61,6 +61,9 @@ private BasicTableContainer(MenuType type, int id, Inventory playerInventory, @Override public void slotsChanged(Container matrix) { + if (this.level.isClientSide) { + return; + } var recipe = this.level.getRecipeManager().getRecipeFor(ModRecipeTypes.TABLE.get(), matrix, this.level); this.isVanillaRecipe = false; diff --git a/src/main/java/com/blakebr0/extendedcrafting/container/EliteAutoTableContainer.java b/src/main/java/com/blakebr0/extendedcrafting/container/EliteAutoTableContainer.java index 930f7893..31173734 100644 --- a/src/main/java/com/blakebr0/extendedcrafting/container/EliteAutoTableContainer.java +++ b/src/main/java/com/blakebr0/extendedcrafting/container/EliteAutoTableContainer.java @@ -60,6 +60,9 @@ private EliteAutoTableContainer(MenuType type, int id, Inventory playerInvent @Override public void slotsChanged(Container matrix) { + if (this.level.isClientSide) { + return; + } var recipe = this.level.getRecipeManager().getRecipeFor(ModRecipeTypes.TABLE.get(), matrix, this.level); if (recipe.isPresent()) { diff --git a/src/main/java/com/blakebr0/extendedcrafting/container/EliteTableContainer.java b/src/main/java/com/blakebr0/extendedcrafting/container/EliteTableContainer.java index 28499c95..9104ee92 100644 --- a/src/main/java/com/blakebr0/extendedcrafting/container/EliteTableContainer.java +++ b/src/main/java/com/blakebr0/extendedcrafting/container/EliteTableContainer.java @@ -57,6 +57,9 @@ private EliteTableContainer(MenuType type, int id, Inventory playerInventory, @Override public void slotsChanged(Container matrix) { + if (this.level.isClientSide) { + return; + } var recipe = this.level.getRecipeManager().getRecipeFor(ModRecipeTypes.TABLE.get(), matrix, this.level); if (recipe.isPresent()) { diff --git a/src/main/java/com/blakebr0/extendedcrafting/container/EpicAutoTableContainer.java b/src/main/java/com/blakebr0/extendedcrafting/container/EpicAutoTableContainer.java index 28ce8726..13bb31be 100644 --- a/src/main/java/com/blakebr0/extendedcrafting/container/EpicAutoTableContainer.java +++ b/src/main/java/com/blakebr0/extendedcrafting/container/EpicAutoTableContainer.java @@ -60,6 +60,9 @@ private EpicAutoTableContainer(MenuType type, int id, Inventory playerInvento @Override public void slotsChanged(Container matrix) { + if (this.level.isClientSide) { + return; + } var recipe = this.level.getRecipeManager().getRecipeFor(ModRecipeTypes.TABLE.get(), matrix, this.level); if (recipe.isPresent()) { diff --git a/src/main/java/com/blakebr0/extendedcrafting/container/EpicTableContainer.java b/src/main/java/com/blakebr0/extendedcrafting/container/EpicTableContainer.java index 86255796..093c0d30 100644 --- a/src/main/java/com/blakebr0/extendedcrafting/container/EpicTableContainer.java +++ b/src/main/java/com/blakebr0/extendedcrafting/container/EpicTableContainer.java @@ -57,6 +57,9 @@ private EpicTableContainer(MenuType type, int id, Inventory playerInventory, @Override public void slotsChanged(Container matrix) { + if (this.level.isClientSide) { + return; + } var recipe = this.level.getRecipeManager().getRecipeFor(ModRecipeTypes.TABLE.get(), matrix, this.level); if (recipe.isPresent()) { diff --git a/src/main/java/com/blakebr0/extendedcrafting/container/UltimateAutoTableContainer.java b/src/main/java/com/blakebr0/extendedcrafting/container/UltimateAutoTableContainer.java index 30a53913..b3de3e78 100644 --- a/src/main/java/com/blakebr0/extendedcrafting/container/UltimateAutoTableContainer.java +++ b/src/main/java/com/blakebr0/extendedcrafting/container/UltimateAutoTableContainer.java @@ -60,6 +60,9 @@ private UltimateAutoTableContainer(MenuType type, int id, Inventory playerInv @Override public void slotsChanged(Container matrix) { + if (this.level.isClientSide) { + return; + } var recipe = this.level.getRecipeManager().getRecipeFor(ModRecipeTypes.TABLE.get(), matrix, this.level); if (recipe.isPresent()) { diff --git a/src/main/java/com/blakebr0/extendedcrafting/container/UltimateTableContainer.java b/src/main/java/com/blakebr0/extendedcrafting/container/UltimateTableContainer.java index b2330808..1ccd9f17 100644 --- a/src/main/java/com/blakebr0/extendedcrafting/container/UltimateTableContainer.java +++ b/src/main/java/com/blakebr0/extendedcrafting/container/UltimateTableContainer.java @@ -57,6 +57,9 @@ private UltimateTableContainer(MenuType type, int id, Inventory playerInvento @Override public void slotsChanged(Container matrix) { + if (this.level.isClientSide) { + return; + } var recipe = this.level.getRecipeManager().getRecipeFor(ModRecipeTypes.TABLE.get(), matrix, this.level); if (recipe.isPresent()) { diff --git a/src/main/java/com/blakebr0/extendedcrafting/crafting/recipe/ShapedTableRecipe.java b/src/main/java/com/blakebr0/extendedcrafting/crafting/recipe/ShapedTableRecipe.java index c2f6eefd..22bdc3b4 100644 --- a/src/main/java/com/blakebr0/extendedcrafting/crafting/recipe/ShapedTableRecipe.java +++ b/src/main/java/com/blakebr0/extendedcrafting/crafting/recipe/ShapedTableRecipe.java @@ -272,7 +272,8 @@ public int getTier() { : this.width < 6 && this.height < 6 ? 2 : this.width < 8 && this.height < 8 ? 3 : this.width < 10 && this.height < 10 ? 4 - : 5; + : this.width < 12 && this.height < 12 ? 5 + : 6; } /** @@ -286,7 +287,8 @@ private int getTierFromGridSize(IItemHandler inv) { : size < 26 ? 2 : size < 50 ? 3 : size < 82 ? 4 - : 5; + : size < 122 ? 5 + : 6; } /** diff --git a/src/main/java/com/blakebr0/extendedcrafting/crafting/recipe/ShapelessTableRecipe.java b/src/main/java/com/blakebr0/extendedcrafting/crafting/recipe/ShapelessTableRecipe.java index f29a68c5..8bb174a9 100644 --- a/src/main/java/com/blakebr0/extendedcrafting/crafting/recipe/ShapelessTableRecipe.java +++ b/src/main/java/com/blakebr0/extendedcrafting/crafting/recipe/ShapelessTableRecipe.java @@ -229,7 +229,8 @@ private static int getTierFromSize(int size) { : size < 26 ? 2 : size < 50 ? 3 : size < 82 ? 4 - : 5; + : size < 122 ? 5 + : 6; } /** diff --git a/src/main/java/com/blakebr0/extendedcrafting/init/ModCreativeModeTabs.java b/src/main/java/com/blakebr0/extendedcrafting/init/ModCreativeModeTabs.java index 6d0226bb..b5f31e45 100644 --- a/src/main/java/com/blakebr0/extendedcrafting/init/ModCreativeModeTabs.java +++ b/src/main/java/com/blakebr0/extendedcrafting/init/ModCreativeModeTabs.java @@ -16,6 +16,7 @@ public final class ModCreativeModeTabs { public static final DeferredRegister REGISTRY = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, ExtendedCrafting.MOD_ID); + @SuppressWarnings("unused") public static final RegistryObject CREATIVE_TAB = REGISTRY.register("creative_tab", () -> CreativeModeTab.builder() .title(Component.translatable("itemGroup.extendedcrafting")) .icon(() -> new ItemStack(ModItems.LUMINESSENCE.get())) @@ -107,6 +108,11 @@ public final class ModCreativeModeTabs { NBTHelper.setString(stack, "Type", "CraftTweaker"); output.accept(stack, ModFeatureFlags.RECIPE_MAKER); + stack = new ItemStack(ModItems.RECIPE_MAKER.get()); + NBTHelper.setBoolean(stack, "Shapeless", false); + NBTHelper.setString(stack, "Type", "KubeJS"); + output.accept(stack, ModFeatureFlags.RECIPE_MAKER); + for (var singularity : SingularityRegistry.getInstance().getSingularities()) { if (singularity.isEnabled()) { output.accept(SingularityUtils.getItemForSingularity(singularity), ModFeatureFlags.SINGULARITIES); diff --git a/src/main/java/com/blakebr0/extendedcrafting/init/ModTileEntities.java b/src/main/java/com/blakebr0/extendedcrafting/init/ModTileEntities.java index c2e122ef..2f0a8629 100644 --- a/src/main/java/com/blakebr0/extendedcrafting/init/ModTileEntities.java +++ b/src/main/java/com/blakebr0/extendedcrafting/init/ModTileEntities.java @@ -43,7 +43,7 @@ public final class ModTileEntities { public static final RegistryObject> ELITE_TABLE = register("elite_table", EliteTableTileEntity::new, () -> new Block[] { ModBlocks.ELITE_TABLE.get() }); public static final RegistryObject> ULTIMATE_TABLE = register("ultimate_table", UltimateTableTileEntity::new, () -> new Block[] { ModBlocks.ULTIMATE_TABLE.get() }); public static final RegistryObject> EPIC_TABLE = register("epic_table", EpicTableTileEntity::new, () -> new Block[] { ModBlocks.EPIC_TABLE.get() }); - public static final RegistryObject> BASIC_AUTO_TABLE = register("basic_auto_table", AutoTableTileEntity.Basic::new, () -> new Block[] { ModBlocks.BASIC_AUTO_TABLE.get() }); + public static final RegistryObject> BASIC_AUTO_TABLE = register("basic_auto_table", AutoTableTileEntity.Basic::new, () -> new Block[] { ModBlocks.BASIC_AUTO_TABLE.get() }); public static final RegistryObject> ADVANCED_AUTO_TABLE = register("advanced_auto_table", AutoTableTileEntity.Advanced::new, () -> new Block[] { ModBlocks.ADVANCED_AUTO_TABLE.get() }); public static final RegistryObject> ELITE_AUTO_TABLE = register("elite_auto_table", AutoTableTileEntity.Elite::new, () -> new Block[] { ModBlocks.ELITE_AUTO_TABLE.get() }); public static final RegistryObject> ULTIMATE_AUTO_TABLE = register("ultimate_auto_table", AutoTableTileEntity.Ultimate::new, () -> new Block[] { ModBlocks.ULTIMATE_AUTO_TABLE.get() }); diff --git a/src/main/java/com/blakebr0/extendedcrafting/item/RecipeMakerItem.java b/src/main/java/com/blakebr0/extendedcrafting/item/RecipeMakerItem.java index fe4f0d65..458a954b 100644 --- a/src/main/java/com/blakebr0/extendedcrafting/item/RecipeMakerItem.java +++ b/src/main/java/com/blakebr0/extendedcrafting/item/RecipeMakerItem.java @@ -12,6 +12,7 @@ import com.blakebr0.extendedcrafting.tileentity.BasicTableTileEntity; import com.blakebr0.extendedcrafting.tileentity.CraftingCoreTileEntity; import com.blakebr0.extendedcrafting.tileentity.EliteTableTileEntity; +import com.blakebr0.extendedcrafting.tileentity.EpicTableTileEntity; import com.blakebr0.extendedcrafting.tileentity.EnderCrafterTileEntity; import com.blakebr0.extendedcrafting.tileentity.FluxCrafterTileEntity; import com.blakebr0.extendedcrafting.tileentity.UltimateTableTileEntity; @@ -26,6 +27,7 @@ import net.minecraft.world.InteractionResultHolder; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; import net.minecraft.world.item.TooltipFlag; import net.minecraft.world.item.context.UseOnContext; import net.minecraft.world.item.crafting.Ingredient; @@ -37,6 +39,7 @@ import net.minecraftforge.fml.ModList; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.registries.ForgeRegistries; +import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.HashMap; @@ -76,16 +79,45 @@ public InteractionResult onItemUseFirst(ItemStack stack, UseOnContext context) { ? "FluxCrafting" : "TableCrafting"; + int gridSlots = getGridSlots(inventory); + if (!hasItems(inventory, gridSlots)) { + player.sendSystemMessage(Localizable.of("message.extendedcrafting.no_items_in_grid").build()); + return InteractionResult.SUCCESS; + } + + var outputStack = player.getInventory().getItem(0); + if (outputStack.isEmpty()) { + player.sendSystemMessage(Localizable.of("message.extendedcrafting.no_output_item_warning").build()); + } + String string; if ("CraftTweaker".equals(type)) { string = isShapeless(stack) - ? makeShapelessCraftTweakerTableRecipe(inventory, block) - : makeShapedCraftTweakerTableRecipe(inventory, block); + ? makeShapelessCraftTweakerTableRecipe(inventory, block, outputStack, tile) + : makeShapedCraftTweakerTableRecipe(inventory, block, outputStack, tile); + + } else if ("KubeJS".equals(type)) { + String json = isShapeless(stack) + ? makeShapelessDatapackTableRecipe(inventory, block, outputStack, tile) + : makeShapedDatapackTableRecipe(inventory, block, outputStack, tile); + + if ("TOO MANY ITEMS".equals(json)) { + player.sendSystemMessage(Localizable.of("message.extendedcrafting.max_unique_items_exceeded").args(KEYS.length).build()); + return InteractionResult.SUCCESS; + } + + json = getString(json); + + var outputId = ForgeRegistries.ITEMS.getKey(outputStack.getItem()); + var outputItemId = (outputStack.isEmpty() || outputStack.getItem() == Items.AIR) ? "" : (outputId == null ? "minecraft:air" : outputId.toString()); + String comment = outputItemId.isEmpty() ? "" : "\n // " + outputItemId; + String idPart = outputItemId.isEmpty() ? "" : "\n .id('" + outputItemId + "');"; + string = "ServerEvents.recipes((event) => {" + comment + "\n event.custom({\n" + json + "\n })" + idPart + "\n});"; } else { string = isShapeless(stack) - ? makeShapelessDatapackTableRecipe(inventory, block) - : makeShapedDatapackTableRecipe(inventory, block); + ? makeShapelessDatapackTableRecipe(inventory, block, outputStack, tile) + : makeShapedDatapackTableRecipe(inventory, block, outputStack, tile); if ("TOO MANY ITEMS".equals(string)) { player.sendSystemMessage(Localizable.of("message.extendedcrafting.max_unique_items_exceeded").args(KEYS.length).build()); @@ -107,9 +139,21 @@ public InteractionResult onItemUseFirst(ItemStack stack, UseOnContext context) { } else if (tile instanceof CraftingCoreTileEntity core) { if (level.isClientSide()) { var type = NBTHelper.getString(stack, "Type"); - var string = "CraftTweaker".equals(type) - ? makeCraftTweakerCombinationRecipe(core) - : makeDatapackCombinationRecipe(core); + var outputStack = player.getInventory().getItem(0); + var outputId = ForgeRegistries.ITEMS.getKey(outputStack.getItem()); + var outputItemId = (outputStack.isEmpty() || outputStack.getItem() == Items.AIR) ? "" : (outputId == null ? "minecraft:air" : outputId.toString()); + String string; + if ("CraftTweaker".equals(type)) { + string = makeCraftTweakerCombinationRecipe(core); + } else if ("KubeJS".equals(type)) { + String json = makeDatapackCombinationRecipe(core, outputStack); + json = getString(json); + String comment = outputItemId.isEmpty() ? "" : "\n // " + outputItemId; + String idPart = outputItemId.isEmpty() ? "" : "\n .id('" + outputItemId + "');"; + string = "ServerEvents.recipes((event) => {" + comment + "\n event.custom({\n" + json + "\n })" + idPart + "\n});"; + } else { + string = makeDatapackCombinationRecipe(core, outputStack); + } setClipboard(string); @@ -122,11 +166,25 @@ public InteractionResult onItemUseFirst(ItemStack stack, UseOnContext context) { return InteractionResult.PASS; } - @Override - public InteractionResultHolder use(Level level, Player player, InteractionHand hand) { - if (player.isCrouching()) { - var stack = player.getItemInHand(hand); + @NotNull + private String getString(String json) { + String[] lines = json.split("\n"); + StringBuilder sb = new StringBuilder(); + for (int i = 1; i < lines.length - 1; i++) { + if (i > 1) sb.append("\n"); + sb.append(lines[i]); + } + json = sb.toString(); + json = json.replaceAll("\"([^\"]+)\":", "$1:"); + json = json.replace("\"", "'"); + return json; + } + + @Override + public @NotNull InteractionResultHolder use(@NotNull Level level, Player player, @NotNull InteractionHand hand) { + var stack = player.getItemInHand(hand); + if (player.isCrouching()) { NBTHelper.flipBoolean(stack, "Shapeless"); if (level.isClientSide()) { @@ -139,8 +197,10 @@ public InteractionResultHolder use(Level level, Player player, Intera @OnlyIn(Dist.CLIENT) @Override - public void appendHoverText(ItemStack stack, Level level, List tooltip, TooltipFlag flag) { - tooltip.add(ModTooltips.TYPE.args(NBTHelper.getString(stack, "Type")).build()); + public void appendHoverText(@NotNull ItemStack stack, Level level, @NotNull List tooltip, @NotNull TooltipFlag flag) { + var type = NBTHelper.getString(stack, "Type"); + if (type.isEmpty()) type = "Datapack"; + tooltip.add(ModTooltips.TYPE.args(type).build()); tooltip.add(ModTooltips.MODE.args(getModeString(stack)).build()); } @@ -149,13 +209,24 @@ private static void setClipboard(String string) { } // Create a shaped CraftTweaker recipe for a Table, Flux Crafter or Ender Crafter - private static String makeShapedCraftTweakerTableRecipe(IItemHandler inventory, String type) { + private static String makeShapedCraftTweakerTableRecipe(IItemHandler inventory, String type, ItemStack output, BlockEntity tile) { var string = new StringBuilder(); var uuid = UUID.randomUUID(); string.append("mods.extendedcrafting.").append(type).append(".addShaped(\"").append(uuid).append("\", "); - if ("TableCrafting".equals(type)) string.append("0, "); - string.append("<>, [").append(NEW_LINE); + if ("TableCrafting".equals(type)) string.append(getTableTier(tile)).append(", "); + + var outputId = ForgeRegistries.ITEMS.getKey(output.getItem()); + var outputItem = output.isEmpty() ? "" : (outputId == null ? "" : ""); + string.append("<").append(outputItem).append(">"); + + if (ModConfigs.RECIPE_MAKER_USE_NBT.get() && !output.isEmpty() && output.hasTag() && ModList.get().isLoaded("crafttweaker")) { + var nbt = output.getTag(); + var tag = CraftTweakerUtils.writeTag(nbt); + string.append(".withTag(").append(tag).append(")"); + } + + string.append(", [").append(NEW_LINE); int slots = getGridSlots(inventory); int sr = (int) Math.sqrt(slots); @@ -217,13 +288,24 @@ private static String makeShapedCraftTweakerTableRecipe(IItemHandler inventory, } // Create a shapeless CraftTweaker recipe for a Table, Flux Crafter or Ender Crafter - private static String makeShapelessCraftTweakerTableRecipe(IItemHandler inventory, String type) { + private static String makeShapelessCraftTweakerTableRecipe(IItemHandler inventory, String type, ItemStack output, BlockEntity tile) { var string = new StringBuilder(); var uuid = UUID.randomUUID(); string.append("mods.extendedcrafting.").append(type).append(".addShapeless(\"").append(uuid).append("\", "); - if ("TableCrafting".equals(type)) string.append("0, "); - string.append("<>, [").append(NEW_LINE); + if ("TableCrafting".equals(type)) string.append(getTableTier(tile)).append(", "); + + var outputId = ForgeRegistries.ITEMS.getKey(output.getItem()); + var outputItem = output.isEmpty() ? "" : (outputId == null ? "item:minecraft:air" : "item:" + outputId); + string.append("<").append(outputItem).append(">"); + + if (ModConfigs.RECIPE_MAKER_USE_NBT.get() && !output.isEmpty() && output.hasTag() && ModList.get().isLoaded("crafttweaker")) { + var nbt = output.getTag(); + var tag = CraftTweakerUtils.writeTag(nbt); + string.append(".withTag(").append(tag).append(")"); + } + + string.append(", [").append(NEW_LINE); List slotsWithItems = new ArrayList<>(); int slots = getGridSlots(inventory); @@ -299,7 +381,7 @@ private static String makeCraftTweakerCombinationRecipe(CraftingCoreTileEntity t String item; if (ModConfigs.RECIPE_MAKER_USE_TAGS.get() && tagId != null) { - item = "tag:items:" + tagId; + item = "tag:items:" + tagId.location(); } else { var id = ForgeRegistries.ITEMS.getKey(stack.getItem()); item = id == null ? "item:minecraft:air" : "item:" + id; @@ -325,7 +407,7 @@ private static String makeCraftTweakerCombinationRecipe(CraftingCoreTileEntity t } // Create a shaped Datapack recipe for a Table, Flux Crafter or Ender Crafter - private static String makeShapedDatapackTableRecipe(IItemHandler inventory, String type) { + private static String makeShapedDatapackTableRecipe(IItemHandler inventory, String type, ItemStack output, BlockEntity tile) { var object = new JsonObject(); var tableType = TableType.fromType(type); @@ -395,14 +477,20 @@ private static String makeShapedDatapackTableRecipe(IItemHandler inventory, Stri var result = new JsonObject(); - result.addProperty("item", ""); + var outputId = ForgeRegistries.ITEMS.getKey(output.getItem()); + String itemValue = (output.getItem() == Items.AIR) ? "" : (outputId == null ? "minecraft:air" : outputId.toString()); + result.addProperty("item", itemValue); + if (ModConfigs.RECIPE_MAKER_USE_NBT.get() && !output.isEmpty() && output.hasTag()) { + assert output.getTag() != null; + result.addProperty("nbt", output.getTag().toString()); + } object.add("result", result); return GSON.toJson(object); } // Create a shapeless Datapack recipe for a Table Flux Crafter or Ender Crafter - private static String makeShapelessDatapackTableRecipe(IItemHandler inventory, String type) { + private static String makeShapelessDatapackTableRecipe(IItemHandler inventory, String type, ItemStack output, BlockEntity tile) { var object = new JsonObject(); var tableType = TableType.fromType(type); @@ -413,6 +501,11 @@ private static String makeShapelessDatapackTableRecipe(IItemHandler inventory, S object.addProperty("powerRate", ModConfigs.FLUX_CRAFTER_POWER_RATE.get()); } + if ("TableCrafting".equals(type)) { + int tier = getTableTier(tile); + object.addProperty("tier", tier); + } + var ingredients = new JsonArray(); int slots = getGridSlots(inventory); @@ -441,14 +534,20 @@ private static String makeShapelessDatapackTableRecipe(IItemHandler inventory, S var result = new JsonObject(); - result.addProperty("item", ""); + var outputId = ForgeRegistries.ITEMS.getKey(output.getItem()); + String itemValue = (output.getItem() == Items.AIR) ? "" : (outputId == null ? "minecraft:air" : outputId.toString()); + result.addProperty("item", itemValue); + if (ModConfigs.RECIPE_MAKER_USE_NBT.get() && !output.isEmpty() && output.hasTag()) { + assert output.getTag() != null; + result.addProperty("nbt", output.getTag().toString()); + } object.add("result", result); return GSON.toJson(object); } // Create a Datapack recipe for a combination crafting recipe - private static String makeDatapackCombinationRecipe(CraftingCoreTileEntity core) { + private static String makeDatapackCombinationRecipe(CraftingCoreTileEntity core, ItemStack output) { var object = new JsonObject(); object.addProperty("type", "extendedcrafting:combination"); @@ -482,17 +581,25 @@ private static String makeDatapackCombinationRecipe(CraftingCoreTileEntity core) var result = new JsonObject(); - result.addProperty("item", ""); + var outputId = ForgeRegistries.ITEMS.getKey(output.getItem()); + String itemValue = (output.getItem() == Items.AIR) ? "" : (outputId == null ? "minecraft:air" : outputId.toString()); + result.addProperty("item", itemValue); + if (ModConfigs.RECIPE_MAKER_USE_NBT.get() && !output.isEmpty() && output.hasTag()) { + assert output.getTag() != null; + result.addProperty("nbt", output.getTag().toString()); + } object.add("result", result); return GSON.toJson(object); } + private static boolean isTable(BlockEntity tile) { return tile instanceof BasicTableTileEntity || tile instanceof AdvancedTableTileEntity || tile instanceof EliteTableTileEntity || tile instanceof UltimateTableTileEntity || + tile instanceof EpicTableTileEntity || tile instanceof AutoTableTileEntity || tile instanceof EnderCrafterTileEntity || tile instanceof FluxCrafterTileEntity; @@ -509,12 +616,32 @@ private static boolean isShapeless(ItemStack stack) { private static int getGridSlots(IItemHandler inventory) { int slots = inventory.getSlots(); - if (slots >= 81) return 81; + if (slots >= 121) return 121; + else if (slots >= 81) return 81; else if (slots >= 49) return 49; else if (slots >= 25) return 25; else return 9; } + private static boolean hasItems(IItemHandler inventory, int gridSlots) { + for (int i = 0; i < gridSlots; i++) { + if (!inventory.getStackInSlot(i).isEmpty()) { + return true; + } + } + + return false; + } + + private static int getTableTier(BlockEntity tile) { + if (tile instanceof BasicTableTileEntity) return 1; + if (tile instanceof AdvancedTableTileEntity) return 2; + if (tile instanceof EliteTableTileEntity) return 3; + if (tile instanceof UltimateTableTileEntity) return 4; + if (tile instanceof EpicTableTileEntity) return 5; + return 0; // Fallback + } + private enum TableType { TABLE("TableCrafting", "extendedcrafting:shaped_table", "extendedcrafting:shapeless_table"), ENDER_CRAFTER("EnderCrafting", "extendedcrafting:shaped_ender_crafter", "extendedcrafting:shapeless_ender_crafter"), diff --git a/src/main/java/com/blakebr0/extendedcrafting/tileentity/AutoTableTileEntity.java b/src/main/java/com/blakebr0/extendedcrafting/tileentity/AutoTableTileEntity.java index 6a9eb8c8..6a24775c 100644 --- a/src/main/java/com/blakebr0/extendedcrafting/tileentity/AutoTableTileEntity.java +++ b/src/main/java/com/blakebr0/extendedcrafting/tileentity/AutoTableTileEntity.java @@ -139,10 +139,13 @@ public static void tick(Level level, BlockPos pos, BlockState state, AutoTableTi var remaining = recipe.getRemainingItems(recipeInventory); for (int i = 0; i < recipeInventory.getContainerSize(); i++) { - if (!remaining.get(i).isEmpty()) { - inventory.setStackInSlot(i, remaining.get(i)); - } else { - inventory.setStackInSlot(i, StackHelper.shrink(inventory.getStackInSlot(i), 1, false)); + inventory.setStackInSlot(i, StackHelper.shrink(inventory.getStackInSlot(i), 1, false)); + + var remainingStack = remaining.get(i); + var currentStack = inventory.getStackInSlot(i); + + if (StackHelper.canCombineStacks(remainingStack, currentStack)) { + inventory.setStackInSlot(i, StackHelper.combineStacks(currentStack, remainingStack)); } } diff --git a/src/main/resources/assets/extendedcrafting/lang/en_us.json b/src/main/resources/assets/extendedcrafting/lang/en_us.json index cee49df7..f49f77bf 100644 --- a/src/main/resources/assets/extendedcrafting/lang/en_us.json +++ b/src/main/resources/assets/extendedcrafting/lang/en_us.json @@ -1,5 +1,5 @@ { - "itemGroup.extendedcrafting": "Extended Crafting: Monifactory Edition", + "itemGroup.extendedcrafting": "Extended Crafting: Expanded Plus", "block.extendedcrafting.luminessence_block": "Luminessence Block", "block.extendedcrafting.black_iron_block": "Black Iron Block", @@ -124,6 +124,8 @@ "message.extendedcrafting.copied_recipe": "Copied recipe to clipboard.", "message.extendedcrafting.nbt_requires_crafttweaker": "CraftTweaker is required to copy NBT.", "message.extendedcrafting.max_unique_items_exceeded": "You can only have a maximum of (%s) unique items in a shaped datapack recipe.", + "message.extendedcrafting.no_items_in_grid": "There are no items in the grid to copy.", + "message.extendedcrafting.no_output_item_warning": "There is no item in the first hotbar slot. You can put your output item in the first hotbar slot to include it in the copied recipe.", "jei.category.extendedcrafting.combination": "Combination Crafting", "jei.category.extendedcrafting.basic_crafting": "Basic Crafting", @@ -186,7 +188,7 @@ "book.extendedcrafting.entry.combination.page.1": "Combination Crafting is an in-world multi-block crafting setup where items are combined together to create something $(italic)special.$() $(br2)This setup consists of a Crafting Core in the center and pedestals placed around it. Pedestals can be placed anywhere around the Crafting Core in a 3 block radius, and must be on the same Y level.", "book.extendedcrafting.entry.combination.page.2": "Power must be provided to the Crafting Core for this structure to function. $(br2)Recipes have a center item which goes on the Crafting Core, and pedestal items which go on the pedestals around it. $(br)Right clicking on the side of the Crafting Core will show you information about the current crafting operation, such as progress or power cost, as well as how much power is stored in it.", "book.extendedcrafting.entry.tables": "Table Crafting", - "book.extendedcrafting.entry.tables.page.1": "This mod adds tiered crafting tables that come in $(bold)3x3$(), $(bold)5x5$(), $(bold)7x7$(), and $(bold)9x9$() sizes. These tables hold their inventories when closed.", + "book.extendedcrafting.entry.tables.page.1": "This mod adds tiered crafting tables that come in $(bold)3x3$(), $(bold)5x5$(), $(bold)7x7$(), $(bold)9x9$() and $(bold)11x11$() sizes. These tables hold their inventories when closed.", "book.extendedcrafting.entry.compression": "Compression Crafting", "book.extendedcrafting.entry.compression.page.1": "Quantum Compression is the process of compressing items a little too much. This is done using a Quantum Compressor. $(br2)The Quantum Compressor is a powered machine that can hold and compress extremely large amounts of materials. Items placed inside the Quantum Compressor go into an internal buffer for use in compression. The buffer is represented as a blue bar.", "book.extendedcrafting.entry.compression.page.2": "Each recipe $(bold)usually$() requires a catalyst. The catalyst is placed in the left-most slot and does not get used up. $(br2)Once there are enough items in the buffer, the machine will begin to craft the item. The Quantum Compressor will only use power while crafting. $(br2)If you happen to put items into the compressor that you would rather not lose forever, you can press the eject button above the input slot to get them back.", @@ -209,4 +211,4 @@ "book.extendedcrafting.entry.handheld_table": "Handheld Crafting Table", "book.extendedcrafting.entry.handheld_table.page.1": "The Handheld Crafting Table is a Crafting Table." -} \ No newline at end of file +} diff --git a/src/main/resources/assets/extendedcrafting/lang/ja_jp.json b/src/main/resources/assets/extendedcrafting/lang/ja_jp.json new file mode 100644 index 00000000..6f877ea1 --- /dev/null +++ b/src/main/resources/assets/extendedcrafting/lang/ja_jp.json @@ -0,0 +1,214 @@ +{ + "itemGroup.extendedcrafting": "Extended Crafting: Expanded Plus", + + "block.extendedcrafting.luminessence_block": "ルミネッセンスブロック", + "block.extendedcrafting.black_iron_block": "ブラックアイアンブロック", + "block.extendedcrafting.redstone_ingot_block": "レッドストーンインゴットブロック", + "block.extendedcrafting.enhanced_redstone_ingot_block": "強化レッドストーンインゴットブロック", + "block.extendedcrafting.ender_ingot_block": "エンダーインゴットブロック", + "block.extendedcrafting.enhanced_ender_ingot_block": "強化エンダーインゴットブロック", + "block.extendedcrafting.crystaltine_block": "クリスタルタインブロック", + "block.extendedcrafting.the_ultimate_block": "アルティメットブロック", + "block.extendedcrafting.nether_star_block": "ネザースターブロック", + "block.extendedcrafting.flux_star_block": "フラックススターブロック", + "block.extendedcrafting.ender_star_block": "エンダースターブロック", + "block.extendedcrafting.frame": "ブラックアイアンフレーム", + "block.extendedcrafting.pedestal": "台座", + "block.extendedcrafting.crafting_core": "クラフティングコア", + "block.extendedcrafting.basic_table": "基本クラフティングテーブル", + "block.extendedcrafting.advanced_table": "上級クラフティングテーブル", + "block.extendedcrafting.elite_table": "エリートクラフティングテーブル", + "block.extendedcrafting.ultimate_table": "アルティメットクラフティングテーブル", + "block.extendedcrafting.epic_table": "エピッククラフティングテーブル", + "block.extendedcrafting.basic_auto_table": "基本自動クラフティングテーブル", + "block.extendedcrafting.advanced_auto_table": "上級自動クラフティングテーブル", + "block.extendedcrafting.elite_auto_table": "エリート自動クラフティングテーブル", + "block.extendedcrafting.ultimate_auto_table": "アルティメット自動クラフティングテーブル", + "block.extendedcrafting.epic_auto_table": "エピック自動クラフティングテーブル", + "block.extendedcrafting.compressor": "量子コンプレッサー", + "block.extendedcrafting.ender_alternator": "エンダーオルタネーター", + "block.extendedcrafting.ender_crafter": "エンダークラフター", + "block.extendedcrafting.auto_ender_crafter": "自動エンダークラフター", + "block.extendedcrafting.flux_alternator": "フラックスオルタネーター", + "block.extendedcrafting.flux_crafter": "フラックスクラフター", + "block.extendedcrafting.auto_flux_crafter": "自動フラックスクラフター", + + "item.extendedcrafting.luminessence": "ルミネッセンス", + "item.extendedcrafting.black_iron_ingot": "ブラックアイニングット", + "item.extendedcrafting.redstone_ingot": "レッドストーンインゴット", + "item.extendedcrafting.enhanced_redstone_ingot": "強化レッドストーンインゴット", + "item.extendedcrafting.ender_ingot": "エンダーインゴット", + "item.extendedcrafting.enhanced_ender_ingot": "強化エンダーインゴット", + "item.extendedcrafting.crystaltine_ingot": "クリスタルタインインゴット", + "item.extendedcrafting.the_ultimate_ingot": "アルティメットインゴット", + "item.extendedcrafting.black_iron_nugget": "ブラックアイアンナゲット", + "item.extendedcrafting.redstone_nugget": "レッドストーンナゲット", + "item.extendedcrafting.enhanced_redstone_nugget": "強化レッドストーンナゲット", + "item.extendedcrafting.ender_nugget": "エンダーナゲット", + "item.extendedcrafting.enhanced_ender_nugget": "強化エンダーナゲット", + "item.extendedcrafting.crystaltine_nugget": "クリスタルタインナゲット", + "item.extendedcrafting.the_ultimate_nugget": "アルティメットナゲット", + "item.extendedcrafting.black_iron_slate": "ブラックアイアンプレート", + "item.extendedcrafting.basic_catalyst": "基本触媒", + "item.extendedcrafting.advanced_catalyst": "上級触媒", + "item.extendedcrafting.elite_catalyst": "エリート触媒", + "item.extendedcrafting.ultimate_catalyst": "アルティメット触媒", + "item.extendedcrafting.epic_catalyst": "エピック触媒", + "item.extendedcrafting.redstone_catalyst": "レッドストーン触媒", + "item.extendedcrafting.enhanced_redstone_catalyst": "強化レッドストーン触媒", + "item.extendedcrafting.ender_catalyst": "エンダー触媒", + "item.extendedcrafting.enhanced_ender_catalyst": "強化エンダー触媒", + "item.extendedcrafting.crystaltine_catalyst": "クリスタルタイン触媒", + "item.extendedcrafting.the_ultimate_catalyst": "アルティメット触媒", + "item.extendedcrafting.basic_component": "基本コンポーネント", + "item.extendedcrafting.advanced_component": "上級コンポーネント", + "item.extendedcrafting.elite_component": "エリートコンポーネント", + "item.extendedcrafting.epic_component": "エピックコンポーネント", + "item.extendedcrafting.ultimate_component": "アルティメットコンポーネント", + "item.extendedcrafting.redstone_component": "レッドストーンコンポーネント", + "item.extendedcrafting.enhanced_redstone_component": "強化レッドストーンコンポーネント", + "item.extendedcrafting.ender_component": "エンダーコンポーネント", + "item.extendedcrafting.enhanced_ender_component": "強化エンダーコンポーネント", + "item.extendedcrafting.crystaltine_component": "クリスタルタインコンポーネント", + "item.extendedcrafting.the_ultimate_component": "アルティメットコンポーネント", + "item.extendedcrafting.flux_star": "フラックススター", + "item.extendedcrafting.ender_star": "エンダースター", + "item.extendedcrafting.handheld_table": "携帯クラフティングテーブル", + "item.extendedcrafting.recipe_maker": "レシピメーカー", + "item.extendedcrafting.singularity": "%s シンギュラリティ", + "item.extendedcrafting.ultimate_singularity": "アルティメットシンギュラリティ", + + "container.extendedcrafting.crafting_core": "クラフティングコア", + "container.extendedcrafting.basic_table": "基本クラフト", + "container.extendedcrafting.advanced_table": "上級クラフト", + "container.extendedcrafting.elite_table": "エリートクラフト", + "container.extendedcrafting.ultimate_table": "アルティメットクラフト", + "container.extendedcrafting.epic_table": "エピッククラフト", + "container.extendedcrafting.compressor": "量子コンプレッサー", + "container.extendedcrafting.ender_crafter": "エンダークラフト", + "container.extendedcrafting.flux_alternator": "フラックスオルタネーター", + "container.extendedcrafting.flux_crafter": "フラックスクラフト", + + "screen.extendedcrafting.crafting_core.pedestals": "台座: %s", + "screen.extendedcrafting.crafting_core.power_cost": "FE 消費: %s", + "screen.extendedcrafting.crafting_core.power_rate": "FE 速度: %s", + "screen.extendedcrafting.crafting_core.no_recipe": "レシピが見つかりません。", + "screen.extendedcrafting.crafting_core.no_power": "電力が不足しています。", + + "tooltip.extendedcrafting.empty": "空", + "tooltip.extendedcrafting.eject": "排出", + "tooltip.extendedcrafting.ejecting": "排出中...", + "tooltip.extendedcrafting.limited_input": "入力制限", + "tooltip.extendedcrafting.unlimited_input": "無制限入力", + "tooltip.extendedcrafting.toggle_auto_crafting": "自動クラフト切替", + "tooltip.extendedcrafting.selected": "選択中", + "tooltip.extendedcrafting.tier": "ティア: %s", + "tooltip.extendedcrafting.crafting": "クラフト中: %sx %s", + "tooltip.extendedcrafting.mode": "モード: %s", + "tooltip.extendedcrafting.type": "タイプ: %s", + "tooltip.extendedcrafting.num_items": "%s 個のアイテム", + "tooltip.extendedcrafting.and_x_more": "さらに %s ...", + "tooltip.extendedcrafting.ticks": "%s ティック", + "tooltip.extendedcrafting.seconds": "%s 秒", + "tooltip.extendedcrafting.shapeless": "レシピは無形です", + "tooltip.extendedcrafting.requires_table": "ティア %s のクラフティングテーブルが必要です", + "tooltip.extendedcrafting.items_required": "必要アイテム:", + "tooltip.extendedcrafting.recipe_count": "%s 個の保存レシピ", + "tooltip.extendedcrafting.per_alternator": "オルタネーターごとに %s", + "tooltip.extendedcrafting.singularity_id": "シンギュラリティ ID: %s", + "tooltip.extendedcrafting.added_by": "追加元: %s", + "tooltip.extendedcrafting.auto_table_save_recipe": "Shift + 左クリックでレシピを保存します。", + "tooltip.extendedcrafting.auto_table_delete_recipe": "Shift + 左クリックでレシピを削除します。", + + "message.extendedcrafting.changed_mode": "モードを %s に変更しました。", + "message.extendedcrafting.copied_recipe": "レシピをクリップボードにコピーしました。", + "message.extendedcrafting.nbt_requires_crafttweaker": "NBT をコピーするには CraftTweaker が必要です。", + "message.extendedcrafting.max_unique_items_exceeded": "シェイプドデータパックレシピでは最大 (%s) 種類のアイテムしか使用できません。", + "message.extendedcrafting.no_items_in_grid": "グリッドにアイテムがありません。", + "message.extendedcrafting.no_output_item_warning": "ホットバーの1番スロットにアイテムがありません。コピーしたレシピに出力アイテムを含めるためには、1番スロットに出力アイテムを置いてください。", + + "jei.category.extendedcrafting.combination": "コンビネーションクラフト", + "jei.category.extendedcrafting.basic_crafting": "基本クラフト", + "jei.category.extendedcrafting.advanced_crafting": "上級クラフト", + "jei.category.extendedcrafting.elite_crafting": "エリートクラフト", + "jei.category.extendedcrafting.ultimate_crafting": "アルティメットクラフト", + "jei.category.extendedcrafting.epic_crafting": "エピッククラフト", + "jei.category.extendedcrafting.compressor": "量子圧縮", + "jei.category.extendedcrafting.ender_crafting": "エンダークラフト", + "jei.category.extendedcrafting.flux_crafting": "フラックスクラフト", + + "config.jade.plugin_extendedcrafting.pedestal": "台座情報", + "config.jade.plugin_extendedcrafting.crafting_core": "クラフティングコア情報", + "config.jade.plugin_extendedcrafting.basic_table": "基本テーブル情報", + "config.jade.plugin_extendedcrafting.advanced_table": "上級テーブル情報", + "config.jade.plugin_extendedcrafting.elite_table": "エリートテーブル情報", + "config.jade.plugin_extendedcrafting.ultimate_table": "アルティメットテーブル情報", + "config.jade.plugin_extendedcrafting.epic_table": "エピックテーブル情報", + "config.jade.plugin_extendedcrafting.basic_auto_table": "基本自動テーブル情報", + "config.jade.plugin_extendedcrafting.advanced_auto_table": "上級自動テーブル情報", + "config.jade.plugin_extendedcrafting.elite_auto_table": "エリート自動テーブル情報", + "config.jade.plugin_extendedcrafting.ultimate_auto_table": "アルティメット自動テーブル情報", + "config.jade.plugin_extendedcrafting.epic_auto_table": "エピック自動テーブル情報", + "config.jade.plugin_extendedcrafting.compressor": "量子コンプレッサー情報", + "config.jade.plugin_extendedcrafting.ender_crafter": "エンダークラフター情報", + "config.jade.plugin_extendedcrafting.auto_ender_crafter": "自動エンダークラフター情報", + "config.jade.plugin_extendedcrafting.flux_crafter": "フラックスクラフター情報", + + "singularity.extendedcrafting.coal": "石炭", + "singularity.extendedcrafting.copper": "銅", + "singularity.extendedcrafting.iron": "鉄", + "singularity.extendedcrafting.lapis_lazuli": "ラピスラズリ", + "singularity.extendedcrafting.redstone": "レッドストーン", + "singularity.extendedcrafting.glowstone": "グロウストーン", + "singularity.extendedcrafting.gold": "金", + "singularity.extendedcrafting.diamond": "ダイヤモンド", + "singularity.extendedcrafting.emerald": "エメラルド", + "singularity.extendedcrafting.aluminum": "アルミニウム", + "singularity.extendedcrafting.tin": "錫", + "singularity.extendedcrafting.bronze": "ブロンズ", + "singularity.extendedcrafting.silver": "銀", + "singularity.extendedcrafting.lead": "鉛", + "singularity.extendedcrafting.steel": "鋼鉄", + "singularity.extendedcrafting.nickel": "ニッケル", + "singularity.extendedcrafting.electrum": "エレクトラム", + "singularity.extendedcrafting.invar": "インバー", + "singularity.extendedcrafting.platinum": "プラチナ", + + "book.extendedcrafting.name": "Extended Crafting", + "book.extendedcrafting.landing_text": "Extended Crafting は新しいクラフト方法や追加のクラフト素材・ユーティリティを追加します。$(br2)このガイドブックは、この Mod によって追加される各クラフト方法の機能を説明するものです。クラフトの内容はモッドパック作者によって決まります。", + + "book.extendedcrafting.category.crafting.name": "クラフト方法", + "book.extendedcrafting.category.crafting.description": "Extended Crafting によって追加されたさまざまなクラフト方法を紹介します。", + "book.extendedcrafting.category.components.name": "クラフトコンポーネント", + "book.extendedcrafting.category.components.description": "Extended Crafting で追加されるクラフトアイテムを紹介します。", + "book.extendedcrafting.category.utilities.name": "クラフトユーティリティ", + "book.extendedcrafting.category.utilities.description": "Extended Crafting で追加されるクラフトユーティリティを紹介します。", + + "book.extendedcrafting.entry.combination": "コンビネーションクラフト", + "book.extendedcrafting.entry.combination.page.1": "コンビネーションクラフトは、アイテムを組み合わせて $(italic)特別な$() ものを作り出す、ワールド上に設置するマルチブロックのクラフト方式です。$(br2)このセットアップは中央のクラフティングコアと、その周囲に最大3ブロックの半径で同じ高さに置かれた台座で構成されます。", + "book.extendedcrafting.entry.combination.page.2": "クラフティングコアには電力を供給する必要があります。$(br2)レシピにはクラフティングコアに置く中央アイテムと、周囲の台座に置く台座アイテムがあります。$(br)クラフティングコアの側面を右クリックすると、進行状況や電力コスト、蓄えられた電力などを確認できます。", + "book.extendedcrafting.entry.tables": "テーブルクラフト", + "book.extendedcrafting.entry.tables.page.1": "この Mod は $(bold)3x3$(), $(bold)5x5$(), $(bold)7x7$(), $(bold)9x9$(), $(bold)11x11$() のクラフティングテーブルを追加します。これらのテーブルは閉じてもインベントリを保持します。", + "book.extendedcrafting.entry.compression": "圧縮クラフト", + "book.extendedcrafting.entry.compression.page.1": "量子圧縮は、物質を限界まで圧縮する工程です。これは量子コンプレッサーを使用して行います。$(br2)量子コンプレッサーは大量のアイテムを蓄え圧縮できる動力機械です。投入されたアイテムは内部バッファに格納され、その蓄積量は青いバーで表示されます。", + "book.extendedcrafting.entry.compression.page.2": "レシピには $(bold)通常$() 触媒が必要です。触媒は左端スロットに置き、消費されません。$(br2)必要なアイテムが揃うとクラフトが開始されます。量子コンプレッサーはクラフト中のみ電力を使用します。$(br2)誤って不要なアイテムを入れた場合は、投入スロット上の排出ボタンで取り出せます。", + "book.extendedcrafting.entry.compression.page.3": "内部バッファのアイテムは虚無空間に保存され、排出操作以外で取り出せません。ブロックを壊すとアイテムは失われるため注意が必要です!$(br2)バッファは $(bold)数十億個$() のアイテムを蓄えられますが、デフォルトではレシピに必要な分のみ保持します。この制限はバッファ横のロックボタンで解除できます。", + "book.extendedcrafting.entry.ender_crafting": "エンダークラフト", + "book.extendedcrafting.entry.ender_crafting.page.1": "エンダークラフトは「待つ力」で行うクラフトです。エンダークラフターとエンダーオルタネーターを使用します。オルタネーターが多いほどクラフト速度が上がります。", + "book.extendedcrafting.entry.ender_crafting.page.2": "エンダーオルタネーターはエンダークラフターの周囲 $(bold)3ブロック以内$() ならどこにでも配置できます。上下方向でも構いません!", + "book.extendedcrafting.entry.auto_tables": "自動テーブルクラフト", + "book.extendedcrafting.entry.auto_tables.page.1": "自動クラフティングテーブルは、アイテム自動挿入や搬出に対応した強化クラフティングテーブルです。$(br2)テーブルの上にチェストを置き、そのチェストにアイテムを挿入することでテーブルにアイテムが補充されます。挿入には電力を使用します。", + "book.extendedcrafting.entry.auto_tables.page.2": "自動挿入を動作させるには、グリッドにレシピを配置し保存する必要があります。これは右上のレシピスロットを Shift+左クリックで行います。クリックすると選択でき、Shift+左クリックで削除できます。$(br2)アイテム搬出にはホッパーなどを使用できます。", + "book.extendedcrafting.entry.auto_tables.page.3": "出力スロット下の下矢印で自動クラフトを無効化できます。", + "book.extendedcrafting.entry.flux_crafting": "フラックスクラフト", + "book.extendedcrafting.entry.flux_crafting.page.1": "フラックスクラフトは「待つ力」と「エネルギー」で行うクラフトです。フラックスクラフターとフラックスオルタネーターを使用します。オルタネーターが多いほどクラフトが速くなります。", + "book.extendedcrafting.entry.flux_crafting.page.2": "フラックスオルタネーターはフラックスクラフターの周囲 $(bold)3ブロック以内$() なら上下左右どこでも設置できます!", + + "book.extendedcrafting.entry.singularities": "シンギュラリティ", + "book.extendedcrafting.entry.singularities.page.1": "シンギュラリティは極度に圧縮された素材です。$(bold)通常$() は $(l:crafting/compression)量子コンプレッサー$() を使って作られます。$(br2)シンギュラリティは多くの用途に $(bold)おそらく$() 使用できます。例えば $(l:components/ultimate_singularity)アルティメットシンギュラリティ$() など。", + "book.extendedcrafting.entry.ultimate_singularity": "アルティメットシンギュラリティ", + "book.extendedcrafting.entry.ultimate_singularity.page.1": "アルティメットシンギュラリティは $(bold)通常$()、$(l:crafting/tables)アルティメットクラフティングテーブル$() で作られます。$(br2)ほぼすべて、または大半のシンギュラリティを材料として使用します。", + + "book.extendedcrafting.entry.handheld_table": "携帯クラフティングテーブル", + "book.extendedcrafting.entry.handheld_table.page.1": "携帯クラフティングテーブルは持ち運べるクラフティングテーブルです。" +} diff --git a/src/main/resources/assets/extendedcrafting/lang/ko_kr.json b/src/main/resources/assets/extendedcrafting/lang/ko_kr.json index 92d37947..c80c65f2 100644 --- a/src/main/resources/assets/extendedcrafting/lang/ko_kr.json +++ b/src/main/resources/assets/extendedcrafting/lang/ko_kr.json @@ -1,125 +1,219 @@ { - "itemGroup.extendedcrafting": "확장 조합", + "itemGroup.extendedcrafting": "확장 제작: 확장 플러스", - "block.extendedcrafting.luminessence_block": "발광성 블록", - "block.extendedcrafting.black_iron_block": "흑철 블록", - "block.extendedcrafting.redstone_ingot_block": "레드스톤괴 블록", - "block.extendedcrafting.ender_ingot_block": "엔더괴 블록", - "block.extendedcrafting.enhanced_ender_ingot_block": "향상된 엔더괴 블록", + "block.extendedcrafting.luminessence_block": "루미넨스 블록", + "block.extendedcrafting.black_iron_block": "블랙 아이언 블록", + "block.extendedcrafting.redstone_ingot_block": "레드스톤 주괴 블록", + "block.extendedcrafting.enhanced_redstone_ingot_block": "강화된 레드스톤 주괴 블록", + "block.extendedcrafting.ender_ingot_block": "엔더 주괴 블록", + "block.extendedcrafting.enhanced_ender_ingot_block": "강화된 엔더 주괴 블록", "block.extendedcrafting.crystaltine_block": "크리스탈틴 블록", - "block.extendedcrafting.the_ultimate_block": "궁극 블록", - "block.extendedcrafting.nether_star_block": "네더의 별 블록", - "block.extendedcrafting.ender_star_block": "엔더의 별 블록", - "block.extendedcrafting.frame": "흑철 틀", - "block.extendedcrafting.pedestal": "받침대", - "block.extendedcrafting.crafting_core": "조합 코어", - "block.extendedcrafting.basic_table": "기본 조합대", - "block.extendedcrafting.advanced_table": "고급 조합대", - "block.extendedcrafting.elite_table": "엘리트 조합대", - "block.extendedcrafting.ultimate_table": "최고 조합대", - "block.extendedcrafting.basic_auto_table": "기본 자동 조합대", - "block.extendedcrafting.advanced_auto_table": "고급 자동 조합대", - "block.extendedcrafting.elite_auto_table": "엘리트 자동 조합대", - "block.extendedcrafting.ultimate_auto_table": "최고 자동 조합대", - "block.extendedcrafting.compressor": "양자 압축기", - "block.extendedcrafting.ender_alternator": "엔더 교류 발전기", - "block.extendedcrafting.ender_crafter": "엔더 조합기", - - "item.extendedcrafting.luminessence": "발광성", - "item.extendedcrafting.black_iron_ingot": "흑철괴", - "item.extendedcrafting.redstone_ingot": "레드스톤괴", - "item.extendedcrafting.ender_ingot": "엔더괴", - "item.extendedcrafting.enhanced_ender_ingot": "향상된 엔더괴", - "item.extendedcrafting.crystaltine_ingot": "크리스탈틴괴", - "item.extendedcrafting.the_ultimate_ingot": "궁극괴", - "item.extendedcrafting.black_iron_nugget": "흑철 조각", - "item.extendedcrafting.redstone_nugget": "레드스톤 조각", - "item.extendedcrafting.ender_nugget": "엔더 조각", - "item.extendedcrafting.enhanced_ender_nugget": "향상된 엔더 조각", - "item.extendedcrafting.crystaltine_nugget": "크리스탈틴 조각", - "item.extendedcrafting.the_ultimate_nugget": "궁극 조각", - "item.extendedcrafting.black_iron_slate": "흑철 슬레이트", + "block.extendedcrafting.the_ultimate_block": "얼티밋 블록", + "block.extendedcrafting.nether_star_block": "네더 스타 블록", + "block.extendedcrafting.flux_star_block": "플럭스 스타 블록", + "block.extendedcrafting.ender_star_block": "엔더 스타 블록", + "block.extendedcrafting.frame": "블랙 아이언 프레임", + "block.extendedcrafting.pedestal": "제단", + "block.extendedcrafting.crafting_core": "제작 코어", + "block.extendedcrafting.basic_table": "기본 제작대", + "block.extendedcrafting.advanced_table": "고급 제작대", + "block.extendedcrafting.elite_table": "엘리트 제작대", + "block.extendedcrafting.ultimate_table": "얼티밋 제작대", + "block.extendedcrafting.epic_table": "에픽 제작대", + "block.extendedcrafting.basic_auto_table": "기본 자동 제작대", + "block.extendedcrafting.advanced_auto_table": "고급 자동 제작대", + "block.extendedcrafting.elite_auto_table": "엘리트 자동 제작대", + "block.extendedcrafting.ultimate_auto_table": "얼티밋 자동 제작대", + "block.extendedcrafting.epic_auto_table": "에픽 자동 제작대", + "block.extendedcrafting.compressor": "퀀텀 압축기", + "block.extendedcrafting.ender_alternator": "엔더 교류장치", + "block.extendedcrafting.ender_crafter": "엔더 제작기", + "block.extendedcrafting.auto_ender_crafter": "자동 엔더 제작기", + "block.extendedcrafting.flux_alternator": "플럭스 교류장치", + "block.extendedcrafting.flux_crafter": "플럭스 제작기", + "block.extendedcrafting.auto_flux_crafter": "자동 플럭스 제작기", + + "item.extendedcrafting.luminessence": "루미넨스", + "item.extendedcrafting.black_iron_ingot": "블랙 아이언 주괴", + "item.extendedcrafting.redstone_ingot": "레드스톤 주괴", + "item.extendedcrafting.enhanced_redstone_ingot": "강화된 레드스톤 주괴", + "item.extendedcrafting.ender_ingot": "엔더 주괴", + "item.extendedcrafting.enhanced_ender_ingot": "강화된 엔더 주괴", + "item.extendedcrafting.crystaltine_ingot": "크리스탈틴 주괴", + "item.extendedcrafting.the_ultimate_ingot": "얼티밋 주괴", + "item.extendedcrafting.black_iron_nugget": "블랙 아이언 너깃", + "item.extendedcrafting.redstone_nugget": "레드스톤 너깃", + "item.extendedcrafting.enhanced_redstone_nugget": "강화된 레드스톤 너깃", + "item.extendedcrafting.ender_nugget": "엔더 너깃", + "item.extendedcrafting.enhanced_ender_nugget": "강화된 엔더 너깃", + "item.extendedcrafting.crystaltine_nugget": "크리스탈틴 너깃", + "item.extendedcrafting.the_ultimate_nugget": "얼티밋 너깃", + "item.extendedcrafting.black_iron_slate": "블랙 아이언 슬레이트", "item.extendedcrafting.basic_catalyst": "기본 촉매", "item.extendedcrafting.advanced_catalyst": "고급 촉매", "item.extendedcrafting.elite_catalyst": "엘리트 촉매", - "item.extendedcrafting.ultimate_catalyst": "최고 촉매", + "item.extendedcrafting.ultimate_catalyst": "얼티밋 촉매", + "item.extendedcrafting.epic_catalyst": "에픽 촉매", "item.extendedcrafting.redstone_catalyst": "레드스톤 촉매", + "item.extendedcrafting.enhanced_redstone_catalyst": "강화된 레드스톤 촉매", "item.extendedcrafting.ender_catalyst": "엔더 촉매", - "item.extendedcrafting.enhanced_ender_catalyst": "향상된 엔더 촉매", + "item.extendedcrafting.enhanced_ender_catalyst": "강화된 엔더 촉매", "item.extendedcrafting.crystaltine_catalyst": "크리스탈틴 촉매", - "item.extendedcrafting.the_ultimate_catalyst": "궁극 촉매", - "item.extendedcrafting.basic_component": "기본 요소", - "item.extendedcrafting.advanced_component": "고급 요소", - "item.extendedcrafting.elite_component": "엘리트 요소", - "item.extendedcrafting.ultimate_component": "최고 요소", - "item.extendedcrafting.redstone_component": "레드스톤 요소", - "item.extendedcrafting.ender_component": "엔더 요소", - "item.extendedcrafting.enhanced_ender_component": "향상된 엔더 요소", - "item.extendedcrafting.crystaltine_component": "크리스탈틴 요소", - "item.extendedcrafting.the_ultimate_component": "궁극 요소", - "item.extendedcrafting.ender_star": "엔더의 별", - "item.extendedcrafting.handheld_table": "소형 조합대", - "item.extendedcrafting.recipe_maker": "조합법 메이커", + "item.extendedcrafting.the_ultimate_catalyst": "얼티밋 촉매", + "item.extendedcrafting.basic_component": "기본 부품", + "item.extendedcrafting.advanced_component": "고급 부품", + "item.extendedcrafting.elite_component": "엘리트 부품", + "item.extendedcrafting.epic_component": "에픽 부품", + "item.extendedcrafting.ultimate_component": "얼티밋 부품", + "item.extendedcrafting.redstone_component": "레드스톤 부품", + "item.extendedcrafting.enhanced_redstone_component": "강화된 레드스톤 부품", + "item.extendedcrafting.ender_component": "엔더 부품", + "item.extendedcrafting.enhanced_ender_component": "강화된 엔더 부품", + "item.extendedcrafting.crystaltine_component": "크리스탈틴 부품", + "item.extendedcrafting.the_ultimate_component": "얼티밋 부품", + "item.extendedcrafting.flux_star": "플럭스 스타", + "item.extendedcrafting.ender_star": "엔더 스타", + "item.extendedcrafting.handheld_table": "휴대용 제작대", + "item.extendedcrafting.recipe_maker": "레시피 메이커", "item.extendedcrafting.singularity": "%s 특이점", - "item.extendedcrafting.ultimate_singularity": "최고 특이점", - - "container.extendedcrafting.crafting_core": "조합 코어", - "container.extendedcrafting.basic_table": "기본 조합", - "container.extendedcrafting.advanced_table": "고급 조합", - "container.extendedcrafting.elite_table": "엘리트 조합", - "container.extendedcrafting.ultimate_table": "최고 조합", - "container.extendedcrafting.compressor": "양자 압축기", - "container.extendedcrafting.ender_crafter": "엔더 조합", - - "screen.extendedcrafting.crafting_core.pedestals": "받침대: %s", - "screen.extendedcrafting.crafting_core.power_cost": "FE 비용: %s", - "screen.extendedcrafting.crafting_core.power_rate": "FE 비율: %s", - "screen.extendedcrafting.crafting_core.no_recipe": "조합법을 찾을 수 없습니다.", + "item.extendedcrafting.ultimate_singularity": "얼티밋 특이점", + + "container.extendedcrafting.crafting_core": "제작 코어", + "container.extendedcrafting.basic_table": "기본 제작", + "container.extendedcrafting.advanced_table": "고급 제작", + "container.extendedcrafting.elite_table": "엘리트 제작", + "container.extendedcrafting.ultimate_table": "얼티밋 제작", + "container.extendedcrafting.epic_table": "에픽 제작", + "container.extendedcrafting.compressor": "퀀텀 압축기", + "container.extendedcrafting.ender_crafter": "엔더 제작", + "container.extendedcrafting.flux_alternator": "플럭스 교류장치", + "container.extendedcrafting.flux_crafter": "플럭스 제작", + + "screen.extendedcrafting.crafting_core.pedestals": "제단: %s", + "screen.extendedcrafting.crafting_core.power_cost": "FE 소모: %s", + "screen.extendedcrafting.crafting_core.power_rate": "FE 속도: %s", + "screen.extendedcrafting.crafting_core.no_recipe": "레시피를 찾을 수 없습니다.", "screen.extendedcrafting.crafting_core.no_power": "전력이 부족합니다.", - "tooltip.extendedcrafting.empty": "없음", - "tooltip.extendedcrafting.eject": "꺼내기", - "tooltip.extendedcrafting.ejecting": "꺼내는 중...", - "tooltip.extendedcrafting.limited_input": "제한 입력", - "tooltip.extendedcrafting.unlimited_input": "무제한 입력", - "tooltip.extendedcrafting.toggle_auto_crafting": "자동 조합 전환", - "tooltip.extendedcrafting.tier": "티어: %s", - "tooltip.extendedcrafting.crafting": "조합: %sx %s", + "tooltip.extendedcrafting.empty": "비어 있음", + "tooltip.extendedcrafting.eject": "배출", + "tooltip.extendedcrafting.ejecting": "배출 중...", + "tooltip.extendedcrafting.limited_input": "입력 제한됨", + "tooltip.extendedcrafting.unlimited_input": "입력 무제한", + "tooltip.extendedcrafting.toggle_auto_crafting": "자동 제작 전환", + "tooltip.extendedcrafting.selected": "선택됨", + "tooltip.extendedcrafting.tier": "등급: %s", + "tooltip.extendedcrafting.crafting": "제작 중: %sx %s", "tooltip.extendedcrafting.mode": "모드: %s", - "tooltip.extendedcrafting.num_items": "아이템 %s개", - "tooltip.extendedcrafting.requires_table": "%s티어 조합대가 필요합니다.", + "tooltip.extendedcrafting.type": "유형: %s", + "tooltip.extendedcrafting.num_items": "%s 아이템", + "tooltip.extendedcrafting.and_x_more": "그리고 %s개 더...", + "tooltip.extendedcrafting.ticks": "%s 틱", + "tooltip.extendedcrafting.seconds": "%s 초", + "tooltip.extendedcrafting.shapeless": "이 레시피는 형태가 없습니다", + "tooltip.extendedcrafting.requires_table": "%s 등급 제작대 필요", "tooltip.extendedcrafting.items_required": "필요한 아이템:", + "tooltip.extendedcrafting.recipe_count": "%s 저장된 레시피", + "tooltip.extendedcrafting.per_alternator": "교류장치당 %s", "tooltip.extendedcrafting.singularity_id": "특이점 ID: %s", - "tooltip.extendedcrafting.added_by": "추가됨: %s", + "tooltip.extendedcrafting.added_by": "추가한 모드: %s", + "tooltip.extendedcrafting.auto_table_save_recipe": "Shift + 좌클릭으로 레시피 저장.", + "tooltip.extendedcrafting.auto_table_delete_recipe": "Shift + 좌클릭으로 레시피 삭제.", "message.extendedcrafting.changed_mode": "모드가 %s로 변경되었습니다.", + "message.extendedcrafting.copied_recipe": "레시피가 클립보드에 복사되었습니다.", + "message.extendedcrafting.nbt_requires_crafttweaker": "NBT 복사에는 CraftTweaker가 필요합니다.", + "message.extendedcrafting.max_unique_items_exceeded": "형태 있는 데이터팩 레시피는 최대 (%s)개의 고유 아이템만 사용할 수 있습니다.", + "message.extendedcrafting.no_items_in_grid": "복사할 아이템이 그리드에 없습니다.", + "message.extendedcrafting.no_output_item_warning": "첫 번째 핫바 슬롯에 아이템이 없습니다. 출력 아이템을 포함하려면 출력 아이템을 첫 번째 슬롯에 넣으세요.", + + "jei.category.extendedcrafting.combination": "조합 제작", + "jei.category.extendedcrafting.basic_crafting": "기본 제작", + "jei.category.extendedcrafting.advanced_crafting": "고급 제작", + "jei.category.extendedcrafting.elite_crafting": "엘리트 제작", + "jei.category.extendedcrafting.ultimate_crafting": "얼티밋 제작", + "jei.category.extendedcrafting.epic_crafting": "에픽 제작", + "jei.category.extendedcrafting.compressor": "퀀텀 압축", + "jei.category.extendedcrafting.ender_crafting": "엔더 제작", + "jei.category.extendedcrafting.flux_crafting": "플럭스 제작", - "jei.category.extendedcrafting.combination": "조합", - "jei.category.extendedcrafting.basic_crafting": "기본 조합", - "jei.category.extendedcrafting.advanced_crafting": "고급 조합", - "jei.category.extendedcrafting.elite_crafting": "엘리트 조합", - "jei.category.extendedcrafting.ultimate_crafting": "최고 조합", - "jei.category.extendedcrafting.compressor": "양자 압축", - "jei.category.extendedcrafting.ender_crafting": "엔더 조합", + "config.jade.plugin_extendedcrafting.pedestal": "제단 정보", + "config.jade.plugin_extendedcrafting.crafting_core": "제작 코어 정보", + "config.jade.plugin_extendedcrafting.basic_table": "기본 제작대 정보", + "config.jade.plugin_extendedcrafting.advanced_table": "고급 제작대 정보", + "config.jade.plugin_extendedcrafting.elite_table": "엘리트 제작대 정보", + "config.jade.plugin_extendedcrafting.ultimate_table": "얼티밋 제작대 정보", + "config.jade.plugin_extendedcrafting.epic_table": "에픽 제작대 정보", + "config.jade.plugin_extendedcrafting.basic_auto_table": "기본 자동 제작대 정보", + "config.jade.plugin_extendedcrafting.advanced_auto_table": "고급 자동 제작대 정보", + "config.jade.plugin_extendedcrafting.elite_auto_table": "엘리트 자동 제작대 정보", + "config.jade.plugin_extendedcrafting.ultimate_auto_table": "얼티밋 자동 제작대 정보", + "config.jade.plugin_extendedcrafting.epic_auto_table": "에픽 자동 제작대 정보", + "config.jade.plugin_extendedcrafting.compressor": "퀀텀 압축기 정보", + "config.jade.plugin_extendedcrafting.ender_crafter": "엔더 제작기 정보", + "config.jade.plugin_extendedcrafting.auto_ender_crafter": "자동 엔더 제작기 정보", + "config.jade.plugin_extendedcrafting.flux_crafter": "플럭스 제작기 정보", "singularity.extendedcrafting.coal": "석탄", + "singularity.extendedcrafting.copper": "구리", "singularity.extendedcrafting.iron": "철", "singularity.extendedcrafting.lapis_lazuli": "청금석", "singularity.extendedcrafting.redstone": "레드스톤", - "singularity.extendedcrafting.glowstone": "발광석", + "singularity.extendedcrafting.glowstone": "글로우스톤", "singularity.extendedcrafting.gold": "금", "singularity.extendedcrafting.diamond": "다이아몬드", "singularity.extendedcrafting.emerald": "에메랄드", "singularity.extendedcrafting.aluminum": "알루미늄", - "singularity.extendedcrafting.copper": "구리", "singularity.extendedcrafting.tin": "주석", "singularity.extendedcrafting.bronze": "청동", "singularity.extendedcrafting.silver": "은", "singularity.extendedcrafting.lead": "납", "singularity.extendedcrafting.steel": "강철", "singularity.extendedcrafting.nickel": "니켈", - "singularity.extendedcrafting.electrum": "호박금", - "singularity.extendedcrafting.invar": "불변강", - "singularity.extendedcrafting.uranium": "우라늄", - "singularity.extendedcrafting.platinum": "백금" + "singularity.extendedcrafting.electrum": "일렉트럼", + "singularity.extendedcrafting.invar": "인바", + "singularity.extendedcrafting.platinum": "플래티넘", + + "book.extendedcrafting.name": "확장 제작", + "book.extendedcrafting.landing_text": "확장 제작은 새로운 제작 방식과 추가 제작 재료 및 유틸리티를 추가합니다.$(br2)이 안내서는 모드에 포함된 다양한 제작 방식의 기능을 설명합니다. 구현 방식은 모드팩 제작자가 결정합니다.", + + "book.extendedcrafting.category.crafting.name": "제작 방식", + "book.extendedcrafting.category.crafting.description": "이 섹션에서는 확장 제작 모드가 추가한 제작 메커니즘을 설명합니다.", + "book.extendedcrafting.category.components.name": "제작 구성 요소", + "book.extendedcrafting.category.components.description": "이 섹션에서는 추가된 다양한 제작 재료를 설명합니다.", + "book.extendedcrafting.category.utilities.name": "제작 유틸리티", + "book.extendedcrafting.category.utilities.description": "이 섹션에서는 다양한 제작 유틸리티를 설명합니다.", + + "book.extendedcrafting.entry.combination": "조합 제작", + "book.extendedcrafting.entry.combination.page.1": "조합 제작은 월드 내에서 다중 블록 구조로 아이템을 결합해 $(italic)특별한$() 아이템을 만드는 방식입니다.$(br2)중앙의 제작 코어와, 그 주변 3블록 반경 내 같은 Y축에 배치된 제단으로 구성됩니다.", + "book.extendedcrafting.entry.combination.page.2": "구조가 작동하려면 제작 코어에 전력을 공급해야 합니다.$(br2)레시피는 코어 위에 올리는 중심 아이템과 제단 위에 올리는 주변 아이템으로 구성됩니다.$(br)제작 코어의 측면을 우클릭하면 진행 상황, 전력 소모, 저장된 전력량 등의 정보를 확인할 수 있습니다.", + + "book.extendedcrafting.entry.tables": "제작대", + "book.extendedcrafting.entry.tables.page.1": "이 모드는 $(bold)3x3$(), $(bold)5x5$(), $(bold)7x7$(), $(bold)9x9$(), $(bold)11x11$() 크기의 등급별 제작대를 추가합니다. 이 제작대들은 닫혀 있어도 인벤토리를 유지합니다.", + + "book.extendedcrafting.entry.compression": "압축 제작", + "book.extendedcrafting.entry.compression.page.1": "퀀텀 압축은 아이템을 극도로 압축하는 방식입니다. 이는 퀀텀 압축기를 사용하여 수행됩니다.$(br2)압축기는 대량의 재료를 저장하고 압축할 수 있는 전력 기반 기계입니다. 압축기에 넣은 아이템은 내부 버퍼에 저장되며 파란색 막대로 표시됩니다.", + "book.extendedcrafting.entry.compression.page.2": "각 레시피는 $(bold)보통$() 촉매가 필요합니다. 촉매는 가장 왼쪽 칸에 넣으며 소모되지 않습니다.$(br2)버퍼에 충분한 재료가 모이면 제작이 시작되며, 압축기는 제작 중에만 전력을 소모합니다.$(br2)잘못 넣은 재료가 있다면 입력 칸 위의 배출 버튼을 눌러 회수할 수 있습니다.", + "book.extendedcrafting.entry.compression.page.3": "버퍼 속 아이템은 끝없는 공간에 저장되며 배출만으로 회수할 수 있습니다. 블록을 부수면 버퍼의 아이템은 영구적으로 사라지니 주의하세요!$(br2)압축기의 입력 버퍼는 $(bold)수십억 개$()의 아이템을 저장할 수 있지만 기본적으로는 레시피가 요구하는 만큼만 저장됩니다. 옆의 잠금 버튼을 눌러 제한을 해제할 수 있습니다.", + + "book.extendedcrafting.entry.ender_crafting": "엔더 제작", + "book.extendedcrafting.entry.ender_crafting.page.1": "엔더 제작은 ‘기다림의 힘’을 사용하는 제작 방식입니다. 엔더 제작기는 교류장치로부터 에너지를 받아 제작을 수행합니다. 교류장치가 많을수록 제작 속도가 빨라집니다.", + "book.extendedcrafting.entry.ender_crafting.page.2": "엔더 교류장치는 제작기 주변 $(bold)3블록 반경$() 내 어디든 배치할 수 있으며, 위나 아래도 가능합니다!", + + "book.extendedcrafting.entry.auto_tables": "자동 제작대", + "book.extendedcrafting.entry.auto_tables.page.1": "자동 제작대는 업그레이드된 제작대로, 자동으로 아이템을 삽입하거나 추출할 수 있습니다.$(br2)아이템 삽입은 제작대 위에 상자를 올리고 상자에 아이템을 넣는 방식입니다. 삽입에는 전력이 필요합니다.", + "book.extendedcrafting.entry.auto_tables.page.2": "자동 삽입을 사용하려면 먼저 그리드에 레시피를 배치하고 저장해야 합니다. 저장은 오른쪽 상단의 3개 레시피 칸 중 하나를 Shift+좌클릭하여 합니다. 저장된 레시피는 클릭하여 선택할 수 있으며, Shift+좌클릭으로 삭제할 수 있습니다.$(br2)아이템 추출은 호퍼나 기타 추출 장치로 가능합니다.", + "book.extendedcrafting.entry.auto_tables.page.3": "출력 슬롯 아래의 아래쪽 화살표를 클릭하면 자동 제작을 비활성화할 수 있습니다.", + + "book.extendedcrafting.entry.flux_crafting": "플럭스 제작", + "book.extendedcrafting.entry.flux_crafting.page.1": "플럭스 제작은 기다림의 힘과 에너지의 힘을 모두 사용하는 제작 방식입니다. 플럭스 제작기는 플럭스 교류장치로부터 에너지를 전달받아 제작을 수행합니다. 교류장치가 많을수록 빨라집니다.", + "book.extendedcrafting.entry.flux_crafting.page.2": "플럭스 교류장치는 제작기 주변 $(bold)3블록 반경$() 내 어디든 배치할 수 있으며, 위나 아래도 가능합니다!", + + "book.extendedcrafting.entry.singularities": "특이점", + "book.extendedcrafting.entry.singularities.page.1": "특이점은 고도로 압축된 재료입니다. $(bold)보통$() $(l:crafting/compression)퀀텀 압축기$()로 제작됩니다.$(br2)특이점은 $(l:components/ultimate_singularity)얼티밋 특이점$() 같은 여러 용도로 사용될 수 있습니다.", + "book.extendedcrafting.entry.ultimate_singularity": "얼티밋 특이점", + "book.extendedcrafting.entry.ultimate_singularity.page.1": "얼티밋 특이점은 $(bold)보통$() $(l:crafting/tables)얼티밋 제작대$()에서 제작됩니다.$(br2)대부분 또는 모든 특이점으로 구성됩니다.", + + "book.extendedcrafting.entry.handheld_table": "휴대용 제작대", + "book.extendedcrafting.entry.handheld_table.page.1": "휴대용 제작대는 휴대 가능한 제작대입니다." } diff --git a/src/main/resources/assets/extendedcrafting/lang/ru_ru.json b/src/main/resources/assets/extendedcrafting/lang/ru_ru.json index 43aa36ab..f98fdbec 100644 --- a/src/main/resources/assets/extendedcrafting/lang/ru_ru.json +++ b/src/main/resources/assets/extendedcrafting/lang/ru_ru.json @@ -1,5 +1,5 @@ { - "itemGroup.extendedcrafting": "Extended Crafting", + "itemGroup.extendedcrafting": "Extended Crafting: Expanded Plus", "block.extendedcrafting.luminessence_block": "Блок люминесценции", "block.extendedcrafting.black_iron_block": "Блок чёрного железа", @@ -98,6 +98,8 @@ "message.extendedcrafting.copied_recipe": "Рецепт скопирован в буфер обмена.", "message.extendedcrafting.nbt_requires_crafttweaker": "CraftTweaker требуется для копирования NBT.", "message.extendedcrafting.max_unique_items_exceeded": "Вы можете иметь максимум (%s) однотипных предметов в сформированном рецепте из дата-пака.", + "message.extendedcrafting.no_items_in_grid": "В сетке нет элементов для копирования.", + "message.extendedcrafting.no_output_item_warning": "В первом слоте быстрого доступа нет предмета. Вы можете положить выходной предмет в первый слот, чтобы включить его в копируемый рецепт.", "jei.category.extendedcrafting.combination": "Комбинированное создание", "jei.category.extendedcrafting.basic_crafting": "Создание на базовом верстаке", @@ -125,7 +127,6 @@ "singularity.extendedcrafting.nickel": "Никелевая", "singularity.extendedcrafting.electrum": "Электрумовая", "singularity.extendedcrafting.invar": "Инваровая", - "singularity.extendedcrafting.uranium": "Урановая", "singularity.extendedcrafting.platinum": "Платиновая", "book.extendedcrafting.name": "Extended Crafting", @@ -142,7 +143,7 @@ "book.extendedcrafting.entry.combination.page.1": "Combination Crafting is an in-world multi-block crafting setup where items are combined together to create something $(italic)special.$() $(br2)This setup consists of a Crafting Core in the center and pedestals placed around it. Pedestals can be placed anywhere around the Crafting Core in a 3 block radius, and must be on the same Y level.", "book.extendedcrafting.entry.combination.page.2": "Power must be provided to the Crafting Core for this structure to function. $(br2)Recipes have a center item which goes on the Crafting Core, and pedestal items which go on the pedestals around it. $(br)Right clicking on the side of the Crafting Core will show you information about the current crafting operation, such as progress or power cost, as well as how much power is stored in it.", "book.extendedcrafting.entry.tables": "Table Crafting", - "book.extendedcrafting.entry.tables.page.1": "This mod adds tiered crafting tables that come in $(bold)3x3$(), $(bold)5x5$(), $(bold)7x7$(), and $(bold)9x9$() sizes. These tables hold their inventories when closed.", + "book.extendedcrafting.entry.tables.page.1": "This mod adds tiered crafting tables that come in $(bold)3x3$(), $(bold)5x5$(), $(bold)7x7$(), $(bold)9x9$() and $(bold)11x11$() sizes. These tables hold their inventories when closed.", "book.extendedcrafting.entry.compression": "Compression Crafting", "book.extendedcrafting.entry.compression.page.1": "Quantum Compression is the process of compressing items a little too much. This is done using a Quantum Compressor. $(br2)The Quantum Compressor is a powered machine that can hold and compress extremely large amounts of materials. Items placed inside the Quantum Compressor go into an internal buffer for use in compression. The buffer is represented as a blue bar.", "book.extendedcrafting.entry.compression.page.2": "Each recipe $(bold)usually$() requires a catalyst. The catalyst is placed in the left-most slot and does not get used up. $(br2)Once there are enough items in the buffer, the machine will begin to craft the item. The Quantum Compressor will only use power while crafting. $(br2)If you happen to put items into the compressor that you would rather not lose forever, you can press the eject button above the input slot to get them back.", @@ -162,4 +163,4 @@ "book.extendedcrafting.entry.handheld_table": "Handheld Crafting Table", "book.extendedcrafting.entry.handheld_table.page.1": "The Handheld Crafting Table is a Crafting Table." -} \ No newline at end of file +} diff --git a/src/main/resources/assets/extendedcrafting/lang/tr_tr.json b/src/main/resources/assets/extendedcrafting/lang/tr_tr.json new file mode 100644 index 00000000..0bd77c5c --- /dev/null +++ b/src/main/resources/assets/extendedcrafting/lang/tr_tr.json @@ -0,0 +1,226 @@ +{ + "itemGroup.extendedcrafting": "Extended Crafting: Expanded Plus", + + "block.extendedcrafting.luminessence_block": "Luminessence Bloğu", + "block.extendedcrafting.black_iron_block": "Siyah Demir Bloğu", + "block.extendedcrafting.redstone_ingot_block": "Redstone Külçesi Bloğu", + "block.extendedcrafting.enhanced_redstone_ingot_block": "Geliştirilmiş Redstone Külçesi Bloğu", + "block.extendedcrafting.ender_ingot_block": "Ender Külçesi Bloğu", + "block.extendedcrafting.enhanced_ender_ingot_block": "Geliştirilmiş Ender Külçesi Bloğu", + "block.extendedcrafting.crystaltine_block": "Crystaltine Bloğu", + "block.extendedcrafting.the_ultimate_block": "Ultimate Bloğu", + "block.extendedcrafting.nether_star_block": "Nether Yıldızı Bloğu", + "block.extendedcrafting.flux_star_block": "Flux Yıldızı Bloğu", + "block.extendedcrafting.ender_star_block": "Ender Yıldızı Bloğu", + "block.extendedcrafting.frame": "Siyah Demir Çerçeve", + "block.extendedcrafting.pedestal": "Kaide", + "block.extendedcrafting.crafting_core": "Zanaat Çekirdeği", + "block.extendedcrafting.basic_table": "Temel Zanaat Masası", + "block.extendedcrafting.advanced_table": "Gelişmiş Zanaat Masası", + "block.extendedcrafting.elite_table": "Elit Zanaat Masası", + "block.extendedcrafting.ultimate_table": "Ultimate Zanaat Masası", + "block.extendedcrafting.epic_table": "Epik Zanaat Masası", + "block.extendedcrafting.basic_auto_table": "Temel Otomatik Zanaat Masası", + "block.extendedcrafting.advanced_auto_table": "Gelişmiş Otomatik Zanaat Masası", + "block.extendedcrafting.elite_auto_table": "Elit Otomatik Zanaat Masası", + "block.extendedcrafting.ultimate_auto_table": "Ultimate Otomatik Zanaat Masası", + "block.extendedcrafting.epic_auto_table": "Epik Otomatik Zanaat Masası", + "block.extendedcrafting.compressor": "Kuantum Kompresörü", + "block.extendedcrafting.ender_alternator": "Ender Alternatör", + "block.extendedcrafting.ender_crafter": "Ender Zanaat Makinesi", + "block.extendedcrafting.auto_ender_crafter": "Otomatik Ender Zanaat Makinesi", + "block.extendedcrafting.flux_alternator": "Flux Alternatör", + "block.extendedcrafting.flux_crafter": "Flux Zanaat Makinesi", + "block.extendedcrafting.auto_flux_crafter": "Otomatik Flux Zanaat Makinesi", + + "item.extendedcrafting.luminessence": "Luminessence", + "item.extendedcrafting.black_iron_ingot": "Siyah Demir Külçesi", + "item.extendedcrafting.redstone_ingot": "Redstone Külçesi", + "item.extendedcrafting.enhanced_redstone_ingot": "Geliştirilmiş Redstone Külçesi", + "item.extendedcrafting.ender_ingot": "Ender Külçesi", + "item.extendedcrafting.enhanced_ender_ingot": "Geliştirilmiş Ender Külçesi", + "item.extendedcrafting.crystaltine_ingot": "Crystaltine Külçesi", + "item.extendedcrafting.the_ultimate_ingot": "Ultimate Külçesi", + "item.extendedcrafting.black_iron_nugget": "Siyah Demir Parçacığı", + "item.extendedcrafting.redstone_nugget": "Redstone Parçacığı", + "item.extendedcrafting.enhanced_redstone_nugget": "Geliştirilmiş Redstone Parçacığı", + "item.extendedcrafting.ender_nugget": "Ender Parçacığı", + "item.extendedcrafting.enhanced_ender_nugget": "Geliştirilmiş Ender Parçacığı", + "item.extendedcrafting.crystaltine_nugget": "Crystaltine Parçacığı", + "item.extendedcrafting.the_ultimate_nugget": "Ultimate Parçacığı", + "item.extendedcrafting.black_iron_slate": "Siyah Demir Levha", + + "item.extendedcrafting.basic_catalyst": "Temel Katalizör", + "item.extendedcrafting.advanced_catalyst": "Gelişmiş Katalizör", + "item.extendedcrafting.elite_catalyst": "Elit Katalizör", + "item.extendedcrafting.ultimate_catalyst": "Ultimate Katalizör", + "item.extendedcrafting.epic_catalyst": "Epik Katalizör", + "item.extendedcrafting.redstone_catalyst": "Redstone Katalizörü", + "item.extendedcrafting.enhanced_redstone_catalyst": "Geliştirilmiş Redstone Katalizörü", + "item.extendedcrafting.ender_catalyst": "Ender Katalizörü", + "item.extendedcrafting.enhanced_ender_catalyst": "Geliştirilmiş Ender Katalizörü", + "item.extendedcrafting.crystaltine_catalyst": "Crystaltine Katalizörü", + "item.extendedcrafting.the_ultimate_catalyst": "Ultimate Katalizör", + + "item.extendedcrafting.basic_component": "Temel Bileşen", + "item.extendedcrafting.advanced_component": "Gelişmiş Bileşen", + "item.extendedcrafting.elite_component": "Elit Bileşen", + "item.extendedcrafting.epic_component": "Epik Bileşen", + "item.extendedcrafting.ultimate_component": "Ultimate Bileşen", + "item.extendedcrafting.redstone_component": "Redstone Bileşeni", + "item.extendedcrafting.enhanced_redstone_component": "Geliştirilmiş Redstone Bileşeni", + "item.extendedcrafting.ender_component": "Ender Bileşeni", + "item.extendedcrafting.enhanced_ender_component": "Geliştirilmiş Ender Bileşeni", + "item.extendedcrafting.crystaltine_component": "Crystaltine Bileşeni", + "item.extendedcrafting.the_ultimate_component": "Ultimate Bileşeni", + + "item.extendedcrafting.flux_star": "Flux Yıldızı", + "item.extendedcrafting.ender_star": "Ender Yıldızı", + "item.extendedcrafting.handheld_table": "Taşınabilir Zanaat Masası", + "item.extendedcrafting.recipe_maker": "Tarif Oluşturucu", + + "item.extendedcrafting.singularity": "%s Tekillik", + "item.extendedcrafting.ultimate_singularity": "Ultimate Tekillik", + + "container.extendedcrafting.crafting_core": "Zanaat Çekirdeği", + "container.extendedcrafting.basic_table": "Temel Zanaat", + "container.extendedcrafting.advanced_table": "Gelişmiş Zanaat", + "container.extendedcrafting.elite_table": "Elit Zanaat", + "container.extendedcrafting.ultimate_table": "Ultimate Zanaat", + "container.extendedcrafting.epic_table": "Epik Zanaat", + "container.extendedcrafting.compressor": "Kuantum Kompresörü", + "container.extendedcrafting.ender_crafter": "Ender Zanaat", + "container.extendedcrafting.flux_alternator": "Flux Alternatör", + "container.extendedcrafting.flux_crafter": "Flux Zanaat", + + "screen.extendedcrafting.crafting_core.pedestals": "Kaideler: %s", + "screen.extendedcrafting.crafting_core.power_cost": "FE Maliyeti: %s", + "screen.extendedcrafting.crafting_core.power_rate": "FE Hızı: %s", + "screen.extendedcrafting.crafting_core.no_recipe": "Tarif bulunamadı.", + "screen.extendedcrafting.crafting_core.no_power": "Yetersiz güç.", + + "tooltip.extendedcrafting.empty": "Boş", + "tooltip.extendedcrafting.eject": "Çıkart", + "tooltip.extendedcrafting.ejecting": "Çıkartılıyor...", + "tooltip.extendedcrafting.limited_input": "Sınırlı Girdi", + "tooltip.extendedcrafting.unlimited_input": "Sınırsız Girdi", + "tooltip.extendedcrafting.toggle_auto_crafting": "Otomatik Zanaatı Aç/Kapat", + "tooltip.extendedcrafting.selected": "Seçildi", + "tooltip.extendedcrafting.tier": "Seviye: %s", + "tooltip.extendedcrafting.crafting": "Zanaat: %sx %s", + "tooltip.extendedcrafting.mode": "Mod: %s", + "tooltip.extendedcrafting.type": "Tür: %s", + "tooltip.extendedcrafting.num_items": "%s Öğe", + "tooltip.extendedcrafting.and_x_more": "Ve %s tane daha...", + "tooltip.extendedcrafting.ticks": "%s Tick", + "tooltip.extendedcrafting.seconds": "%s Saniye", + "tooltip.extendedcrafting.shapeless": "Tarif şekilsizdir", + "tooltip.extendedcrafting.requires_table": "%s Seviye Zanaat Masası gerektirir", + "tooltip.extendedcrafting.items_required": "Gerekli Öğeler:", + "tooltip.extendedcrafting.recipe_count": "%s Kayıtlı Tarif", + "tooltip.extendedcrafting.per_alternator": "Alternatör başına %s", + "tooltip.extendedcrafting.singularity_id": "Tekillik ID: %s", + "tooltip.extendedcrafting.added_by": "Ekleyen: %s", + "tooltip.extendedcrafting.auto_table_save_recipe": "Shift + Sol Tık ile bu tarifi kaydedin.", + "tooltip.extendedcrafting.auto_table_delete_recipe": "Shift + Sol Tık ile bu tarifi silin.", + + "message.extendedcrafting.changed_mode": "Mod %s olarak değiştirildi.", + "message.extendedcrafting.copied_recipe": "Tarif panoya kopyalandı.", + "message.extendedcrafting.nbt_requires_crafttweaker": "NBT kopyalamak için CraftTweaker gereklidir.", + "message.extendedcrafting.max_unique_items_exceeded": "Şekilli bir datapack tarifinde en fazla (%s) benzersiz öğe kullanabilirsiniz.", + "message.extendedcrafting.no_items_in_grid": "Kopyalanacak ızgarada öğe yok.", + "message.extendedcrafting.no_output_item_warning": "Birinci hızlı erişim slotunda öğe yok. Kopyalanacak tarifte çıktı olarak kullanılmasını istiyorsanız çıktı öğesini ilk hızlı erişim slotuna koyabilirsiniz.", + + "jei.category.extendedcrafting.combination": "Kombinasyon Zanaatı", + "jei.category.extendedcrafting.basic_crafting": "Temel Zanaat", + "jei.category.extendedcrafting.advanced_crafting": "Gelişmiş Zanaat", + "jei.category.extendedcrafting.elite_crafting": "Elit Zanaat", + "jei.category.extendedcrafting.ultimate_crafting": "Ultimate Zanaat", + "jei.category.extendedcrafting.epic_crafting": "Epik Zanaat", + "jei.category.extendedcrafting.compressor": "Kuantum Sıkıştırma", + "jei.category.extendedcrafting.ender_crafting": "Ender Zanaatı", + "jei.category.extendedcrafting.flux_crafting": "Flux Zanaatı", + + "config.jade.plugin_extendedcrafting.pedestal": "Kaide bilgisi", + "config.jade.plugin_extendedcrafting.crafting_core": "Zanaat Çekirdeği bilgisi", + "config.jade.plugin_extendedcrafting.basic_table": "Temel Masa bilgisi", + "config.jade.plugin_extendedcrafting.advanced_table": "Gelişmiş Masa bilgisi", + "config.jade.plugin_extendedcrafting.elite_table": "Elit Masa bilgisi", + "config.jade.plugin_extendedcrafting.ultimate_table": "Ultimate Masa bilgisi", + "config.jade.plugin_extendedcrafting.epic_table": "Epik Masa bilgisi", + "config.jade.plugin_extendedcrafting.basic_auto_table": "Temel Otomatik Masa bilgisi", + "config.jade.plugin_extendedcrafting.advanced_auto_table": "Gelişmiş Otomatik Masa bilgisi", + "config.jade.plugin_extendedcrafting.elite_auto_table": "Elit Otomatik Masa bilgisi", + "config.jade.plugin_extendedcrafting.ultimate_auto_table": "Ultimate Otomatik Masa bilgisi", + "config.jade.plugin_extendedcrafting.epic_auto_table": "Epik Otomatik Masa bilgisi", + "config.jade.plugin_extendedcrafting.compressor": "Kuantum Kompresörü bilgisi", + "config.jade.plugin_extendedcrafting.ender_crafter": "Ender Zanaat Makinesi bilgisi", + "config.jade.plugin_extendedcrafting.auto_ender_crafter": "Otomatik Ender Zanaat Makinesi bilgisi", + "config.jade.plugin_extendedcrafting.flux_crafter": "Flux Zanaat Makinesi bilgisi", + + "singularity.extendedcrafting.coal": "Kömür", + "singularity.extendedcrafting.copper": "Bakır", + "singularity.extendedcrafting.iron": "Demir", + "singularity.extendedcrafting.lapis_lazuli": "Lapis Lazuli", + "singularity.extendedcrafting.redstone": "Redstone", + "singularity.extendedcrafting.glowstone": "Glowstone", + "singularity.extendedcrafting.gold": "Altın", + "singularity.extendedcrafting.diamond": "Elmas", + "singularity.extendedcrafting.emerald": "Zümrüt", + "singularity.extendedcrafting.aluminum": "Alüminyum", + "singularity.extendedcrafting.tin": "Kalay", + "singularity.extendedcrafting.bronze": "Bronz", + "singularity.extendedcrafting.silver": "Gümüş", + "singularity.extendedcrafting.lead": "Kurşun", + "singularity.extendedcrafting.steel": "Çelik", + "singularity.extendedcrafting.nickel": "Nikel", + "singularity.extendedcrafting.electrum": "Elektrum", + "singularity.extendedcrafting.invar": "İnvar", + "singularity.extendedcrafting.platinum": "Platin", + + "book.extendedcrafting.name": "Extended Crafting", + "book.extendedcrafting.landing_text": "Extended Crafting, eşya üretmenin yeni yollarını ve ek üretim öğelerini ve yardımcılarını ekler. $(br2)Bu rehber kitabı, bu moddaki farklı üretim yöntemlerinin nasıl çalıştığını açıklamak içindir. Nasıl uygulandığı mod paketi yapımcısına bağlıdır.", + + "book.extendedcrafting.category.crafting.name": "Zanaat Yöntemleri", + "book.extendedcrafting.category.crafting.description": "Bu bölüm, Extended Crafting tarafından eklenen farklı zanaat mekanizmalarını açıklar.", + + "book.extendedcrafting.category.components.name": "Zanaat Bileşenleri", + "book.extendedcrafting.category.components.description": "Bu bölüm, Extended Crafting tarafından eklenen farklı zanaat öğelerini açıklar.", + + "book.extendedcrafting.category.utilities.name": "Zanaat Araçları", + "book.extendedcrafting.category.utilities.description": "Bu bölüm, Extended Crafting tarafından eklenen zanaat yardımcılarını açıklar.", + + "book.extendedcrafting.entry.combination": "Kombinasyon Zanaatı", + "book.extendedcrafting.entry.combination.page.1": "Kombinasyon Zanaatı, dünyada kurulan çok-bloklu bir zanaat yapısıdır ve öğeler bir araya getirilerek $(italic)özel$() bir şey üretilir. $(br2)Bu yapı, ortada bir Zanaat Çekirdeği ve etrafına yerleştirilmiş kaidelerden oluşur. Kaideler, Zanaat Çekirdeğinin etrafında 3 blok yarıçap içinde herhangi bir yere yerleştirilebilir ve aynı Y seviyesinde olmalıdır.", + "book.extendedcrafting.entry.combination.page.2": "Bu yapının çalışması için Zanaat Çekirdeğine güç verilmelidir. $(br2)Tariflerde merkezde Zanaat Çekirdeğine konulan bir ana eşya ve çevredeki kaidelere konulan yan eşyalar bulunur. $(br)Zanaat Çekirdeğinin yanına sağ tıklamak, mevcut zanaat işlemi hakkında ilerleme veya güç maliyeti gibi bilgileri, ayrıca içinde ne kadar güç depolandığını gösterir.", + + "book.extendedcrafting.entry.tables": "Masa Zanaatı", + "book.extendedcrafting.entry.tables.page.1": "Bu mod, $(bold)3x3$(), $(bold)5x5$(), $(bold)7x7$(), $(bold)9x9$()ve $(bold)11x11$() boyutlarında seviyeli zanaat masaları ekler. Bu masalar kapanınca envanterlerini korurlar.", + + "book.extendedcrafting.entry.compression": "Sıkıştırma Zanaatı", + "book.extendedcrafting.entry.compression.page.1": "Kuantum Sıkıştırma, öğelerin aşırı derecede sıkıştırılması işlemidir. Bu işlem bir Kuantum Kompresörü kullanılarak yapılır. $(br2)Kuantum Kompresörü, güç ile çalışan ve aşırı büyük miktarda malzemeyi tutup sıkıştırabilen bir makinedir. Makineye yerleştirilen öğeler, sıkıştırma için kullanılan dahili bir arabelleğe gider. Bu arabellek mavi bir çubuk olarak gösterilir.", + "book.extendedcrafting.entry.compression.page.2": "Her tarif $(bold)genellikle$() bir katalizör gerektirir. Katalizör sol taraftaki en uç yuvaya konur ve kullanılmaz. $(br2)Arabellekte yeterli öğe olduğunda makine öğeyi üretmeye başlar. Kuantum Kompresörü yalnızca üretim sırasında güç kullanır. $(br2)Eğer kompresöre yanlışlıkla kaybetmek istemediğiniz bir öğe koyarsanız, giriş yuvasının üzerindeki çıkart düğmesine basarak geri alabilirsiniz.", + "book.extendedcrafting.entry.compression.page.3": "Arabellek içindeki öğeler sonsuz boşlukta tutulur ve yalnızca çıkartılarak geri alınabilir. Bloğu kırmak, bu öğelerin sonsuza dek kaybolmasına sebep olur, bu yüzden dikkatli olun! $(br2)Kuantum Kompresörünün giriş arabelleği $(bold)milyarlarca$() öğe depolayabilir, ancak varsayılan olarak yalnızca tarifin gerektirdiği kadarını tutar. Bu sınırı, arabelleğin yanındaki kilit butonuna basarak kaldırabilirsiniz.", + + "book.extendedcrafting.entry.ender_crafting": "Ender Zanaatı", + "book.extendedcrafting.entry.ender_crafting.page.1": "Ender Zanaatı, bekleme gücünü kullanarak yapılan bir zanaattır. Ender Zanaatı kurulumu bir Ender Zanaat Makinesi ve Ender Alternatörlerden oluşur. Zanaat makinesi enerjiyi alternatörler aracılığıyla boşluktan çeker. Ne kadar çok alternatör varsa, o kadar hızlı üretir.", + "book.extendedcrafting.entry.ender_crafting.page.2": "Ender Alternatörler, Ender Zanaat Makinesinin etrafına $(bold)3 blok yarıçap$() içinde herhangi bir yere konabilir. Hatta yukarıya veya aşağıya bile!", + + "book.extendedcrafting.entry.auto_tables": "Otomatik Masa Zanaatı", + "book.extendedcrafting.entry.auto_tables.page.1": "Otomatik Zanaat Masaları, $(l:crafting/tables)Zanaat Masalarının$() yükseltilmiş bir sürümüdür ve öğeleri otomatik olarak alıp dışarı verebilirler. $(br2)Öğe yerleştirme, masanın üstüne bir sandık koyarak ve öğeleri bu sandığa yerleştirerek yapılır. Öğe yerleştirme güç kullanır.", + "book.extendedcrafting.entry.auto_tables.page.2": "Öğe yerleştirmenin çalışması için, önce ızgaraya bir tarif yerleştirip kaydetmeniz gerekir. Bu, sağ üstteki 3 tarif yuvasından birine shift+sol tıklayarak yapılır. Ardından tarifi üzerine tıklayarak seçebilirsiniz. TARİFİ shift+sol tıklayarak silebilirsiniz. $(br2)Öğeler, bir huninin veya başka uyumlu çıkarma mekanizmasının kullanılmasıyla masadan dışarı alınabilir.", + "book.extendedcrafting.entry.auto_tables.page.3": "Otomatik zanaatı, çıktı yuvasının altındaki aşağı ok tuşuna basarak devre dışı bırakabilirsiniz.", + + "book.extendedcrafting.entry.flux_crafting": "Flux Zanaatı", + "book.extendedcrafting.entry.flux_crafting.page.1": "Flux Zanaatı, hem bekleme gücünü hem de enerji gücünü kullanan bir zanaattır. Flux Zanaatı kurulumu bir Flux Zanaat Makinesi ve Flux Alternatörlerden oluşur. Makine enerjiyi alternatörlerden çeker. Ne kadar çok alternatör varsa o kadar hızlı üretir.", + "book.extendedcrafting.entry.flux_crafting.page.2": "Flux Alternatörler, Flux Zanaat Makinesinin etrafına $(bold)3 blok yarıçap$() içinde herhangi bir yere konabilir. Yukarıya veya aşağıya bile!", + + "book.extendedcrafting.entry.singularities": "Tekillikler", + "book.extendedcrafting.entry.singularities.page.1": "Tekillikler aşırı derecede sıkıştırılmış malzemelerdir. Bunlar $(bold)genellikle$() bir $(l:crafting/compression)Kuantum Kompresörü$() kullanılarak yapılır. $(br2)Tekillikler $(bold)muhtemelen$() birçok şey için kullanılabilir, örneğin $(l:components/ultimate_singularity)Ultimate Tekillik$().", + + "book.extendedcrafting.entry.ultimate_singularity": "Ultimate Tekillik", + "book.extendedcrafting.entry.ultimate_singularity.page.1": "Ultimate Tekillik, $(bold)genellikle$() $(l:crafting/tables)Ultimate Zanaat Masasında$() yapılır. $(br2)Genellikle mevcut tekilliklerin çoğundan veya tamamından oluşur.", + + "book.extendedcrafting.entry.handheld_table": "Taşınabilir Zanaat Masası", + "book.extendedcrafting.entry.handheld_table.page.1": "Taşınabilir Zanaat Masası normal bir Zanaat Masasıdır." +} diff --git a/src/main/resources/assets/extendedcrafting/lang/uk_ua.json b/src/main/resources/assets/extendedcrafting/lang/uk_ua.json index a04ed87e..1ff7f14d 100644 --- a/src/main/resources/assets/extendedcrafting/lang/uk_ua.json +++ b/src/main/resources/assets/extendedcrafting/lang/uk_ua.json @@ -1,5 +1,5 @@ { - "itemGroup.extendedcrafting": "Extended Crafting", + "itemGroup.extendedcrafting": "Extended Crafting: Expanded Plus", "block.extendedcrafting.luminessence_block": "Люмінесцентний блок", "block.extendedcrafting.black_iron_block": "Блок чорного заліза", @@ -102,6 +102,9 @@ "message.extendedcrafting.copied_recipe": "Рецепт скопійовано в буфер обміну.", "message.extendedcrafting.nbt_requires_crafttweaker": "Для копіювання NBT потрібен CraftTweaker.", "message.extendedcrafting.max_unique_items_exceeded": "Ви можете мати максимум (%s) унікальних предметів у формованому рецепті датапака.", + "message.extendedcrafting.no_items_in_grid": "У сітці немає елементів для копіювання.", + "message.extendedcrafting.no_output_item_warning": "У першому слоті швидкого доступу немає предмета. Ви можете покласти вихідний предмет у перший слот, щоб включити його в скопійований рецепт.", + "jei.category.extendedcrafting.combination": "Комбіноване майстрування", "jei.category.extendedcrafting.basic_crafting": "Базове майстрування", @@ -129,7 +132,6 @@ "singularity.extendedcrafting.nickel": "Нікелева", "singularity.extendedcrafting.electrum": "Електрумова", "singularity.extendedcrafting.invar": "Інварова", - "singularity.extendedcrafting.uranium": "Уранова", "singularity.extendedcrafting.platinum": "Платинова", "book.extendedcrafting.name": "Extended Crafting", @@ -146,7 +148,7 @@ "book.extendedcrafting.entry.combination.page.1": "Комбіноване майстрування — це мультиблочна установка для майстрування, в якій предмети комбінуються разом, щоб змайструвати щось $(italic)особливе.$() $(br2)Ця установка складається з ядра майстрування в центрі та п'єдесталів, розташованих навколо нього. П'єдестали можна розміщувати будь-де навколо ядра майстрування в радіусі 3 блоків і вони повинні бути на одній висоті.", "book.extendedcrafting.entry.combination.page.2": "Щоб ця структура функціонувала, ядро майстрування повинно бути забезпечене енергією. $(br2)Рецепти мають центральний предмет, який розміщується на ядрі майстрування, і п'єдестальні предмети, які розміщуються на п'єдесталах навколо нього. $(br)Клацніть ПКМ по боковій частині ядра майстрування, щоб переглянути інформацію про поточне майстрування, наприклад прогрес або витрати енергії, а також скільки енергії зберігається в ньому.", "book.extendedcrafting.entry.tables": "Верстаки", - "book.extendedcrafting.entry.tables.page.1": "Цей мод додає нові верстаки розміром $(bold)3x3$(), $(bold)5x5$(), $(bold)7x7$() та $(bold)9x9$(). Ці верстаки зберігають предмети, які в них лежать, коли вони закриті.", + "book.extendedcrafting.entry.tables.page.1": "Цей мод додає нові верстаки розміром $(bold)3x3$(), $(bold)5x5$(), $(bold)7x7$(), $(bold)9x9$()та $(bold)11x11$(). Ці верстаки зберігають предмети, які в них лежать, коли вони закриті.", "book.extendedcrafting.entry.compression": "Компресійне майстрування", "book.extendedcrafting.entry.compression.page.1": "Квантова компресія — це процес надсильної компресії предметів. Для цього використовується квантовий компресор. $(br2)Квантовий компресор — це потужна машина, яка може утримувати та стискати надзвичайно великі обсяги матеріалів. Предмети, розміщені всередині квантового компресора, потрапляють у внутрішній буфер для компресії. Буфер представлений у вигляді синьої смуги.", "book.extendedcrafting.entry.compression.page.2": "Для кожного рецепту $(bold)зазвичай$() потрібен каталізатор. Каталізатор розміщується в крайньому лівому слоті і не витрачається. $(br2)Коли в буфері буде достатньо предметів, машина почне майструвати предмет. Квантовий компресор споживатиме енергію лише під час майстрування. $(br2)Якщо ви поклали в компресор предмети, які не хотіли б втрачати назавжди, ви можете натиснути кнопку Витягнути над вхідним слотом, щоб повернути їх.", diff --git a/src/main/resources/assets/extendedcrafting/lang/zh_cn.json b/src/main/resources/assets/extendedcrafting/lang/zh_cn.json index 2f865ed1..6b77acb2 100644 --- a/src/main/resources/assets/extendedcrafting/lang/zh_cn.json +++ b/src/main/resources/assets/extendedcrafting/lang/zh_cn.json @@ -117,6 +117,9 @@ "message.extendedcrafting.copied_recipe": "复制配方到剪贴板。", "message.extendedcrafting.nbt_requires_crafttweaker": "警告:需安装CraftTweaker方可复制NBT。", "message.extendedcrafting.max_unique_items_exceeded": "在成型的数据包配方中,你最多只能有%s个唯一项目。", + "message.extendedcrafting.no_items_in_grid": "网格中没有可复制的物品。", + "message.extendedcrafting.no_output_item_warning": "第一个快捷栏槽位中没有物品。你可以将输出物品放入第一个快捷栏槽位,以便将其包含在复制的配方中。", + "jei.category.extendedcrafting.combination": "组合合成", "jei.category.extendedcrafting.basic_crafting": "基础合成", @@ -176,7 +179,7 @@ "book.extendedcrafting.entry.combination.page.1": "组合合成是一个架设在世界上的多方块结构,使得物品组合在一起成为$(italic)特殊物品$()。$(br2)此结构在中央摆放一个合成核心且在其周围摆放基座。基座能放在合成核心半径三格范围内任意位置,且必须在同一高度。", "book.extendedcrafting.entry.combination.page.2": "为了使结构起作用,必须为合成核心提供能量。$(br2)配方中央位置的物品放在合成核心上,需放基座上的物品则放在其附近的基座上。$(br)右击合成核心的侧边会显示当前合成的信息,例如进度和能量消耗,以及其内部能量储量。", "book.extendedcrafting.entry.tables": "工作台合成", - "book.extendedcrafting.entry.tables.page.1": "本mod添加了$(bold)3x3$(),$(bold)5x5$(),$(bold)7x7$(),和$(bold)9x9$()大小的不同等级的工作台。关闭工作台时将会保存在其内部空间的物品。", + "book.extendedcrafting.entry.tables.page.1": "本mod添加了$(bold)3x3$(),$(bold)5x5$(),$(bold)7x7$(),$(bold)9x9$(),和$$(bold)11x11$() 大小的不同等级的工作台。关闭工作台时将会保存在其内部空间的物品。", "book.extendedcrafting.entry.compression": "压缩合成", "book.extendedcrafting.entry.compression.page.1": "量子压缩是将物品压缩得有点多的过程。使用量子压缩机即可进行压缩。$(br2)量子压缩机是一个需要能量的机器,它能容纳及对极大数量的材料进行压缩。放在量子压缩机的物品将进入到其内部缓存槽以用于压缩。缓存槽会以蓝色的条状物显示。", "book.extendedcrafting.entry.compression.page.2": "每个配方$(bold)一般$()都需要一个催化剂。催化剂需被放置在最左边的槽位中,它不会被消耗。$(br2)一旦缓存槽有足够的材料,机器将会开始制作物品。量子压缩机只会在合成的过程中使用能量。$(br2)假如你将物品错误放入压缩机,你只需点击在输入槽上方的弹出按钮即可拿回物品。", @@ -199,4 +202,4 @@ "book.extendedcrafting.entry.handheld_table": "手持工作台", "book.extendedcrafting.entry.handheld_table.page.1": "手持工作台是一个工作台。" -} \ No newline at end of file +} diff --git a/src/main/resources/pack.mcmeta b/src/main/resources/pack.mcmeta index b1248dab..cefeea03 100644 --- a/src/main/resources/pack.mcmeta +++ b/src/main/resources/pack.mcmeta @@ -1,6 +1,6 @@ { "pack": { - "description": "Extended Crafting: Monifactory Edition resources", + "description": "Extended Crafting: Expanded Plus resources", "pack_format": 15 } } diff --git a/src/test/resources/scripts/combination.test.zs b/src/test/resources/crafttweaker_scripts/combination.test.zs similarity index 100% rename from src/test/resources/scripts/combination.test.zs rename to src/test/resources/crafttweaker_scripts/combination.test.zs diff --git a/src/test/resources/scripts/compressor.test.zs b/src/test/resources/crafttweaker_scripts/compressor.test.zs similarity index 100% rename from src/test/resources/scripts/compressor.test.zs rename to src/test/resources/crafttweaker_scripts/compressor.test.zs diff --git a/src/test/resources/scripts/ender_crafter.test.zs b/src/test/resources/crafttweaker_scripts/ender_crafter.test.zs similarity index 100% rename from src/test/resources/scripts/ender_crafter.test.zs rename to src/test/resources/crafttweaker_scripts/ender_crafter.test.zs diff --git a/src/test/resources/scripts/flux_crafter.test.zs b/src/test/resources/crafttweaker_scripts/flux_crafter.test.zs similarity index 100% rename from src/test/resources/scripts/flux_crafter.test.zs rename to src/test/resources/crafttweaker_scripts/flux_crafter.test.zs diff --git a/src/test/resources/scripts/table.test.zs b/src/test/resources/crafttweaker_scripts/table.test.zs similarity index 100% rename from src/test/resources/scripts/table.test.zs rename to src/test/resources/crafttweaker_scripts/table.test.zs diff --git a/src/test/resources/datapacks/testing/data/testing/recipes/table_11x11_test.json b/src/test/resources/datapacks/testing/data/testing/recipes/table_11x11_test.json new file mode 100644 index 00000000..204477e1 --- /dev/null +++ b/src/test/resources/datapacks/testing/data/testing/recipes/table_11x11_test.json @@ -0,0 +1,24 @@ +{ + "type": "extendedcrafting:shaped_table", + "pattern": [ + "XXXXXXXXXXX", + "X X", + "X X", + "X X", + "X X", + "X X", + "X X", + "X X", + "X X", + "X X", + "XXXXXXXXXXX" + ], + "key": { + "X": { + "tag": "forge:ingots/gold" + } + }, + "result": { + "item": "minecraft:apple" + } +} \ No newline at end of file diff --git a/src/test/resources/kubejs_scripts/combination_test.js b/src/test/resources/kubejs_scripts/combination_test.js new file mode 100644 index 00000000..7616a960 --- /dev/null +++ b/src/test/resources/kubejs_scripts/combination_test.js @@ -0,0 +1,40 @@ +ServerEvents.recipes((event) => { + // minecraft:stone + event.custom({ + type: 'extendedcrafting:combination', + powerCost: 100000, + input: { + item: 'minecraft:iron_ingot' + }, + ingredients: [ + { + item: 'minecraft:gold_ingot' + }, + { + item: 'minecraft:gold_ingot' + }, + { + item: 'minecraft:gold_ingot' + }, + { + item: 'minecraft:gold_ingot' + }, + { + item: 'minecraft:gold_ingot' + }, + { + item: 'minecraft:gold_ingot' + }, + { + item: 'minecraft:gold_ingot' + }, + { + item: 'minecraft:gold_ingot' + } + ], + result: { + item: 'minecraft:stone' + } + }) + .id('minecraft:stone'); +}); \ No newline at end of file diff --git a/src/test/resources/kubejs_scripts/compression_test.js b/src/test/resources/kubejs_scripts/compression_test.js new file mode 100644 index 00000000..20768591 --- /dev/null +++ b/src/test/resources/kubejs_scripts/compression_test.js @@ -0,0 +1,18 @@ +ServerEvents.recipes((event) => { + // minecraft:stone + event.custom({ + type: 'extendedcrafting:compressor', + powerCost: 500000, + inputCount: 10000, + ingredient: { + item: 'minecraft:carrot' + }, + catalyst: { + item: 'extendedcrafting:ender_catalyst' + }, + result: { + item: 'minecraft:stone' + } + }) + .id('minecraft:stone'); +}); \ No newline at end of file diff --git a/src/test/resources/kubejs_scripts/ender_crafter_test.js b/src/test/resources/kubejs_scripts/ender_crafter_test.js new file mode 100644 index 00000000..8d7722d2 --- /dev/null +++ b/src/test/resources/kubejs_scripts/ender_crafter_test.js @@ -0,0 +1,59 @@ +//Shaped +ServerEvents.recipes((event) => { + // minecraft:stone + event.custom({ + type: 'extendedcrafting:shaped_ender_crafter', + pattern: [ + 'AAA', + 'A A', + 'AAA' + ], + key: { + A: { + item: 'minecraft:gold_ingot' + } + }, + result: { + item: 'minecraft:stone' + } + }) + .id('minecraft:stone'); +}); + +//Shapeless +ServerEvents.recipes((event) => { + // minecraft:stone + event.custom({ + type: 'extendedcrafting:shapeless_ender_crafter', + ingredients: [ + { + item: 'minecraft:gold_ingot' + }, + { + item: 'minecraft:gold_ingot' + }, + { + item: 'minecraft:gold_ingot' + }, + { + item: 'minecraft:gold_ingot' + }, + { + item: 'minecraft:gold_ingot' + }, + { + item: 'minecraft:gold_ingot' + }, + { + item: 'minecraft:gold_ingot' + }, + { + item: 'minecraft:gold_ingot' + } + ], + result: { + item: 'minecraft:stone' + } + }) + .id('minecraft:stone'); +}); \ No newline at end of file diff --git a/src/test/resources/kubejs_scripts/flux_crafter_test.js b/src/test/resources/kubejs_scripts/flux_crafter_test.js new file mode 100644 index 00000000..e29ef28b --- /dev/null +++ b/src/test/resources/kubejs_scripts/flux_crafter_test.js @@ -0,0 +1,63 @@ +//Shaped +ServerEvents.recipes((event) => { + // minecraft:stone + event.custom({ + type: 'extendedcrafting:shaped_flux_crafter', + powerRequired: 100000, + powerRate: 400, + pattern: [ + 'AAA', + 'A A', + 'AAA' + ], + key: { + A: { + item: 'minecraft:gold_ingot' + } + }, + result: { + item: 'minecraft:stone' + } + }) + .id('minecraft:stone'); +}); + +//SHapeless +ServerEvents.recipes((event) => { + // minecraft:stone + event.custom({ + type: 'extendedcrafting:shapeless_flux_crafter', + powerRequired: 100000, + powerRate: 400, + ingredients: [ + { + item: 'minecraft:gold_ingot' + }, + { + item: 'minecraft:gold_ingot' + }, + { + item: 'minecraft:gold_ingot' + }, + { + item: 'minecraft:gold_ingot' + }, + { + item: 'minecraft:gold_ingot' + }, + { + item: 'minecraft:gold_ingot' + }, + { + item: 'minecraft:gold_ingot' + }, + { + item: 'minecraft:gold_ingot' + } + ], + result: { + item: 'minecraft:stone' + } + }) + .id('minecraft:stone'); +}); \ No newline at end of file diff --git a/src/test/resources/kubejs_scripts/table_test.js b/src/test/resources/kubejs_scripts/table_test.js new file mode 100644 index 00000000..748e3eac --- /dev/null +++ b/src/test/resources/kubejs_scripts/table_test.js @@ -0,0 +1,130 @@ +//Tier 1 Table +ServerEvents.recipes((event) => { + // minecraft:stone + event.custom({ + type: 'extendedcrafting:shaped_table', + pattern: [ + 'AAA', + 'A A', + 'AAA' + ], + key: { + A: { + item: 'minecraft:gold_ingot' + } + }, + result: { + item: 'minecraft:stone' + } + }) + .id('minecraft:stone'); +}); + +//Tier 2 Table +ServerEvents.recipes((event) => { + // minecraft:stone + event.custom({ + type: 'extendedcrafting:shaped_table', + pattern: [ + 'AAAAA', + 'A A', + 'A A', + 'A A', + 'AAAAA' + ], + key: { + A: { + item: 'minecraft:gold_ingot' + } + }, + result: { + item: 'minecraft:stone' + } + }) + .id('minecraft:stone'); +}); + +//Tier 3 Table +ServerEvents.recipes((event) => { + // minecraft:stone + event.custom({ + type: 'extendedcrafting:shaped_table', + pattern: [ + 'AAAAAAA', + 'A A', + 'A A', + 'A A', + 'A A', + 'A A', + 'AAAAAAA' + ], + key: { + A: { + item: 'minecraft:gold_ingot' + } + }, + result: { + item: 'minecraft:stone' + } + }) + .id('minecraft:stone'); +}); + +//Tier 4 Table +ServerEvents.recipes((event) => { + // minecraft:stone + event.custom({ + type: 'extendedcrafting:shaped_table', + pattern: [ + 'AAAAAAAAA', + 'A A', + 'A A', + 'A A', + 'A A', + 'A A', + 'A A', + 'A A', + 'AAAAAAAAA' + ], + key: { + A: { + item: 'minecraft:gold_ingot' + } + }, + result: { + item: 'minecraft:stone' + } + }) + .id('minecraft:stone'); +}); + +//Tier 5 Table +ServerEvents.recipes((event) => { + // minecraft:stone + event.custom({ + type: 'extendedcrafting:shaped_table', + pattern: [ + 'AAAAAAAAAAA', + 'A A', + 'A A', + 'A A', + 'A A', + 'A A', + 'A A', + 'A A', + 'A A', + 'A A', + 'AAAAAAAAAAA' + ], + key: { + A: { + item: 'minecraft:gold_ingot' + } + }, + result: { + item: 'minecraft:stone' + } + }) + .id('minecraft:stone'); +}); +}); \ No newline at end of file