From eb19a8b8d4a690d60e4af7dce33c31bb3b0f3a16 Mon Sep 17 00:00:00 2001 From: "benpospo@gmail.com" <93595333+taraxsmallboy@users.noreply.github.com> Date: Sun, 25 Jun 2023 17:41:01 +0200 Subject: [PATCH] Implemented Nano suit --- .../techreborn/config/TechRebornConfig.java | 6 ++ .../java/techreborn/events/ModRegistry.java | 10 +- .../techreborn/init/TRArmorMaterials.java | 1 + src/main/java/techreborn/init/TRContent.java | 5 + .../java/techreborn/init/TRItemGroup.java | 9 ++ .../techreborn/items/armor/NanoSuitItem.java | 92 ++++++++++++++++++ .../assets/techreborn/lang/en_us.json | 6 +- .../techreborn/models/item/nano_boots.json | 6 ++ .../models/item/nano_chestplate.json | 6 ++ .../techreborn/models/item/nano_helmet.json | 6 ++ .../techreborn/models/item/nano_leggings.json | 6 ++ .../techreborn/models/item/omni_tool.json | 2 +- .../techreborn/models/item/quantum_boots.json | 8 +- .../models/item/quantum_helmet.json | 8 +- .../textures/item/armor/nano_boots.png | Bin 0 -> 302 bytes .../textures/item/armor/nano_chestplate.png | Bin 0 -> 375 bytes .../textures/item/armor/nano_helmet.png | Bin 0 -> 356 bytes .../textures/item/armor/nano_leggings.png | Bin 0 -> 359 bytes .../textures/models/armor/nano_layer_1.png | Bin 0 -> 1430 bytes .../textures/models/armor/nano_layer_2.png | Bin 0 -> 666 bytes 20 files changed, 157 insertions(+), 14 deletions(-) create mode 100644 src/main/java/techreborn/items/armor/NanoSuitItem.java create mode 100644 src/main/resources/assets/techreborn/models/item/nano_boots.json create mode 100644 src/main/resources/assets/techreborn/models/item/nano_chestplate.json create mode 100644 src/main/resources/assets/techreborn/models/item/nano_helmet.json create mode 100644 src/main/resources/assets/techreborn/models/item/nano_leggings.json create mode 100644 src/main/resources/assets/techreborn/textures/item/armor/nano_boots.png create mode 100644 src/main/resources/assets/techreborn/textures/item/armor/nano_chestplate.png create mode 100644 src/main/resources/assets/techreborn/textures/item/armor/nano_helmet.png create mode 100644 src/main/resources/assets/techreborn/textures/item/armor/nano_leggings.png create mode 100644 src/main/resources/assets/techreborn/textures/models/armor/nano_layer_1.png create mode 100644 src/main/resources/assets/techreborn/textures/models/armor/nano_layer_2.png diff --git a/src/main/java/techreborn/config/TechRebornConfig.java b/src/main/java/techreborn/config/TechRebornConfig.java index 029c6215d..5d2936c0b 100644 --- a/src/main/java/techreborn/config/TechRebornConfig.java +++ b/src/main/java/techreborn/config/TechRebornConfig.java @@ -301,6 +301,12 @@ public class TechRebornConfig { @Config(config = "items", category = "power", key = "quantumSuitDamageAbsorbCost", comment = "Quantum Suit Cost for Damage Absorbed") public static double damageAbsorbCost = 10; + @Config(config = "items", category = "power", key = "nanoSuitCapacity", comment = "Nano Suit Energy Capacity") + public static long nanoSuitCapacity = 1_000_000; + + @Config(config = "items", category = "power", key = "nanoSuitNightVisionCost", comment = "Nano Suit Breathing Cost") + public static long nanoSuitNightVisionCost = 2; + @Config(config = "items", category = "upgrades", key = "overclocker_speed", comment = "Overclocker behavior speed multiplier") public static double overclockerSpeed = 0.25; diff --git a/src/main/java/techreborn/events/ModRegistry.java b/src/main/java/techreborn/events/ModRegistry.java index 59a097b2c..e3abb6e15 100644 --- a/src/main/java/techreborn/events/ModRegistry.java +++ b/src/main/java/techreborn/events/ModRegistry.java @@ -41,10 +41,7 @@ import techreborn.config.TechRebornConfig; import techreborn.init.*; import techreborn.init.TRContent.*; import techreborn.items.*; -import techreborn.items.armor.BatpackItem; -import techreborn.items.armor.CloakingDeviceItem; -import techreborn.items.armor.QuantumSuitItem; -import techreborn.items.armor.TRArmourItem; +import techreborn.items.armor.*; import techreborn.items.tool.*; import techreborn.items.tool.advanced.AdvancedJackhammerItem; import techreborn.items.tool.basic.ElectricTreetapItem; @@ -130,6 +127,11 @@ public class ModRegistry { RebornRegistry.registerItem(TRContent.QUANTUM_LEGGINGS = InitUtils.setup(new QuantumSuitItem(TRArmorMaterials.QUANTUM, ArmorItem.Type.LEGGINGS), "quantum_leggings")); RebornRegistry.registerItem(TRContent.QUANTUM_BOOTS = InitUtils.setup(new QuantumSuitItem(TRArmorMaterials.QUANTUM, ArmorItem.Type.BOOTS), "quantum_boots")); + RebornRegistry.registerItem(TRContent.NANO_HELMET = InitUtils.setup(new NanoSuitItem(TRArmorMaterials.NANO, ArmorItem.Type.HELMET), "nano_helmet")); + RebornRegistry.registerItem(TRContent.NANO_CHESTPLATE = InitUtils.setup(new NanoSuitItem(TRArmorMaterials.NANO, ArmorItem.Type.CHESTPLATE), "nano_chestplate")); + RebornRegistry.registerItem(TRContent.NANO_LEGGINGS = InitUtils.setup(new NanoSuitItem(TRArmorMaterials.NANO, ArmorItem.Type.LEGGINGS), "nano_leggings")); + RebornRegistry.registerItem(TRContent.NANO_BOOTS = InitUtils.setup(new NanoSuitItem(TRArmorMaterials.NANO, ArmorItem.Type.BOOTS), "nano_boots")); + // Gem armor & tools // Todo: repair with tags RebornRegistry.registerItem(TRContent.BRONZE_SWORD = InitUtils.setup(new TRSwordItem(TRToolTier.BRONZE), "bronze_sword")); diff --git a/src/main/java/techreborn/init/TRArmorMaterials.java b/src/main/java/techreborn/init/TRArmorMaterials.java index 93aadbbde..897bacc02 100644 --- a/src/main/java/techreborn/init/TRArmorMaterials.java +++ b/src/main/java/techreborn/init/TRArmorMaterials.java @@ -56,6 +56,7 @@ public enum TRArmorMaterials implements ArmorMaterial { return Ingredient.ofItems(TRContent.Ingots.STEEL.asItem()); }), QUANTUM(75, new int[]{3, 6, 8, 3}, 10, SoundEvents.ITEM_ARMOR_EQUIP_DIAMOND, 0.0F, () -> Ingredient.EMPTY), + NANO(75, new int[]{3, 6, 8, 3}, 10, SoundEvents.ITEM_ARMOR_EQUIP_DIAMOND, 0.0F, () -> Ingredient.EMPTY), CLOAKING_DEVICE(5, new int[]{0, 2, 0, 0}, 0, SoundEvents.ITEM_ARMOR_EQUIP_GOLD, 0.0F, () -> Ingredient.EMPTY), LITHIUM_BATPACK(25, new int[]{0, 5, 0, 0}, 10, SoundEvents.ITEM_ARMOR_EQUIP_TURTLE, 0.0F, () -> Ingredient.EMPTY), LAPOTRONIC_ORBPACK(33, new int[]{0, 6, 0, 0}, 10, SoundEvents.ITEM_ARMOR_EQUIP_DIAMOND, 2.0F, () -> Ingredient.EMPTY); diff --git a/src/main/java/techreborn/init/TRContent.java b/src/main/java/techreborn/init/TRContent.java index d27aa8b12..d150d1784 100644 --- a/src/main/java/techreborn/init/TRContent.java +++ b/src/main/java/techreborn/init/TRContent.java @@ -98,6 +98,7 @@ import techreborn.events.ModRegistry; import techreborn.items.DynamicCellItem; import techreborn.items.UpgradeItem; import techreborn.items.UpgraderItem; +import techreborn.items.armor.NanoSuitItem; import techreborn.items.armor.QuantumSuitItem; import techreborn.utils.InitUtils; import techreborn.world.OreDistribution; @@ -184,6 +185,10 @@ public class TRContent { public static QuantumSuitItem QUANTUM_LEGGINGS; public static QuantumSuitItem QUANTUM_BOOTS; + public static NanoSuitItem NANO_HELMET; + public static NanoSuitItem NANO_CHESTPLATE; + public static NanoSuitItem NANO_LEGGINGS; + public static NanoSuitItem NANO_BOOTS; // Gem armor & tools @Nullable public static Item BRONZE_SWORD; diff --git a/src/main/java/techreborn/init/TRItemGroup.java b/src/main/java/techreborn/init/TRItemGroup.java index f480428a3..9438cd656 100644 --- a/src/main/java/techreborn/init/TRItemGroup.java +++ b/src/main/java/techreborn/init/TRItemGroup.java @@ -240,6 +240,11 @@ public class TRItemGroup { addPoweredItem(TRContent.QUANTUM_LEGGINGS, entries, null, true); addPoweredItem(TRContent.QUANTUM_BOOTS, entries, null, true); + addPoweredItem(TRContent.NANO_HELMET, entries, null, true); + addPoweredItem(TRContent.NANO_CHESTPLATE, entries, null, true); + addPoweredItem(TRContent.NANO_LEGGINGS, entries, null, true); + addPoweredItem(TRContent.NANO_BOOTS, entries, null, true); + addNanosaber(entries, null, false); addPoweredItem(TRContent.LITHIUM_ION_BATPACK, entries, null, true); @@ -629,6 +634,10 @@ public class TRItemGroup { addPoweredItem(TRContent.QUANTUM_CHESTPLATE, entries, Items.TURTLE_HELMET, false); addPoweredItem(TRContent.QUANTUM_LEGGINGS, entries, Items.TURTLE_HELMET, false); addPoweredItem(TRContent.QUANTUM_BOOTS, entries, Items.TURTLE_HELMET, false); + addPoweredItem(TRContent.NANO_HELMET, entries, Items.TURTLE_HELMET, false); + addPoweredItem(TRContent.NANO_CHESTPLATE, entries, Items.TURTLE_HELMET, false); + addPoweredItem(TRContent.NANO_LEGGINGS, entries, Items.TURTLE_HELMET, false); + addPoweredItem(TRContent.NANO_BOOTS, entries, Items.TURTLE_HELMET, false); addPoweredItem(TRContent.CLOAKING_DEVICE, entries, Items.LEATHER_HORSE_ARMOR, false); entries.addAfter(Items.END_CRYSTAL, TRContent.NUKE); } diff --git a/src/main/java/techreborn/items/armor/NanoSuitItem.java b/src/main/java/techreborn/items/armor/NanoSuitItem.java new file mode 100644 index 000000000..afe21cb25 --- /dev/null +++ b/src/main/java/techreborn/items/armor/NanoSuitItem.java @@ -0,0 +1,92 @@ +/* + * This file is part of TechReborn, licensed under the MIT License (MIT). + * + * Copyright (c) 2020 TechReborn + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package techreborn.items.armor; + +import com.google.common.collect.ArrayListMultimap; +import com.google.common.collect.HashMultimap; +import com.google.common.collect.ImmutableMultimap; +import com.google.common.collect.Multimap; +import com.mojang.authlib.minecraft.client.MinecraftClient; +import net.minecraft.entity.EquipmentSlot; +import net.minecraft.entity.attribute.EntityAttribute; +import net.minecraft.entity.attribute.EntityAttributeModifier; +import net.minecraft.entity.attribute.EntityAttributes; +import net.minecraft.entity.effect.StatusEffectInstance; +import net.minecraft.entity.effect.StatusEffects; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.ArmorMaterial; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import reborncore.api.items.ArmorBlockEntityTicker; +import reborncore.api.items.ArmorRemoveHandler; +import reborncore.common.powerSystem.RcEnergyTier; +import techreborn.config.TechRebornConfig; + +public class NanoSuitItem extends TREnergyArmourItem implements ArmorBlockEntityTicker { + public NanoSuitItem(ArmorMaterial material, Type slot) { + super(material, slot, TechRebornConfig.nanoSuitCapacity, RcEnergyTier.HIGH); + } + + // TREnergyArmourItem + @Override + public long getEnergyMaxOutput() { return 0; } + + // ArmorItem + @Override + public Multimap getAttributeModifiers(EquipmentSlot slot) { + return HashMultimap.create(); + } + + // FabricItem + @Override + public Multimap getAttributeModifiers(ItemStack stack, EquipmentSlot equipmentSlot) { + var attributes = ArrayListMultimap.create(super.getAttributeModifiers(stack, getSlotType())); + + if (equipmentSlot == this.getSlotType() && getStoredEnergy(stack) > 0) { + attributes.put(EntityAttributes.GENERIC_ARMOR, new EntityAttributeModifier(MODIFIERS[getSlotType().getEntitySlotId()], "Armor modifier", 8, EntityAttributeModifier.Operation.ADDITION)); + attributes.put(EntityAttributes.GENERIC_KNOCKBACK_RESISTANCE, new EntityAttributeModifier(MODIFIERS[getSlotType().getEntitySlotId()], "Knockback modifier", 2, EntityAttributeModifier.Operation.ADDITION)); + } + + return ImmutableMultimap.copyOf(attributes); + } + + // ArmorBlockEntityTicker + @Override + public void tickArmor(ItemStack stack, PlayerEntity playerEntity) { + World world = playerEntity.getWorld(); + switch (this.getSlotType()) { + case HEAD -> { + if ((world.isNight() || world.getLightLevel(playerEntity.getBlockPos()) <= 4) && tryUseEnergy(stack, TechRebornConfig.nanoSuitNightVisionCost)) { + playerEntity.addStatusEffect(new StatusEffectInstance(StatusEffects.NIGHT_VISION, 1000, 1, false, false)); + } else { + playerEntity.removeStatusEffect(StatusEffects.NIGHT_VISION); + } + } + case CHEST, FEET, LEGS -> { + // Future functionality + } + } + } +} diff --git a/src/main/resources/assets/techreborn/lang/en_us.json b/src/main/resources/assets/techreborn/lang/en_us.json index f275863f6..c1ac6e0a2 100644 --- a/src/main/resources/assets/techreborn/lang/en_us.json +++ b/src/main/resources/assets/techreborn/lang/en_us.json @@ -670,6 +670,10 @@ "item.techreborn.quantum_chestplate" : "Quantum Chestplate", "item.techreborn.quantum_leggings" : "Quantum Leggings", "item.techreborn.quantum_boots" : "Quantum Boots", + "item.techreborn.nano_helmet" : "Nano Helmet", + "item.techreborn.nano_chestplate" : "Nano Chestplate", + "item.techreborn.nano_leggings" : "Nano Leggings", + "item.techreborn.nano_boots" : "Nano Boots", "_comment15": "Items-Battery", "item.techreborn.energy_crystal": "Energy Crystal", @@ -852,7 +856,7 @@ "techreborn.message.info.block.techreborn.launchpad.high": "High", "techreborn.message.info.block.techreborn.launchpad.extreme": "Extreme", "techreborn.message.info.block.techreborn.elevator": "Teleports player up or down to the next free elevator block", - + "keys.techreborn.category": "TechReborn Category", "keys.techreborn.config": "Config", diff --git a/src/main/resources/assets/techreborn/models/item/nano_boots.json b/src/main/resources/assets/techreborn/models/item/nano_boots.json new file mode 100644 index 000000000..ca71407f5 --- /dev/null +++ b/src/main/resources/assets/techreborn/models/item/nano_boots.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "techreborn:item/armor/nano_boots" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/techreborn/models/item/nano_chestplate.json b/src/main/resources/assets/techreborn/models/item/nano_chestplate.json new file mode 100644 index 000000000..432f868a2 --- /dev/null +++ b/src/main/resources/assets/techreborn/models/item/nano_chestplate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "techreborn:item/armor/nano_chestplate" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/techreborn/models/item/nano_helmet.json b/src/main/resources/assets/techreborn/models/item/nano_helmet.json new file mode 100644 index 000000000..79b4be0c7 --- /dev/null +++ b/src/main/resources/assets/techreborn/models/item/nano_helmet.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "techreborn:item/armor/nano_helmet" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/techreborn/models/item/nano_leggings.json b/src/main/resources/assets/techreborn/models/item/nano_leggings.json new file mode 100644 index 000000000..cb18e7d33 --- /dev/null +++ b/src/main/resources/assets/techreborn/models/item/nano_leggings.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "techreborn:item/armor/nano_leggings" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/techreborn/models/item/omni_tool.json b/src/main/resources/assets/techreborn/models/item/omni_tool.json index 9cd6814a3..50baa686c 100644 --- a/src/main/resources/assets/techreborn/models/item/omni_tool.json +++ b/src/main/resources/assets/techreborn/models/item/omni_tool.json @@ -1,5 +1,5 @@ { - "parent": "minecraft:item/generated", + "parent": "minecraft:item/handheld", "textures": { "layer0": "techreborn:item/tool/omni_tool" } diff --git a/src/main/resources/assets/techreborn/models/item/quantum_boots.json b/src/main/resources/assets/techreborn/models/item/quantum_boots.json index 0b2efa464..a11a87cfc 100644 --- a/src/main/resources/assets/techreborn/models/item/quantum_boots.json +++ b/src/main/resources/assets/techreborn/models/item/quantum_boots.json @@ -1,6 +1,6 @@ { - "parent": "minecraft:item/generated", - "textures": { - "layer0": "techreborn:item/armor/quantum_boots" - } + "parent": "minecraft:item/generated", + "textures": { + "layer0": "techreborn:item/armor/quantum_boots" + } } \ No newline at end of file diff --git a/src/main/resources/assets/techreborn/models/item/quantum_helmet.json b/src/main/resources/assets/techreborn/models/item/quantum_helmet.json index 845073011..e84cbe6a4 100644 --- a/src/main/resources/assets/techreborn/models/item/quantum_helmet.json +++ b/src/main/resources/assets/techreborn/models/item/quantum_helmet.json @@ -1,6 +1,6 @@ { - "parent": "minecraft:item/generated", - "textures": { - "layer0": "techreborn:item/armor/quantum_helmet" - } + "parent": "minecraft:item/generated", + "textures": { + "layer0": "techreborn:item/armor/quantum_helmet" + } } \ No newline at end of file diff --git a/src/main/resources/assets/techreborn/textures/item/armor/nano_boots.png b/src/main/resources/assets/techreborn/textures/item/armor/nano_boots.png new file mode 100644 index 0000000000000000000000000000000000000000..62cab741d9f8294af430f8d8a9b126a1aaa4ea40 GIT binary patch literal 302 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc!NZ;|jv*HQS0~x>A5su#^JjN*Jmgud&Nq_ilMxA;q8}m{JEolg*P34?Rovd=gdU! z|G&95H43wt`U>|x_BgjwiLs44;q$%I*-Nw!FbY3=@Qd|;0nf>0Th*3M+0z!%aALus vUA_$rB8fNLh1RUTcF^Z9`?f!2tQXm}l&bWt&z-UYdWXT&)z4*}Q$iB}bJBJG literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/techreborn/textures/item/armor/nano_chestplate.png b/src/main/resources/assets/techreborn/textures/item/armor/nano_chestplate.png new file mode 100644 index 0000000000000000000000000000000000000000..e145df2d0bc60429c9dd1bdf33a1f3d8db25e526 GIT binary patch literal 375 zcmV--0f_#IP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0Srk*K~y+T&62Td zgg_96Cn*k5tVB`>VreD5ecC*O^%WM81jI@dyM%AJUsmrzniTn9ncbb4e`iMR|4~)d z7wdN1`RV@YW<3DgwyllhXu~jA-}mmvR}_U!(`4JWxt-_Pea~Tll9MFypb+lrx;Emn zEVDFC{XrLiJkR&!Wm!CsAXXGb7RRys5#}s*0i1}CtWvLKYj2kqZ%4_zj!(D%y`F>M z{qw_Kr@{9U#j-Sm!w@M=L64B|LjllWnx^qt&^N5>>aBHM=Vv9uK|oaiuOR}O3s9jx zFYH4UB$j3A1Em5Md+yXi$Xx~4-)0b2a1a3IK%o9S_E-%!>>us~K*Kz9PW}VTz5#q- Vuw+&{x4i%W002ovPDHLkV1oEWo$LSr literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/techreborn/textures/item/armor/nano_helmet.png b/src/main/resources/assets/techreborn/textures/item/armor/nano_helmet.png new file mode 100644 index 0000000000000000000000000000000000000000..687a2047f20947f35d3d772e86b310578c74d575 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc!JnQkjv*HQ$r8UB1icnBu(G!P4^TUNdwc%D zEgLo%9ByXkH@IT#m}$X~85SJOyxG6#w2@4LF#Bdp3k!*g%F2gqhZ(vU4bH~I#3cNi zEPh^c+x}Xvw9_X~8hUtpCrdOvWSa0S|Ng#4QR_cdCoh~leJCL_^W=xGufy4Rd3jf8 zu{eAbKEt{_?`~6<1A~Ulj2SZ|N=iy3^kR1%`S9~|`VKo0<{v+Q{^#c6GP3FTckqCM z>WKpz-dnjiIWwJkzP{?%hxhmGMVJlteE9dbdPmwn+dm0CNfJ^A3L2LzQ8|2hx&J{w zH#UXYjt`k8IhQfAF-SJ)?s7=Fam1aGnVBJKLeSL83mpBxKw$86^>bP0l+XkKryz-u literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/techreborn/textures/item/armor/nano_leggings.png b/src/main/resources/assets/techreborn/textures/item/armor/nano_leggings.png new file mode 100644 index 0000000000000000000000000000000000000000..345dcf201195e45459997e21f6113211621eff3a GIT binary patch literal 359 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc!9SiZjv*HQM<>~GH9H8j&Ub9m2ouv}*|MwULWwpe;_P4rOOG*x4g+C$y!Kau9XT{Q-4tj|ZNgR6OZSl6Mt83EIgsjp(xO%D095={qN1pX>3bgTkTkaPzF zXPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1uIEJK~!i%<(SV) zZB-P<&wV^X6on8el0+w>6LBg!2n5H<>knw=*gwHx<3|1uh0Y!dMuR8PB*cj#4-`o% zLGJ!jvz$+P;xVXeK_-uvwJbMJFnWmy(Yn4X?4$HvBr+uPe>WMrhc zySq#Lz`#JFhlhu0-0<*ladma|7ykPCx|Nt`iWhBK3zX^a?@v6+%R{4*r>CbaXylXd znImfem6S$c9G*Hf$({?c1`tL9Q4rC|FrrEJT+metTwY!#Ugc4YKIs1<0w{QTlPEwj z`u+>($^a^Ta&l4}92`9Aqu`~E4rr1+7j#_&FD@>MZwEduzPfptc<^t?@f=!9OG_o* z1l0m(KiJ*fExvj0gW~noMe+II%VKeHu`Q{e7yHl8&kODo$c~SX6A!kxx8G@$w5Fz} z%2=%Qs(rNo7?X;gm!6rKnRF>akvI;}hL;M~02oChfTN?MCpAE;)x3Obd3iZq1@%_+ z9$rHc3LgEQ2JuD+l!NLzz!M`z0PC{O=H}+RHNgD*d>K7r2$SU>mqDieiLlIQ!nbdGlz83kwU$A=N#xu6qNth2x;r^|A&a1@sJ{%1=&CCf>XL z&CN~6RR#wKOVYt3kyB!Jb~f=bf>bs}Qk?;+;9KPQ)z3xo(fdX5_0gZ5Qy-@G)E8wo zg>nXX;fD^J;lZ*f!shEdAHf*LGKaaY!IvTX6#PO=`6YJgSQ z4eEKoOX|+^iHV7nKEOzD4U9tJGv66ktpW5!53a7Rwz=N0v9ZzSx<~=SxN1o@_IJPL zhK7bZuA`z-5c{6`vXnJIxBmn5TrTG@M4j=FQCuyUL=A?B?OaV*Sy?HKQtC+V6v@_r zHmwE96VBwdIo*V66ht6HS^pc5X0+GV)*jk9un&OYFhsA&8o*+Pwc(!v>+9=nE)VJq z4q;FK#D2Q^7T`r#-W+a1(->rgIjLYeRNFa_iYkv&dPTMdoQppDF1 z9x{{xDu$9kWn1V~;vDtK~QWlNCTsG|Kf{eMqJdX+?gJ*4?{r&w!`9^?p z8|7WJp&Z*e^lSj3f_ee``g*tc{>L8@uSZZqxgMvjjCJf|EftCi6CFG;rAWVOA7gXq zxd;;CP+n*u(@XIO3Ua)Pf_Nrw4q5!t1JnV=PzP9#wWS!wtF}frdR$-G-rinw5k!Gl zuawJ!xM|7of5Lg>9oOkOJp6A^j2~ z+z2(VuqcbQZKEhku%KgsN0goc@uhL2g7F}F6F62l$MuOGy^btKfX0z00*tn;t*yog zNdE)c{DWus`AP1+8vHH2T#o=Zts=}39$z3TrxK$2W20)kXe8iT@dk(!=+}@y9;(A~ z_ka`u)rDj3x{za_aYGu-aAgf>Cyy$FGA|lMB}6A#RM6`V z+7~H+$3RdcL0KIb3osaCqtT%8G$5pNUxztlKZmUWDi*z`*P^T%0p=v*fb+ZQgNFim kmA9Wcz5X<9Hb7DQ4nJjx`$hBD#{d8T07*qoM6N<$g3g4dL;wH) literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/techreborn/textures/models/armor/nano_layer_2.png b/src/main/resources/assets/techreborn/textures/models/armor/nano_layer_2.png new file mode 100644 index 0000000000000000000000000000000000000000..8a3d0686f6fca9ec6425fb152481a012d7811975 GIT binary patch literal 666 zcmV;L0%iS)P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0xwBKK~!i%?Uyl% zB0&^}t2jg< z+VA&ju~-CV>Mrp2x7)4O^?F_3!;PoY>AU-NyInONk4^NRPN!qk{~3)&M#U4F-cl$O zta%D?Z!mi}90J;WKG$)t*RyfbTooXj&1&;fh$I*c21X^%RRK1ejW#cZxHl~GTrL;U zipAnpoHRkXT(&pH@cDdJnM_76|J7=xH3b2dE4lPCez|Aw&BM<6BvP#ftC*Aao5V2`9B{iWcv`Z3qz4XB-X@niF83Dy-abL1 zUxOcorzG2fo|prb^Mc;hak*&8L(BD|AB$3d0nY}*sYsC}C;$Ke07*qoM6N<$f*O1< A-~a#s literal 0 HcmV?d00001