From 40aca9a63bb3012378b7ca97e18be7444a46986f Mon Sep 17 00:00:00 2001 From: Caedis Date: Sun, 3 Mar 2024 05:24:47 -0600 Subject: [PATCH] Implement new chests (from @unicornbloods) (#16) * Start adding netherite chest * Netherite chest GUI. * Netherite chest textures. * Netherite English lang. * Netherite chest upgrade. * Netherite chest recipes. * Update diamondObsidianUpgrade.png to not look similar to not look similar to netherite icon * Remove copyright from netherite chest tile entity class * Disable loading netherite chests on GTNH * Properly not load chests on GTNH. Add Dark Steel for GTNH Netherite equivalent. Add config option to use steel chest instead of silver with the default being true. * Make netherite chest blast resistant * Fix metadata IDs * Make Netherite an upgrade to obsidian instead * Update bs + enable modern java syntax * Fix compat with gtnh * fix dark steel upgrade icon * make dark steel chest configurable (default to gtnh existence) * catch missing mappings for dark steel & ironchest * fix mapping of obsidianNetheriteUpgrade * spotlessApply * fix translation for netherite upgrade & german translation * git push --------- Co-authored-by: unicornbloods Co-authored-by: Dakotah <57813045+unicornbloods@users.noreply.github.com> Co-authored-by: Pilzinsel64 --- gradle.properties | 11 +-- settings.gradle | 2 +- .../cpw/mods/ironchest/BlockIronChest.java | 32 ++++++- .../cpw/mods/ironchest/ChestChangerType.java | 48 +++++++--- .../java/cpw/mods/ironchest/IronChest.java | 85 +++++++++++++----- .../cpw/mods/ironchest/IronChestType.java | 22 +++-- .../cpw/mods/ironchest/ItemChestChanger.java | 2 +- .../ironchest/TileEntityDarkSteelChest.java | 8 ++ .../ironchest/TileEntityNetheriteChest.java | 8 ++ .../mods/ironchest/TileEntitySilverChest.java | 15 ++++ .../mods/ironchest/client/ClientProxy.java | 2 +- .../cpw/mods/ironchest/client/GUIChest.java | 29 +++++- .../assets/ironchest/lang/cs_CZ.lang | 3 + .../assets/ironchest/lang/da_DK.lang | 3 + .../assets/ironchest/lang/de_DE.lang | 7 ++ .../assets/ironchest/lang/el_GR.lang | 3 + .../assets/ironchest/lang/en_PT.lang | 3 + .../assets/ironchest/lang/en_US.lang | 7 ++ .../assets/ironchest/lang/es_ES.lang | 3 + .../assets/ironchest/lang/et_EE.lang | 3 + .../assets/ironchest/lang/fr_FR.lang | 3 + .../assets/ironchest/lang/it_IT.lang | 3 + .../assets/ironchest/lang/ko_KR.lang | 3 + .../assets/ironchest/lang/nb_NO.lang | 3 + .../assets/ironchest/lang/nl_NL.lang | 3 + .../assets/ironchest/lang/pl_PL.lang | 3 + .../assets/ironchest/lang/pt_BR.lang | 3 + .../assets/ironchest/lang/pt_PT.lang | 3 + .../assets/ironchest/lang/ru_RU.lang | 3 + .../assets/ironchest/lang/sv_SE.lang | 3 + .../assets/ironchest/lang/tr_TR.lang | 3 + .../assets/ironchest/lang/zh_CN.lang | 3 + .../assets/ironchest/lang/zh_TW.lang | 3 + .../textures/blocks/darksteel_front.png | Bin 0 -> 266 bytes .../textures/blocks/darksteel_side.png | Bin 0 -> 265 bytes .../textures/blocks/darksteel_top.png | Bin 0 -> 265 bytes .../textures/blocks/netherite_front.png | Bin 0 -> 273 bytes .../textures/blocks/netherite_side.png | Bin 0 -> 269 bytes .../textures/blocks/netherite_top.png | Bin 0 -> 275 bytes .../textures/gui/netheritecontainer.png | Bin 0 -> 4102 bytes .../textures/items/copperSteelUpgrade.png | Bin 0 -> 480 bytes .../items/diamondDarkSteelUpgrade.png | Bin 0 -> 286 bytes .../textures/items/diamondObsidianUpgrade.png | Bin 466 -> 312 bytes .../items/obsidianNetheriteUpgrade.png | Bin 0 -> 3711 bytes .../textures/items/steelGoldUpgrade.png | Bin 0 -> 526 bytes .../textures/model/darksteelchest.png | Bin 0 -> 3341 bytes .../textures/model/netheritechest.png | Bin 0 -> 3410 bytes 47 files changed, 283 insertions(+), 52 deletions(-) create mode 100644 src/main/java/cpw/mods/ironchest/TileEntityDarkSteelChest.java create mode 100644 src/main/java/cpw/mods/ironchest/TileEntityNetheriteChest.java create mode 100644 src/main/java/cpw/mods/ironchest/TileEntitySilverChest.java create mode 100644 src/main/resources/assets/ironchest/textures/blocks/darksteel_front.png create mode 100644 src/main/resources/assets/ironchest/textures/blocks/darksteel_side.png create mode 100644 src/main/resources/assets/ironchest/textures/blocks/darksteel_top.png create mode 100644 src/main/resources/assets/ironchest/textures/blocks/netherite_front.png create mode 100644 src/main/resources/assets/ironchest/textures/blocks/netherite_side.png create mode 100644 src/main/resources/assets/ironchest/textures/blocks/netherite_top.png create mode 100644 src/main/resources/assets/ironchest/textures/gui/netheritecontainer.png create mode 100644 src/main/resources/assets/ironchest/textures/items/copperSteelUpgrade.png create mode 100644 src/main/resources/assets/ironchest/textures/items/diamondDarkSteelUpgrade.png create mode 100644 src/main/resources/assets/ironchest/textures/items/obsidianNetheriteUpgrade.png create mode 100644 src/main/resources/assets/ironchest/textures/items/steelGoldUpgrade.png create mode 100644 src/main/resources/assets/ironchest/textures/model/darksteelchest.png create mode 100644 src/main/resources/assets/ironchest/textures/model/netheritechest.png diff --git a/gradle.properties b/gradle.properties index 6b1b5ea4..eadb9b36 100644 --- a/gradle.properties +++ b/gradle.properties @@ -33,7 +33,7 @@ channel = stable mappingsVersion = 12 # Defines other MCP mappings for dependency deobfuscation. -remoteMappings = https://raw.githubusercontent.com/MinecraftForge/FML/1.7.10/conf/ +remoteMappings = https\://raw.githubusercontent.com/MinecraftForge/FML/1.7.10/conf/ # Select a default username for testing your mod. You can always override this per-run by running # `./gradlew runClient --username=AnotherPlayer`, or configuring this command in your IDE. @@ -41,7 +41,7 @@ developmentEnvironmentUserName = Developer # Enables using modern Java syntax (up to version 17) via Jabel, while still targeting JVM 8. # See https://github.com/bsideup/jabel for details on how this works. -enableModernJavaSyntax = false +enableModernJavaSyntax = true # Enables injecting missing generics into the decompiled source code for a better coding experience. # Turns most publicly visible List, Map, etc. into proper List, Map types. @@ -61,6 +61,9 @@ gradleTokenModId = # [DEPRECATED] Mod name replacement token. gradleTokenModName = +# [DEPRECATED] Mod Group replacement token. +gradleTokenGroupName = + # [DEPRECATED] # Multiple source files can be defined here by providing a comma-separated list: Class1.java,Class2.java,Class3.java # public static final String VERSION = "GRADLETOKEN_VERSION"; @@ -123,7 +126,7 @@ includeWellKnownRepositories = true usesMavenPublishing = true # Maven repository to publish the mod to. -# mavenPublishUrl = https://nexus.gtnewhorizons.com/repository/releases/ +# mavenPublishUrl = https\://nexus.gtnewhorizons.com/repository/releases/ # Publishing to Modrinth requires you to set the MODRINTH_TOKEN environment variable to your current Modrinth API token. # @@ -187,5 +190,3 @@ curseForgeRelations = # This is meant to be set in $HOME/.gradle/gradle.properties. # ideaCheckSpotlessOnBuild = true -# Non-GTNH properties -gradleTokenGroupName = diff --git a/settings.gradle b/settings.gradle index e8946ada..37468c7a 100644 --- a/settings.gradle +++ b/settings.gradle @@ -17,7 +17,7 @@ pluginManagement { } plugins { - id 'com.gtnewhorizons.gtnhsettingsconvention' version '1.0.8' + id 'com.gtnewhorizons.gtnhsettingsconvention' version '1.0.15' } diff --git a/src/main/java/cpw/mods/ironchest/BlockIronChest.java b/src/main/java/cpw/mods/ironchest/BlockIronChest.java index b123185d..25574f55 100644 --- a/src/main/java/cpw/mods/ironchest/BlockIronChest.java +++ b/src/main/java/cpw/mods/ironchest/BlockIronChest.java @@ -7,6 +7,7 @@ ******************************************************************************/ package cpw.mods.ironchest; +import static cpw.mods.ironchest.IronChest.ENABLE_STEEL_CHESTS; import static net.minecraftforge.common.util.ForgeDirection.DOWN; import static net.minecraftforge.common.util.ForgeDirection.UP; @@ -213,9 +214,36 @@ public void dropContent(int newSize, IInventory chest, World world, int xCoord, @SideOnly(Side.CLIENT) public void getSubBlocks(Item par1, CreativeTabs par2CreativeTabs, List par3List) { for (IronChestType type : IronChestType.values()) { - if (type.isValidForCreativeMode()) { - par3List.add(new ItemStack(this, 1, type.ordinal())); + + if (!type.isValidForCreativeMode()) { + continue; + } + switch (type) { + case STEEL -> { + if (ENABLE_STEEL_CHESTS) { + par3List.add(new ItemStack(this, 1, type.ordinal())); + } + } + case SILVER -> { + if (ENABLE_STEEL_CHESTS) { + continue; + } + par3List.add(new ItemStack(this, 1, type.ordinal())); + } + case DARKSTEEL -> { + if (IronChest.ENABLE_DARK_STEEL_CHESTS) { + par3List.add(new ItemStack(this, 1, type.ordinal())); + } + } + case NETHERITE -> { + if (IronChest.ENABLE_DARK_STEEL_CHESTS) { + continue; + } + par3List.add(new ItemStack(this, 1, type.ordinal())); + } + default -> par3List.add(new ItemStack(this, 1, type.ordinal())); } + } } diff --git a/src/main/java/cpw/mods/ironchest/ChestChangerType.java b/src/main/java/cpw/mods/ironchest/ChestChangerType.java index 545fcb04..6e9b1838 100644 --- a/src/main/java/cpw/mods/ironchest/ChestChangerType.java +++ b/src/main/java/cpw/mods/ironchest/ChestChangerType.java @@ -7,26 +7,21 @@ ******************************************************************************/ package cpw.mods.ironchest; -import static cpw.mods.ironchest.IronChestType.COPPER; -import static cpw.mods.ironchest.IronChestType.CRYSTAL; -import static cpw.mods.ironchest.IronChestType.DIAMOND; -import static cpw.mods.ironchest.IronChestType.GOLD; -import static cpw.mods.ironchest.IronChestType.IRON; -import static cpw.mods.ironchest.IronChestType.OBSIDIAN; -import static cpw.mods.ironchest.IronChestType.STEEL; -import static cpw.mods.ironchest.IronChestType.WOOD; +import static cpw.mods.ironchest.IronChest.ENABLE_STEEL_CHESTS; +import static cpw.mods.ironchest.IronChestType.*; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraftforge.common.config.Configuration; -import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.registry.GameRegistry; public enum ChestChangerType { IRONGOLD(IRON, GOLD, "ironGoldUpgrade", "Iron to Gold Chest Upgrade", "mmm", "msm", "mmm"), GOLDDIAMOND(GOLD, DIAMOND, "goldDiamondUpgrade", "Gold to Diamond Chest Upgrade", "GGG", "msm", "GGG"), + COPPERSILVER(COPPER, SILVER, "copperSilverUpgrade", "Copper to Silver Chest Upgrade", "mmm", "msm", "mmm"), + SILVERGOLD(SILVER, GOLD, "silverGoldUpgrade", "Silver to Gold Chest Upgrade", "mGm", "GsG", "mGm"), COPPERSTEEL(COPPER, STEEL, "copperSteelUpgrade", "Copper to Steel Chest Upgrade", "mmm", "msm", "mmm"), STEELGOLD(STEEL, GOLD, "steelGoldUpgrade", "Steel to Gold Chest Upgrade", "mGm", "GsG", "mGm"), COPPERIRON(COPPER, IRON, "copperIronUpgrade", "Copper to Iron Chest Upgrade", "mGm", "GsG", "mGm"), @@ -34,7 +29,11 @@ public enum ChestChangerType { WOODIRON(WOOD, IRON, "woodIronUpgrade", "Normal chest to Iron Chest Upgrade", "mmm", "msm", "mmm"), WOODCOPPER(WOOD, COPPER, "woodCopperUpgrade", "Normal chest to Copper Chest Upgrade", "mmm", "msm", "mmm"), DIAMONDOBSIDIAN(DIAMOND, OBSIDIAN, "diamondObsidianUpgrade", "Diamond to Obsidian Chest Upgrade", "mmm", "mGm", - "mmm"); + "mmm"), + OBSIDIANNETHERITE(OBSIDIAN, NETHERITE, "obsidianNetheriteUpgrade", "Obsidian to Netherite Chest Upgrade", "OOO", + "msm", "OOO"), + DIAMONDDARKSTEEL(DIAMOND, DARKSTEEL, "diamondDarkSteelUpgrade", "Diamond to Dark Steel Chest Upgrade", "OOO", "msm", + "OOO"); private final IronChestType source; private final IronChestType target; @@ -82,12 +81,37 @@ public void addRecipes() { public static void buildItems(Configuration cfg) { for (ChestChangerType type : values()) { - type.buildItem(cfg); + switch (type) { + case STEELGOLD, COPPERSTEEL -> { + if (ENABLE_STEEL_CHESTS) { + type.buildItem(cfg); + } + } + case SILVERGOLD, COPPERSILVER -> { + if (ENABLE_STEEL_CHESTS) { + continue; + } + type.buildItem(cfg); + } + case DIAMONDDARKSTEEL -> { + if (IronChest.ENABLE_DARK_STEEL_CHESTS) { + type.buildItem(cfg); + } + } + case OBSIDIANNETHERITE -> { + if (IronChest.ENABLE_DARK_STEEL_CHESTS) { + continue; + } + type.buildItem(cfg); + } + default -> type.buildItem(cfg); + } + } } public static void generateRecipes() { - if (Loader.isModLoaded("dreamcraft")) { + if (IronChest.isGTNHLoaded) { return; } for (ChestChangerType item : values()) { diff --git a/src/main/java/cpw/mods/ironchest/IronChest.java b/src/main/java/cpw/mods/ironchest/IronChest.java index ca9a54fe..2b199e4e 100644 --- a/src/main/java/cpw/mods/ironchest/IronChest.java +++ b/src/main/java/cpw/mods/ironchest/IronChest.java @@ -15,6 +15,7 @@ import org.apache.logging.log4j.Level; import cpw.mods.fml.common.FMLLog; +import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.Mod.Instance; @@ -43,17 +44,33 @@ public class IronChest { public static final String VERSION = "GRADLETOKEN_VERSION"; public static boolean TRANSPARENT_RENDER_INSIDE = true; public static double TRANSPARENT_RENDER_DISTANCE = 128D; + public static boolean ENABLE_STEEL_CHESTS = true; + public static boolean ENABLE_DARK_STEEL_CHESTS = false; + public static boolean isGTNHLoaded; @EventHandler public void preInit(FMLPreInitializationEvent event) { + isGTNHLoaded = Loader.isModLoaded("dreamcraft"); Configuration cfg = new Configuration(event.getSuggestedConfigurationFile()); try { cfg.load(); - ChestChangerType.buildItems(cfg); CACHE_RENDER = cfg.get(Configuration.CATEGORY_GENERAL, "cacheRenderingInformation", true).getBoolean(true); OCELOTS_SITONCHESTS = cfg.get(Configuration.CATEGORY_GENERAL, "ocelotsSitOnChests", true).getBoolean(true); - TRANSPARENT_RENDER_INSIDE = cfg.get("general", "transparentRenderInside", true).getBoolean(true); - TRANSPARENT_RENDER_DISTANCE = cfg.get("general", "transparentRenderDistance", 128D).getDouble(128D); + TRANSPARENT_RENDER_INSIDE = cfg.get(Configuration.CATEGORY_GENERAL, "transparentRenderInside", true) + .getBoolean(true); + TRANSPARENT_RENDER_DISTANCE = cfg.get(Configuration.CATEGORY_GENERAL, "transparentRenderDistance", 128D) + .getDouble(128D); + ENABLE_STEEL_CHESTS = cfg.get( + Configuration.CATEGORY_GENERAL, + "enableSteelChests", + true, + "Enables the steel chest instead of the silver chest.").getBoolean(true); + ENABLE_DARK_STEEL_CHESTS = cfg.get( + Configuration.CATEGORY_GENERAL, + "enableDarkSteelChests", + isGTNHLoaded, + "Enables the dark steel chest instead the netherit chest.").getBoolean(isGTNHLoaded); + ChestChangerType.buildItems(cfg); } catch (Exception e) { FMLLog.log(Level.ERROR, e, "IronChest has a problem loading its configuration"); } finally { @@ -67,13 +84,18 @@ public void preInit(FMLPreInitializationEvent event) { @EventHandler public void load(FMLInitializationEvent evt) { for (IronChestType typ : IronChestType.values()) { - if (typ.name().equals("STEEL")) { + if (typ.name().equals("STEEL") && ENABLE_STEEL_CHESTS) { GameRegistry.registerTileEntityWithAlternatives( typ.clazz, "IronChest." + typ.name(), typ.name(), "SILVER", "IronChest.SILVER"); + } else if (typ.name().equals("SILVER")) { + if (ENABLE_STEEL_CHESTS) { + continue; + } + GameRegistry.registerTileEntityWithAlternatives(typ.clazz, "IronChest." + typ.name(), typ.name()); } else { GameRegistry.registerTileEntityWithAlternatives(typ.clazz, "IronChest." + typ.name(), typ.name()); } @@ -98,25 +120,44 @@ public void modsLoaded(FMLPostInitializationEvent evt) {} @Mod.EventHandler public void missingMapping(FMLMissingMappingsEvent event) { for (FMLMissingMappingsEvent.MissingMapping mapping : event.getAll()) { - if (mapping.type == GameRegistry.Type.BLOCK) { - switch (mapping.name) { - case "IronChest:copperSilverUpgrade": - mapping.remap(GameRegistry.findBlock("IronChest", "copperSteelUpgrade")); - break; - case "IronChest:silverGoldUpgrade": - mapping.remap(GameRegistry.findBlock("IronChest", "steelGoldUpgrade")); - break; - default: + if (ENABLE_STEEL_CHESTS) { + if (mapping.type == GameRegistry.Type.BLOCK) { + switch (mapping.name) { + case "IronChest:copperSilverUpgrade": + mapping.remap(GameRegistry.findBlock("IronChest", "copperSteelUpgrade")); + break; + case "IronChest:silverGoldUpgrade": + mapping.remap(GameRegistry.findBlock("IronChest", "steelGoldUpgrade")); + break; + default: + } + } else if (mapping.type == GameRegistry.Type.ITEM) { + switch (mapping.name) { + case "IronChest:copperSilverUpgrade": + mapping.remap(GameRegistry.findItem("IronChest", "copperSteelUpgrade")); + break; + case "IronChest:silverGoldUpgrade": + mapping.remap(GameRegistry.findItem("IronChest", "steelGoldUpgrade")); + break; + default: + } } - } else if (mapping.type == GameRegistry.Type.ITEM) { - switch (mapping.name) { - case "IronChest:copperSilverUpgrade": - mapping.remap(GameRegistry.findItem("IronChest", "copperSteelUpgrade")); - break; - case "IronChest:silverGoldUpgrade": - mapping.remap(GameRegistry.findItem("IronChest", "steelGoldUpgrade")); - break; - default: + } + if (ENABLE_DARK_STEEL_CHESTS) { + if (mapping.name.equals("IronChest:obsidianNetheriteUpgrade")) { + if (mapping.type == GameRegistry.Type.BLOCK) { + mapping.remap(GameRegistry.findBlock("IronChest", "diamondDarkSteelUpgrade")); + } else { + mapping.remap(GameRegistry.findItem("IronChest", "diamondDarkSteelUpgrade")); + } + } + } else { + if (mapping.name.equals("IronChest:diamondDarkSteelUpgrade")) { + if (mapping.type == GameRegistry.Type.BLOCK) { + mapping.remap(GameRegistry.findBlock("IronChest", "obsidianNetheriteUpgrade")); + } else { + mapping.remap(GameRegistry.findItem("IronChest", "obsidianNetheriteUpgrade")); + } } } } diff --git a/src/main/java/cpw/mods/ironchest/IronChestType.java b/src/main/java/cpw/mods/ironchest/IronChestType.java index c0355576..531a81d3 100644 --- a/src/main/java/cpw/mods/ironchest/IronChestType.java +++ b/src/main/java/cpw/mods/ironchest/IronChestType.java @@ -21,7 +21,6 @@ import net.minecraft.util.IIcon; import net.minecraftforge.oredict.ShapedOreRecipe; -import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -44,6 +43,12 @@ public enum IronChestType { TileEntityObsidianChest.class, "mmmm2mmmm"), DIRTCHEST9000(1, 1, false, "Dirt Chest 9000", "dirtchest.png", 7, Arrays.asList("dirt"), TileEntityDirtChest.class, Item.getItemFromBlock(Blocks.dirt), "mmmmCmmmm"), + NETHERITE(135, 15, true, "Netherite Chest", "netheritechest.png", 2, Arrays.asList("ingotNetherite"), + TileEntityNetheriteChest.class, "OOOmPmOOO", "OOOO6Ommm"), + DARKSTEEL(135, 15, true, "Dark Steel Chest", "darksteelchest.png", 2, Arrays.asList("ingotDarkSteel"), + TileEntityDarkSteelChest.class, "OOOmPmOOO", "OOOO4Ommm"), + SILVER(72, 9, false, "Silver Chest", "silverchest.png", 4, Arrays.asList("ingotSilver"), + TileEntitySilverChest.class, "mmmm3mmmm", "mGmG0GmGm"), WOOD(0, 0, false, "", "", -1, Arrays.asList("plankWood"), null); final int size; @@ -103,6 +108,10 @@ public static TileEntityIronChest makeEntity(int metadata) { public static void registerBlocksAndRecipes(BlockIronChest blockResult) { Object previous = "chestWood"; for (IronChestType typ : values()) { + if ((typ == NETHERITE) && IronChest.ENABLE_DARK_STEEL_CHESTS) { + continue; + } + generateRecipesForType(blockResult, previous, typ); ItemStack chest = new ItemStack(blockResult, 1, typ.ordinal()); if (typ.isValidForCreativeMode()) { @@ -115,7 +124,7 @@ public static void registerBlocksAndRecipes(BlockIronChest blockResult) { } public static void generateRecipesForType(BlockIronChest blockResult, Object previousTier, IronChestType type) { - if (Loader.isModLoaded("dreamcraft")) { + if (IronChest.ENABLE_DARK_STEEL_CHESTS) { return; } for (String recipe : type.recipes) { @@ -127,12 +136,15 @@ public static void generateRecipesForType(BlockIronChest blockResult, Object pre // spotless:off addRecipe(new ItemStack(blockResult, 1, type.ordinal()), recipeSplit, 'm', mainMaterial, 'P', previousTier, /* previous tier of chest */ - 'G', "blockGlass", 'C', "chestWood", + 'G', "blockGlass", 'C', "chestWood", 'O', Blocks.obsidian, '0', new ItemStack(blockResult, 1, 0), /* Iron Chest */ '1', new ItemStack(blockResult, 1, 1), /* Gold Chest */ '2', new ItemStack(blockResult, 1, 2), /* Diamond Chest */ '3', new ItemStack(blockResult, 1, 3), /* Copper Chest */ - '4', new ItemStack(blockResult, 1, 4) /* Silver Chest */ + '4', new ItemStack(blockResult, 1, 4), /* Silver Chest */ + '5', new ItemStack(blockResult, 1, 10), /* Netherite Chest */ + '6', new ItemStack(blockResult, 1, 7) /* Obsidian Chest */ + ); // spotless:on } @@ -182,7 +194,7 @@ public boolean isValidForCreativeMode() { } public boolean isExplosionResistant() { - return this == OBSIDIAN; + return this == OBSIDIAN || this == NETHERITE; } @SideOnly(Side.CLIENT) diff --git a/src/main/java/cpw/mods/ironchest/ItemChestChanger.java b/src/main/java/cpw/mods/ironchest/ItemChestChanger.java index 53d4f2b0..43b618d0 100644 --- a/src/main/java/cpw/mods/ironchest/ItemChestChanger.java +++ b/src/main/java/cpw/mods/ironchest/ItemChestChanger.java @@ -36,7 +36,7 @@ public ItemChestChanger(ChestChangerType type) { @Override @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister par1IconRegister) { - this.itemIcon = par1IconRegister.registerIcon("ironchest:" + type.itemName.replace("teel", "ilver")); + this.itemIcon = par1IconRegister.registerIcon("ironchest:" + type.itemName); } @Override diff --git a/src/main/java/cpw/mods/ironchest/TileEntityDarkSteelChest.java b/src/main/java/cpw/mods/ironchest/TileEntityDarkSteelChest.java new file mode 100644 index 00000000..357dd510 --- /dev/null +++ b/src/main/java/cpw/mods/ironchest/TileEntityDarkSteelChest.java @@ -0,0 +1,8 @@ +package cpw.mods.ironchest; + +public class TileEntityDarkSteelChest extends TileEntityIronChest { + + public TileEntityDarkSteelChest() { + super(IronChestType.DARKSTEEL); + } +} diff --git a/src/main/java/cpw/mods/ironchest/TileEntityNetheriteChest.java b/src/main/java/cpw/mods/ironchest/TileEntityNetheriteChest.java new file mode 100644 index 00000000..5d1ddba0 --- /dev/null +++ b/src/main/java/cpw/mods/ironchest/TileEntityNetheriteChest.java @@ -0,0 +1,8 @@ +package cpw.mods.ironchest; + +public class TileEntityNetheriteChest extends TileEntityIronChest { + + public TileEntityNetheriteChest() { + super(IronChestType.NETHERITE); + } +} diff --git a/src/main/java/cpw/mods/ironchest/TileEntitySilverChest.java b/src/main/java/cpw/mods/ironchest/TileEntitySilverChest.java new file mode 100644 index 00000000..21f1bd27 --- /dev/null +++ b/src/main/java/cpw/mods/ironchest/TileEntitySilverChest.java @@ -0,0 +1,15 @@ +/******************************************************************************* + * Copyright (c) 2012 cpw. All rights reserved. This program and the accompanying materials are made available under the + * terms of the GNU Public License v3.0 which accompanies this distribution, and is available at + * http://www.gnu.org/licenses/gpl.html + * + * Contributors: cpw - initial API and implementation + ******************************************************************************/ +package cpw.mods.ironchest; + +public class TileEntitySilverChest extends TileEntityIronChest { + + public TileEntitySilverChest() { + super(IronChestType.SILVER); + } +} diff --git a/src/main/java/cpw/mods/ironchest/client/ClientProxy.java b/src/main/java/cpw/mods/ironchest/client/ClientProxy.java index 1c607c14..683b82fe 100644 --- a/src/main/java/cpw/mods/ironchest/client/ClientProxy.java +++ b/src/main/java/cpw/mods/ironchest/client/ClientProxy.java @@ -39,7 +39,7 @@ public World getClientWorld() { public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { TileEntity te = world.getTileEntity(x, y, z); if (te instanceof TileEntityIronChest) { - return GUIChest.GUI.buildGUI(IronChestType.values()[ID], player.inventory, (TileEntityIronChest) te); + return GUIChest.GUI.buildGUI(ID, player.inventory, (TileEntityIronChest) te); } else { return null; } diff --git a/src/main/java/cpw/mods/ironchest/client/GUIChest.java b/src/main/java/cpw/mods/ironchest/client/GUIChest.java index d842aae0..4f4755b1 100644 --- a/src/main/java/cpw/mods/ironchest/client/GUIChest.java +++ b/src/main/java/cpw/mods/ironchest/client/GUIChest.java @@ -8,6 +8,7 @@ package cpw.mods.ironchest.client; import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.renderer.Tessellator; import net.minecraft.inventory.Container; import net.minecraft.inventory.IInventory; import net.minecraft.util.ResourceLocation; @@ -27,6 +28,8 @@ public enum ResourceList { STEEL(new ResourceLocation("ironchest", "textures/gui/silvercontainer.png")), GOLD(new ResourceLocation("ironchest", "textures/gui/goldcontainer.png")), DIAMOND(new ResourceLocation("ironchest", "textures/gui/diamondcontainer.png")), + NETHERITE(new ResourceLocation("ironchest", "textures/gui/netheritecontainer.png")), + DARKSTEEL(new ResourceLocation("ironchest", "textures/gui/netheritecontainer.png")), DIRT(new ResourceLocation("ironchest", "textures/gui/dirtcontainer.png")); public final ResourceLocation location; @@ -45,7 +48,9 @@ public enum GUI { STEEL(184, 238, ResourceList.STEEL, IronChestType.STEEL), CRYSTAL(238, 256, ResourceList.DIAMOND, IronChestType.CRYSTAL), OBSIDIAN(238, 256, ResourceList.DIAMOND, IronChestType.OBSIDIAN), - DIRTCHEST9000(184, 184, ResourceList.DIRT, IronChestType.DIRTCHEST9000); + DIRTCHEST9000(184, 184, ResourceList.DIRT, IronChestType.DIRTCHEST9000), + NETHERITE(292, 256, ResourceList.NETHERITE, IronChestType.NETHERITE), + DARKSTEEL(292, 256, ResourceList.DARKSTEEL, IronChestType.DARKSTEEL); private final int xSize; private final int ySize; @@ -64,9 +69,14 @@ protected Container makeContainer(IInventory player, IInventory chest) { return new ContainerIronChest(player, chest, mainType, xSize, ySize); } - public static GUIChest buildGUI(IronChestType type, IInventory playerInventory, + public static GUIChest buildGUI(int chestTypeIndex, IInventory playerInventory, TileEntityIronChest chestInventory) { - return new GUIChest(values()[chestInventory.getType().ordinal()], playerInventory, chestInventory); + for (GUI gui : values()) { + if (gui.mainType.ordinal() == chestTypeIndex) { + return new GUIChest(gui, playerInventory, chestInventory); + } + } + return null; } } @@ -89,8 +99,21 @@ protected void drawGuiContainerBackgroundLayer(float f, int i, int j) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); // new "bind tex" this.mc.getTextureManager().bindTexture(type.guiResourceList.location); + + if (type == GUI.NETHERITE || type == GUI.DARKSTEEL) { + final Tessellator tessellator = Tessellator.instance; + tessellator.startDrawingQuads(); + tessellator.addVertexWithUV(guiLeft, guiTop, 0, 0.0, 0.0); + tessellator.addVertexWithUV(guiLeft, guiTop + ySize, 0, 0.0, 1.0); + tessellator.addVertexWithUV(guiLeft + xSize, guiTop + ySize, 0, 1.0, 1.0); + tessellator.addVertexWithUV(guiLeft + xSize, guiTop, 0, 1.0, 0.0); + tessellator.draw(); + return; + } + int x = (width - xSize) / 2; int y = (height - ySize) / 2; drawTexturedModalRect(x, y, 0, 0, xSize, ySize); + } } diff --git a/src/main/resources/assets/ironchest/lang/cs_CZ.lang b/src/main/resources/assets/ironchest/lang/cs_CZ.lang index 033ca722..53cee907 100644 --- a/src/main/resources/assets/ironchest/lang/cs_CZ.lang +++ b/src/main/resources/assets/ironchest/lang/cs_CZ.lang @@ -3,6 +3,7 @@ tile.ironchest:GOLD.name=Zlatá truhla tile.ironchest:DIAMOND.name=Diamantová truhla tile.ironchest:COPPER.name=Měděná truhla tile.ironchest:STEEL.name=Steel truhla +tile.ironchest:SILVER.name=Stříbrná truhla tile.ironchest:CRYSTAL.name=Krystalová truhla tile.ironchest:OBSIDIAN.name=Obsidiánová truhla @@ -10,6 +11,8 @@ item.ironchest:IRONGOLD.name=Vylepšení železné truhly na zlatou item.ironchest:GOLDDIAMOND.name=Vylepšení zlaté truhly na diamantovou item.ironchest:COPPERSTEEL.name=Vylepšení měděné truhly na steel item.ironchest:STEELGOLD.name=Vylepšení steel truhly na zlatou +item.ironchest:COPPERSILVER.name=Vylepšení měděné truhly na stříbrnou +item.ironchest:SILVERGOLD.name=Vylepšení stříbrné truhly na zlatou item.ironchest:COPPERIRON.name=Vylepšení měděné truhly na železnou item.ironchest:DIAMONDCRYSTAL.name=Vylepšení diamantové truhly na krystalovou item.ironchest:WOODIRON.name=Vylepšení dřevěné truhly na železnou diff --git a/src/main/resources/assets/ironchest/lang/da_DK.lang b/src/main/resources/assets/ironchest/lang/da_DK.lang index bcbcfaef..edd1f667 100644 --- a/src/main/resources/assets/ironchest/lang/da_DK.lang +++ b/src/main/resources/assets/ironchest/lang/da_DK.lang @@ -3,6 +3,7 @@ tile.ironchest:GOLD.name=Guld Kiste tile.ironchest:DIAMOND.name=Diamant Kiste tile.ironchest:COPPER.name=Kobber Kiste tile.ironchest:STEEL.name=Steel Kiste +tile.ironchest:SILVER.name=Sølv Kiste tile.ironchest:CRYSTAL.name=Krystal Kiste tile.ironchest:OBSIDIAN.name=Obsidian Kiste @@ -10,6 +11,8 @@ item.ironchest:IRONGOLD.name=Jern til Guld Kiste Opgradering item.ironchest:GOLDDIAMOND.name=Guld til Diamant Kiste Opgradering item.ironchest:COPPERSTEEL.name=Kobber til Steel Kiste Opgradering item.ironchest:STEELGOLD.name=Steel til Guld Kiste Opgradering +item.ironchest:COPPERSILVER.name=Kobber til Sølv Kiste Opgradering +item.ironchest:SILVERGOLD.name=Sølv til Guld Kiste Opgradering item.ironchest:COPPERIRON.name=Kobber til Jern Kiste Opgradering item.ironchest:DIAMONDCRYSTAL.name=Diamant til Krystal Kiste Opgradering item.ironchest:WOODIRON.name=Træ til Jern Kiste Opgradering diff --git a/src/main/resources/assets/ironchest/lang/de_DE.lang b/src/main/resources/assets/ironchest/lang/de_DE.lang index 29aa0db2..daae348d 100644 --- a/src/main/resources/assets/ironchest/lang/de_DE.lang +++ b/src/main/resources/assets/ironchest/lang/de_DE.lang @@ -1,8 +1,11 @@ tile.ironchest:IRON.name=Eisentruhe tile.ironchest:GOLD.name=Goldtruhe tile.ironchest:DIAMOND.name=Diamanttruhe +tile.ironchest:NETHERITE.name=Netherittruhe +tile.ironchest:DARKSTEEL.name=Dunkelstahltruhe tile.ironchest:COPPER.name=Kupfertruhe tile.ironchest:STEEL.name=Stahltruhe +tile.ironchest:SILVER.name=Silbertruhe tile.ironchest:CRYSTAL.name=Kristalltruhe tile.ironchest:OBSIDIAN.name=Obsidiantruhe tile.ironchest:DIRTCHEST9000.name=DirtChest 9000! @@ -11,11 +14,15 @@ item.ironchest:IRONGOLD.name=Eisen-zu-Goldtruhen-Upgrade item.ironchest:GOLDDIAMOND.name=Gold-zu-Diamanttruhen-Upgrade item.ironchest:COPPERSTEEL.name=Kupfer-zu-Stahltruhen-Upgrade item.ironchest:STEELGOLD.name=Stahl-zu-Goldtruhen-Upgrade +item.ironchest:COPPERSILVER.name=Kupfer-zu-Silbertruhen-Upgrade +item.ironchest:SILVERGOLD.name=Silber-zu-Goldtruhen-Upgrade item.ironchest:COPPERIRON.name=Kupfer-zu-Eisentruhen-Upgrade item.ironchest:DIAMONDCRYSTAL.name=Diamant-zu-Kristalltruhen-Upgrade item.ironchest:WOODIRON.name=Holz-zu-Eisentruhen-Upgrade item.ironchest:WOODCOPPER.name=Holz-zu-Kupfertruhen-Upgrade item.ironchest:DIAMONDOBSIDIAN.name=Diamant-zu-Obsidiantruhen-Upgrade +item.ironchest:OBSIDIANNETHERITE.name=Obsidian-zu-Netherittruhen-Upgrade +item.ironchest:DIAMONDDARKSTEEL.name=Diamant-zu-Dunkelstahltruhen-Upgrade book.ironchest:dirtchest9000.title=Wie du deine neue DirtChest 9000 nutzt! book.ironchest:dirtchest9000.page1=Willkommen zu Ihrer neuen DirtChest 9000! Wir hoffen, dass Sie viele freudige Jahre genießen werden, wenn Sie Ihre Erd-Stacks in unserem nützlichen Speichergerät lagern. diff --git a/src/main/resources/assets/ironchest/lang/el_GR.lang b/src/main/resources/assets/ironchest/lang/el_GR.lang index ecd49ebd..89758883 100644 --- a/src/main/resources/assets/ironchest/lang/el_GR.lang +++ b/src/main/resources/assets/ironchest/lang/el_GR.lang @@ -3,6 +3,7 @@ tile.ironchest:GOLD.name=Χρυσό Σεντούκι tile.ironchest:DIAMOND.name=Διαμαντένιο Σεντούκι tile.ironchest:COPPER.name=Χάλκινο Σεντούκι tile.ironchest:STEEL.name=Ασημένιο Σεντούκι +tile.ironchest:SILVER.name=Ασημένιο Σεντούκι tile.ironchest:CRYSTAL.name=Κρυστάλλινο Σεντούκι tile.ironchest:OBSIDIAN.name=Σεντούκι Οψιδιανού @@ -10,6 +11,8 @@ item.ironchest:IRONGOLD.name=Αναβάθμιση από Σιδερένιο σε item.ironchest:GOLDDIAMOND.name=Αναβάθμιση από Χρυσό σε Διαμαντένιο Σεντούκι item.ironchest:COPPERSTEEL.name=Αναβάθμιση από Χάλκινο σε Ασημένιο Σεντούκι item.ironchest:STEELGOLD.name=Αναβάθμιση από Ασημένιο σε Χρυσό Σεντούκι +item.ironchest:COPPERSILVER.name=Αναβάθμιση από Χάλκινο σε Ασημένιο Σεντούκι +item.ironchest:SILVERGOLD.name=Αναβάθμιση από Ασημένιο σε Χρυσό Σεντούκι item.ironchest:COPPERIRON.name=Αναβάθμιση από Χάλκινο σε Σιδερένιο Σεντούκι item.ironchest:DIAMONDCRYSTAL.name=Αναβάθμιση από Διαμαντένιο σε Κρυστάλλινο Σεντούκι item.ironchest:WOODIRON.name=Αναβάθμιση από Ξύλινο σε Σιδερένιο Σεντούκι diff --git a/src/main/resources/assets/ironchest/lang/en_PT.lang b/src/main/resources/assets/ironchest/lang/en_PT.lang index 034ae1bf..5b2c3c8d 100644 --- a/src/main/resources/assets/ironchest/lang/en_PT.lang +++ b/src/main/resources/assets/ironchest/lang/en_PT.lang @@ -3,6 +3,7 @@ tile.ironchest:GOLD.name=Gold Coffer tile.ironchest:DIAMOND.name=Diamond Coffer tile.ironchest:COPPER.name=Copper Coffer tile.ironchest:STEEL.name=Steel Coffer +tile.ironchest:SILVER.name=Silver Coffer tile.ironchest:CRYSTAL.name=Shinin' Coffer tile.ironchest:OBSIDIAN.name=Coffer o' tears tile.ironchest:DIRTCHEST9000.name=FilthCoffer 9000! @@ -11,6 +12,8 @@ item.ironchest:IRONGOLD.name=Steel to Gold Coffer Upgradin' item.ironchest:GOLDDIAMOND.name=Gold to Diamond Coffer Upgradin' item.ironchest:COPPERSTEEL.name=Copper to Steel Coffer Upgradin' item.ironchest:STEELGOLD.name=Steel to Gold Coffer Upgradin' +item.ironchest:COPPERSILVER.name=Copper to Silver Coffer Upgradin' +item.ironchest:SILVERGOLD.name=Silver to Gold Coffer Upgradin' item.ironchest:COPPERIRON.name=Copper to Steel Coffer Upgradin' item.ironchest:DIAMONDCRYSTAL.name=Diamond to Shinin' Coffer Upgradin' item.ironchest:WOODIRON.name=Timber to Steel Coffer Upgradin' diff --git a/src/main/resources/assets/ironchest/lang/en_US.lang b/src/main/resources/assets/ironchest/lang/en_US.lang index afaef5a3..8dc63281 100644 --- a/src/main/resources/assets/ironchest/lang/en_US.lang +++ b/src/main/resources/assets/ironchest/lang/en_US.lang @@ -1,8 +1,11 @@ tile.ironchest:IRON.name=Iron Chest tile.ironchest:GOLD.name=Gold Chest tile.ironchest:DIAMOND.name=Diamond Chest +tile.ironchest:NETHERITE.name=Netherite Chest +tile.ironchest:DARKSTEEL.name=Dark Steel Chest tile.ironchest:COPPER.name=Copper Chest tile.ironchest:STEEL.name=Steel Chest +tile.ironchest:SILVER.name=Silver Chest tile.ironchest:CRYSTAL.name=Crystal Chest tile.ironchest:OBSIDIAN.name=Obsidian Chest tile.ironchest:DIRTCHEST9000.name=DirtChest 9000! @@ -11,11 +14,15 @@ item.ironchest:IRONGOLD.name=Iron to Gold Chest Upgrade item.ironchest:GOLDDIAMOND.name=Gold to Diamond Chest Upgrade item.ironchest:COPPERSTEEL.name=Copper to Steel Chest Upgrade item.ironchest:STEELGOLD.name=Steel to Gold Chest Upgrade +item.ironchest:COPPERSILVER.name=Copper to Silver Chest Upgrade +item.ironchest:SILVERGOLD.name=Silver to Gold Chest Upgrade item.ironchest:COPPERIRON.name=Copper to Iron Chest Upgrade item.ironchest:DIAMONDCRYSTAL.name=Diamond to Crystal Chest Upgrade item.ironchest:WOODIRON.name=Wood to Iron Chest Upgrade item.ironchest:WOODCOPPER.name=Wood to Copper Chest Upgrade item.ironchest:DIAMONDOBSIDIAN.name=Diamond to Obsidian Chest Upgrade +item.ironchest:OBSIDIANNETHERITE.name=Obsidian to Netherite Chest Upgrade +item.ironchest:DIAMONDDARKSTEEL.name=Diamond to Dark Steel Chest Upgrade book.ironchest:dirtchest9000.title=How to use your DirtChest 9000! book.ironchest:dirtchest9000.page1=Welcome to your new DirtChest 9000! We hope you will enjoy many happy years of storing your stack of dirt in our storage utility. diff --git a/src/main/resources/assets/ironchest/lang/es_ES.lang b/src/main/resources/assets/ironchest/lang/es_ES.lang index 9c82d1a4..37841a6f 100644 --- a/src/main/resources/assets/ironchest/lang/es_ES.lang +++ b/src/main/resources/assets/ironchest/lang/es_ES.lang @@ -3,6 +3,7 @@ tile.ironchest:GOLD.name=Cofre de Oro tile.ironchest:DIAMOND.name=Cofre de Diamante tile.ironchest:COPPER.name=Cofre de Cobre tile.ironchest:STEEL.name=Cofre de Plata +tile.ironchest:SILVER.name=Cofre de Plata tile.ironchest:CRYSTAL.name=Cofre de Cristal tile.ironchest:OBSIDIAN.name=Cofre de Obsidiana @@ -10,6 +11,8 @@ item.ironchest:IRONGOLD.name=Mejora de Cofre de Hierro a Oro item.ironchest:GOLDDIAMOND.name=Mejora de Cofre de Oro a Diamante item.ironchest:COPPERSTEEL.name=Mejora de Cofre de Cobre a Plata item.ironchest:STEELGOLD.name=Mejora de Cofre de Plata a Oro +item.ironchest:COPPERSILVER.name=Mejora de Cofre de Cobre a Plata +item.ironchest:SILVERGOLD.name=Mejora de Cofre de Plata a Oro item.ironchest:COPPERIRON.name=Mejora de Cofre de Cobre a Hierro item.ironchest:DIAMONDCRYSTAL.name=Mejora de Cofre de Diamante a Cristal item.ironchest:WOODIRON.name=Mejora de Cofre de Madera a Hierro diff --git a/src/main/resources/assets/ironchest/lang/et_EE.lang b/src/main/resources/assets/ironchest/lang/et_EE.lang index ca50295c..bb8622b5 100644 --- a/src/main/resources/assets/ironchest/lang/et_EE.lang +++ b/src/main/resources/assets/ironchest/lang/et_EE.lang @@ -3,6 +3,7 @@ tile.ironchest:GOLD.name=Kuldkirst tile.ironchest:DIAMOND.name=Teemantkirst tile.ironchest:COPPER.name=Vaskkirst tile.ironchest:STEEL.name=Hõbekirst +tile.ironchest:SILVER.name=Hõbekirst tile.ironchest:CRYSTAL.name=Kristallkirst tile.ironchest:OBSIDIAN.name=Obsidiaankirst tile.ironchest:DIRTCHEST9000.name=Muldkirst 9000! @@ -11,6 +12,8 @@ item.ironchest:IRONGOLD.name=Raudkirst kuld kirstuks item.ironchest:GOLDDIAMOND.name=Kuldkirst teemandist kirstuks item.ironchest:COPPERSTEEL.name=Vaskkirst hõbedast kirstuks item.ironchest:STEELGOLD.name=Hõbekirst kullast kirstuks +item.ironchest:COPPERSILVER.name=Vaskkirst hõbedast kirstuks +item.ironchest:SILVERGOLD.name=Hõbekirst kullast kirstuks item.ironchest:COPPERIRON.name=Vaskkirst rauast kirstuks item.ironchest:DIAMONDCRYSTAL.name=Teemantkirst kristallist kirstuks item.ironchest:WOODIRON.name=Puukirst rauast kirstuks diff --git a/src/main/resources/assets/ironchest/lang/fr_FR.lang b/src/main/resources/assets/ironchest/lang/fr_FR.lang index c23d220c..7d08167f 100644 --- a/src/main/resources/assets/ironchest/lang/fr_FR.lang +++ b/src/main/resources/assets/ironchest/lang/fr_FR.lang @@ -5,6 +5,7 @@ tile.ironchest:GOLD.name=Coffre en Or tile.ironchest:DIAMOND.name=Coffre en Diamant tile.ironchest:COPPER.name=Coffre en Cuivre tile.ironchest:STEEL.name=Coffre en Argent +tile.ironchest:SILVER.name=Coffre en Argent tile.ironchest:CRYSTAL.name=Coffre en Cristal tile.ironchest:OBSIDIAN.name=Coffre en Obsidienne @@ -12,6 +13,8 @@ item.ironchest:IRONGOLD.name=Amélioration de coffre en fer à or item.ironchest:GOLDDIAMOND.name=Amélioration de coffre en or à diamant item.ironchest:COPPERSTEEL.name=Amélioration de coffre en cuivre à argent item.ironchest:STEELGOLD.name=Amélioration de coffre en argent à or +item.ironchest:COPPERSILVER.name=Amélioration de coffre en cuivre à argent +item.ironchest:SILVERGOLD.name=Amélioration de coffre en argent à or item.ironchest:COPPERIRON.name=Amélioration de coffre en cuivre à fer item.ironchest:DIAMONDCRYSTAL.name=Amélioration de coffre en diamant à crital item.ironchest:WOODIRON.name=Amélioration de coffre en bois à fer diff --git a/src/main/resources/assets/ironchest/lang/it_IT.lang b/src/main/resources/assets/ironchest/lang/it_IT.lang index 563e3974..7df890cb 100644 --- a/src/main/resources/assets/ironchest/lang/it_IT.lang +++ b/src/main/resources/assets/ironchest/lang/it_IT.lang @@ -3,6 +3,7 @@ tile.ironchest:GOLD.name=Baule d'oro tile.ironchest:DIAMOND.name=Baule di diamante tile.ironchest:COPPER.name=Baule di rame tile.ironchest:STEEL.name=Baule d'argento +tile.ironchest:SILVER.name=Baule d'argento tile.ironchest:CRYSTAL.name=Baule di cristallo tile.ironchest:OBSIDIAN.name=Baule di ossidiana tile.ironchest:DIRTCHEST9000.name=DirtChest 9000! @@ -11,6 +12,8 @@ item.ironchest:IRONGOLD.name=Potenziamento da ferro a oro item.ironchest:GOLDDIAMOND.name=Potenziamento da oro a diamante item.ironchest:COPPERSTEEL.name=Potenziamento da rame a argento item.ironchest:STEELGOLD.name=Potenziamento da argento a oro +item.ironchest:COPPERSILVER.name=Potenziamento da rame a argento +item.ironchest:SILVERGOLD.name=Potenziamento da argento a oro item.ironchest:COPPERIRON.name=Potenziamento da rame a ferro item.ironchest:DIAMONDCRYSTAL.name=Potenziamento da diamante a cristallo item.ironchest:WOODIRON.name=Potenziamento da legno a ferro diff --git a/src/main/resources/assets/ironchest/lang/ko_KR.lang b/src/main/resources/assets/ironchest/lang/ko_KR.lang index 4465bd9d..66059d14 100644 --- a/src/main/resources/assets/ironchest/lang/ko_KR.lang +++ b/src/main/resources/assets/ironchest/lang/ko_KR.lang @@ -3,6 +3,7 @@ tile.ironchest:GOLD.name=금 상자 tile.ironchest:DIAMOND.name=다이아몬드 상자 tile.ironchest:COPPER.name=구리 상자 tile.ironchest:STEEL.name=은 상자 +tile.ironchest:SILVER.name=은 상자 tile.ironchest:CRYSTAL.name=수정 상자 tile.ironchest:OBSIDIAN.name=흑요석 상자 tile.ironchest:DIRTCHEST9000.name=흙 상자 9000! @@ -11,6 +12,8 @@ item.ironchest:IRONGOLD.name=철 상자를 금 상자로 업그레이드 item.ironchest:GOLDDIAMOND.name=금 상자를 다이아몬드 상자로 업그레이드 item.ironchest:COPPERSTEEL.name=구리 상자를 은 상자로 업그레이드 item.ironchest:STEELGOLD.name=은 상자를 금 상자로 업그레이드 +item.ironchest:COPPERSILVER.name=구리 상자를 은 상자로 업그레이드 +item.ironchest:SILVERGOLD.name=은 상자를 금 상자로 업그레이드 item.ironchest:COPPERIRON.name=구리 상자를 철 상자로 업그레이드 item.ironchest:DIAMONDCRYSTAL.name=다이아몬드 상자를 수정 상자로 업그레이드 item.ironchest:WOODIRON.name=나무 상자를 철 상자로 업그레이드 diff --git a/src/main/resources/assets/ironchest/lang/nb_NO.lang b/src/main/resources/assets/ironchest/lang/nb_NO.lang index 8c5cb3a9..c8a78c30 100644 --- a/src/main/resources/assets/ironchest/lang/nb_NO.lang +++ b/src/main/resources/assets/ironchest/lang/nb_NO.lang @@ -3,6 +3,7 @@ tile.ironchest:GOLD.name=Gullkiste tile.ironchest:DIAMOND.name=Diamantkiste tile.ironchest:COPPER.name=Kobberkiste tile.ironchest:STEEL.name=Sølvkiste +tile.ironchest:SILVER.name=Sølvkiste tile.ironchest:CRYSTAL.name=Krystallkiste tile.ironchest:OBSIDIAN.name=Obsidiankiste tile.ironchest:DIRTCHEST9000.name=JordKiste 9000! @@ -11,6 +12,8 @@ item.ironchest:IRONGOLD.name=Jern til Gull Kisteoppgradering item.ironchest:GOLDDIAMOND.name=Gull til Diamant Kisteoppgradering item.ironchest:COPPERSTEEL.name=Kobber til Sølv Kisteoppgradering item.ironchest:STEELGOLD.name=Sølv til Gull Kisteoppgradering +item.ironchest:COPPERSILVER.name=Kobber til Sølv Kisteoppgradering +item.ironchest:SILVERGOLD.name=Sølv til Gull Kisteoppgradering item.ironchest:COPPERIRON.name=Kobber til Jern Kisteoppgradering item.ironchest:DIAMONDCRYSTAL.name=Diamant til Krystall Kisteoppgradering item.ironchest:WOODIRON.name=Tre til Jern Kisteoppgradering diff --git a/src/main/resources/assets/ironchest/lang/nl_NL.lang b/src/main/resources/assets/ironchest/lang/nl_NL.lang index 76eab2ca..0b48de2b 100644 --- a/src/main/resources/assets/ironchest/lang/nl_NL.lang +++ b/src/main/resources/assets/ironchest/lang/nl_NL.lang @@ -3,6 +3,7 @@ tile.ironchest:GOLD.name=Gouden Kist tile.ironchest:DIAMOND.name=Diamanten Kist tile.ironchest:COPPER.name=Koperen Kist tile.ironchest:STEEL.name=Zilveren Kist +tile.ironchest:SILVER.name=Zilveren Kist tile.ironchest:CRYSTAL.name=Kristallen Kist tile.ironchest:OBSIDIAN.name=Obsidiaanen Kist tile.ironchest:DIRTCHEST9000.name=Aarden Kist 9000! @@ -11,6 +12,8 @@ item.ironchest:IRONGOLD.name=Ijzeren naar Gouden Kist Transformatie item.ironchest:GOLDDIAMOND.name=Gouden naar Diamanten Kist Transformatie item.ironchest:COPPERSTEEL.name=Koperen naar Zilveren Kist Transformatie item.ironchest:STEELGOLD.name=Zilveren naar Gouden Kist Transformatie +item.ironchest:COPPERSILVER.name=Koperen naar Zilveren Kist Transformatie +item.ironchest:SILVERGOLD.name=Zilveren naar Gouden Kist Transformatie item.ironchest:COPPERIRON.name=Koperen naar Ijzeren Kist Transformatie item.ironchest:DIAMONDCRYSTAL.name=Diamanten naar Kristallen Kist Transformatie item.ironchest:WOODIRON.name=Houten naar Ijzeren Kist Transformatie diff --git a/src/main/resources/assets/ironchest/lang/pl_PL.lang b/src/main/resources/assets/ironchest/lang/pl_PL.lang index 66de3680..1d766b5e 100644 --- a/src/main/resources/assets/ironchest/lang/pl_PL.lang +++ b/src/main/resources/assets/ironchest/lang/pl_PL.lang @@ -3,6 +3,7 @@ tile.ironchest:GOLD.name=Złota skrzynia tile.ironchest:DIAMOND.name=Diamentowa skrzynia tile.ironchest:COPPER.name=Miedziana skrzynia tile.ironchest:STEEL.name=Stalowa skrzynia +tile.ironchest:SILVER.name=Srebrna skrzyniaz tile.ironchest:CRYSTAL.name=Kryształowa skrzynia tile.ironchest:OBSIDIAN.name=Obsydianowa skrzynia @@ -10,6 +11,8 @@ item.ironchest:IRONGOLD.name=Ulepszenie żelaznej skrzyni na złotą item.ironchest:GOLDDIAMOND.name=Ulepszenie złotej skrzyni na diamentową item.ironchest:COPPERSTEEL.name=Ulepszenie miedzianej skrzyni na stalową item.ironchest:STEELGOLD.name=Ulepszenie stalowej skrzyni na złotą +item.ironchest:COPPERSILVER.name=Ulepszenie miedzianej skrzyni na srebrną +item.ironchest:SILVERGOLD.name=Ulepszenie srebrnej skrzyni na złotą item.ironchest:COPPERIRON.name=Ulepszenie miedzianej skrzyni na żelazną item.ironchest:DIAMONDCRYSTAL.name=Ulepszenie diamentowej skrzyni na kryształową item.ironchest:WOODIRON.name=Ulepszenie drewnianej skrzyni na żelazną diff --git a/src/main/resources/assets/ironchest/lang/pt_BR.lang b/src/main/resources/assets/ironchest/lang/pt_BR.lang index 1915693e..58f66425 100644 --- a/src/main/resources/assets/ironchest/lang/pt_BR.lang +++ b/src/main/resources/assets/ironchest/lang/pt_BR.lang @@ -3,6 +3,7 @@ tile.ironchest:GOLD.name=Baú de Ouro tile.ironchest:DIAMOND.name=Baú de Diamante tile.ironchest:COPPER.name=Baú de Cobre tile.ironchest:STEEL.name=Baú de Prata +tile.ironchest:SILVER.name=Baú de Prata tile.ironchest:CRYSTAL.name=Baú de Cristal tile.ironchest:OBSIDIAN.name=Baú de Obsidiana tile.ironchest:DIRTCHEST9000.name=BaúDeSujeira 9000! @@ -11,6 +12,8 @@ item.ironchest:IRONGOLD.name=Aprimoramento de Baú de Ferro para Ouro item.ironchest:GOLDDIAMOND.name=Aprimoramento de Baú de Ouro para Diamante item.ironchest:COPPERSTEEL.name=Aprimoramento de Baú de Cobre para Prata item.ironchest:STEELGOLD.name=Aprimoramento de Baú de Prata para Ouro +item.ironchest:COPPERSILVER.name=Aprimoramento de Baú de Cobre para Prata +item.ironchest:SILVERGOLD.name=Aprimoramento de Baú de Prata para Ouro item.ironchest:COPPERIRON.name=Aprimoramento de Baú de Cobre para Ferro item.ironchest:DIAMONDCRYSTAL.name=Aprimoramento de Baú de Diamante para Cristal item.ironchest:WOODIRON.name=Aprimoramento de Baú de Madeira para Ferro diff --git a/src/main/resources/assets/ironchest/lang/pt_PT.lang b/src/main/resources/assets/ironchest/lang/pt_PT.lang index 600ce398..c945dac0 100644 --- a/src/main/resources/assets/ironchest/lang/pt_PT.lang +++ b/src/main/resources/assets/ironchest/lang/pt_PT.lang @@ -3,6 +3,7 @@ tile.ironchest:GOLD.name=Baú de Ouro tile.ironchest:DIAMOND.name=Baú de Diamante tile.ironchest:COPPER.name=Baú de Cobre tile.ironchest:STEEL.name=Baú de Prata +tile.ironchest:SILVER.name=Baú de Prata tile.ironchest:CRYSTAL.name=Baú de Cristal tile.ironchest:OBSIDIAN.name=Baú de Obsidiana @@ -10,6 +11,8 @@ item.ironchest:IRONGOLD.name=Melhoria de Baú de Ferro para Ouro item.ironchest:GOLDDIAMOND.name=Melhoria de Baú de Ouro para Diamante item.ironchest:COPPERSTEEL.name=Melhoria de Baú de Cobre para Prata item.ironchest:STEELGOLD.name=Melhoria de Baú de Prata para Ouro +item.ironchest:COPPERSILVER.name=Melhoria de Baú de Cobre para Prata +item.ironchest:SILVERGOLD.name=Melhoria de Baú de Prata para Ouro item.ironchest:COPPERIRON.name=Melhoria de Baú de Cobre para Ferro item.ironchest:DIAMONDCRYSTAL.name=Melhoria de Baú de Diamante para Cristal item.ironchest:WOODIRON.name=Melhoria de Baú de Madeira para Ferro diff --git a/src/main/resources/assets/ironchest/lang/ru_RU.lang b/src/main/resources/assets/ironchest/lang/ru_RU.lang index 504872e2..1b08c4de 100644 --- a/src/main/resources/assets/ironchest/lang/ru_RU.lang +++ b/src/main/resources/assets/ironchest/lang/ru_RU.lang @@ -3,6 +3,7 @@ tile.ironchest:GOLD.name=Золотой сундук tile.ironchest:DIAMOND.name=Алмазный сундук tile.ironchest:COPPER.name=Медный сундук tile.ironchest:STEEL.name=Стальной сундук +tile.ironchest:SILVER.name=Серебряный сундук tile.ironchest:CRYSTAL.name=Кристальный сундук tile.ironchest:OBSIDIAN.name=Обсидиановый сундук tile.ironchest:DIRTCHEST9000.name=DirtChest 9000! @@ -11,6 +12,8 @@ item.ironchest:IRONGOLD.name=Улучшение из железного в зо item.ironchest:GOLDDIAMOND.name=Улучшение из золотого в алмазный сундук item.ironchest:COPPERSTEEL.name=Улучшение из медного в серебряный сундук item.ironchest:STEELGOLD.name=Улучшение из стального в золотой сундук +item.ironchest:COPPERSILVER.name=Улучшение из медного в серебряный сундук +item.ironchest:SILVERGOLD.name=Улучшение из серебряного в золотой сундук item.ironchest:COPPERIRON.name=Улучшение из медного в железный сундук item.ironchest:DIAMONDCRYSTAL.name=Улучшение из алмазного в кристальный сундук item.ironchest:WOODIRON.name=Улучшение из деревянного в железный сундук diff --git a/src/main/resources/assets/ironchest/lang/sv_SE.lang b/src/main/resources/assets/ironchest/lang/sv_SE.lang index 9330fd5b..ee5109d4 100644 --- a/src/main/resources/assets/ironchest/lang/sv_SE.lang +++ b/src/main/resources/assets/ironchest/lang/sv_SE.lang @@ -3,6 +3,7 @@ tile.ironchest:GOLD.name=Guldkista tile.ironchest:DIAMOND.name=Diamantkista tile.ironchest:COPPER.name=Kopparkista tile.ironchest:STEEL.name=Steelkista +tile.ironchest:SILVER.name=Silverkista tile.ironchest:CRYSTAL.name=Kristallkista tile.ironchest:OBSIDIAN.name=Obsidiankista @@ -10,6 +11,8 @@ item.ironchest:IRONGOLD.name=Järn till Guld Kistuppgradering item.ironchest:GOLDDIAMOND.name=Guld till Diamant Kistuppgradering item.ironchest:COPPERSTEEL.name=Koppar till Steel Kistuppgradering item.ironchest:STEELGOLD.name=Steel till Guld Kistuppgradering +item.ironchest:COPPERSILVER.name=Koppar till Silver Kistuppgradering +item.ironchest:SILVERGOLD.name=Silver till Guld Kistuppgradering item.ironchest:COPPERIRON.name=Koppar till Järn Kistuppgradering item.ironchest:DIAMONDCRYSTAL.name=Diamant till Kristal Kistuppgradering item.ironchest:WOODIRON.name=Trä till Järn Kistuppgradering diff --git a/src/main/resources/assets/ironchest/lang/tr_TR.lang b/src/main/resources/assets/ironchest/lang/tr_TR.lang index 3e8520f3..60231b50 100644 --- a/src/main/resources/assets/ironchest/lang/tr_TR.lang +++ b/src/main/resources/assets/ironchest/lang/tr_TR.lang @@ -3,6 +3,7 @@ tile.ironchest:GOLD.name=Altın Sandık tile.ironchest:DIAMOND.name=Elmas Sandık tile.ironchest:COPPER.name=Bakır Sandık tile.ironchest:STEEL.name=Gümüş Sandık +tile.ironchest:SILVER.name=Gümüş Sandık tile.ironchest:CRYSTAL.name=Kristal Sandık tile.ironchest:OBSIDIAN.name=Obsidyen Sandık tile.ironchest:DIRTCHEST9000.name=Toprak Sandık-9000! @@ -11,6 +12,8 @@ item.ironchest:IRONGOLD.name=Demir Sandığı Altın Sandığa Yükselt item.ironchest:GOLDDIAMOND.name=Altın Sandığı Elmas Sandığa Yükselt item.ironchest:COPPERSTEEL.name=Bakır Sandığı Gümüş Sandığa Yükselt item.ironchest:STEELGOLD.name=Gümüş Sandığı Altın Sandığa Yükselt +item.ironchest:COPPERSILVER.name=Bakır Sandığı Gümüş Sandığa Yükselt +item.ironchest:SILVERGOLD.name=Gümüş Sandığı Altın Sandığa Yükselt item.ironchest:COPPERIRON.name=Bakır Sandığı Demir Sandığa Yükselt item.ironchest:DIAMONDCRYSTAL.name=Elmas Sandığı Kristal Sandığa Yükselt item.ironchest:WOODIRON.name=Tahta Sandığı Demir Sandığa Yükselt diff --git a/src/main/resources/assets/ironchest/lang/zh_CN.lang b/src/main/resources/assets/ironchest/lang/zh_CN.lang index 03128127..be57d70b 100644 --- a/src/main/resources/assets/ironchest/lang/zh_CN.lang +++ b/src/main/resources/assets/ironchest/lang/zh_CN.lang @@ -3,6 +3,7 @@ tile.ironchest:GOLD.name=金箱子 tile.ironchest:DIAMOND.name=钻石箱子 tile.ironchest:COPPER.name=铜箱子 tile.ironchest:STEEL.name=钢箱子 +tile.ironchest:SILVER.name=银箱子 tile.ironchest:CRYSTAL.name=水晶箱子 tile.ironchest:OBSIDIAN.name=黑曜石箱子 tile.ironchest:DIRTCHEST9000.name=泥箱子9000! @@ -11,6 +12,8 @@ item.ironchest:IRONGOLD.name=升级:铁>金 item.ironchest:GOLDDIAMOND.name=升级:金>钻石 item.ironchest:COPPERSTEEL.name=升级:铜>钢 item.ironchest:STEELGOLD.name=升级:钢>金 +item.ironchest:COPPERSILVER.name=升级:铜>银 +item.ironchest:SILVERGOLD.name=升级:银>金 item.ironchest:COPPERIRON.name=升级:铜>铁 item.ironchest:DIAMONDCRYSTAL.name=升级:钻石>水晶 item.ironchest:WOODIRON.name=升级:木>铁 diff --git a/src/main/resources/assets/ironchest/lang/zh_TW.lang b/src/main/resources/assets/ironchest/lang/zh_TW.lang index 853dad29..9fb87803 100644 --- a/src/main/resources/assets/ironchest/lang/zh_TW.lang +++ b/src/main/resources/assets/ironchest/lang/zh_TW.lang @@ -3,6 +3,7 @@ tile.ironchest:GOLD.name=黃金箱 tile.ironchest:DIAMOND.name=鑽石箱 tile.ironchest:COPPER.name=銅箱 tile.ironchest:STEEL.name=銀箱 +tile.ironchest:SILVER.name=銀箱 tile.ironchest:CRYSTAL.name=水晶箱 tile.ironchest:OBSIDIAN.name=黑曜石箱 tile.ironchest:DIRTCHEST9000.name=泥土箱9000! @@ -11,6 +12,8 @@ item.ironchest:IRONGOLD.name=鐵箱升級成金箱 item.ironchest:GOLDDIAMOND.name=金箱升級成鑽石箱 item.ironchest:COPPERSTEEL.name=銅箱升級成銀箱 item.ironchest:STEELGOLD.name=銀箱升級成金箱 +item.ironchest:COPPERSILVER.name=銅箱升級成銀箱 +item.ironchest:SILVERGOLD.name=銀箱升級成金箱 item.ironchest:COPPERIRON.name=銅箱升級成鐵箱 item.ironchest:DIAMONDCRYSTAL.name=鑽石箱升級成水晶箱 item.ironchest:WOODIRON.name=木箱升級成鐵箱 diff --git a/src/main/resources/assets/ironchest/textures/blocks/darksteel_front.png b/src/main/resources/assets/ironchest/textures/blocks/darksteel_front.png new file mode 100644 index 0000000000000000000000000000000000000000..24e65c891867269c5569c853c559ce6498638728 GIT binary patch literal 266 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFJWWTnFNi7^bPcQGCpIdE9i;!C{Kjwc4w<7e>) zoMJF@Y=3d}l(@;{ulXk<7V%HK-P*e5O3Ax|%AWHwTQ(}*EjnvnXqPhECBu9=Z`Tr8 zpS-5OPhP}dxU_mgVMLlnTyDj-TPJVG_OBP&-?rc882^nfaS`ADNBV&-VeoYIb6Mw< G&;$UKmRoB8 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/ironchest/textures/blocks/darksteel_side.png b/src/main/resources/assets/ironchest/textures/blocks/darksteel_side.png new file mode 100644 index 0000000000000000000000000000000000000000..d6d28d173beb96fd8fed41b8dead811b868e297f GIT binary patch literal 265 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFE6u-g8ZqL((;1hTBEVwr6{O&60`FQbQRco|ft+4!TpII7jpIIH8u%%Zs zbHjU^=i+O=1fNj1Xq|PoCEeQk=Z;4or_OTzIsNz##_5a2s>_=sJ%A2j@O1TaS?83{ F1ORc%TV?Fey^Y;9@nE$j788!Ya>stjxZR`2=qm)9u+$85Y^!tW(~i;%0I1 zUbM!XSE9!JOtOrvr*Cm)w>+8fZA(w#lUo9XoA%AQU(>w6Q=miP@aoew?O)>4>{E{W zZ-4%C{`m_vOH7J(=6dHUIo0Q^YyG9MR=}4(mdKI;Vst07^_-e*gdg literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/ironchest/textures/blocks/netherite_side.png b/src/main/resources/assets/ironchest/textures/blocks/netherite_side.png new file mode 100644 index 0000000000000000000000000000000000000000..4a7c1a3148477dabb2cb8ca73c80cb593acfab26 GIT binary patch literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFFey^Y;9@nE$alyD=FAF^#~D0b{an^L HB{Ts5wL(_F literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/ironchest/textures/blocks/netherite_top.png b/src/main/resources/assets/ironchest/textures/blocks/netherite_top.png new file mode 100644 index 0000000000000000000000000000000000000000..661e5d60574a095d7284e7474e24245042e21ee9 GIT binary patch literal 275 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF1%Ci?d;&}n#5G=lIi#EU3a?P*E(e(fp88LMIZXF6I__?m zu<`e~>ksF7GjlR$R_Qs#gh}zc?VRhe^I)|o=icPqX_0j@g}x@+n)*L)YS9bP0l+XkK`q*17 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/ironchest/textures/gui/netheritecontainer.png b/src/main/resources/assets/ironchest/textures/gui/netheritecontainer.png new file mode 100644 index 0000000000000000000000000000000000000000..69fd3fb156e0e4eab29ad1858afb181d2e18befe GIT binary patch literal 4102 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 literal 466 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstUx|vage(c z!@6@aFM%9|WRD45bDP46hOx7_4S6Fo+k-*%fF5l<*7i z32_C|78Vx4!NGxnf&Tvf0RaI%K0dy_zFuBl%7>mw?7Zvl?(XL1cIWHwJ#W6dxVWr; z`7Qd=n@JBpJ32ac-20e&{hghiowc>KrKRQn|Npo2e>Ve~$XF8O7tG-B>_!@hljQC0 zBKan7YX^|SS>O>_%)r1c48n{Iv*t(u1yem;977~7hn~7A)gU0ymRKK>u~GEy|EX@= z&#Y%0-_yKNN`jYJwBTHIqlCNStb|$1gG3pEPT72pw$0Re{psG-uv>{eKMzK|wsGQ+ zm$58YI(Fml202YtuIsE^46Sq0WT#wVU%Tm^=TbKHV<)@2fEKEjxJHzuB$lLFB^RXv zDF!10Lt|Y7LtP`I5JNL7Lvt%rOI-s~D+7b47O6i`H00)|WTsW()-WaYE+|YHJYD@< J);T3K0RW!Umcal3 diff --git a/src/main/resources/assets/ironchest/textures/items/obsidianNetheriteUpgrade.png b/src/main/resources/assets/ironchest/textures/items/obsidianNetheriteUpgrade.png new file mode 100644 index 0000000000000000000000000000000000000000..d69abb565ff41f4ac3e7f5cfae44885882a7ebc6 GIT binary patch literal 3711 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 G^uGaD40pZ& literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/ironchest/textures/items/steelGoldUpgrade.png b/src/main/resources/assets/ironchest/textures/items/steelGoldUpgrade.png new file mode 100644 index 0000000000000000000000000000000000000000..d3cad2e203a47884b9dbe28867f40bace8dc5e03 GIT binary patch literal 526 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 Xz*e7kQZO&m00000NkvXXu0mjfzYIW} literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/ironchest/textures/model/netheritechest.png b/src/main/resources/assets/ironchest/textures/model/netheritechest.png new file mode 100644 index 0000000000000000000000000000000000000000..1535936f6ad728cbc1f1b4eb3b7924afcc395204 GIT binary patch literal 3410 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