From 40e95482dde90250aed91cef42949639665cd109 Mon Sep 17 00:00:00 2001 From: Jacky Date: Mon, 17 Jul 2023 13:55:39 +0800 Subject: [PATCH] 3.5 Update - Added Copper, Amethyst and Netherite Exchangers - Made Golden, Iron and Copper Exchangers to be the same tier and all 3 of them can be used to upgrade to the Diamond Exchanger - Slightly nerfed Obsidian Exchanger - Removed Netherite ingots from Obsidian Exchanger recipe - Removed leftover code for Better With Mods integration as it is very unlikely to be ported for newer versions of MC - Added translations for Traditional Chinese (Hong Kong and Taiwan) - Updated textures for all of the Vanilla Exchangers --- build.gradle | 10 +- gradle.properties | 4 +- .../java/jackyy/exchangers/Exchangers.java | 6 - .../BetterWithModsIntegration.java | 41 ----- .../item/vanilla/ItemAmethystExchanger.java | 46 +++++ .../item/vanilla/ItemCopperExchanger.java | 46 +++++ .../item/vanilla/ItemDiamondExchanger.java | 2 +- .../item/vanilla/ItemEmeraldExchanger.java | 2 +- .../item/vanilla/ItemEndExchanger.java | 2 +- .../item/vanilla/ItemIronExchanger.java | 2 +- .../item/vanilla/ItemNetheriteExchanger.java | 46 +++++ .../item/vanilla/ItemObsidianExchanger.java | 2 +- .../exchangers/registry/ModConfigs.java | 42 +++++ .../jackyy/exchangers/registry/ModItems.java | 3 + .../jackyy/exchangers/util/DefaultValues.java | 13 +- .../jackyy/exchangers/util/Reference.java | 2 +- src/main/resources/META-INF/mods.toml | 6 - .../assets/exchangers/lang/en_us.json | 4 +- .../assets/exchangers/lang/zh_cn.json | 12 +- .../assets/exchangers/lang/zh_hk.json | 159 ++++++++++++++++++ .../assets/exchangers/lang/zh_tw.json | 159 ++++++++++++++++++ .../models/item/amethyst_exchanger.json | 6 + .../models/item/copper_exchanger.json | 6 + .../models/item/netherite_exchanger.json | 6 + .../item/vanilla/amethyst_exchanger.png | Bin 0 -> 887 bytes .../vanilla/amethyst_exchanger.png.mcmeta | 12 ++ .../item/vanilla/copper_exchanger.png | Bin 0 -> 759 bytes .../item/vanilla/copper_exchanger.png.mcmeta | 12 ++ .../item/vanilla/diamond_exchanger.png | Bin 899 -> 799 bytes .../item/vanilla/emerald_exchanger.png | Bin 940 -> 791 bytes .../textures/item/vanilla/end_exchanger.png | Bin 3173 -> 844 bytes .../item/vanilla/golden_exchanger.png | Bin 865 -> 752 bytes .../textures/item/vanilla/iron_exchanger.png | Bin 832 -> 721 bytes .../item/vanilla/netherite_exchanger.png | Bin 0 -> 821 bytes .../vanilla/netherite_exchanger.png.mcmeta | 12 ++ .../item/vanilla/obsidian_exchanger.png | Bin 1022 -> 769 bytes .../textures/item/vanilla/stone_exchanger.png | Bin 808 -> 680 bytes .../item/vanilla/wooden_exchanger.png | Bin 947 -> 782 bytes .../vanilla/easy/amethyst_exchanger.json | 30 ++++ .../vanilla/easy/copper_exchanger.json | 30 ++++ .../vanilla/easy/netherite_exchanger.json | 36 ++++ .../vanilla/hard/amethyst_exchanger.json | 33 ++++ .../vanilla/hard/copper_exchanger.json | 33 ++++ .../vanilla/hard/diamond_exchanger.json | 14 +- .../recipes/vanilla/hard/end_exchanger.json | 2 +- .../recipes/vanilla/hard/iron_exchanger.json | 2 +- .../vanilla/hard/netherite_exchanger.json | 36 ++++ .../vanilla/hard/obsidian_exchanger.json | 5 +- .../vanilla/normal/amethyst_exchanger.json | 33 ++++ .../vanilla/normal/copper_exchanger.json | 33 ++++ .../vanilla/normal/diamond_exchanger.json | 14 +- .../recipes/vanilla/normal/end_exchanger.json | 2 +- .../vanilla/normal/iron_exchanger.json | 2 +- .../vanilla/normal/netherite_exchanger.json | 36 ++++ .../vanilla/normal/obsidian_exchanger.json | 5 +- 55 files changed, 916 insertions(+), 93 deletions(-) delete mode 100644 src/main/java/jackyy/exchangers/integration/BetterWithModsIntegration.java create mode 100644 src/main/java/jackyy/exchangers/item/vanilla/ItemAmethystExchanger.java create mode 100644 src/main/java/jackyy/exchangers/item/vanilla/ItemCopperExchanger.java create mode 100644 src/main/java/jackyy/exchangers/item/vanilla/ItemNetheriteExchanger.java create mode 100644 src/main/resources/assets/exchangers/lang/zh_hk.json create mode 100644 src/main/resources/assets/exchangers/lang/zh_tw.json create mode 100644 src/main/resources/assets/exchangers/models/item/amethyst_exchanger.json create mode 100644 src/main/resources/assets/exchangers/models/item/copper_exchanger.json create mode 100644 src/main/resources/assets/exchangers/models/item/netherite_exchanger.json create mode 100644 src/main/resources/assets/exchangers/textures/item/vanilla/amethyst_exchanger.png create mode 100644 src/main/resources/assets/exchangers/textures/item/vanilla/amethyst_exchanger.png.mcmeta create mode 100644 src/main/resources/assets/exchangers/textures/item/vanilla/copper_exchanger.png create mode 100644 src/main/resources/assets/exchangers/textures/item/vanilla/copper_exchanger.png.mcmeta create mode 100644 src/main/resources/assets/exchangers/textures/item/vanilla/netherite_exchanger.png create mode 100644 src/main/resources/assets/exchangers/textures/item/vanilla/netherite_exchanger.png.mcmeta create mode 100644 src/main/resources/data/exchangers/recipes/vanilla/easy/amethyst_exchanger.json create mode 100644 src/main/resources/data/exchangers/recipes/vanilla/easy/copper_exchanger.json create mode 100644 src/main/resources/data/exchangers/recipes/vanilla/easy/netherite_exchanger.json create mode 100644 src/main/resources/data/exchangers/recipes/vanilla/hard/amethyst_exchanger.json create mode 100644 src/main/resources/data/exchangers/recipes/vanilla/hard/copper_exchanger.json create mode 100644 src/main/resources/data/exchangers/recipes/vanilla/hard/netherite_exchanger.json create mode 100644 src/main/resources/data/exchangers/recipes/vanilla/normal/amethyst_exchanger.json create mode 100644 src/main/resources/data/exchangers/recipes/vanilla/normal/copper_exchanger.json create mode 100644 src/main/resources/data/exchangers/recipes/vanilla/normal/netherite_exchanger.json diff --git a/build.gradle b/build.gradle index 47935f5..a27e748 100644 --- a/build.gradle +++ b/build.gradle @@ -58,6 +58,10 @@ minecraft { sourceSets.main.resources { srcDir 'src/generated/resources' } repositories { + maven { + name = 'ModMaven' + url = 'https://modmaven.dev' + } maven { name = 'JEI Maven' url = 'https://dvs1.progwml6.com/files/maven' @@ -65,10 +69,6 @@ repositories { includeGroup 'mezz.jei' } } - maven { - name = "ModMaven" - url = "https://modmaven.dev" - } maven { name = 'Curse Maven' url = 'https://www.cursemaven.com' @@ -87,7 +87,7 @@ dependencies { implementation fg.deobf("curse.maven:gunpowderlib-356646:4573505") //1.20-2.2 - runtimeOnly fg.deobf("curse.maven:ender_io-64578:4631517") //6.0.3-alpha + runtimeOnly fg.deobf("curse.maven:ender_io-64578:4637542") //6.0.5-alpha //runtimeOnly fg.deobf("curse.maven:mekanism-268560:") //runtimeOnly fg.deobf("curse.maven:immersive_engineering-231951:") //runtimeOnly fg.deobf("curse.maven:cofh_core-69162:") diff --git a/gradle.properties b/gradle.properties index 1cd06e5..c1de5a9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,14 +7,14 @@ mod_name=Exchangers mc_version=1.20.1 mc_version_range=[1.20,1.21) -forge_version=47.1.0 +forge_version=47.1.28 forge_version_range=[46,) loader_version_range=[46,) mappings_channel=official mappings_version=1.20.1 -mod_version=3.4.1 +mod_version=3.5 mod_license=Jacky's Minecraft Mods License mod_authors=Jackyy, TurkeyDev mod_description=Block Exchangers. diff --git a/src/main/java/jackyy/exchangers/Exchangers.java b/src/main/java/jackyy/exchangers/Exchangers.java index 27b0b05..95a979a 100644 --- a/src/main/java/jackyy/exchangers/Exchangers.java +++ b/src/main/java/jackyy/exchangers/Exchangers.java @@ -27,12 +27,6 @@ public Exchangers() { } private void commonSetup(final FMLCommonSetupEvent event) { - /* - TODO add Better With Mods integration back when possible - if (ModList.get().isLoaded(Reference.BWM)) { - MinecraftForge.EVENT_BUS.register(new BetterWithModsIntegration()); - } - */ MinecraftForge.EVENT_BUS.register(new CommonEventsHandler()); NetworkHandler.registerMessages(); } diff --git a/src/main/java/jackyy/exchangers/integration/BetterWithModsIntegration.java b/src/main/java/jackyy/exchangers/integration/BetterWithModsIntegration.java deleted file mode 100644 index 2fd15da..0000000 --- a/src/main/java/jackyy/exchangers/integration/BetterWithModsIntegration.java +++ /dev/null @@ -1,41 +0,0 @@ -package jackyy.exchangers.integration; - -/* -import betterwithmods.module.hardcore.world.strata.HCStrata; -import jackyy.exchangers.util.IExchanger; -import jackyy.exchangers.util.Reference; -import net.minecraft.block.BlockState; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraft.world.World; -import net.minecraftforge.event.world.BlockEvent; -import net.minecraftforge.eventbus.api.SubscribeEvent; -*/ - -public class BetterWithModsIntegration { - - /* - @SubscribeEvent @Deprecated - public void onPlace(BlockEvent.EntityPlaceEvent event) { - if (!(event.getEntity() instanceof PlayerEntity)) - return; - World world = event.getEntity().world; - BlockPos pos = event.getPos(); - BlockState state = event.getState(); - if (HCStrata.shouldStratify(world, state)) { - ItemStack stack = ((PlayerEntity) event.getEntity()).getHeldItemMainhand(); - int strata = HCStrata.getStratification(world, pos, world.getDimensionKey()).ordinal(); - if (stack.getItem() instanceof IExchanger && HCStrata.STATES.containsKey(event.getState())) { - int level = Math.max(1, ((IExchanger) stack.getItem()).getHarvestLevel()); - if (level <= strata) { - event.setCanceled(true); - ((PlayerEntity) event.getEntity()).sendStatusMessage(new TranslationTextComponent(Reference.MODID + "." + "error.event_cancelled_bwm"), false); - } - } - } - } - */ - -} diff --git a/src/main/java/jackyy/exchangers/item/vanilla/ItemAmethystExchanger.java b/src/main/java/jackyy/exchangers/item/vanilla/ItemAmethystExchanger.java new file mode 100644 index 0000000..46987f1 --- /dev/null +++ b/src/main/java/jackyy/exchangers/item/vanilla/ItemAmethystExchanger.java @@ -0,0 +1,46 @@ +package jackyy.exchangers.item.vanilla; + +import jackyy.exchangers.item.ItemExchangerBase; +import jackyy.exchangers.registry.ModConfigs; +import jackyy.exchangers.util.DefaultValues; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Rarity; +import net.minecraftforge.common.Tags; + +public class ItemAmethystExchanger extends ItemExchangerBase { + + public ItemAmethystExchanger() { + super(new Properties().durability(DefaultValues.amethystMaxDmg).rarity(Rarity.EPIC)); + } + + @Override + public String getHarvestLevel() { + return ModConfigs.CONFIG.amethystMaxHarvestLevel.get(); + } + + @Override + public String getDefaultHarvestLevel() { + return DefaultValues.amethystMaxHarvestLevel; + } + + @Override + public int getMaxRange() { + return ModConfigs.CONFIG.amethystMaxRange.get(); + } + + @Override + public int getTier() { + return 7; + } + + @Override + public boolean checkLoaded() { + return ModConfigs.CONFIG.vanillaModule.get(); + } + + @Override + public boolean isValidRepairItem(ItemStack toRepair, ItemStack repair) { + return repair.is(Tags.Items.GEMS_AMETHYST); + } + +} diff --git a/src/main/java/jackyy/exchangers/item/vanilla/ItemCopperExchanger.java b/src/main/java/jackyy/exchangers/item/vanilla/ItemCopperExchanger.java new file mode 100644 index 0000000..0fef180 --- /dev/null +++ b/src/main/java/jackyy/exchangers/item/vanilla/ItemCopperExchanger.java @@ -0,0 +1,46 @@ +package jackyy.exchangers.item.vanilla; + +import jackyy.exchangers.item.ItemExchangerBase; +import jackyy.exchangers.registry.ModConfigs; +import jackyy.exchangers.util.DefaultValues; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Rarity; +import net.minecraftforge.common.Tags; + +public class ItemCopperExchanger extends ItemExchangerBase { + + public ItemCopperExchanger() { + super(new Properties().durability(DefaultValues.copperMaxDmg).rarity(Rarity.RARE)); + } + + @Override + public String getHarvestLevel() { + return ModConfigs.CONFIG.copperMaxHarvestLevel.get(); + } + + @Override + public String getDefaultHarvestLevel() { + return DefaultValues.copperMaxHarvestLevel; + } + + @Override + public int getMaxRange() { + return ModConfigs.CONFIG.copperMaxRange.get(); + } + + @Override + public int getTier() { + return 3; + } + + @Override + public boolean checkLoaded() { + return ModConfigs.CONFIG.vanillaModule.get(); + } + + @Override + public boolean isValidRepairItem(ItemStack toRepair, ItemStack repair) { + return repair.is(Tags.Items.INGOTS_COPPER); + } + +} diff --git a/src/main/java/jackyy/exchangers/item/vanilla/ItemDiamondExchanger.java b/src/main/java/jackyy/exchangers/item/vanilla/ItemDiamondExchanger.java index 0cc1cde..5e84dcc 100644 --- a/src/main/java/jackyy/exchangers/item/vanilla/ItemDiamondExchanger.java +++ b/src/main/java/jackyy/exchangers/item/vanilla/ItemDiamondExchanger.java @@ -30,7 +30,7 @@ public int getMaxRange() { @Override public int getTier() { - return 5; + return 4; } @Override diff --git a/src/main/java/jackyy/exchangers/item/vanilla/ItemEmeraldExchanger.java b/src/main/java/jackyy/exchangers/item/vanilla/ItemEmeraldExchanger.java index b5ab982..6fece38 100644 --- a/src/main/java/jackyy/exchangers/item/vanilla/ItemEmeraldExchanger.java +++ b/src/main/java/jackyy/exchangers/item/vanilla/ItemEmeraldExchanger.java @@ -30,7 +30,7 @@ public int getMaxRange() { @Override public int getTier() { - return 6; + return 5; } @Override diff --git a/src/main/java/jackyy/exchangers/item/vanilla/ItemEndExchanger.java b/src/main/java/jackyy/exchangers/item/vanilla/ItemEndExchanger.java index 0ac7b15..34e84b2 100644 --- a/src/main/java/jackyy/exchangers/item/vanilla/ItemEndExchanger.java +++ b/src/main/java/jackyy/exchangers/item/vanilla/ItemEndExchanger.java @@ -31,7 +31,7 @@ public int getMaxRange() { @Override public int getTier() { - return 8; + return 9; } @Override diff --git a/src/main/java/jackyy/exchangers/item/vanilla/ItemIronExchanger.java b/src/main/java/jackyy/exchangers/item/vanilla/ItemIronExchanger.java index 2ba5d1f..ef4a927 100644 --- a/src/main/java/jackyy/exchangers/item/vanilla/ItemIronExchanger.java +++ b/src/main/java/jackyy/exchangers/item/vanilla/ItemIronExchanger.java @@ -30,7 +30,7 @@ public int getMaxRange() { @Override public int getTier() { - return 4; + return 3; } @Override diff --git a/src/main/java/jackyy/exchangers/item/vanilla/ItemNetheriteExchanger.java b/src/main/java/jackyy/exchangers/item/vanilla/ItemNetheriteExchanger.java new file mode 100644 index 0000000..43dbefe --- /dev/null +++ b/src/main/java/jackyy/exchangers/item/vanilla/ItemNetheriteExchanger.java @@ -0,0 +1,46 @@ +package jackyy.exchangers.item.vanilla; + +import jackyy.exchangers.item.ItemExchangerBase; +import jackyy.exchangers.registry.ModConfigs; +import jackyy.exchangers.util.DefaultValues; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Rarity; +import net.minecraftforge.common.Tags; + +public class ItemNetheriteExchanger extends ItemExchangerBase { + + public ItemNetheriteExchanger() { + super(new Properties().durability(DefaultValues.netheriteMaxDmg).rarity(Rarity.EPIC)); + } + + @Override + public String getHarvestLevel() { + return ModConfigs.CONFIG.netheriteMaxHarvestLevel.get(); + } + + @Override + public String getDefaultHarvestLevel() { + return DefaultValues.netheriteMaxHarvestLevel; + } + + @Override + public int getMaxRange() { + return ModConfigs.CONFIG.netheriteMaxRange.get(); + } + + @Override + public int getTier() { + return 8; + } + + @Override + public boolean checkLoaded() { + return ModConfigs.CONFIG.vanillaModule.get(); + } + + @Override + public boolean isValidRepairItem(ItemStack toRepair, ItemStack repair) { + return repair.is(Tags.Items.INGOTS_NETHERITE); + } + +} diff --git a/src/main/java/jackyy/exchangers/item/vanilla/ItemObsidianExchanger.java b/src/main/java/jackyy/exchangers/item/vanilla/ItemObsidianExchanger.java index 28d0e3c..b712a30 100644 --- a/src/main/java/jackyy/exchangers/item/vanilla/ItemObsidianExchanger.java +++ b/src/main/java/jackyy/exchangers/item/vanilla/ItemObsidianExchanger.java @@ -30,7 +30,7 @@ public int getMaxRange() { @Override public int getTier() { - return 7; + return 6; } @Override diff --git a/src/main/java/jackyy/exchangers/registry/ModConfigs.java b/src/main/java/jackyy/exchangers/registry/ModConfigs.java index 1f972af..01cf8d5 100644 --- a/src/main/java/jackyy/exchangers/registry/ModConfigs.java +++ b/src/main/java/jackyy/exchangers/registry/ModConfigs.java @@ -26,12 +26,18 @@ public static class CommonConfig { public final ForgeConfigSpec.IntValue goldenMaxRange; public final ForgeConfigSpec.ConfigValue ironMaxHarvestLevel; public final ForgeConfigSpec.IntValue ironMaxRange; + public final ForgeConfigSpec.ConfigValue copperMaxHarvestLevel; + public final ForgeConfigSpec.IntValue copperMaxRange; public final ForgeConfigSpec.ConfigValue diamondMaxHarvestLevel; public final ForgeConfigSpec.IntValue diamondMaxRange; public final ForgeConfigSpec.ConfigValue emeraldMaxHarvestLevel; public final ForgeConfigSpec.IntValue emeraldMaxRange; public final ForgeConfigSpec.ConfigValue obsidianMaxHarvestLevel; public final ForgeConfigSpec.IntValue obsidianMaxRange; + public final ForgeConfigSpec.ConfigValue amethystMaxHarvestLevel; + public final ForgeConfigSpec.IntValue amethystMaxRange; + public final ForgeConfigSpec.ConfigValue netheriteMaxHarvestLevel; + public final ForgeConfigSpec.IntValue netheriteMaxRange; public final ForgeConfigSpec.ConfigValue endMaxHarvestLevel; public final ForgeConfigSpec.IntValue endMaxRange; @@ -229,6 +235,18 @@ public static class CommonConfig { .comment("Set the max range for Iron Exchanger") .defineInRange("ironExchangerMaxRange", DefaultValues.ironMaxRange, 0, 12); + copperMaxHarvestLevel = builder + .comment( + "Set the max harvest level for Copper Exchanger", + "Valid Vanilla values are: minecraft:wood, minecraft:stone, minecraft:iron, minecraft:diamond, minecraft:netherite", + "For modded values, please check the tool tiers for the mod that you want to use", + "Entering an incorrect value will result in the Exchanger using the default value to prevent crashes" + ) + .define("copperExchangerMaxHarvestLevel", DefaultValues.copperMaxHarvestLevel); + copperMaxRange = builder + .comment("Set the max range for Copper Exchanger") + .defineInRange("copperExchangerMaxRange", DefaultValues.copperMaxRange, 0, 12); + diamondMaxHarvestLevel = builder .comment( "Set the max harvest level for Diamond Exchanger", @@ -265,6 +283,30 @@ public static class CommonConfig { .comment("Set the max range for Obsidian Exchanger") .defineInRange("obsidianExchangerMaxRange", DefaultValues.obsidianMaxRange, 0, 12); + amethystMaxHarvestLevel = builder + .comment( + "Set the max harvest level for Amethyst Exchanger", + "Valid Vanilla values are: minecraft:wood, minecraft:stone, minecraft:iron, minecraft:diamond, minecraft:netherite", + "For modded values, please check the tool tiers for the mod that you want to use", + "Entering an incorrect value will result in the Exchanger using the default value to prevent crashes" + ) + .define("amethystExchangerMaxHarvestLevel", DefaultValues.amethystMaxHarvestLevel); + amethystMaxRange = builder + .comment("Set the max range for Amethyst Exchanger") + .defineInRange("amethystExchangerMaxRange", DefaultValues.amethystMaxRange, 0, 12); + + netheriteMaxHarvestLevel = builder + .comment( + "Set the max harvest level for Netherite Exchanger", + "Valid Vanilla values are: minecraft:wood, minecraft:stone, minecraft:iron, minecraft:diamond, minecraft:netherite", + "For modded values, please check the tool tiers for the mod that you want to use", + "Entering an incorrect value will result in the Exchanger using the default value to prevent crashes" + ) + .define("netheriteExchangerMaxHarvestLevel", DefaultValues.netheriteMaxHarvestLevel); + netheriteMaxRange = builder + .comment("Set the max range for Netherite Exchanger") + .defineInRange("netheriteExchangerMaxRange", DefaultValues.netheriteMaxRange, 0, 12); + endMaxHarvestLevel = builder .comment( "Set the max harvest level for End Exchanger", diff --git a/src/main/java/jackyy/exchangers/registry/ModItems.java b/src/main/java/jackyy/exchangers/registry/ModItems.java index 3182c4c..0a54195 100644 --- a/src/main/java/jackyy/exchangers/registry/ModItems.java +++ b/src/main/java/jackyy/exchangers/registry/ModItems.java @@ -24,9 +24,12 @@ public class ModItems { public static final RegistryObject STONE_EXCHANGER = ITEMS.register("stone_exchanger", ItemStoneExchanger::new); public static final RegistryObject GOLDEN_EXCHANGER = ITEMS.register("golden_exchanger", ItemGoldenExchanger::new); public static final RegistryObject IRON_EXCHANGER = ITEMS.register("iron_exchanger", ItemIronExchanger::new); + public static final RegistryObject COPPER_EXCHANGER = ITEMS.register("copper_exchanger", ItemCopperExchanger::new); public static final RegistryObject DIAMOND_EXCHANGER = ITEMS.register("diamond_exchanger", ItemDiamondExchanger::new); public static final RegistryObject EMERALD_EXCHANGER = ITEMS.register("emerald_exchanger", ItemEmeraldExchanger::new); public static final RegistryObject OBSIDIAN_EXCHANGER = ITEMS.register("obsidian_exchanger", ItemObsidianExchanger::new); + public static final RegistryObject AMETHYST_EXCHANGER = ITEMS.register("amethyst_exchanger", ItemAmethystExchanger::new); + public static final RegistryObject NETHERITE_EXCHANGER = ITEMS.register("netherite_exchanger", ItemNetheriteExchanger::new); public static final RegistryObject END_EXCHANGER = ITEMS.register("end_exchanger", ItemEndExchanger::new); public static final RegistryObject EXCHANGER_CORE_TIER1 = ITEMS.register("exchanger_core_tier1", ItemExchangerCoreT1::new); public static final RegistryObject EXCHANGER_CORE_TIER2 = ITEMS.register("exchanger_core_tier2", ItemExchangerCoreT2::new); diff --git a/src/main/java/jackyy/exchangers/util/DefaultValues.java b/src/main/java/jackyy/exchangers/util/DefaultValues.java index 67d71d3..09809e5 100644 --- a/src/main/java/jackyy/exchangers/util/DefaultValues.java +++ b/src/main/java/jackyy/exchangers/util/DefaultValues.java @@ -22,15 +22,24 @@ public final class DefaultValues { public static int ironMaxDmg = 1024; public static String ironMaxHarvestLevel = "minecraft:iron"; public static int ironMaxRange = 3; + public static int copperMaxDmg = 1024; + public static String copperMaxHarvestLevel = "minecraft:iron"; + public static int copperMaxRange = 3; public static int diamondMaxDmg = 4096; public static String diamondMaxHarvestLevel = "minecraft:diamond"; public static int diamondMaxRange = 4; public static int emeraldMaxDmg = 8192; public static String emeraldMaxHarvestLevel = "minecraft:diamond"; public static int emeraldMaxRange = 5; - public static int obsidianMaxDmg = 16384; - public static String obsidianMaxHarvestLevel = "minecraft:netherite"; + public static int obsidianMaxDmg = 10240; + public static String obsidianMaxHarvestLevel = "minecraft:diamond"; public static int obsidianMaxRange = 6; + public static int amethystMaxDmg = 12288; + public static String amethystMaxHarvestLevel = "minecraft:diamond"; + public static int amethystMaxRange = 6; + public static int netheriteMaxDmg = 16384; + public static String netheriteMaxHarvestLevel = "minecraft:netherite"; + public static int netheriteMaxRange = 7; public static int endMaxDmg = 32768; public static String endMaxHarvestLevel = "minecraft:netherite"; public static int endMaxRange = 7; diff --git a/src/main/java/jackyy/exchangers/util/Reference.java b/src/main/java/jackyy/exchangers/util/Reference.java index eb34224..c4cce43 100644 --- a/src/main/java/jackyy/exchangers/util/Reference.java +++ b/src/main/java/jackyy/exchangers/util/Reference.java @@ -18,7 +18,7 @@ public final class Reference { public static final String THERMAL_INNOVATION = "thermal_innovation"; public static final String MEK = "mekanism"; public static final String IE = "immersiveengineering"; - public static final String BWM = "betterwithmods"; + public static final Rarity RARITY_TIER1 = Rarity.create(MODID + "_rarity_tier1", ChatFormatting.GREEN); public static final Rarity RARITY_BEE = Rarity.create(MODID + "_rarity_bee", ChatFormatting.GOLD); diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index 677caca..8468aad 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -73,9 +73,3 @@ description='''${mod_description}''' versionRange="[1.0,)" ordering="AFTER" side="BOTH" -[[dependencies.${mod_id}]] - modId="betterwithmods" - mandatory=false - versionRange="[1.0,)" - ordering="AFTER" - side="BOTH" diff --git a/src/main/resources/assets/exchangers/lang/en_us.json b/src/main/resources/assets/exchangers/lang/en_us.json index d3ec05a..222dcbf 100644 --- a/src/main/resources/assets/exchangers/lang/en_us.json +++ b/src/main/resources/assets/exchangers/lang/en_us.json @@ -62,7 +62,6 @@ "exchangers.error.out_of_block": "§cError: Out of block!", "exchangers.error.out_of_power": "§cError: Out of power!", "exchangers.error.event_cancelled": "§cError: Exchange event cancelled by other mods!", - "exchangers.error.event_cancelled_bwm": "§cYou need an Exchanger with higher harvest level due to Better With Mods Hardcore Strata!", "exchangers.error.low_harvest_level": "§cError: Your Exchanger's maximum harvest level is too low to exchange this block!", "exchangers.msg.force_drop_items.on": "Force Drop Items mode is now §a§lenabled§r.", "exchangers.msg.force_drop_items.off": "Force Drop Items mode is now §4§ldisabled§r.", @@ -114,10 +113,13 @@ "item.exchangers.wooden_exchanger": "Wooden Exchanger", "item.exchangers.stone_exchanger": "Stone Exchanger", "item.exchangers.golden_exchanger": "Golden Exchanger", + "item.exchangers.copper_exchanger": "Copper Exchanger", "item.exchangers.iron_exchanger": "Iron Exchanger", "item.exchangers.diamond_exchanger": "Diamond Exchanger", "item.exchangers.emerald_exchanger": "Emerald Exchanger", + "item.exchangers.amethyst_exchanger": "Amethyst Exchanger", "item.exchangers.obsidian_exchanger": "Obsidian Exchanger", + "item.exchangers.netherite_exchanger": "Netherite Exchanger", "item.exchangers.end_exchanger": "End Exchanger", "_comment": "Ender IO Exchangers", diff --git a/src/main/resources/assets/exchangers/lang/zh_cn.json b/src/main/resources/assets/exchangers/lang/zh_cn.json index 0c89f8b..ff0e49b 100644 --- a/src/main/resources/assets/exchangers/lang/zh_cn.json +++ b/src/main/resources/assets/exchangers/lang/zh_cn.json @@ -14,9 +14,9 @@ "exchangers.tooltip.state.enabled": "启用", "exchangers.tooltip.state.disabled": "禁用", "exchangers.tooltip.tuberous_exchanger.warning": "§c§o真聪明!但并没有卵用!", - "exchangers.tooltip.selected_block": "§2S当前选定方块: %s", - "exchangers.tooltip.current_range": "§2当前更替范围: %s", - "exchangers.tooltip.max_range": "§2最大更替范围: %s", + "exchangers.tooltip.selected_block": "§2S当前选定方块:%s", + "exchangers.tooltip.current_range": "§2当前更替范围:%s", + "exchangers.tooltip.max_range": "§2最大更替范围:%s", "exchangers.tooltip.no_selected_block": "§4没有选定方块", "exchangers.tooltip.silk_touch": "§f精准采集模式已在配置里%s", @@ -83,7 +83,7 @@ "item.exchangers.ultimate_exchanger": "终极方块交换器", "_comment": "Immersive Engineering Exchangers", - "item.exchangers.lv_exchanger": "LV方块交换器", - "item.exchangers.mv_exchanger": "MV方块交换器", - "item.exchangers.hv_exchanger": "HV方块交换器" + "item.exchangers.lv_exchanger": "低压方块交换器", + "item.exchangers.mv_exchanger": "中压方块交换器", + "item.exchangers.hv_exchanger": "高压方块交换器" } \ No newline at end of file diff --git a/src/main/resources/assets/exchangers/lang/zh_hk.json b/src/main/resources/assets/exchangers/lang/zh_hk.json new file mode 100644 index 0000000..9d436b8 --- /dev/null +++ b/src/main/resources/assets/exchangers/lang/zh_hk.json @@ -0,0 +1,159 @@ +{ + "_comment": "Creative Tab", + "item_group.exchangers.main_creative_tab": "方塊交換器", + + "_comment": "Key Bindings", + "key.categories.exchangers": "方塊交換器", + "key.exchangers.open_gui": "打開交換器介面", + "key.exchangers.range_switch": "變更交換器範圍", + "key.exchangers.mode_switch": "變更交換器模式", + "key.exchangers.force_drop_items_mode_toggle": "切換强制丟棄物品模式", + "key.exchangers.directional_placement_mode_toggle": "切換定向放置方塊模式", + "key.exchangers.fuzzy_placement_mode_toggle": "切換模糊放置方塊模式", + "key.exchangers.void_items_mode_toggle": "切換消除物品模式", + + "_comment": "GUI", + "screen.exchangers.exchanger_gui.title": "交換器介面", + "exchangers.tooltip.decrease_range_button": "縮細範圍", + "exchangers.tooltip.increase_range_button": "放大範圍", + "exchangers.tooltip.mode_switch_button": "變更交換器模式", + "exchangers.tooltip.force_drop_items_button_name": "强制丟棄物品模式", + "exchangers.tooltip.force_drop_items_button_desc": "這模式允許交換器將交換出來的方塊或物品扔到地上,與可以消除多餘方塊或物品的工具配合得很好。", + "exchangers.tooltip.directional_placement_button_name": "定向放置方塊模式", + "exchangers.tooltip.directional_placement_button_desc": "這模式允許交換器根據玩家面向的方向交換方塊。", + "exchangers.tooltip.fuzzy_placement_button_name": "模糊放置方塊模式", + "exchangers.tooltip.fuzzy_placement_button_desc": "這模式允許交換器以百分比為基礎放置每個方塊,請使用右邊的文本框設置機會率。", + "exchangers.tooltip.fuzzy_placement_chance_box_name": "模糊放置方塊機會率", + "exchangers.tooltip.fuzzy_placement_chance_box_desc": "設置為每個方塊的放置機會率,一個從1到100之間的數值,僅在啟用模糊放置方塊模式時生效。", + "exchangers.tooltip.void_items_button_name": "消除物品模式", + "exchangers.tooltip.void_items_button_desc": "這模式會把所有交換出來的方塊或物品消除,請謹慎使用。", + + "_comment": "Tooltips", + "exchangers.tooltip.durability": "耐久度", + "exchangers.tooltip.tier": "等級 %d", + "exchangers.tooltip.hold_shift": "長按 %s 鍵查看詳情", + "exchangers.tooltip.hold_shift.shift": "Shift", + "exchangers.tooltip.hold_ctrl": "長按 %s 鍵查看額外信息", + "exchangers.tooltip.hold_ctrl.ctrl": "Ctrl", + "exchangers.tooltip.state.enabled": "已啟用", + "exchangers.tooltip.state.disabled": "已禁用", + "exchangers.tooltip.extra1": "潛行右鍵單擊方塊進行選擇", + "exchangers.tooltip.extra2": "右鍵單擊方塊進行交換", + "exchangers.tooltip.extra3": "使用 %s 鍵打開交換器介面", + "exchangers.tooltip.tuberous_exchanger.warning": "§c§o聰明的!但不能交換方塊。", + "exchangers.tooltip.bee_exchanger.flavor_text": "§6§o快樂的蜜蜂! :)", + "exchangers.tooltip.selected_block": "選定的方塊:%s", + "exchangers.tooltip.selected_block.none": "什麽都沒有", + "exchangers.tooltip.selected_block.error": "無法獲取方塊名稱", + "exchangers.tooltip.current_range": "當前的交換範圍:%s", + "exchangers.tooltip.max_range": "最大交換範圍:%s", + "exchangers.tooltip.max_harvest_level": "最高破壞等級:%s", + "exchangers.tooltip.current_mode": "當前的模式:%s", + "exchangers.tooltip.state": "狀態:%s", + "exchangers.tooltip.silk_touch": "絲綢之觸模式已在配置檔裏%s。", + "exchangers.tooltip.force_drop_items": "强制丟棄物品模式是%s的。", + "exchangers.tooltip.directional_placement": "定向放置方塊模式是%s的。", + "exchangers.tooltip.fuzzy_placement": "模糊放置方塊模式是%s的。", + + "_comment": "Messages", + "exchangers.error.invalid_block.te": "§c錯誤:無效的方塊!(方塊實體)", + "exchangers.error.invalid_block.unbreakable": "§c錯誤:無效的方塊!(無法破壞的方塊)", + "exchangers.error.blacklisted": "§c錯誤:這方塊已被配置檔列入黑名單!", + "exchangers.error.out_of_block": "§c錯誤:選定方塊耗盡!", + "exchangers.error.out_of_power": "§c錯誤:能量不足!", + "exchangers.error.event_cancelled": "§c錯誤:方塊交換活動被其他模組取消!", + "exchangers.error.low_harvest_level": "§c錯誤:您的交換器的最高破壞等級太低,不能交換此方塊!", + "exchangers.msg.force_drop_items.on": "强制丟棄物品模式已被§a§l啟用§r。", + "exchangers.msg.force_drop_items.off": "强制丟棄物品模式已被§4§l禁用§r。", + "exchangers.msg.directional_placement.on": "定向放置方塊模式已被§a§l啟用§r。", + "exchangers.msg.directional_placement.off": "定向放置方塊模式已被§4§l禁用§r。", + "exchangers.msg.fuzzy_placement.on": "模糊放置方塊模式已被§a§l啟用§r。", + "exchangers.msg.fuzzy_placement.off": "模糊放置方塊模式已被§4§l禁用§r。", + "exchangers.msg.void_items.on": "消除物品模式已被§a§l啟用§r。", + "exchangers.msg.void_items.off": "消除物品模式已被§4§l禁用§r。", + "exchangers.msg.mode": "交換器模式已被設定至:%s", + + "_comment": "Modes", + "exchangers.mode.plane": "平面", + "exchangers.mode.horizontal": "水平柱", + "exchangers.mode.vertical": "垂直柱", + + "_comment": "Crafting Components", + "_comment": "Vanilla", + "item.exchangers.exchanger_core_tier1": "交換器核心(等級 1)", + "item.exchangers.exchanger_core_tier2": "交換器核心(等級 2)", + "item.exchangers.exchanger_core_tier3": "交換器核心(等級 3)", + "_comment": "Ender IO", + "item.exchangers.eio_exchanger_core_tier1": "Ender IO 交換器核心(等級 1)", + "item.exchangers.eio_exchanger_core_tier2": "Ender IO 交換器核心(等級 2)", + "item.exchangers.eio_exchanger_core_tier3": "Ender IO 交換器核心(等級 3)", + "_comment": "Ender IO Endergy", + "item.exchangers.eio_endergy_exchanger_core_tier1": "Ender IO Endergy 交換器核心(等級 1)", + "item.exchangers.eio_endergy_exchanger_core_tier2": "Ender IO Endergy 交換器核心(等級 2)", + "item.exchangers.eio_endergy_exchanger_core_tier3": "Ender IO Endergy 交換器核心(等級 3)", + "_comment": "Thermal", + "item.exchangers.thermal_exchanger_core_tier1": "Thermal 交換器核心(等級 1)", + "item.exchangers.thermal_exchanger_core_tier2": "Thermal 交換器核心(等級 2)", + "item.exchangers.thermal_exchanger_core_tier3": "Thermal 交換器核心(等級 3)", + "_comment": "Mekanism", + "item.exchangers.mekanism_exchanger_core_tier1": "Mekanism 交換器核心(等級 1)", + "item.exchangers.mekanism_exchanger_core_tier2": "Mekanism 交換器核心(等級 2)", + "item.exchangers.mekanism_exchanger_core_tier3": "Mekanism 交換器核心(等級 3)", + "_comment": "Immersive Engineering", + "item.exchangers.ie_exchanger_core_tier1": "Immersive Engineering 交換器核心(等級 1)", + "item.exchangers.ie_exchanger_core_tier2": "Immersive Engineering 交換器核心(等級 2)", + "item.exchangers.ie_exchanger_core_tier3": "Immersive Engineering 交換器核心(等級 3)", + + "_comment": "Special Exchangers", + "item.exchangers.tuberous_exchanger": "薯仔方塊交換器", + "item.exchangers.bee_exchanger": "蜜蜂方塊交換器", + "item.exchangers.creative_exchanger": "創造模式方塊交換器", + + "_comment": "Vanilla Exchangers", + "item.exchangers.wooden_exchanger": "木方塊交換器", + "item.exchangers.stone_exchanger": "石方塊交換器", + "item.exchangers.golden_exchanger": "金方塊交換器", + "item.exchangers.copper_exchanger": "銅方塊交換器", + "item.exchangers.iron_exchanger": "鐵方塊交換器", + "item.exchangers.diamond_exchanger": "鑽石方塊交換器", + "item.exchangers.emerald_exchanger": "綠寶石方塊交換器", + "item.exchangers.amethyst_exchanger": "紫水晶方塊交換器", + "item.exchangers.obsidian_exchanger": "黑曜石方塊交換器", + "item.exchangers.netherite_exchanger": "地獄合金方塊交換器", + "item.exchangers.end_exchanger": "終界方塊交換器", + + "_comment": "Ender IO Exchangers", + "item.exchangers.copper_alloy_exchanger": "銅合金方塊交換器", + "item.exchangers.conductive_exchanger": "導電合金方塊交換器", + "item.exchangers.pulsating_exchanger": "脈沖合金方塊交換器", + "item.exchangers.energetic_exchanger": "充能合金方塊交換器", + "item.exchangers.dark_steel_exchanger": "玄鋼方塊交換器", + "item.exchangers.vibrant_exchanger": "脈沖合金方塊交換器", + "item.exchangers.end_steel_exchanger": "終界鋼方塊交換器", + + "_comment": "Ender IO Endergy Exchangers", + "item.exchangers.crude_steel_exchanger": "粗鋼方塊交換器", + "item.exchangers.energetic_silver_exchanger": "充能銀方塊交換器", + "item.exchangers.vivid_exchanger": "生動合金方塊交換器", + "item.exchangers.crystalline_exchanger": "結晶合金方塊交換器", + "item.exchangers.melodic_exchanger": "旋律合金方塊交換器", + "item.exchangers.stellar_exchanger": "恆星合金方塊交換器", + + "_comment": "Thermal Exchangers", + "item.exchangers.leadstone_exchanger": "鉛石方塊交換器", + "item.exchangers.hardened_exchanger": "硬化方塊交換器", + "item.exchangers.reinforced_exchanger": "強化方塊交換器", + "item.exchangers.signalum_exchanger": "信素方塊交換器", + "item.exchangers.resonant_exchanger": "終界合金方塊交換器", + + "_comment": "Mekanism Exchangers", + "item.exchangers.basic_exchanger": "基礎方塊交換器", + "item.exchangers.advanced_exchanger": "高級方塊交換器", + "item.exchangers.elite_exchanger": "菁英方塊交換器", + "item.exchangers.ultimate_exchanger": "終極方塊交換器", + + "_comment": "Immersive Engineering Exchangers", + "item.exchangers.lv_exchanger": "低壓方塊交換器", + "item.exchangers.mv_exchanger": "中壓方塊交換器", + "item.exchangers.hv_exchanger": "高壓方塊交換器" +} \ No newline at end of file diff --git a/src/main/resources/assets/exchangers/lang/zh_tw.json b/src/main/resources/assets/exchangers/lang/zh_tw.json new file mode 100644 index 0000000..6a45fc0 --- /dev/null +++ b/src/main/resources/assets/exchangers/lang/zh_tw.json @@ -0,0 +1,159 @@ +{ + "_comment": "Creative Tab", + "item_group.exchangers.main_creative_tab": "方塊交換器", + + "_comment": "Key Bindings", + "key.categories.exchangers": "方塊交換器", + "key.exchangers.open_gui": "打開交換器介面", + "key.exchangers.range_switch": "變更交換器範圍", + "key.exchangers.mode_switch": "變更交換器模式", + "key.exchangers.force_drop_items_mode_toggle": "切換强制丟棄物品模式", + "key.exchangers.directional_placement_mode_toggle": "切換定向放置方塊模式", + "key.exchangers.fuzzy_placement_mode_toggle": "切換模糊放置方塊模式", + "key.exchangers.void_items_mode_toggle": "切換消除物品模式", + + "_comment": "GUI", + "screen.exchangers.exchanger_gui.title": "交換器介面", + "exchangers.tooltip.decrease_range_button": "縮小範圍", + "exchangers.tooltip.increase_range_button": "放大範圍", + "exchangers.tooltip.mode_switch_button": "變更交換器模式", + "exchangers.tooltip.force_drop_items_button_name": "强制丟棄物品模式", + "exchangers.tooltip.force_drop_items_button_desc": "這模式允許交換器將交換出來的方塊或物品扔到地上,與可以消除多餘方塊或物品的工具配合得很好。", + "exchangers.tooltip.directional_placement_button_name": "定向放置方塊模式", + "exchangers.tooltip.directional_placement_button_desc": "這模式允許交換器根據玩家面向的方向交換方塊。", + "exchangers.tooltip.fuzzy_placement_button_name": "模糊放置方塊模式", + "exchangers.tooltip.fuzzy_placement_button_desc": "這模式允許交換器以百分比為基礎放置每個方塊,請使用右邊的文本框設置機會率。", + "exchangers.tooltip.fuzzy_placement_chance_box_name": "模糊放置方塊機會率", + "exchangers.tooltip.fuzzy_placement_chance_box_desc": "設置為每個方塊的放置機會率,一個從1到100之間的數值,僅在啟用模糊放置方塊模式時生效。", + "exchangers.tooltip.void_items_button_name": "消除物品模式", + "exchangers.tooltip.void_items_button_desc": "這模式會把所有交換出來的方塊或物品消除,請謹慎使用。", + + "_comment": "Tooltips", + "exchangers.tooltip.durability": "耐久度", + "exchangers.tooltip.tier": "等級 %d", + "exchangers.tooltip.hold_shift": "長按 %s 鍵查看詳情", + "exchangers.tooltip.hold_shift.shift": "Shift", + "exchangers.tooltip.hold_ctrl": "長按 %s 鍵查看額外信息", + "exchangers.tooltip.hold_ctrl.ctrl": "Ctrl", + "exchangers.tooltip.state.enabled": "已啟用", + "exchangers.tooltip.state.disabled": "已禁用", + "exchangers.tooltip.extra1": "潛行右鍵單擊方塊進行選擇", + "exchangers.tooltip.extra2": "右鍵單擊方塊進行交換", + "exchangers.tooltip.extra3": "使用 %s 鍵打開交換器介面", + "exchangers.tooltip.tuberous_exchanger.warning": "§c§o聰明的!但不能交換方塊。", + "exchangers.tooltip.bee_exchanger.flavor_text": "§6§o快樂的蜜蜂! :)", + "exchangers.tooltip.selected_block": "選定的方塊:%s", + "exchangers.tooltip.selected_block.none": "什麽都沒有", + "exchangers.tooltip.selected_block.error": "無法獲取方塊名稱", + "exchangers.tooltip.current_range": "當前的交換範圍:%s", + "exchangers.tooltip.max_range": "最大交換範圍:%s", + "exchangers.tooltip.max_harvest_level": "最高破壞等級:%s", + "exchangers.tooltip.current_mode": "當前的模式:%s", + "exchangers.tooltip.state": "狀態:%s", + "exchangers.tooltip.silk_touch": "絲綢之觸模式已在配置檔裏%s。", + "exchangers.tooltip.force_drop_items": "强制丟棄物品模式是%s的。", + "exchangers.tooltip.directional_placement": "定向放置方塊模式是%s的。", + "exchangers.tooltip.fuzzy_placement": "模糊放置方塊模式是%s的。", + + "_comment": "Messages", + "exchangers.error.invalid_block.te": "§c錯誤:無效的方塊!(方塊實體)", + "exchangers.error.invalid_block.unbreakable": "§c錯誤:無效的方塊!(無法破壞的方塊)", + "exchangers.error.blacklisted": "§c錯誤:這方塊已被配置檔列入黑名單!", + "exchangers.error.out_of_block": "§c錯誤:選定方塊耗盡!", + "exchangers.error.out_of_power": "§c錯誤:能量不足!", + "exchangers.error.event_cancelled": "§c錯誤:方塊交換活動被其他模組取消!", + "exchangers.error.low_harvest_level": "§c錯誤:您的交換器的最高破壞等級太低,不能交換此方塊!", + "exchangers.msg.force_drop_items.on": "强制丟棄物品模式已被§a§l啟用§r。", + "exchangers.msg.force_drop_items.off": "强制丟棄物品模式已被§4§l禁用§r。", + "exchangers.msg.directional_placement.on": "定向放置方塊模式已被§a§l啟用§r。", + "exchangers.msg.directional_placement.off": "定向放置方塊模式已被§4§l禁用§r。", + "exchangers.msg.fuzzy_placement.on": "模糊放置方塊模式已被§a§l啟用§r。", + "exchangers.msg.fuzzy_placement.off": "模糊放置方塊模式已被§4§l禁用§r。", + "exchangers.msg.void_items.on": "消除物品模式已被§a§l啟用§r。", + "exchangers.msg.void_items.off": "消除物品模式已被§4§l禁用§r。", + "exchangers.msg.mode": "交換器模式已被設定至:%s", + + "_comment": "Modes", + "exchangers.mode.plane": "平面", + "exchangers.mode.horizontal": "水平柱", + "exchangers.mode.vertical": "垂直柱", + + "_comment": "Crafting Components", + "_comment": "Vanilla", + "item.exchangers.exchanger_core_tier1": "交換器核心(等級 1)", + "item.exchangers.exchanger_core_tier2": "交換器核心(等級 2)", + "item.exchangers.exchanger_core_tier3": "交換器核心(等級 3)", + "_comment": "Ender IO", + "item.exchangers.eio_exchanger_core_tier1": "Ender IO 交換器核心(等級 1)", + "item.exchangers.eio_exchanger_core_tier2": "Ender IO 交換器核心(等級 2)", + "item.exchangers.eio_exchanger_core_tier3": "Ender IO 交換器核心(等級 3)", + "_comment": "Ender IO Endergy", + "item.exchangers.eio_endergy_exchanger_core_tier1": "Ender IO Endergy 交換器核心(等級 1)", + "item.exchangers.eio_endergy_exchanger_core_tier2": "Ender IO Endergy 交換器核心(等級 2)", + "item.exchangers.eio_endergy_exchanger_core_tier3": "Ender IO Endergy 交換器核心(等級 3)", + "_comment": "Thermal", + "item.exchangers.thermal_exchanger_core_tier1": "Thermal 交換器核心(等級 1)", + "item.exchangers.thermal_exchanger_core_tier2": "Thermal 交換器核心(等級 2)", + "item.exchangers.thermal_exchanger_core_tier3": "Thermal 交換器核心(等級 3)", + "_comment": "Mekanism", + "item.exchangers.mekanism_exchanger_core_tier1": "Mekanism 交換器核心(等級 1)", + "item.exchangers.mekanism_exchanger_core_tier2": "Mekanism 交換器核心(等級 2)", + "item.exchangers.mekanism_exchanger_core_tier3": "Mekanism 交換器核心(等級 3)", + "_comment": "Immersive Engineering", + "item.exchangers.ie_exchanger_core_tier1": "Immersive Engineering 交換器核心(等級 1)", + "item.exchangers.ie_exchanger_core_tier2": "Immersive Engineering 交換器核心(等級 2)", + "item.exchangers.ie_exchanger_core_tier3": "Immersive Engineering 交換器核心(等級 3)", + + "_comment": "Special Exchangers", + "item.exchangers.tuberous_exchanger": "馬鈴薯方塊交換器", + "item.exchangers.bee_exchanger": "蜜蜂方塊交換器", + "item.exchangers.creative_exchanger": "創造模式方塊交換器", + + "_comment": "Vanilla Exchangers", + "item.exchangers.wooden_exchanger": "木方塊交換器", + "item.exchangers.stone_exchanger": "石方塊交換器", + "item.exchangers.golden_exchanger": "金方塊交換器", + "item.exchangers.copper_exchanger": "銅方塊交換器", + "item.exchangers.iron_exchanger": "鐵方塊交換器", + "item.exchangers.diamond_exchanger": "鑽石方塊交換器", + "item.exchangers.emerald_exchanger": "綠寶石方塊交換器", + "item.exchangers.amethyst_exchanger": "紫水晶方塊交換器", + "item.exchangers.obsidian_exchanger": "黑曜石方塊交換器", + "item.exchangers.netherite_exchanger": "地獄合金方塊交換器", + "item.exchangers.end_exchanger": "終界方塊交換器", + + "_comment": "Ender IO Exchangers", + "item.exchangers.copper_alloy_exchanger": "銅合金方塊交換器", + "item.exchangers.conductive_exchanger": "導電合金方塊交換器", + "item.exchangers.pulsating_exchanger": "脈沖合金方塊交換器", + "item.exchangers.energetic_exchanger": "充能合金方塊交換器", + "item.exchangers.dark_steel_exchanger": "玄鋼方塊交換器", + "item.exchangers.vibrant_exchanger": "脈沖合金方塊交換器", + "item.exchangers.end_steel_exchanger": "終界鋼方塊交換器", + + "_comment": "Ender IO Endergy Exchangers", + "item.exchangers.crude_steel_exchanger": "粗鋼方塊交換器", + "item.exchangers.energetic_silver_exchanger": "充能銀方塊交換器", + "item.exchangers.vivid_exchanger": "生動合金方塊交換器", + "item.exchangers.crystalline_exchanger": "結晶合金方塊交換器", + "item.exchangers.melodic_exchanger": "旋律合金方塊交換器", + "item.exchangers.stellar_exchanger": "恆星合金方塊交換器", + + "_comment": "Thermal Exchangers", + "item.exchangers.leadstone_exchanger": "鉛石方塊交換器", + "item.exchangers.hardened_exchanger": "硬化方塊交換器", + "item.exchangers.reinforced_exchanger": "強化方塊交換器", + "item.exchangers.signalum_exchanger": "信素方塊交換器", + "item.exchangers.resonant_exchanger": "終界合金方塊交換器", + + "_comment": "Mekanism Exchangers", + "item.exchangers.basic_exchanger": "基礎方塊交換器", + "item.exchangers.advanced_exchanger": "高級方塊交換器", + "item.exchangers.elite_exchanger": "菁英方塊交換器", + "item.exchangers.ultimate_exchanger": "終極方塊交換器", + + "_comment": "Immersive Engineering Exchangers", + "item.exchangers.lv_exchanger": "低壓方塊交換器", + "item.exchangers.mv_exchanger": "中壓方塊交換器", + "item.exchangers.hv_exchanger": "高壓方塊交換器" +} \ No newline at end of file diff --git a/src/main/resources/assets/exchangers/models/item/amethyst_exchanger.json b/src/main/resources/assets/exchangers/models/item/amethyst_exchanger.json new file mode 100644 index 0000000..5fb992a --- /dev/null +++ b/src/main/resources/assets/exchangers/models/item/amethyst_exchanger.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "exchangers:item/vanilla/amethyst_exchanger" + } +} diff --git a/src/main/resources/assets/exchangers/models/item/copper_exchanger.json b/src/main/resources/assets/exchangers/models/item/copper_exchanger.json new file mode 100644 index 0000000..ea46596 --- /dev/null +++ b/src/main/resources/assets/exchangers/models/item/copper_exchanger.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "exchangers:item/vanilla/copper_exchanger" + } +} diff --git a/src/main/resources/assets/exchangers/models/item/netherite_exchanger.json b/src/main/resources/assets/exchangers/models/item/netherite_exchanger.json new file mode 100644 index 0000000..c2788dd --- /dev/null +++ b/src/main/resources/assets/exchangers/models/item/netherite_exchanger.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "exchangers:item/vanilla/netherite_exchanger" + } +} diff --git a/src/main/resources/assets/exchangers/textures/item/vanilla/amethyst_exchanger.png b/src/main/resources/assets/exchangers/textures/item/vanilla/amethyst_exchanger.png new file mode 100644 index 0000000000000000000000000000000000000000..11e546d19fe3ac1ff71505dc5bcbf52904c457ad GIT binary patch literal 887 zcmV--1Bm>IP)^@R9J=Wm`!UFQ51%sNTN_|hB(2gCIhCS0clYpC`hvqe?T`< z5my0qp|sSZh>A$S3T|wTDQ-jzMew5*7cROBRusieptKaCDMCkSpfQYDF%scPQy~%kva~$PznUxU?2CEY_klKNQPgL z`q=kpgXLK0>}AJ_b;Ixg6a8-lov;Nx;KSwh2tp&Cw0)3Z(56Rlc@#lt6-+sURC)w| zPgFFRE1)Xc+6H@r`^a>~Ff@f+>mI&E_R}yt06^Z%2?oL;?sB(qvAGXb(U{7PQ~Xqd z?i?LUxit-%o61~!)-4E`g}&qIwYRVw(|4ws9-Rgt>vUGk*L;IR?F(=hn$I^^a=}t* z(R9{PD;EtuyltSp=`!0I7cUj(OXvX~024D3f25Ol53sG#$xiR$f$0Gs9S7S1c=Ap> z8^^zv^Qwm^8=KDq!Js%_;^C<;ockIj{{1#X-xEZ~j*w1h91R~63~YIj>5AdcRac)8 zPcrdSl-u&aE~Lx3O^?_D#hNR~8Klx9wm<>os&Q{{AO2G+nU665TwV_@k3y&?O1@u` z2Oa%6)bRa99^^}q2fg1}=K*ydY;1pU`8M9JA?>kkDucO@Cos{bj{5???I(sYY zh0b2A);&!8l>!D51fae1G8bC^QTYU}#FEPcY(1`TpRX zc^dVB#+198;`|a1+`c*wsPkZBd2oH^QlawL)>jK#9@qgTG$`h54N~b5TcHt8u7d|&PvtvdnF&_Gl;=T@`vU5Ajj5~S zgdJyrIuGhR*sS>hurxz>$>YgKSmlEJ{J`b)piO?Rnjx%<2X@`MbUC-_5nG_FHh>Ve zkV=n`8B5@=$y)^zRhQ%eP&GR+GzDv}@R#$0?i^vqS@b}i2k^i0;1>kfG8l$D?@<5% N002ovPDHLkV1g%tl<)um literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/exchangers/textures/item/vanilla/amethyst_exchanger.png.mcmeta b/src/main/resources/assets/exchangers/textures/item/vanilla/amethyst_exchanger.png.mcmeta new file mode 100644 index 0000000..6739fa5 --- /dev/null +++ b/src/main/resources/assets/exchangers/textures/item/vanilla/amethyst_exchanger.png.mcmeta @@ -0,0 +1,12 @@ +{ + "animation": { + "frametime": 4, + "frames": [ + 0, + 1, + 2, + 3, + 4 + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/exchangers/textures/item/vanilla/copper_exchanger.png b/src/main/resources/assets/exchangers/textures/item/vanilla/copper_exchanger.png new file mode 100644 index 0000000000000000000000000000000000000000..aad9d95c519a34720f50ca44096573cbf6491377 GIT binary patch literal 759 zcmVO~Q545NDTY|9DVmZcof3^SWD+T*g3zr(g@;GW1<_Q4tp}So-gK&iT!e-aa?ql*==x?8M*CP70|CI;*@1g9n z;J|TOIg03SMCQTjEXloMhhLTRR6_@vfd3-aZ37-iK&h1scpw1<40td)joSFo&ctMhG z2`E<1fCrM5^9DSKXHgGkI{zosZ37#~>@vOrGPmiFYlT>&7@<8g=t(*Z5B%qY@20V~}Qnw9w0I1=)&e=h&1S9&oE9M73 pXtX|py+C3@kK9!t;K4uO!5_N<-%E+7*Jl6#002ovPDHLkV1o4mRi6L= literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/exchangers/textures/item/vanilla/copper_exchanger.png.mcmeta b/src/main/resources/assets/exchangers/textures/item/vanilla/copper_exchanger.png.mcmeta new file mode 100644 index 0000000..6739fa5 --- /dev/null +++ b/src/main/resources/assets/exchangers/textures/item/vanilla/copper_exchanger.png.mcmeta @@ -0,0 +1,12 @@ +{ + "animation": { + "frametime": 4, + "frames": [ + 0, + 1, + 2, + 3, + 4 + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/exchangers/textures/item/vanilla/diamond_exchanger.png b/src/main/resources/assets/exchangers/textures/item/vanilla/diamond_exchanger.png index dd7e53de4d8ba2cc3a3da08c92773c5a052f3a3c..e8733cabcf30d6cf2a55426f07a384617b748b3b 100644 GIT binary patch delta 776 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 literal 3173 zcmcIn3vkp_6b-ft1+jb-MAU}h2S3>)o84p+x=Y(#w5x8ZwGQi-zP!9_V|O=8lKxP} z3Ob;JgU*0e1P62+7;unr7?q-+4c89?g?aYRJ4BFuCY5%6VyEmEL<*qLlzUhcd1 z+D=Q*QQ-9z!MC{=lfMG!+qI@bVV(c+5< zV(_(kZPboNZjqspZ~@g&kgFw;!qNm$I;kZEU<0yA1;zBFpE|I9BSq?}pPK58u#r>{ z)$5frOmy3fs#-Xs0ZJ-0DL|IC$XG!F*???G#FLiX;-}JjWjuDK8H!Ac*bRQF+%ZT- zBh_TkFcIl>2{hz9Zc>z7oWM$M&-J96qe4vGy=tF zwEYxDnsFhK%BxLU*)ZXNF)bj)a4yzyDJ`hNyj-f$jHivOkU?>jKuO!evRqy^Rd3ja zRd1X^b^i4U25@L2k-UvQu_O|C6P7)>3A>RENT1SHZEFfKHOMj=O^7BpVVL7{-dJ`G z>WODRmSges;*=aT5wH!j)-d9^ELZ3JC4)gHt3GnVR6VI0&DJ%J!R#6o0ygqf&U=~_ zX-=rcS@*EA*LNN3lUX(+8ZlH|Ydu-iExX;AASZ}o%BjExXB1YUtQlqk;DG4~5JOBV z8KcO28swl6H%x38qvLzehl9at)6n!deqq(zSV4v-2L(AGXm#(X_2Y4lgRWYv>O`#RRdZ$Dipa;5IzY0aXz4NcGEA=9NH1L%~z zpMnlu5sr3dTJIxU{fbL=eRDm+N>9V#j2X+&>}Fu1@)*u+f69b86@CjeogTf1Re|UM zkQO-2Lwk8l5db7WLssAfs0m1uV9xuK(WlFb6?0|vFVSa%1M5LDhVU-JQ2*W^$Uz0M zyg&n%6==ncS*nP-@`B5yXIR!=dup=p$WEZ@jtU)(hW1uzlOMZ+7qAzU}ib zc5R)sb-~dA<#&$piT-y#95-jqM(^6Ch2de(FB^B?@Zq6F&(D2oP)+;DZ^lm9Gu`;@ zgJ%~^ymZe!2abGYtv)bw*TEuc#Jvw!j4K>d@$qxxA0VV3yM9>o%NMcjUD}F;$tUmM z{n4)*j*s42qUxm^+S``T@pzY9wWF$`cFOh-AMeoK`t{9Qu6uUu+G8!@hV>KIcD#Az z{Nd}~Sv;m~2iG}mV%sCpx6d!zAKg)0CcOB<2&0(oEG9go(E|3F(oObJV!^_BS8Q(k zq&3!|M=$Cm=6=_{WeC62tXZbKRQY&lcFmD%)?Gbl@w`J(;_KVz9-7y7X!;#hBc{#@ zP5X1nunRVAng8j~@v~nK6pSJ^HU<{8AKCr0(@B5sv7rS3VCs-BqM5she3hb4^{KdR>|D<=rLwE?{gx}t8@UxM{J=l}o! diff --git a/src/main/resources/assets/exchangers/textures/item/vanilla/golden_exchanger.png b/src/main/resources/assets/exchangers/textures/item/vanilla/golden_exchanger.png index d7883d61463dce6c4b624fef8e222a8998bec002..d971c587db76f133742db4eab2186411fb62d64c 100644 GIT binary patch delta 728 zcmV;}0w?|92Ji)tB!3BTNLh0L01FcU01FcV0GgZ_0007_NklN{s5(fzebP+`t!Ku(d zxzKx42NM!PB?%D&=kPA{uJ760LzE8pn{vPR`+e`dcke#=-G9&WeV?#7juUm9FwgU> z@U;~d7$ke&u0rPaaa8M*9KXJ&h@?*5;oxIlCI?A0T6EhrQb&FEw=HHLMklBUSeNf$ zUE7613EVO?t5B~1(0Tb4_;tE~ymJP7$BDSbeUJ3S0#J?k&nW@`xjEJ6ma)bzC~if- zZ~ugBUKMCop?}dDE&#yvvg)f>=(cN$TipYI(i&oXUM?k@mx84=ZK!e%ymyxX@JB{v zK(8A~a25|wKL>*#oejjprtZN+1_1F~Al?g^m`X*)!lvH?zu+CY{eM9+u(Qg8ryJnfAr{zBDAHM) zAs!D(yVyUzMBKtHlU}_-JRaz*SvBB+4k-1C0S|OQ0RtXPFC+Hf$lqZmFf&}h>UHr~ zZsD&Ecp!q2O<)p;9_NGy2@l|(@!*~f&3?dw3=}?tTc-2)3GsL^y%DVsb{xdiI_ZhH zJkb4-)_*GoJouBv=7A0IazQmsi8@Iknlj6!5QMgLLchEGY@?? zbe?S!j|bTY*autkI^cpBpEuxvu385J9_WBlC>roUXKvYm2e~=K?A_>hLbIw3)z=3v z-Ud9_!de-ee?d|oknn*2-ajBCU!YJAA%6cLcTrRFAXFom@jzFt7m5Zv&;i9Q8}L8} zlxEd{2Y{GbkM<6NM$AwFtJlSUCGbbS10S$@o3Jt%O?YrNdGH$$r70s@HHQ2E0000< KMNUMnLSTYkxJ(uR delta 842 zcmV-Q1GW6{1>pveB!2{RLP=Bz2nYy#2xN!=000SaNLh0L01FZT01FZU(%pXi0000S zbVXQnQ*UN;cVTj606}DLVr3vkX>w(EZ*psMAVX6&=)AIw0000MbVXQnLvm$dbZKvH zAXI5>WdJZXFEKPPF*itX$X@^e0=Y>zL+*rF z9EzX^hn0eG5G*Z}v{zZ$i1;4}f^FcyD?}uiLToIoEbcgji0pE^ogje--VZOi?9Nzh zl1nmkBm)*H@~WM;v)_GhnElM#CzMk3%ynIWQ-|3^5Cr`}dgP`8*sI?J2|_uLQh)>{ zaj)(4=7`<{&VQ)9=U*qDlf>sBo>QoF1gREE9O8YuqJ=XW0jZS4S(%4Y1-u$GeQ4B^ z@V@>WFCb(GfZV1#p zGKx{r3F_cCqJ4~vB8cSp6x{r0XdmEoj&R}@qTPn$7SZ8fmhU&lMj!yy{p!v#F*wjS zlBG>64}V^~8)3mEC{<8T_0QSNgKC-F{+A(t=+%(1z6NF@<5`5!a;#lh&aYw-X#cv{yv!TV8#Pu1pkKz z4<8S(;5?MxCZ}`d)p!9Rlf!kWKG<{#^BWdCsDGCAnT@&y56-a3d0+xcsbax{Oo8xr zaGFZC2wu%tAIx|#BjE6vzKA znuEY_AHXs;Egm#&(qJvBY zgTNGVgAjHHS+-8^xw2?WI_M7`^d$Z7p7idg=WDFjYvg5FmVX{7C8(*zfNRkBoexH~;DvmIjOb|s8;yB*^k|f!lE6OMalu~HF{0KNBz;l7n2NpK~ zfcfWl7(&F+>0Mq}Xsa z@NWTtyp)jNBmf{V$T<6Fpp*gtwBEM1F>6za+*@E%m`xO5JCW5OYaY^Ey(t;0uQ(kX*QcOgRBxc9nJ#|D9)$?51JjwXTdHN(c82*^cnCx z`0xb4j(-WpW;NFR0k4_||BMI2F<}8hAM?xS+JWqY6CWAvo>>(V!e;|4( z4{|+1$^(-a@Ri7Q>&}SAI0K~=4;0U>zyl5_p)y~A2LNPysP7%@X>ktNKL}u)U1;XN fHK=*;06h2wU`m$G(_y}c00000NkvXXu0mjfHykj{ delta 809 zcmV+^1J?Y}1;7T7B!2{RLP=Bz2nYy#2xN!=000SaNLh0L01FZT01FZU(%pXi0000S zbVXQnQ*UN;cVTj606}DLVr3vkX>w(EZ*psMAVX6&=)AIw0000MbVXQnLvm$dbZKvH zAXI5>WdJZXFEKPPF*itX$X@^e0+>leK~z|U?U*rZ+dve@e}AsCDuWFA09LRmnBt*R z3Hb&AQ?jIxlB}7!W-xdtbS)G*bTNc3U5dd&_mVL~hR`BWAI($#?q{d+w-VSbVZl-f8 zY3xzn{^aC@*?(+C7>1dL)3Lnr8KAXhW9Kz=`rr*=?8D_b0N$sgv!rddW1o2yFw}0E>YSK9{_8bzyHs;>k05F+MmK!*Z!`ayx0C5}>MNx7#7RV@}-EI>E0YMNjolY|k z&tIlLW>5iQX<}~9;tY!Fq4MCPYp{S$A8*%RZeZIs3=XJIzGmXe8)8{c4Fj16lE&uh zqJh?027k)sc>x|sKuO1Pl6lbFMt%RB1nx5dlZi49_Ag++caH~E!q7*kpyYv6Ldk=_ z#e?oQg9Ug)yk2v;foxE$;^FZp>7f9xT1e8v{01qU2!vZ{TTByg*v;PyuKCAQK!_M4H!CtrILCJ&v zd4B-L9m4AO2Tm*D!Mz?K;eq)w$vlv{^-kZ6Nd{VL87SVc01qUfjQs*U0My1|_U>Ro niz2ha{ehyo-z$0Wpn32c&LeBgqNW}$00000NkvXXu0mjfds=SC diff --git a/src/main/resources/assets/exchangers/textures/item/vanilla/netherite_exchanger.png b/src/main/resources/assets/exchangers/textures/item/vanilla/netherite_exchanger.png new file mode 100644 index 0000000000000000000000000000000000000000..bd4ad3f680f840bb2b25e79481e04d8c81193cde GIT binary patch literal 821 zcmV-51Iqk~P)UxsaEb>pJ@si z^d{Z$^u2d?PamFMYB(HX)bja!eBzuno6XedI5jE|zFb-^316;%s&gXBd8b0Y0M~J& zvDfoJ2!Y}=+`DxLU%s_t{#VWmC_cm92}S$G6V$FNsLu_te`?}=zblN2iy&HgWfQrP zae8+f{?-oX$3@T^0%Re}Inr_!L?M#}0DxpwZjM_s)u?5B?1ajAM zI9M}4H5F#@Ho6b)BfYyFL`L{6aECZIKZnQA;q^Sg1>ia$TRYHZa>58W0q48P-F0Y- z+T!Fbq-N6qfYzH9TJKr_fTl9`w)qIclU{nZ6wT#*KM)`ECJVTyZWL;2(1Yv!d1>@{ ztiX|ZgyP*|G|u=eN}$Hq1}BjE*Uwp)iPP96|zZ3!@Td$ibQc z-LzwKv|NQQ^Evm%+yS%fDR>|N3Olysc_0D`0C^th8>^t28e>ACVhDM_`S79q6VF-L&DY zY=T)fd|4hGtQnjmJGSI`FwW$8AOK3CV#xD=WL2bhw_{A8<*Iyr@bHHV@A+G3GeMa} z`ULFI0l$921ED~|gA3w8$b!8S3iI_k>Wf$LAtOE-VTO>b3a!xzA~^eRpqdIlqjA1M z9*C-S0P;K#0i{qe^?|5bFH{V99*BTK%T;+E2rCrJmgfP0 zSnq&pYEa@#)jx1Ozzvw7XEZRzlKufMD-V7H?oM=S&|V=<00000NkvXXu0mjfYE@`n literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/exchangers/textures/item/vanilla/netherite_exchanger.png.mcmeta b/src/main/resources/assets/exchangers/textures/item/vanilla/netherite_exchanger.png.mcmeta new file mode 100644 index 0000000..6739fa5 --- /dev/null +++ b/src/main/resources/assets/exchangers/textures/item/vanilla/netherite_exchanger.png.mcmeta @@ -0,0 +1,12 @@ +{ + "animation": { + "frametime": 4, + "frames": [ + 0, + 1, + 2, + 3, + 4 + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/exchangers/textures/item/vanilla/obsidian_exchanger.png b/src/main/resources/assets/exchangers/textures/item/vanilla/obsidian_exchanger.png index 5af93ba37fb04fb00a66547ea27877d430333c39..3fa3968eb3f71a1ce3457ee21e8a59c2b1fd088b 100644 GIT binary patch delta 745 zcmV1wN zZXnx2l9ITG4aIC=d(ct|v?AnSFCGLzg`NcI4=B`vKOjFqsDXOVsh1w=&9mUCptl|@ zWYfy#uq9*@2rFbG>!D;xoLRaN!6JEKVfSP9o%xuVhi@hk1b+eJDwRr;f#1|w*!ieT&!))q( z%;Q7sS{=ph;k8|odS`+Ps6jqiiD7mcAlU=Lx z?fYjTE*LnSCVxscEj0Aqo)D8702Fq&MT52*-{5Sgimjz_?%ttOSwlVA2OzVki;aUI z2p_{Rg5=yn_+%Cf;X5P(NCbvq1mph*v!JH3EZt6q-%DuWyE4?TpM`G!s)6;+!un_d z(3rpKXSArsC5#|BrvhNSHo{nGI23b_GEh@l>$V(`-w41^R$`8%B^ zMZJug%F^w(@P4=$Mo}21DSlcHw6zQK$&Vg%YYK4NTAqSdV&e&L3PH12+eqKV|m~_%Aq`Y zfVY~54S$our}t!DJ(Kc4x{wOH+i0if6r3Ifr-!$-hwt_%>gDSVR+cNA?No(^e%p=D zgJ~q^fdnY#fjFvYgKQf0Xn%qUcC9|+L4;;JxUoF2*Oag>Fi#HQ#X1X5H{;g_nd~~+ z={Z1nZm_j<{Q5vvtpo9SAOp%&+gT>NR*!F>(2L1<-B!2{RLP=Bz2nYy#2xN!=000SaNLh0L01FZT01FZU(%pXi0000S zbVXQnQ*UN;cVTj606}DLVr3vkX>w(EZ*psMAVX6&=)AIw0000MbVXQnLvm$dbZKvH zAXI5>WdJZXFEKPPF*itX$X@^e16D~yK~z|U?U>JN6KNR7KYuf6+9uY9BxMKetf+xh zsH=iqFBUwk2#b60(vz3&$xEU7ALQh<28tII0(+a|T(^p4nM|Gjl`VY@Sq`why(6R}2)xVv zO?7gd9@ ziwY}g=?p_dgWXHGFma7wG$I7rMj6MccNbXBzd)Uz6@LYa2D`hJ?gFmsvO1SSQz8^5 zPoPhqBfPZGxGD((!cCMUnee|GfJAJ>p|ta!{~o<0Btz8|!bJhstrL%rG|qO2$M^5L zu1j>js6q)%%iYb9`!feXcA&YADa466HR?Qd>r~5=sMVVJ3DH6Zk~GYR4+Uyw2wgYX z+$ijI45@};XaxsM$52TJCi+`)@6~JMS2MVQ~0*+HdmZ4g$Gd>TL=8}zzZnJ#gu;@c$t>Y^uU9$XltL)WP)v!@y&za%N0Pve3m2B>JQeb^?A_e z!8e~DR3}vu|NO!7S)0<&N^kRn;8+x8C1Kw-L(r6n|NVkjx1L-~`R9QbP_%T$lLtZx z%lQ|Wb8Dy_e%mNh->m>gznnp{{XaN6(3A*v(V)lq!6va0h4sfb8EWnq`aJkfdGHy- WjkEd(;PbNp00009Rvv$M|R zlCU6Kw+j>ltl20{pi9s>pRdcEolPNx$S>E@uENJ$1^7_v}`F(C6}A|(s5=~Wt} zX-Yqe5cvg*fq!M1(uX4UUjt(dyWP&4uCETfcL6}JHTsv%vgkVhQ=Y+9gYU03Fg%|D zNRp)5z%JQqQQ4W@%9(;a{~!p816~)Ct4x;$9UW{j*0c1TkW zv^;2ekm-Ircv!6p7W{>xS2)z|4<=F;_a3r3c*I}I-b!33_gUPC2W5H}4>q2j0ZMo< zBwIiWiwS!g^aqD1A{K&?9i!zz%Y#h!^&hLsA#|gavrRKQ677t7-Z|ksD}Um00{s|MNUMnLSTYKHYj2M delta 785 zcmV+s1Md8&1*is)B!2{RLP=Bz2nYy#2xN!=000SaNLh0L01FZT01FZU(%pXi0000S zbVXQnQ*UN;cVTj606}DLVr3vkX>w(EZ*psMAVX6&=)AIw0000MbVXQnLvm$dbZKvH zAXI5>WdJZXFEKPPF*itX$X@^e0)RdN#h>CbzOoW$eo=|2Y~r}p7m*DZC9uA{eHjj za1aDUQN(yWE`JQ?bOhM8&5!Ang;K1vMgu?7-?ism7Kq~*0B5&@Za4S)%_g&SD#uos zf@N8#LN{1xO%z3!1prY%OC2SFIF1>pqJ-u!y<;n^L8sGUqBXsABnlWP#e~Cl{#76d zf_$|%mc{2VWNq8D)3%EO0L$f4a^t#g!6z;vfSDQ07k>jJTL_4|AdUc_`|c0}&Ta=( zSVY%#iK6I_2e#X-_@c&1HtqpNqfzd&EDL~EtCb}azVA2A2|&ekKD&rz?LXzg`-g{| z1>aKt2c@_l4lfJDam++(z8`v1D=0;J zDUmpkwGa!NHZ4nRDy4yV*iE`|Cv>7xd)NmHyR*Chc{BUoZ-3uRSG``xYw>uzwc$4_ z6bfD5>vO7?2YL>8`Y^%G@g8O-`xxjsU}myU*+Gi{(0tHqeHSADT)iCf-Sf8q*K-z` zqXI)xB7ur~l#_$Ng_8vU;!f>n?p%65rWcSCBuiYmA zC73;_#5aHG3|77sE~^4`M&aMC$(H>t-1l}R{79;gJM10FmQg11sO z#TrbQQ-~@j@kuJm;aHM>mj@emm2Zg{y8#aZ9-JxG2@rCX&}W;z2w6D;_Kfq0fU`I0=;TFu?#AOP(wMurixw*{;%` zN&^lLx&s~rJUDe8JjhwByF6GB0>fQ5X!Ae-FWvf}v2K_$O?@7ys&(jq2P&W}38Bve zl^Ig%^FRRiP19K?xZe1EY9jz(&8FF~tE@!BL~l~g+9BXUz=Qv@f3Tj*@=6E{xyB$) zC~NN@GHBhhs@560uw(EZ*psMAVX6&=)AIw0000MbVXQnLvm$dbZKvH zAXI5>WdJZXFEKPPF*itX$X@^e0}Dw+K~z|U?U+kz6Hyq3pMMF{5T&*nTr@S*lHf5& zwHDHiAQVgs1uG&%p}01n8yEHR54!C}G58zWO{6XA!s1S-Z7Fy;X3iqU;zF>tBofUy zE^=v_nKTnB>LMQu%$zyA^Uk?EeCN|F%c2tDa2Q~x!8tU;Fscupx|bHf-K!@#?ze~y zc5&}ogkxPl8Gjo(ysJ+m0mg<7qiGtZX`*QwmSt71$&sMVj$Yqzw7Zk#>3NofAT_sw z1Wp0gT9)Ab@#X@R2p5YG3RRyCUFWgKX4w7nm*9hj!+C?J95cVC)2 z&~=>&VV97=cK%0m2Zcg`gp|YpQNAXGAOUP{UF3N_seiibq+DM>*%+ zX7J7!Uaz;lJ6hdJv_{W%^KA8-ts_9+kzZuKdN2$_Yv{n|^8uh{6ly^Mr748c0N00Y z42s1f0HNDEYam>1t99E@z%)%JM}n+=_)IA1$FeN)`8>L=^G3Ot#-}Tr)%(?V8=UCv zq@$yQA%D@sr>zc~K>Z-XKDTqr@t^YG#%!8^%pg}Xyr#s1N8b;UywcNL03abH&udr! zrS0tToUrwE3^4+7KkTz`Tp4_=mYg$=j)!GsXixrfp^xCwN* z%?}dgjZ_;g@t{%ciw8*|-19(C+CYgKCZvGP13_Hn2brl+E_4^s<5Bc@l-Yp*AKUps zn+JcL2iw#0L;!0gLqZ68Wfr-XrPD1B1n{t&A5_i_F{OyQ<$+VS4lVG&2`EV+-1ERG zQh!pm#)FGWmCgxeH;IJQny3$&R5X$_*-K00000NkvXXu0mjf+hd_A diff --git a/src/main/resources/data/exchangers/recipes/vanilla/easy/amethyst_exchanger.json b/src/main/resources/data/exchangers/recipes/vanilla/easy/amethyst_exchanger.json new file mode 100644 index 0000000..8e6e2b4 --- /dev/null +++ b/src/main/resources/data/exchangers/recipes/vanilla/easy/amethyst_exchanger.json @@ -0,0 +1,30 @@ +{ + "type": "crafting_shaped", + "conditions": [ + { + "type": "exchangers:vanilla_module", "enabled": true + }, + { + "type": "exchangers:vanilla_recipes_type", "value": "easy" + } + ], + "pattern": [ + "AEA", + "ACA", + "AEA" + ], + "key": { + "A": { + "tag": "forge:gems/amethyst" + }, + "E": { + "item": "minecraft:ender_eye" + }, + "C": { + "item": "exchangers:exchanger_core_tier3" + } + }, + "result": { + "item": "exchangers:amethyst_exchanger" + } +} diff --git a/src/main/resources/data/exchangers/recipes/vanilla/easy/copper_exchanger.json b/src/main/resources/data/exchangers/recipes/vanilla/easy/copper_exchanger.json new file mode 100644 index 0000000..c428017 --- /dev/null +++ b/src/main/resources/data/exchangers/recipes/vanilla/easy/copper_exchanger.json @@ -0,0 +1,30 @@ +{ + "type": "crafting_shaped", + "conditions": [ + { + "type": "exchangers:vanilla_module", "enabled": true + }, + { + "type": "exchangers:vanilla_recipes_type", "value": "easy" + } + ], + "pattern": [ + "IEI", + "ICI", + "IEI" + ], + "key": { + "I": { + "tag": "forge:ingots/copper" + }, + "E": { + "item": "minecraft:ender_eye" + }, + "C": { + "item": "exchangers:exchanger_core_tier2" + } + }, + "result": { + "item": "exchangers:copper_exchanger" + } +} diff --git a/src/main/resources/data/exchangers/recipes/vanilla/easy/netherite_exchanger.json b/src/main/resources/data/exchangers/recipes/vanilla/easy/netherite_exchanger.json new file mode 100644 index 0000000..4f79f6f --- /dev/null +++ b/src/main/resources/data/exchangers/recipes/vanilla/easy/netherite_exchanger.json @@ -0,0 +1,36 @@ +{ + "type": "crafting_shaped", + "conditions": [ + { + "type": "exchangers:vanilla_module", "enabled": true + }, + { + "type": "exchangers:vanilla_recipes_type", "value": "easy" + } + ], + "pattern": [ + "SNS", + "ECE", + "OOO" + ], + "key": { + "O": { + "tag": "forge:obsidian" + }, + "S": { + "item": "minecraft:netherite_scrap" + }, + "N": { + "tag": "forge:ingots/netherite" + }, + "E": { + "item": "minecraft:ender_eye" + }, + "C": { + "item": "exchangers:exchanger_core_tier3" + } + }, + "result": { + "item": "exchangers:netherite_exchanger" + } +} diff --git a/src/main/resources/data/exchangers/recipes/vanilla/hard/amethyst_exchanger.json b/src/main/resources/data/exchangers/recipes/vanilla/hard/amethyst_exchanger.json new file mode 100644 index 0000000..88a5889 --- /dev/null +++ b/src/main/resources/data/exchangers/recipes/vanilla/hard/amethyst_exchanger.json @@ -0,0 +1,33 @@ +{ + "type": "crafting_shaped", + "conditions": [ + { + "type": "exchangers:vanilla_module", "enabled": true + }, + { + "type": "exchangers:vanilla_recipes_type", "value": "hard" + } + ], + "pattern": [ + "AEA", + "CXC", + "AEA" + ], + "key": { + "A": { + "tag": "forge:gems/amethyst" + }, + "E": { + "item": "minecraft:ender_eye" + }, + "C": { + "item": "exchangers:exchanger_core_tier3" + }, + "X": { + "item": "exchangers:obsidian_exchanger" + } + }, + "result": { + "item": "exchangers:amethyst_exchanger" + } +} diff --git a/src/main/resources/data/exchangers/recipes/vanilla/hard/copper_exchanger.json b/src/main/resources/data/exchangers/recipes/vanilla/hard/copper_exchanger.json new file mode 100644 index 0000000..c2716e1 --- /dev/null +++ b/src/main/resources/data/exchangers/recipes/vanilla/hard/copper_exchanger.json @@ -0,0 +1,33 @@ +{ + "type": "crafting_shaped", + "conditions": [ + { + "type": "exchangers:vanilla_module", "enabled": true + }, + { + "type": "exchangers:vanilla_recipes_type", "value": "hard" + } + ], + "pattern": [ + "IEI", + "CXC", + "IEI" + ], + "key": { + "I": { + "tag": "forge:ingots/copper" + }, + "E": { + "item": "minecraft:ender_eye" + }, + "C": { + "item": "exchangers:exchanger_core_tier2" + }, + "X": { + "item": "exchangers:stone_exchanger" + } + }, + "result": { + "item": "exchangers:copper_exchanger" + } +} diff --git a/src/main/resources/data/exchangers/recipes/vanilla/hard/diamond_exchanger.json b/src/main/resources/data/exchangers/recipes/vanilla/hard/diamond_exchanger.json index a8085df..82feefa 100644 --- a/src/main/resources/data/exchangers/recipes/vanilla/hard/diamond_exchanger.json +++ b/src/main/resources/data/exchangers/recipes/vanilla/hard/diamond_exchanger.json @@ -23,9 +23,17 @@ "C": { "item": "exchangers:exchanger_core_tier3" }, - "X": { - "item": "exchangers:iron_exchanger" - } + "X": [ + { + "item": "exchangers:iron_exchanger" + }, + { + "item": "exchangers:copper_exchanger" + }, + { + "item": "exchangers:golden_exchanger" + } + ] }, "result": { "item": "exchangers:diamond_exchanger" diff --git a/src/main/resources/data/exchangers/recipes/vanilla/hard/end_exchanger.json b/src/main/resources/data/exchangers/recipes/vanilla/hard/end_exchanger.json index 4086eed..71739dc 100644 --- a/src/main/resources/data/exchangers/recipes/vanilla/hard/end_exchanger.json +++ b/src/main/resources/data/exchangers/recipes/vanilla/hard/end_exchanger.json @@ -27,7 +27,7 @@ "item": "exchangers:exchanger_core_tier3" }, "X": { - "item": "exchangers:obsidian_exchanger" + "item": "exchangers:netherite_exchanger" } }, "result": { diff --git a/src/main/resources/data/exchangers/recipes/vanilla/hard/iron_exchanger.json b/src/main/resources/data/exchangers/recipes/vanilla/hard/iron_exchanger.json index 5475e91..0759831 100644 --- a/src/main/resources/data/exchangers/recipes/vanilla/hard/iron_exchanger.json +++ b/src/main/resources/data/exchangers/recipes/vanilla/hard/iron_exchanger.json @@ -24,7 +24,7 @@ "item": "exchangers:exchanger_core_tier2" }, "X": { - "item": "exchangers:golden_exchanger" + "item": "exchangers:stone_exchanger" } }, "result": { diff --git a/src/main/resources/data/exchangers/recipes/vanilla/hard/netherite_exchanger.json b/src/main/resources/data/exchangers/recipes/vanilla/hard/netherite_exchanger.json new file mode 100644 index 0000000..2700a6b --- /dev/null +++ b/src/main/resources/data/exchangers/recipes/vanilla/hard/netherite_exchanger.json @@ -0,0 +1,36 @@ +{ + "type": "crafting_shaped", + "conditions": [ + { + "type": "exchangers:vanilla_module", "enabled": true + }, + { + "type": "exchangers:vanilla_recipes_type", "value": "hard" + } + ], + "pattern": [ + "NEN", + "CXC", + "SES" + ], + "key": { + "S": { + "item": "minecraft:netherite_scrap" + }, + "N": { + "tag": "forge:ingots/netherite" + }, + "E": { + "item": "minecraft:ender_eye" + }, + "C": { + "item": "exchangers:exchanger_core_tier3" + }, + "X": { + "item": "exchangers:amethyst_exchanger" + } + }, + "result": { + "item": "exchangers:netherite_exchanger" + } +} diff --git a/src/main/resources/data/exchangers/recipes/vanilla/hard/obsidian_exchanger.json b/src/main/resources/data/exchangers/recipes/vanilla/hard/obsidian_exchanger.json index 69cb74d..63a6283 100644 --- a/src/main/resources/data/exchangers/recipes/vanilla/hard/obsidian_exchanger.json +++ b/src/main/resources/data/exchangers/recipes/vanilla/hard/obsidian_exchanger.json @@ -9,7 +9,7 @@ } ], "pattern": [ - "NEN", + "OEO", "CXC", "OEO" ], @@ -17,9 +17,6 @@ "O": { "tag": "forge:obsidian" }, - "N": { - "tag": "forge:ingots/netherite" - }, "E": { "item": "minecraft:ender_eye" }, diff --git a/src/main/resources/data/exchangers/recipes/vanilla/normal/amethyst_exchanger.json b/src/main/resources/data/exchangers/recipes/vanilla/normal/amethyst_exchanger.json new file mode 100644 index 0000000..132a48c --- /dev/null +++ b/src/main/resources/data/exchangers/recipes/vanilla/normal/amethyst_exchanger.json @@ -0,0 +1,33 @@ +{ + "type": "crafting_shaped", + "conditions": [ + { + "type": "exchangers:vanilla_module", "enabled": true + }, + { + "type": "exchangers:vanilla_recipes_type", "value": "normal" + } + ], + "pattern": [ + "ACA", + "EXE", + "AAA" + ], + "key": { + "A": { + "tag": "forge:gems/amethyst" + }, + "E": { + "item": "minecraft:ender_eye" + }, + "C": { + "item": "exchangers:exchanger_core_tier3" + }, + "X": { + "item": "exchangers:obsidian_exchanger" + } + }, + "result": { + "item": "exchangers:amethyst_exchanger" + } +} diff --git a/src/main/resources/data/exchangers/recipes/vanilla/normal/copper_exchanger.json b/src/main/resources/data/exchangers/recipes/vanilla/normal/copper_exchanger.json new file mode 100644 index 0000000..cdf1705 --- /dev/null +++ b/src/main/resources/data/exchangers/recipes/vanilla/normal/copper_exchanger.json @@ -0,0 +1,33 @@ +{ + "type": "crafting_shaped", + "conditions": [ + { + "type": "exchangers:vanilla_module", "enabled": true + }, + { + "type": "exchangers:vanilla_recipes_type", "value": "normal" + } + ], + "pattern": [ + "ICI", + "EXE", + "III" + ], + "key": { + "I": { + "tag": "forge:ingots/copper" + }, + "E": { + "item": "minecraft:ender_eye" + }, + "C": { + "item": "exchangers:exchanger_core_tier2" + }, + "X": { + "item": "exchangers:stone_exchanger" + } + }, + "result": { + "item": "exchangers:copper_exchanger" + } +} diff --git a/src/main/resources/data/exchangers/recipes/vanilla/normal/diamond_exchanger.json b/src/main/resources/data/exchangers/recipes/vanilla/normal/diamond_exchanger.json index 5cc5712..decc10f 100644 --- a/src/main/resources/data/exchangers/recipes/vanilla/normal/diamond_exchanger.json +++ b/src/main/resources/data/exchangers/recipes/vanilla/normal/diamond_exchanger.json @@ -23,9 +23,17 @@ "C": { "item": "exchangers:exchanger_core_tier3" }, - "X": { - "item": "exchangers:iron_exchanger" - } + "X": [ + { + "item": "exchangers:iron_exchanger" + }, + { + "item": "exchangers:copper_exchanger" + }, + { + "item": "exchangers:golden_exchanger" + } + ] }, "result": { "item": "exchangers:diamond_exchanger" diff --git a/src/main/resources/data/exchangers/recipes/vanilla/normal/end_exchanger.json b/src/main/resources/data/exchangers/recipes/vanilla/normal/end_exchanger.json index a54932e..e5137ef 100644 --- a/src/main/resources/data/exchangers/recipes/vanilla/normal/end_exchanger.json +++ b/src/main/resources/data/exchangers/recipes/vanilla/normal/end_exchanger.json @@ -30,7 +30,7 @@ "item": "exchangers:exchanger_core_tier3" }, "X": { - "item": "exchangers:obsidian_exchanger" + "item": "exchangers:netherite_exchanger" } }, "result": { diff --git a/src/main/resources/data/exchangers/recipes/vanilla/normal/iron_exchanger.json b/src/main/resources/data/exchangers/recipes/vanilla/normal/iron_exchanger.json index 7150836..c83a568 100644 --- a/src/main/resources/data/exchangers/recipes/vanilla/normal/iron_exchanger.json +++ b/src/main/resources/data/exchangers/recipes/vanilla/normal/iron_exchanger.json @@ -24,7 +24,7 @@ "item": "exchangers:exchanger_core_tier2" }, "X": { - "item": "exchangers:golden_exchanger" + "item": "exchangers:stone_exchanger" } }, "result": { diff --git a/src/main/resources/data/exchangers/recipes/vanilla/normal/netherite_exchanger.json b/src/main/resources/data/exchangers/recipes/vanilla/normal/netherite_exchanger.json new file mode 100644 index 0000000..c3d63a6 --- /dev/null +++ b/src/main/resources/data/exchangers/recipes/vanilla/normal/netherite_exchanger.json @@ -0,0 +1,36 @@ +{ + "type": "crafting_shaped", + "conditions": [ + { + "type": "exchangers:vanilla_module", "enabled": true + }, + { + "type": "exchangers:vanilla_recipes_type", "value": "normal" + } + ], + "pattern": [ + "SCS", + "EXE", + "SNS" + ], + "key": { + "S": { + "item": "minecraft:netherite_scrap" + }, + "N": { + "tag": "forge:ingots/netherite" + }, + "E": { + "item": "minecraft:ender_eye" + }, + "C": { + "item": "exchangers:exchanger_core_tier3" + }, + "X": { + "item": "exchangers:amethyst_exchanger" + } + }, + "result": { + "item": "exchangers:netherite_exchanger" + } +} diff --git a/src/main/resources/data/exchangers/recipes/vanilla/normal/obsidian_exchanger.json b/src/main/resources/data/exchangers/recipes/vanilla/normal/obsidian_exchanger.json index d56450a..bb0b0ff 100644 --- a/src/main/resources/data/exchangers/recipes/vanilla/normal/obsidian_exchanger.json +++ b/src/main/resources/data/exchangers/recipes/vanilla/normal/obsidian_exchanger.json @@ -11,15 +11,12 @@ "pattern": [ "OCO", "EXE", - "ONO" + "OOO" ], "key": { "O": { "tag": "forge:obsidian" }, - "N": { - "tag": "forge:ingots/netherite" - }, "E": { "item": "minecraft:ender_eye" },