From 9f5ef1226158d44f4ab829d62b79d71bb93b75df Mon Sep 17 00:00:00 2001 From: bruberu <80226372+bruberu@users.noreply.github.com> Date: Tue, 27 Feb 2024 06:54:45 -0600 Subject: [PATCH 01/55] Start porting MWK's PR --- .../java/supersymmetry/Supersymmetry.java | 3 + .../api/util/SuSyDamageSources.java | 15 ++ .../supersymmetry/common/EventHandlers.java | 11 +- .../event/DimensionBreathabilityHandler.java | 195 ++++++++++++++++++ .../supersymmetry/common/item/GasMask.java | 18 ++ .../common/item/SimpleGasMask.java | 56 +++++ .../common/item/SuSyMetaItems.java | 13 ++ .../models/item/metaitems/gas_mask.json | 6 + .../item/metaitems/simple_gas_mask.json | 6 + .../gregtech/textures/armor/gas_mask.png | Bin 0 -> 786 bytes .../textures/armor/simple_gas_mask.png | Bin 0 -> 585 bytes .../textures/items/metaitems/gas_mask.png | Bin 0 -> 378 bytes .../items/metaitems/simple_gas_mask.png | Bin 0 -> 195 bytes .../resources/assets/susy/lang/en_us.lang | 8 + 14 files changed, 330 insertions(+), 1 deletion(-) create mode 100644 src/main/java/supersymmetry/api/util/SuSyDamageSources.java create mode 100644 src/main/java/supersymmetry/common/event/DimensionBreathabilityHandler.java create mode 100644 src/main/java/supersymmetry/common/item/GasMask.java create mode 100644 src/main/java/supersymmetry/common/item/SimpleGasMask.java create mode 100644 src/main/resources/assets/gregtech/models/item/metaitems/gas_mask.json create mode 100644 src/main/resources/assets/gregtech/models/item/metaitems/simple_gas_mask.json create mode 100644 src/main/resources/assets/gregtech/textures/armor/gas_mask.png create mode 100644 src/main/resources/assets/gregtech/textures/armor/simple_gas_mask.png create mode 100644 src/main/resources/assets/gregtech/textures/items/metaitems/gas_mask.png create mode 100644 src/main/resources/assets/gregtech/textures/items/metaitems/simple_gas_mask.png diff --git a/src/main/java/supersymmetry/Supersymmetry.java b/src/main/java/supersymmetry/Supersymmetry.java index d486dbd69..8aa1d3b8b 100644 --- a/src/main/java/supersymmetry/Supersymmetry.java +++ b/src/main/java/supersymmetry/Supersymmetry.java @@ -17,6 +17,7 @@ import supersymmetry.common.command.CommandHordeStart; import supersymmetry.common.command.CommandHordeStop; import supersymmetry.common.covers.SuSyCoverBehaviors; +import supersymmetry.common.event.DimensionBreathabilityHandler; import supersymmetry.common.item.SuSyMetaItems; import supersymmetry.common.metatileentities.SuSyMetaTileEntities; @@ -51,6 +52,8 @@ public void onPreInit(@NotNull FMLPreInitializationEvent event) { SuSyMetaTileEntities.init(); SusyMetaEntities.init(); + + DimensionBreathabilityHandler.loadConfig(); } @Mod.EventHandler diff --git a/src/main/java/supersymmetry/api/util/SuSyDamageSources.java b/src/main/java/supersymmetry/api/util/SuSyDamageSources.java new file mode 100644 index 000000000..b663ba30c --- /dev/null +++ b/src/main/java/supersymmetry/api/util/SuSyDamageSources.java @@ -0,0 +1,15 @@ +package supersymmetry.api.util; +import net.minecraft.util.DamageSource; + +public class SuSyDamageSources { + private static final DamageSource SUFFOCATION = new DamageSource("suffocation").setDamageBypassesArmor(); + private static final DamageSource TOXIC_ATMO = new DamageSource("toxic_atmo").setDamageBypassesArmor(); + + public static DamageSource getSuffocationDamage() { + return SUFFOCATION; + } + + public static DamageSource getToxicAtmoDamage() { + return TOXIC_ATMO; + } +} diff --git a/src/main/java/supersymmetry/common/EventHandlers.java b/src/main/java/supersymmetry/common/EventHandlers.java index fd2548c6f..872e3aab6 100644 --- a/src/main/java/supersymmetry/common/EventHandlers.java +++ b/src/main/java/supersymmetry/common/EventHandlers.java @@ -29,6 +29,7 @@ import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidUtil; import net.minecraftforge.fluids.capability.IFluidHandlerItem; +import net.minecraftforge.fml.common.FMLCommonHandler; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.gameevent.PlayerEvent; @@ -37,6 +38,7 @@ import supersymmetry.api.SusyLog; import supersymmetry.api.event.MobHordeEvent; import supersymmetry.common.entities.EntityDropPod; +import supersymmetry.common.event.DimensionBreathabilityHandler; import supersymmetry.common.event.MobHordePlayerData; import supersymmetry.common.event.MobHordeWorldData; @@ -130,7 +132,7 @@ public static void onTrySpawnPortal(BlockEvent.PortalSpawnEvent event) { } @SubscribeEvent - public static void on(TickEvent.WorldTickEvent event) { + public static void onWorldTick(TickEvent.WorldTickEvent event) { World world = event.world; @@ -153,4 +155,11 @@ public static void on(TickEvent.WorldTickEvent event) { mobHordeWorldData.markDirty(); } } + + @SubscribeEvent + public static void onPlayerTick(TickEvent.PlayerTickEvent event) { + if (FMLCommonHandler.instance().getMinecraftServerInstance().getTickCounter() % 20 == 0) { + DimensionBreathabilityHandler.checkPlayer(event.player); + } + } } diff --git a/src/main/java/supersymmetry/common/event/DimensionBreathabilityHandler.java b/src/main/java/supersymmetry/common/event/DimensionBreathabilityHandler.java new file mode 100644 index 000000000..762322073 --- /dev/null +++ b/src/main/java/supersymmetry/common/event/DimensionBreathabilityHandler.java @@ -0,0 +1,195 @@ +package supersymmetry.common.event; + +import gregtech.api.damagesources.DamageSources; +import gregtech.api.unification.material.Materials; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.EntityEquipmentSlot; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.capability.CapabilityFluidHandler; +import net.minecraftforge.fluids.capability.IFluidHandlerItem; +import supersymmetry.api.util.SuSyDamageSources; + +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; + +import static net.minecraft.inventory.EntityEquipmentSlot.*; + +public final class DimensionBreathabilityHandler { + + private static FluidStack oxyStack; + private static final Map dimensionBreathabilityMap = new HashMap<>(); + private static BreathabilityInfo defaultDimensionBreathability; + private static final Map itemBreathabilityMap = new HashMap<>(); + + private static boolean hasDrainedOxy = false; + private static boolean hasSuffocated = false; + + private DimensionBreathabilityHandler() {} + + public static void loadConfig() { + oxyStack = Materials.Oxygen.getFluid(1); + + dimensionBreathabilityMap.clear(); + defaultDimensionBreathability = new BreathabilityInfo(false, false, -1, -1); + + // Nether + dimensionBreathabilityMap.put(-1, new DimensionBreathabilityHandler.BreathabilityInfo(true, true, 1, 0)); + // Beneath + dimensionBreathabilityMap.put(111, new DimensionBreathabilityHandler.BreathabilityInfo(true, true, 4, 0)); + + + itemBreathabilityMap.clear(); + itemBreathabilityMap.put(new BreathabilityItemMapKey(Item.getByNameOrId("susy_armor_item"), 0), + new BreathabilityInfo(true, false, 10, 0)); + itemBreathabilityMap.put(new BreathabilityItemMapKey(Item.getByNameOrId("susy_armor_item"), 1), + new BreathabilityInfo(true, true, 15, 0)); + } + + public static void checkPlayer(EntityPlayer player) { + BreathabilityInfo dimInfo = dimensionBreathabilityMap.get(player.dimension); + if (dimInfo == null) { + dimInfo = defaultDimensionBreathability; + } + if (dimInfo.suffocation) suffocationCheck(player); + if (dimInfo.toxic) toxicityCheck(player, dimInfo.toxicityRating); + if (dimInfo.radiation) radiationCheck(player, dimInfo.radiationRating); + hasDrainedOxy = false; + hasSuffocated = false; + } + + private static void suffocationCheck(EntityPlayer player) { + BreathabilityInfo itemInfo = itemBreathabilityMap.get(getItemKey(player, HEAD)); + if (itemInfo != null && itemInfo.suffocation && drainOxy(player)) return; + suffocate(player); + } + + private static void suffocate(EntityPlayer player) { + if (hasSuffocated) return; + player.attackEntityFrom(SuSyDamageSources.getSuffocationDamage(), 2); + hasSuffocated = true; + } + + private static void toxicityCheck(EntityPlayer player, int dimRating) { + BreathabilityInfo itemInfo = itemBreathabilityMap.get(getItemKey(player, HEAD)); + if (itemInfo != null && itemInfo.toxic) { + // if sealed, no need for toxicity check + if (itemInfo.isSealed) { + if (drainOxy(player)) return; + suffocate(player); + } else if (dimRating > itemInfo.toxicityRating) { + toxificate(player, dimRating - itemInfo.toxicityRating); + return; + } + } + toxificate(player, 100); + } + + private static void toxificate(EntityPlayer player, int mult) { + player.attackEntityFrom(SuSyDamageSources.getToxicAtmoDamage(), 0.03f * mult); + } + + private static void radiationCheck(EntityPlayer player, int dimRating) { + // natural radiation protection of 20 + int ratingSum = 20; + + BreathabilityInfo itemInfo = itemBreathabilityMap.get(getItemKey(player, HEAD)); + if (itemInfo != null && itemInfo.radiation) ratingSum += itemInfo.radiationRating; + itemInfo = itemBreathabilityMap.get(getItemKey(player, CHEST)); + if (itemInfo != null && itemInfo.radiation) ratingSum += itemInfo.radiationRating; + itemInfo = itemBreathabilityMap.get(getItemKey(player, LEGS)); + if (itemInfo != null && itemInfo.radiation) ratingSum += itemInfo.radiationRating; + itemInfo = itemBreathabilityMap.get(getItemKey(player, FEET)); + if (itemInfo != null && itemInfo.radiation) ratingSum += itemInfo.radiationRating; + + if (dimRating > ratingSum) radiate(player, dimRating - ratingSum); + } + + private static void radiate(EntityPlayer player, int mult) { + player.attackEntityFrom(DamageSources.getRadioactiveDamage(), 0.01f * mult); + } + + private static BreathabilityItemMapKey getItemKey(EntityPlayer player, EntityEquipmentSlot slot) { + return new BreathabilityItemMapKey(player.getItemStackFromSlot(slot)); + } + + private static boolean drainOxy(EntityPlayer player) { + // don't drain if we are in creative + if (player.isCreative()) return true; + Optional tank = player.inventory.mainInventory.stream() + .map(a -> a.getCapability(CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY, null)) + .filter(Objects::nonNull) + .filter(a -> { + FluidStack drain = a.drain(oxyStack, false); + return drain != null && drain.amount > 0; + }).findFirst(); + // don't drain if we've already drained + if (!hasDrainedOxy) { + tank.ifPresent(a -> a.drain(oxyStack, true)); + hasDrainedOxy = true; + } + return tank.isPresent(); + } + + public void addBreathabilityItem(ItemStack item, BreathabilityInfo info) { + itemBreathabilityMap.put(new BreathabilityItemMapKey(item), info); + } + + public void removeBreathabilityItem(ItemStack item) { + itemBreathabilityMap.remove(new BreathabilityItemMapKey(item)); + } + + private static final class BreathabilityItemMapKey { + + public final Item item; + public final int meta; + + BreathabilityItemMapKey(ItemStack stack) { + this.item = stack.getItem(); + this.meta = stack.getMetadata(); + } + + BreathabilityItemMapKey(Item item, int meta) { + this.item = item; + this.meta = meta; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + BreathabilityItemMapKey that = (BreathabilityItemMapKey) o; + return meta == that.meta && Objects.equals(item, that.item); + } + + @Override + public int hashCode() { + return Objects.hash(item, meta); + } + } + + public static final class BreathabilityInfo { + + public final boolean suffocation; + public final boolean toxic; + public final boolean radiation; + + private final int toxicityRating; + private final int radiationRating; + + public final boolean isSealed; + + public BreathabilityInfo(boolean suffocation, boolean isSealed, int toxic, int radiation) { + this.suffocation = suffocation; + this.toxic = toxic != -1; + this.radiation = toxic != -1; + this.radiationRating = radiation; + this.toxicityRating = toxic; + this.isSealed = isSealed; + } + } +} diff --git a/src/main/java/supersymmetry/common/item/GasMask.java b/src/main/java/supersymmetry/common/item/GasMask.java new file mode 100644 index 000000000..8791a44e3 --- /dev/null +++ b/src/main/java/supersymmetry/common/item/GasMask.java @@ -0,0 +1,18 @@ +package supersymmetry.common.item; + +import gregtech.common.items.armor.NightvisionGoggles; +import net.minecraft.entity.Entity; +import net.minecraft.inventory.EntityEquipmentSlot; +import net.minecraft.item.ItemStack; + +public class GasMask extends NightvisionGoggles { + + public GasMask(int energyPerUse, long capacity, int voltageTier, EntityEquipmentSlot slot) { + super(energyPerUse, capacity, voltageTier, slot); + } + + @Override + public String getArmorTexture(ItemStack stack, Entity entity, EntityEquipmentSlot slot, String type) { + return "gregtech:textures/armor/gas_mask.png"; + } +} diff --git a/src/main/java/supersymmetry/common/item/SimpleGasMask.java b/src/main/java/supersymmetry/common/item/SimpleGasMask.java new file mode 100644 index 000000000..3219cd673 --- /dev/null +++ b/src/main/java/supersymmetry/common/item/SimpleGasMask.java @@ -0,0 +1,56 @@ +package supersymmetry.common.item; + +import gregtech.api.items.armor.ArmorMetaItem; +import gregtech.api.items.armor.IArmorLogic; +import gregtech.api.items.metaitem.stats.IItemBehaviour; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.EntityEquipmentSlot; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ActionResult; +import net.minecraft.util.EnumActionResult; +import net.minecraft.util.EnumHand; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.SoundEvent; +import net.minecraft.world.World; + +public class SimpleGasMask implements IArmorLogic { + + @Override + public EntityEquipmentSlot getEquipmentSlot(ItemStack itemStack) { + return EntityEquipmentSlot.HEAD; + } + + @Override + public String getArmorTexture(ItemStack stack, Entity entity, EntityEquipmentSlot slot, String type) { + return "gregtech:textures/armor/simple_gas_mask.json.png"; + } + + @Override + public void addToolComponents(ArmorMetaItem.ArmorMetaValueItem mvi) { + mvi.addComponents(new IItemBehaviour() { + + @Override + public ActionResult onItemRightClick(World world, EntityPlayer player, EnumHand hand) { + return onRightClick(world, player, hand); + } + }); + } + + public ActionResult onRightClick(World world, EntityPlayer player, EnumHand hand) { + if (player.getHeldItem(hand).getItem() instanceof ArmorMetaItem) { + ItemStack armor = player.getHeldItem(hand); + if (armor.getItem() instanceof ArmorMetaItem && + player.inventory.armorInventory.get(EntityEquipmentSlot.HEAD.getIndex()).isEmpty() && + !player.isSneaking()) { + player.inventory.armorInventory.set(EntityEquipmentSlot.HEAD.getIndex(), armor.copy()); + player.setHeldItem(hand, ItemStack.EMPTY); + player.playSound(new SoundEvent(new ResourceLocation("item.armor.equip_generic")), 1.0F, 1.0F); + return ActionResult.newResult(EnumActionResult.SUCCESS, armor); + } + } + + return ActionResult.newResult(EnumActionResult.PASS, player.getHeldItem(hand)); + } +} diff --git a/src/main/java/supersymmetry/common/item/SuSyMetaItems.java b/src/main/java/supersymmetry/common/item/SuSyMetaItems.java index 05155e16b..c8f762229 100644 --- a/src/main/java/supersymmetry/common/item/SuSyMetaItems.java +++ b/src/main/java/supersymmetry/common/item/SuSyMetaItems.java @@ -1,31 +1,39 @@ package supersymmetry.common.item; import gregtech.api.GTValues; +import gregtech.api.items.armor.ArmorMetaItem; import gregtech.api.items.metaitem.MetaItem.MetaValueItem; import gregtech.api.items.metaitem.MetaOreDictItem; import gregtech.api.items.metaitem.MetaOreDictItem.OreDictValueItem; import gregtech.api.items.metaitem.StandardMetaItem; import gregtech.api.unification.material.info.MaterialIconSet; import gregtech.api.unification.ore.OrePrefix; +import gregtech.common.ConfigHolder; import gregtech.common.items.behaviors.TooltipBehavior; import net.minecraft.client.resources.I18n; +import net.minecraft.inventory.EntityEquipmentSlot; import supersymmetry.SuSyValues; import supersymmetry.api.unification.ore.SusyOrePrefix; public class SuSyMetaItems { private static StandardMetaItem metaItem; + private static ArmorMetaItem.ArmorMetaValueItem> armorItem; public static MetaOreDictItem oreDictItem; public static MetaValueItem CATALYST_BED_SUPPORT_GRID; public static MetaValueItem CONVEYOR_STEAM; public static MetaValueItem PUMP_STEAM; public static MetaValueItem AIR_VENT; + public static ArmorMetaItem.ArmorMetaValueItem SIMPLE_GAS_MASK; + public static ArmorMetaItem.ArmorMetaValueItem GAS_MASK; public static void initMetaItems() { metaItem = new StandardMetaItem(); metaItem.setRegistryName("meta_item"); oreDictItem = new MetaOreDictItem((short) 0); oreDictItem.setRegistryName("susy_oredict_item"); + armorItem = new ArmorMetaItem<>(); + armorItem.setRegistryName("susy_armor_item"); CatalystItems.init(); @@ -50,6 +58,11 @@ private static void initMetaItem() { AIR_VENT = metaItem.addItem(4, "air_vent").addComponents(new TooltipBehavior((lines) -> { lines.add(I18n.format("gregtech.universal.tooltip.fluid_transfer_rate", 100)); })); + SIMPLE_GAS_MASK = armorItem.addItem(0, "simple_gas_mask") + .setArmorLogic(new SimpleGasMask()); + GAS_MASK = armorItem.addItem(1, "gas_mask").setArmorLogic(new GasMask(2, + 80_000L * (long) Math.max(1, Math.pow(1, ConfigHolder.tools.voltageTierNightVision - 1)), + ConfigHolder.tools.voltageTierNightVision, EntityEquipmentSlot.HEAD)); } private static void addTieredOredictItem (OreDictValueItem[] items, int id, int RGB, OrePrefix prefix) { diff --git a/src/main/resources/assets/gregtech/models/item/metaitems/gas_mask.json b/src/main/resources/assets/gregtech/models/item/metaitems/gas_mask.json new file mode 100644 index 000000000..3faa43cfc --- /dev/null +++ b/src/main/resources/assets/gregtech/models/item/metaitems/gas_mask.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gregtech:items/metaitems/gas_mask" + } +} diff --git a/src/main/resources/assets/gregtech/models/item/metaitems/simple_gas_mask.json b/src/main/resources/assets/gregtech/models/item/metaitems/simple_gas_mask.json new file mode 100644 index 000000000..132f1ee09 --- /dev/null +++ b/src/main/resources/assets/gregtech/models/item/metaitems/simple_gas_mask.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gregtech:items/metaitems/simple_gas_mask" + } +} diff --git a/src/main/resources/assets/gregtech/textures/armor/gas_mask.png b/src/main/resources/assets/gregtech/textures/armor/gas_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..01e40f03472e4a2434f2015730846b8bb8fbae31 GIT binary patch literal 786 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}DLQjEnx?oJHr&dI!FU|>4!>Eakt z5%+e6eZH`x$dPhIp%6pYmRN>GR_^cCFL4%Rz29Iozr$WPRi$f+X22A^r(Zn^$HE!k>gtOa6MPyeC7FvnSefu*6Cea`7{ zb^(TSvITnavJMOut^fO1{L_20wEFVnyOW>S zmpRL>civo8r2Qp5KCbQNy*i89zooWv$vo|wJvYn>x3<5v^|D=T>FjU5#h3o?`dZ%m z+$#6o#iQRBi93F5VT&`6JExYr`kq+b^$&k+PS$YWJG3Pr_{IFVnh5{3t6p8JU^=kC z^T5;JIZR6YR`#!#ea@Xd`|!kXfB(EaWzNvb7=8bH{x#ocdD8lO_D*~K+M)2*+i9ED zu8rFMvF_+s-i#MNk1}qU(63+L_OwXy^{%}2f0kuF$}oxAJJ+VD{=BT!g?+EZ*$*^r ztFF6jvT$8Cv!aezcS7>oaN{|nwyibay zt(_i%3?11nrc4bQJ}zAh4l&BB1Q}csm4a9p9!UlEGAM8fPgG(MxZaV)!Voy4Lxizm zhg*m;L&qVPB^(S#OczNpI*6z#xiToM6THg7u*g7AlZk=0MnAJ>;d<{Fo8a65Oydlm Mu6{1-oD!NC0CT%dhyVZp literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/armor/simple_gas_mask.png b/src/main/resources/assets/gregtech/textures/armor/simple_gas_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..c71bb041111094af4f6a87e3475b944da4fcc619 GIT binary patch literal 585 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}DLQjEnx?oJHr&dI!FU|?eQba4!+ zht3+zdht?nAA^Gh3()w7oGtz5*%%r=upBy`&dlIY!SwL)W<~}D zo5l|xZ!$0l%yanhBZq;3!(XAM#*BfXMP0zoPMU$?kT8e*d|sT|9i|^B+r75-{`7UP z8GOY*FPfZsbjzpNoA2g@OR*d_II%@cRiLi8yu38>yubgc=imKj+Mg?)d2e=H_W9eT z74g+?xAHyx_GYn-&E7Zmml-6EZ@hCqX8QB>-G8gwpPxOSo4zf3UEz;EH~#+rSh42y z@$KI;3{nrTzy8`@I$>+n$t{QWAL%|eeQHql+PAm&-^}@D&&aT0h5F62MhvqazpQ82 z|9{gzF?k)Mdb_%{Wqc+820?0xSN@w^2j|Vh6i{1@5nNoQ2r*y!0^8A$vXxIxsBTy j7%ILim$TEt=mYwxSE3x3WR>gzMjnHwtDnm{r-UW|8U_4c literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/items/metaitems/gas_mask.png b/src/main/resources/assets/gregtech/textures/items/metaitems/gas_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..3c8c8f4210d67b08b4e68d18c79824a266ca0759 GIT binary patch literal 378 zcmV-=0fqjFP)Px$Gf6~2R5(v#WS|f*QmCJSHU_Avsr?7J?AEPYU<=Us$gak40Z1`SBR@Ys*r1Oe zKf(=y$-xZ4FhEjL^8dGQ-@x**m*W{G%T8nv5D)fj*@^EjSZ?XfSEvRchitUE*ngM;m^jFVFkA7) z0!ZPSr{BRLZ)$1^j)l{wPcwpC;UmEgw;5+FfE22!sev>xn3|e`3}Sfs@+BxOfYJp# zO0gOMa{87RKN-Zu#lea}nm_<#08A`eT@1w)xRNr+>5QO61$6;P9as!K@6aYMkdi|I YbJL6wJ9QuN00000NkvXXu0mjf07ELFm;e9( literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/items/metaitems/simple_gas_mask.png b/src/main/resources/assets/gregtech/textures/items/metaitems/simple_gas_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..ed2f8ec98ff03ac79787f62923d2498a8ec84f8b GIT binary patch literal 195 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|YCT;XLoEE0 zQx*sq1g)5#c!hyYs{LR)zx=3jj2I@xY6)&`Km82o5C%_IKbLh*2~7YV7)Mb6 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/susy/lang/en_us.lang b/src/main/resources/assets/susy/lang/en_us.lang index ab024d97e..1370b9882 100644 --- a/src/main/resources/assets/susy/lang/en_us.lang +++ b/src/main/resources/assets/susy/lang/en_us.lang @@ -758,3 +758,11 @@ susy.command.horde.start.started=Successfully started %s invasion. susy.command.horde.stop.usage=/mobHorde stop susy.command.horde.stop.has_active_no_invasion=No active invasion to stop. susy.command.horde.stop.stopped=Successfully stopped %s invasion. + +death.attack.toxic_atmo=%s's lungs were shredded +death.attack.suffocation=%s couldn't breathe + +metaitem.simple_gas_mask.name=Primitive Gas Mask +metaitem.simple_gas_mask.tooltip=Survive in oxygenless environments +metaitem.gas_mask.name=Gas Mask +metaitem.gas_mask.tooltip=Survive in toxic environments From a94f79f33e3cd68d40cb100ff8dcb10211b41c6c Mon Sep 17 00:00:00 2001 From: bruberu <80226372+bruberu@users.noreply.github.com> Date: Sat, 2 Mar 2024 21:56:17 -0600 Subject: [PATCH 02/55] feat: durability for simple gas masks --- .../supersymmetry/common/EventHandlers.java | 2 +- .../event/DimensionBreathabilityHandler.java | 24 ++++++++++++------- .../common/item/SimpleGasMask.java | 17 ++++++++++++- 3 files changed, 33 insertions(+), 10 deletions(-) diff --git a/src/main/java/supersymmetry/common/EventHandlers.java b/src/main/java/supersymmetry/common/EventHandlers.java index 872e3aab6..3c3d7abcd 100644 --- a/src/main/java/supersymmetry/common/EventHandlers.java +++ b/src/main/java/supersymmetry/common/EventHandlers.java @@ -159,7 +159,7 @@ public static void onWorldTick(TickEvent.WorldTickEvent event) { @SubscribeEvent public static void onPlayerTick(TickEvent.PlayerTickEvent event) { if (FMLCommonHandler.instance().getMinecraftServerInstance().getTickCounter() % 20 == 0) { - DimensionBreathabilityHandler.checkPlayer(event.player); + DimensionBreathabilityHandler.tickPlayer(event.player); } } } diff --git a/src/main/java/supersymmetry/common/event/DimensionBreathabilityHandler.java b/src/main/java/supersymmetry/common/event/DimensionBreathabilityHandler.java index 762322073..4e76f8398 100644 --- a/src/main/java/supersymmetry/common/event/DimensionBreathabilityHandler.java +++ b/src/main/java/supersymmetry/common/event/DimensionBreathabilityHandler.java @@ -40,7 +40,7 @@ public static void loadConfig() { // Nether dimensionBreathabilityMap.put(-1, new DimensionBreathabilityHandler.BreathabilityInfo(true, true, 1, 0)); // Beneath - dimensionBreathabilityMap.put(111, new DimensionBreathabilityHandler.BreathabilityInfo(true, true, 4, 0)); + dimensionBreathabilityMap.put(10, new DimensionBreathabilityHandler.BreathabilityInfo(true, true, 4, 0)); itemBreathabilityMap.clear(); @@ -50,7 +50,7 @@ public static void loadConfig() { new BreathabilityInfo(true, true, 15, 0)); } - public static void checkPlayer(EntityPlayer player) { + public static void tickPlayer(EntityPlayer player) { BreathabilityInfo dimInfo = dimensionBreathabilityMap.get(player.dimension); if (dimInfo == null) { dimInfo = defaultDimensionBreathability; @@ -62,9 +62,17 @@ public static void checkPlayer(EntityPlayer player) { hasSuffocated = false; } + public static boolean isInHazardousEnvironment(EntityPlayer player) { + BreathabilityInfo dimInfo = dimensionBreathabilityMap.get(player.dimension); + if (dimInfo == null) { + dimInfo = defaultDimensionBreathability; + } + return dimInfo.suffocation || dimInfo.toxic || dimInfo.radiation; + } + private static void suffocationCheck(EntityPlayer player) { BreathabilityInfo itemInfo = itemBreathabilityMap.get(getItemKey(player, HEAD)); - if (itemInfo != null && itemInfo.suffocation && drainOxy(player)) return; + if (itemInfo != null && itemInfo.suffocation && tickAir(player)) return; suffocate(player); } @@ -79,17 +87,17 @@ private static void toxicityCheck(EntityPlayer player, int dimRating) { if (itemInfo != null && itemInfo.toxic) { // if sealed, no need for toxicity check if (itemInfo.isSealed) { - if (drainOxy(player)) return; + if (tickAir(player)) return; suffocate(player); } else if (dimRating > itemInfo.toxicityRating) { - toxificate(player, dimRating - itemInfo.toxicityRating); + causeToxicDamage(player, dimRating - itemInfo.toxicityRating); return; } } - toxificate(player, 100); + causeToxicDamage(player, 100); } - private static void toxificate(EntityPlayer player, int mult) { + private static void causeToxicDamage(EntityPlayer player, int mult) { player.attackEntityFrom(SuSyDamageSources.getToxicAtmoDamage(), 0.03f * mult); } @@ -117,7 +125,7 @@ private static BreathabilityItemMapKey getItemKey(EntityPlayer player, EntityEqu return new BreathabilityItemMapKey(player.getItemStackFromSlot(slot)); } - private static boolean drainOxy(EntityPlayer player) { + private static boolean tickAir(EntityPlayer player) { // don't drain if we are in creative if (player.isCreative()) return true; Optional tank = player.inventory.mainInventory.stream() diff --git a/src/main/java/supersymmetry/common/item/SimpleGasMask.java b/src/main/java/supersymmetry/common/item/SimpleGasMask.java index 3219cd673..19ea8ebb3 100644 --- a/src/main/java/supersymmetry/common/item/SimpleGasMask.java +++ b/src/main/java/supersymmetry/common/item/SimpleGasMask.java @@ -4,6 +4,7 @@ import gregtech.api.items.armor.IArmorLogic; import gregtech.api.items.metaitem.stats.IItemBehaviour; +import gregtech.api.items.metaitem.stats.IItemDurabilityManager; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.EntityEquipmentSlot; @@ -14,8 +15,10 @@ import net.minecraft.util.ResourceLocation; import net.minecraft.util.SoundEvent; import net.minecraft.world.World; +import supersymmetry.common.event.DimensionBreathabilityHandler; -public class SimpleGasMask implements IArmorLogic { +public class SimpleGasMask implements IArmorLogic, IItemDurabilityManager { + double damage = 1; @Override public EntityEquipmentSlot getEquipmentSlot(ItemStack itemStack) { @@ -53,4 +56,16 @@ public ActionResult onRightClick(World world, EntityPlayer player, En return ActionResult.newResult(EnumActionResult.PASS, player.getHeldItem(hand)); } + + public void onArmorTick(World world, EntityPlayer player, ItemStack itemStack) { + if (DimensionBreathabilityHandler.isInHazardousEnvironment(player)) { + damage -= 1. / (20. * 60. * 15.); // 20 ticks per second * 60 seconds per minute * 15 minutes + } + } + + + @Override + public double getDurabilityForDisplay(ItemStack itemStack) { + return 0; + } } From e26275b7f682083f8e683a3dc1ace937f9fd1829 Mon Sep 17 00:00:00 2001 From: bruberu <80226372+bruberu@users.noreply.github.com> Date: Sat, 6 Jul 2024 00:11:02 -0500 Subject: [PATCH 03/55] feat: beneath to runtimeOnly --- dependencies.gradle | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dependencies.gradle b/dependencies.gradle index 687b950ca..8cc0bb4d3 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -52,4 +52,6 @@ dependencies { implementation rfg.deobf("curse.maven:ctm-267602:2915363") // CTM 1.0.2.31 implementation rfg.deobf("curse.maven:groovyscript-687577:5439031") // GRS 1.1.0 + + runtimeOnly rfg.deobf("curse.maven:the-beneath-254629:3425551") } From 48d04b962ae0a9be57a3d8c3fe4fd167febc4aba Mon Sep 17 00:00:00 2001 From: bruberu <80226372+bruberu@users.noreply.github.com> Date: Tue, 27 Feb 2024 06:54:45 -0600 Subject: [PATCH 04/55] Start porting MWK's PR --- .../java/supersymmetry/Supersymmetry.java | 3 + .../api/util/SuSyDamageSources.java | 15 ++ .../supersymmetry/common/EventHandlers.java | 11 +- .../event/DimensionBreathabilityHandler.java | 195 ++++++++++++++++++ .../supersymmetry/common/item/GasMask.java | 18 ++ .../common/item/SimpleGasMask.java | 56 +++++ .../common/item/SuSyMetaItems.java | 13 ++ .../models/item/metaitems/gas_mask.json | 6 + .../item/metaitems/simple_gas_mask.json | 6 + .../gregtech/textures/armor/gas_mask.png | Bin 0 -> 786 bytes .../textures/armor/simple_gas_mask.png | Bin 0 -> 585 bytes .../textures/items/metaitems/gas_mask.png | Bin 0 -> 378 bytes .../items/metaitems/simple_gas_mask.png | Bin 0 -> 195 bytes .../resources/assets/susy/lang/en_us.lang | 8 + 14 files changed, 330 insertions(+), 1 deletion(-) create mode 100644 src/main/java/supersymmetry/api/util/SuSyDamageSources.java create mode 100644 src/main/java/supersymmetry/common/event/DimensionBreathabilityHandler.java create mode 100644 src/main/java/supersymmetry/common/item/GasMask.java create mode 100644 src/main/java/supersymmetry/common/item/SimpleGasMask.java create mode 100644 src/main/resources/assets/gregtech/models/item/metaitems/gas_mask.json create mode 100644 src/main/resources/assets/gregtech/models/item/metaitems/simple_gas_mask.json create mode 100644 src/main/resources/assets/gregtech/textures/armor/gas_mask.png create mode 100644 src/main/resources/assets/gregtech/textures/armor/simple_gas_mask.png create mode 100644 src/main/resources/assets/gregtech/textures/items/metaitems/gas_mask.png create mode 100644 src/main/resources/assets/gregtech/textures/items/metaitems/simple_gas_mask.png diff --git a/src/main/java/supersymmetry/Supersymmetry.java b/src/main/java/supersymmetry/Supersymmetry.java index 296e3090b..3eed973bc 100644 --- a/src/main/java/supersymmetry/Supersymmetry.java +++ b/src/main/java/supersymmetry/Supersymmetry.java @@ -20,6 +20,7 @@ import supersymmetry.common.command.CommandHordeStatus; import supersymmetry.common.command.CommandHordeStop; import supersymmetry.common.covers.SuSyCoverBehaviors; +import supersymmetry.common.event.DimensionBreathabilityHandler; import supersymmetry.common.item.SuSyMetaItems; import supersymmetry.common.metatileentities.SuSyMetaTileEntities; import supersymmetry.loaders.SuSyIRLoader; @@ -57,6 +58,8 @@ public void onPreInit(@NotNull FMLPreInitializationEvent event) { SuSyMetaTileEntities.init(); SusyMetaEntities.init(); + + DimensionBreathabilityHandler.loadConfig(); } @Mod.EventHandler diff --git a/src/main/java/supersymmetry/api/util/SuSyDamageSources.java b/src/main/java/supersymmetry/api/util/SuSyDamageSources.java new file mode 100644 index 000000000..b663ba30c --- /dev/null +++ b/src/main/java/supersymmetry/api/util/SuSyDamageSources.java @@ -0,0 +1,15 @@ +package supersymmetry.api.util; +import net.minecraft.util.DamageSource; + +public class SuSyDamageSources { + private static final DamageSource SUFFOCATION = new DamageSource("suffocation").setDamageBypassesArmor(); + private static final DamageSource TOXIC_ATMO = new DamageSource("toxic_atmo").setDamageBypassesArmor(); + + public static DamageSource getSuffocationDamage() { + return SUFFOCATION; + } + + public static DamageSource getToxicAtmoDamage() { + return TOXIC_ATMO; + } +} diff --git a/src/main/java/supersymmetry/common/EventHandlers.java b/src/main/java/supersymmetry/common/EventHandlers.java index fd2548c6f..872e3aab6 100644 --- a/src/main/java/supersymmetry/common/EventHandlers.java +++ b/src/main/java/supersymmetry/common/EventHandlers.java @@ -29,6 +29,7 @@ import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidUtil; import net.minecraftforge.fluids.capability.IFluidHandlerItem; +import net.minecraftforge.fml.common.FMLCommonHandler; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.gameevent.PlayerEvent; @@ -37,6 +38,7 @@ import supersymmetry.api.SusyLog; import supersymmetry.api.event.MobHordeEvent; import supersymmetry.common.entities.EntityDropPod; +import supersymmetry.common.event.DimensionBreathabilityHandler; import supersymmetry.common.event.MobHordePlayerData; import supersymmetry.common.event.MobHordeWorldData; @@ -130,7 +132,7 @@ public static void onTrySpawnPortal(BlockEvent.PortalSpawnEvent event) { } @SubscribeEvent - public static void on(TickEvent.WorldTickEvent event) { + public static void onWorldTick(TickEvent.WorldTickEvent event) { World world = event.world; @@ -153,4 +155,11 @@ public static void on(TickEvent.WorldTickEvent event) { mobHordeWorldData.markDirty(); } } + + @SubscribeEvent + public static void onPlayerTick(TickEvent.PlayerTickEvent event) { + if (FMLCommonHandler.instance().getMinecraftServerInstance().getTickCounter() % 20 == 0) { + DimensionBreathabilityHandler.checkPlayer(event.player); + } + } } diff --git a/src/main/java/supersymmetry/common/event/DimensionBreathabilityHandler.java b/src/main/java/supersymmetry/common/event/DimensionBreathabilityHandler.java new file mode 100644 index 000000000..762322073 --- /dev/null +++ b/src/main/java/supersymmetry/common/event/DimensionBreathabilityHandler.java @@ -0,0 +1,195 @@ +package supersymmetry.common.event; + +import gregtech.api.damagesources.DamageSources; +import gregtech.api.unification.material.Materials; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.EntityEquipmentSlot; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.capability.CapabilityFluidHandler; +import net.minecraftforge.fluids.capability.IFluidHandlerItem; +import supersymmetry.api.util.SuSyDamageSources; + +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; + +import static net.minecraft.inventory.EntityEquipmentSlot.*; + +public final class DimensionBreathabilityHandler { + + private static FluidStack oxyStack; + private static final Map dimensionBreathabilityMap = new HashMap<>(); + private static BreathabilityInfo defaultDimensionBreathability; + private static final Map itemBreathabilityMap = new HashMap<>(); + + private static boolean hasDrainedOxy = false; + private static boolean hasSuffocated = false; + + private DimensionBreathabilityHandler() {} + + public static void loadConfig() { + oxyStack = Materials.Oxygen.getFluid(1); + + dimensionBreathabilityMap.clear(); + defaultDimensionBreathability = new BreathabilityInfo(false, false, -1, -1); + + // Nether + dimensionBreathabilityMap.put(-1, new DimensionBreathabilityHandler.BreathabilityInfo(true, true, 1, 0)); + // Beneath + dimensionBreathabilityMap.put(111, new DimensionBreathabilityHandler.BreathabilityInfo(true, true, 4, 0)); + + + itemBreathabilityMap.clear(); + itemBreathabilityMap.put(new BreathabilityItemMapKey(Item.getByNameOrId("susy_armor_item"), 0), + new BreathabilityInfo(true, false, 10, 0)); + itemBreathabilityMap.put(new BreathabilityItemMapKey(Item.getByNameOrId("susy_armor_item"), 1), + new BreathabilityInfo(true, true, 15, 0)); + } + + public static void checkPlayer(EntityPlayer player) { + BreathabilityInfo dimInfo = dimensionBreathabilityMap.get(player.dimension); + if (dimInfo == null) { + dimInfo = defaultDimensionBreathability; + } + if (dimInfo.suffocation) suffocationCheck(player); + if (dimInfo.toxic) toxicityCheck(player, dimInfo.toxicityRating); + if (dimInfo.radiation) radiationCheck(player, dimInfo.radiationRating); + hasDrainedOxy = false; + hasSuffocated = false; + } + + private static void suffocationCheck(EntityPlayer player) { + BreathabilityInfo itemInfo = itemBreathabilityMap.get(getItemKey(player, HEAD)); + if (itemInfo != null && itemInfo.suffocation && drainOxy(player)) return; + suffocate(player); + } + + private static void suffocate(EntityPlayer player) { + if (hasSuffocated) return; + player.attackEntityFrom(SuSyDamageSources.getSuffocationDamage(), 2); + hasSuffocated = true; + } + + private static void toxicityCheck(EntityPlayer player, int dimRating) { + BreathabilityInfo itemInfo = itemBreathabilityMap.get(getItemKey(player, HEAD)); + if (itemInfo != null && itemInfo.toxic) { + // if sealed, no need for toxicity check + if (itemInfo.isSealed) { + if (drainOxy(player)) return; + suffocate(player); + } else if (dimRating > itemInfo.toxicityRating) { + toxificate(player, dimRating - itemInfo.toxicityRating); + return; + } + } + toxificate(player, 100); + } + + private static void toxificate(EntityPlayer player, int mult) { + player.attackEntityFrom(SuSyDamageSources.getToxicAtmoDamage(), 0.03f * mult); + } + + private static void radiationCheck(EntityPlayer player, int dimRating) { + // natural radiation protection of 20 + int ratingSum = 20; + + BreathabilityInfo itemInfo = itemBreathabilityMap.get(getItemKey(player, HEAD)); + if (itemInfo != null && itemInfo.radiation) ratingSum += itemInfo.radiationRating; + itemInfo = itemBreathabilityMap.get(getItemKey(player, CHEST)); + if (itemInfo != null && itemInfo.radiation) ratingSum += itemInfo.radiationRating; + itemInfo = itemBreathabilityMap.get(getItemKey(player, LEGS)); + if (itemInfo != null && itemInfo.radiation) ratingSum += itemInfo.radiationRating; + itemInfo = itemBreathabilityMap.get(getItemKey(player, FEET)); + if (itemInfo != null && itemInfo.radiation) ratingSum += itemInfo.radiationRating; + + if (dimRating > ratingSum) radiate(player, dimRating - ratingSum); + } + + private static void radiate(EntityPlayer player, int mult) { + player.attackEntityFrom(DamageSources.getRadioactiveDamage(), 0.01f * mult); + } + + private static BreathabilityItemMapKey getItemKey(EntityPlayer player, EntityEquipmentSlot slot) { + return new BreathabilityItemMapKey(player.getItemStackFromSlot(slot)); + } + + private static boolean drainOxy(EntityPlayer player) { + // don't drain if we are in creative + if (player.isCreative()) return true; + Optional tank = player.inventory.mainInventory.stream() + .map(a -> a.getCapability(CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY, null)) + .filter(Objects::nonNull) + .filter(a -> { + FluidStack drain = a.drain(oxyStack, false); + return drain != null && drain.amount > 0; + }).findFirst(); + // don't drain if we've already drained + if (!hasDrainedOxy) { + tank.ifPresent(a -> a.drain(oxyStack, true)); + hasDrainedOxy = true; + } + return tank.isPresent(); + } + + public void addBreathabilityItem(ItemStack item, BreathabilityInfo info) { + itemBreathabilityMap.put(new BreathabilityItemMapKey(item), info); + } + + public void removeBreathabilityItem(ItemStack item) { + itemBreathabilityMap.remove(new BreathabilityItemMapKey(item)); + } + + private static final class BreathabilityItemMapKey { + + public final Item item; + public final int meta; + + BreathabilityItemMapKey(ItemStack stack) { + this.item = stack.getItem(); + this.meta = stack.getMetadata(); + } + + BreathabilityItemMapKey(Item item, int meta) { + this.item = item; + this.meta = meta; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + BreathabilityItemMapKey that = (BreathabilityItemMapKey) o; + return meta == that.meta && Objects.equals(item, that.item); + } + + @Override + public int hashCode() { + return Objects.hash(item, meta); + } + } + + public static final class BreathabilityInfo { + + public final boolean suffocation; + public final boolean toxic; + public final boolean radiation; + + private final int toxicityRating; + private final int radiationRating; + + public final boolean isSealed; + + public BreathabilityInfo(boolean suffocation, boolean isSealed, int toxic, int radiation) { + this.suffocation = suffocation; + this.toxic = toxic != -1; + this.radiation = toxic != -1; + this.radiationRating = radiation; + this.toxicityRating = toxic; + this.isSealed = isSealed; + } + } +} diff --git a/src/main/java/supersymmetry/common/item/GasMask.java b/src/main/java/supersymmetry/common/item/GasMask.java new file mode 100644 index 000000000..8791a44e3 --- /dev/null +++ b/src/main/java/supersymmetry/common/item/GasMask.java @@ -0,0 +1,18 @@ +package supersymmetry.common.item; + +import gregtech.common.items.armor.NightvisionGoggles; +import net.minecraft.entity.Entity; +import net.minecraft.inventory.EntityEquipmentSlot; +import net.minecraft.item.ItemStack; + +public class GasMask extends NightvisionGoggles { + + public GasMask(int energyPerUse, long capacity, int voltageTier, EntityEquipmentSlot slot) { + super(energyPerUse, capacity, voltageTier, slot); + } + + @Override + public String getArmorTexture(ItemStack stack, Entity entity, EntityEquipmentSlot slot, String type) { + return "gregtech:textures/armor/gas_mask.png"; + } +} diff --git a/src/main/java/supersymmetry/common/item/SimpleGasMask.java b/src/main/java/supersymmetry/common/item/SimpleGasMask.java new file mode 100644 index 000000000..3219cd673 --- /dev/null +++ b/src/main/java/supersymmetry/common/item/SimpleGasMask.java @@ -0,0 +1,56 @@ +package supersymmetry.common.item; + +import gregtech.api.items.armor.ArmorMetaItem; +import gregtech.api.items.armor.IArmorLogic; +import gregtech.api.items.metaitem.stats.IItemBehaviour; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.EntityEquipmentSlot; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ActionResult; +import net.minecraft.util.EnumActionResult; +import net.minecraft.util.EnumHand; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.SoundEvent; +import net.minecraft.world.World; + +public class SimpleGasMask implements IArmorLogic { + + @Override + public EntityEquipmentSlot getEquipmentSlot(ItemStack itemStack) { + return EntityEquipmentSlot.HEAD; + } + + @Override + public String getArmorTexture(ItemStack stack, Entity entity, EntityEquipmentSlot slot, String type) { + return "gregtech:textures/armor/simple_gas_mask.json.png"; + } + + @Override + public void addToolComponents(ArmorMetaItem.ArmorMetaValueItem mvi) { + mvi.addComponents(new IItemBehaviour() { + + @Override + public ActionResult onItemRightClick(World world, EntityPlayer player, EnumHand hand) { + return onRightClick(world, player, hand); + } + }); + } + + public ActionResult onRightClick(World world, EntityPlayer player, EnumHand hand) { + if (player.getHeldItem(hand).getItem() instanceof ArmorMetaItem) { + ItemStack armor = player.getHeldItem(hand); + if (armor.getItem() instanceof ArmorMetaItem && + player.inventory.armorInventory.get(EntityEquipmentSlot.HEAD.getIndex()).isEmpty() && + !player.isSneaking()) { + player.inventory.armorInventory.set(EntityEquipmentSlot.HEAD.getIndex(), armor.copy()); + player.setHeldItem(hand, ItemStack.EMPTY); + player.playSound(new SoundEvent(new ResourceLocation("item.armor.equip_generic")), 1.0F, 1.0F); + return ActionResult.newResult(EnumActionResult.SUCCESS, armor); + } + } + + return ActionResult.newResult(EnumActionResult.PASS, player.getHeldItem(hand)); + } +} diff --git a/src/main/java/supersymmetry/common/item/SuSyMetaItems.java b/src/main/java/supersymmetry/common/item/SuSyMetaItems.java index 7828217ff..f5a0d0572 100644 --- a/src/main/java/supersymmetry/common/item/SuSyMetaItems.java +++ b/src/main/java/supersymmetry/common/item/SuSyMetaItems.java @@ -1,31 +1,39 @@ package supersymmetry.common.item; import gregtech.api.GTValues; +import gregtech.api.items.armor.ArmorMetaItem; import gregtech.api.items.metaitem.MetaItem.MetaValueItem; import gregtech.api.items.metaitem.MetaOreDictItem; import gregtech.api.items.metaitem.MetaOreDictItem.OreDictValueItem; import gregtech.api.items.metaitem.StandardMetaItem; import gregtech.api.unification.material.info.MaterialIconSet; import gregtech.api.unification.ore.OrePrefix; +import gregtech.common.ConfigHolder; import gregtech.common.items.behaviors.TooltipBehavior; import net.minecraft.client.resources.I18n; +import net.minecraft.inventory.EntityEquipmentSlot; import supersymmetry.SuSyValues; public class SuSyMetaItems { private static StandardMetaItem metaItem; + private static ArmorMetaItem.ArmorMetaValueItem> armorItem; public static MetaOreDictItem oreDictItem; public static MetaValueItem CATALYST_BED_SUPPORT_GRID; public static MetaValueItem CONVEYOR_STEAM; public static MetaValueItem PUMP_STEAM; public static MetaValueItem AIR_VENT; public static MetaValueItem TRACK_SEGMENT; + public static ArmorMetaItem.ArmorMetaValueItem SIMPLE_GAS_MASK; + public static ArmorMetaItem.ArmorMetaValueItem GAS_MASK; public static void initMetaItems() { metaItem = new StandardMetaItem(); metaItem.setRegistryName("meta_item"); oreDictItem = new MetaOreDictItem((short) 0); oreDictItem.setRegistryName("susy_oredict_item"); + armorItem = new ArmorMetaItem<>(); + armorItem.setRegistryName("susy_armor_item"); CatalystItems.init(); @@ -54,6 +62,11 @@ private static void initMetaItem() { TRACK_SEGMENT = metaItem.addItem(5, "track_segment").addComponents(new TooltipBehavior((lines) -> { lines.add(I18n.format("metaitem.track_segment.length_info")); })); + SIMPLE_GAS_MASK = armorItem.addItem(0, "simple_gas_mask") + .setArmorLogic(new SimpleGasMask()); + GAS_MASK = armorItem.addItem(1, "gas_mask").setArmorLogic(new GasMask(2, + 80_000L * (long) Math.max(1, Math.pow(1, ConfigHolder.tools.voltageTierNightVision - 1)), + ConfigHolder.tools.voltageTierNightVision, EntityEquipmentSlot.HEAD)); } private static void addTieredOredictItem (OreDictValueItem[] items, int id, int RGB, OrePrefix prefix) { diff --git a/src/main/resources/assets/gregtech/models/item/metaitems/gas_mask.json b/src/main/resources/assets/gregtech/models/item/metaitems/gas_mask.json new file mode 100644 index 000000000..3faa43cfc --- /dev/null +++ b/src/main/resources/assets/gregtech/models/item/metaitems/gas_mask.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gregtech:items/metaitems/gas_mask" + } +} diff --git a/src/main/resources/assets/gregtech/models/item/metaitems/simple_gas_mask.json b/src/main/resources/assets/gregtech/models/item/metaitems/simple_gas_mask.json new file mode 100644 index 000000000..132f1ee09 --- /dev/null +++ b/src/main/resources/assets/gregtech/models/item/metaitems/simple_gas_mask.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gregtech:items/metaitems/simple_gas_mask" + } +} diff --git a/src/main/resources/assets/gregtech/textures/armor/gas_mask.png b/src/main/resources/assets/gregtech/textures/armor/gas_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..01e40f03472e4a2434f2015730846b8bb8fbae31 GIT binary patch literal 786 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}DLQjEnx?oJHr&dI!FU|>4!>Eakt z5%+e6eZH`x$dPhIp%6pYmRN>GR_^cCFL4%Rz29Iozr$WPRi$f+X22A^r(Zn^$HE!k>gtOa6MPyeC7FvnSefu*6Cea`7{ zb^(TSvITnavJMOut^fO1{L_20wEFVnyOW>S zmpRL>civo8r2Qp5KCbQNy*i89zooWv$vo|wJvYn>x3<5v^|D=T>FjU5#h3o?`dZ%m z+$#6o#iQRBi93F5VT&`6JExYr`kq+b^$&k+PS$YWJG3Pr_{IFVnh5{3t6p8JU^=kC z^T5;JIZR6YR`#!#ea@Xd`|!kXfB(EaWzNvb7=8bH{x#ocdD8lO_D*~K+M)2*+i9ED zu8rFMvF_+s-i#MNk1}qU(63+L_OwXy^{%}2f0kuF$}oxAJJ+VD{=BT!g?+EZ*$*^r ztFF6jvT$8Cv!aezcS7>oaN{|nwyibay zt(_i%3?11nrc4bQJ}zAh4l&BB1Q}csm4a9p9!UlEGAM8fPgG(MxZaV)!Voy4Lxizm zhg*m;L&qVPB^(S#OczNpI*6z#xiToM6THg7u*g7AlZk=0MnAJ>;d<{Fo8a65Oydlm Mu6{1-oD!NC0CT%dhyVZp literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/armor/simple_gas_mask.png b/src/main/resources/assets/gregtech/textures/armor/simple_gas_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..c71bb041111094af4f6a87e3475b944da4fcc619 GIT binary patch literal 585 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}DLQjEnx?oJHr&dI!FU|?eQba4!+ zht3+zdht?nAA^Gh3()w7oGtz5*%%r=upBy`&dlIY!SwL)W<~}D zo5l|xZ!$0l%yanhBZq;3!(XAM#*BfXMP0zoPMU$?kT8e*d|sT|9i|^B+r75-{`7UP z8GOY*FPfZsbjzpNoA2g@OR*d_II%@cRiLi8yu38>yubgc=imKj+Mg?)d2e=H_W9eT z74g+?xAHyx_GYn-&E7Zmml-6EZ@hCqX8QB>-G8gwpPxOSo4zf3UEz;EH~#+rSh42y z@$KI;3{nrTzy8`@I$>+n$t{QWAL%|eeQHql+PAm&-^}@D&&aT0h5F62MhvqazpQ82 z|9{gzF?k)Mdb_%{Wqc+820?0xSN@w^2j|Vh6i{1@5nNoQ2r*y!0^8A$vXxIxsBTy j7%ILim$TEt=mYwxSE3x3WR>gzMjnHwtDnm{r-UW|8U_4c literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/items/metaitems/gas_mask.png b/src/main/resources/assets/gregtech/textures/items/metaitems/gas_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..3c8c8f4210d67b08b4e68d18c79824a266ca0759 GIT binary patch literal 378 zcmV-=0fqjFP)Px$Gf6~2R5(v#WS|f*QmCJSHU_Avsr?7J?AEPYU<=Us$gak40Z1`SBR@Ys*r1Oe zKf(=y$-xZ4FhEjL^8dGQ-@x**m*W{G%T8nv5D)fj*@^EjSZ?XfSEvRchitUE*ngM;m^jFVFkA7) z0!ZPSr{BRLZ)$1^j)l{wPcwpC;UmEgw;5+FfE22!sev>xn3|e`3}Sfs@+BxOfYJp# zO0gOMa{87RKN-Zu#lea}nm_<#08A`eT@1w)xRNr+>5QO61$6;P9as!K@6aYMkdi|I YbJL6wJ9QuN00000NkvXXu0mjf07ELFm;e9( literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/items/metaitems/simple_gas_mask.png b/src/main/resources/assets/gregtech/textures/items/metaitems/simple_gas_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..ed2f8ec98ff03ac79787f62923d2498a8ec84f8b GIT binary patch literal 195 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|YCT;XLoEE0 zQx*sq1g)5#c!hyYs{LR)zx=3jj2I@xY6)&`Km82o5C%_IKbLh*2~7YV7)Mb6 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/susy/lang/en_us.lang b/src/main/resources/assets/susy/lang/en_us.lang index cd2609443..ca4639d3c 100644 --- a/src/main/resources/assets/susy/lang/en_us.lang +++ b/src/main/resources/assets/susy/lang/en_us.lang @@ -813,3 +813,11 @@ susy.command.horde.status.no_active_invasion=Player %s has no active invasion. susy.fluid.voiding.liquid=Voidable with Dumper susy.fluid.voiding.gas=Voidable with Smoke Stack susy.fluid.voiding.flammable=Voidable with Flare Stack + +death.attack.toxic_atmo=%s's lungs were shredded +death.attack.suffocation=%s couldn't breathe + +metaitem.simple_gas_mask.name=Primitive Gas Mask +metaitem.simple_gas_mask.tooltip=Survive in oxygenless environments +metaitem.gas_mask.name=Gas Mask +metaitem.gas_mask.tooltip=Survive in toxic environments From acbf28cacfe0b7af232b304f5476c5b34715ea1b Mon Sep 17 00:00:00 2001 From: bruberu <80226372+bruberu@users.noreply.github.com> Date: Sat, 2 Mar 2024 21:56:17 -0600 Subject: [PATCH 05/55] feat: durability for simple gas masks --- .../supersymmetry/common/EventHandlers.java | 2 +- .../event/DimensionBreathabilityHandler.java | 24 ++++++++++++------- .../common/item/SimpleGasMask.java | 17 ++++++++++++- 3 files changed, 33 insertions(+), 10 deletions(-) diff --git a/src/main/java/supersymmetry/common/EventHandlers.java b/src/main/java/supersymmetry/common/EventHandlers.java index 872e3aab6..3c3d7abcd 100644 --- a/src/main/java/supersymmetry/common/EventHandlers.java +++ b/src/main/java/supersymmetry/common/EventHandlers.java @@ -159,7 +159,7 @@ public static void onWorldTick(TickEvent.WorldTickEvent event) { @SubscribeEvent public static void onPlayerTick(TickEvent.PlayerTickEvent event) { if (FMLCommonHandler.instance().getMinecraftServerInstance().getTickCounter() % 20 == 0) { - DimensionBreathabilityHandler.checkPlayer(event.player); + DimensionBreathabilityHandler.tickPlayer(event.player); } } } diff --git a/src/main/java/supersymmetry/common/event/DimensionBreathabilityHandler.java b/src/main/java/supersymmetry/common/event/DimensionBreathabilityHandler.java index 762322073..4e76f8398 100644 --- a/src/main/java/supersymmetry/common/event/DimensionBreathabilityHandler.java +++ b/src/main/java/supersymmetry/common/event/DimensionBreathabilityHandler.java @@ -40,7 +40,7 @@ public static void loadConfig() { // Nether dimensionBreathabilityMap.put(-1, new DimensionBreathabilityHandler.BreathabilityInfo(true, true, 1, 0)); // Beneath - dimensionBreathabilityMap.put(111, new DimensionBreathabilityHandler.BreathabilityInfo(true, true, 4, 0)); + dimensionBreathabilityMap.put(10, new DimensionBreathabilityHandler.BreathabilityInfo(true, true, 4, 0)); itemBreathabilityMap.clear(); @@ -50,7 +50,7 @@ public static void loadConfig() { new BreathabilityInfo(true, true, 15, 0)); } - public static void checkPlayer(EntityPlayer player) { + public static void tickPlayer(EntityPlayer player) { BreathabilityInfo dimInfo = dimensionBreathabilityMap.get(player.dimension); if (dimInfo == null) { dimInfo = defaultDimensionBreathability; @@ -62,9 +62,17 @@ public static void checkPlayer(EntityPlayer player) { hasSuffocated = false; } + public static boolean isInHazardousEnvironment(EntityPlayer player) { + BreathabilityInfo dimInfo = dimensionBreathabilityMap.get(player.dimension); + if (dimInfo == null) { + dimInfo = defaultDimensionBreathability; + } + return dimInfo.suffocation || dimInfo.toxic || dimInfo.radiation; + } + private static void suffocationCheck(EntityPlayer player) { BreathabilityInfo itemInfo = itemBreathabilityMap.get(getItemKey(player, HEAD)); - if (itemInfo != null && itemInfo.suffocation && drainOxy(player)) return; + if (itemInfo != null && itemInfo.suffocation && tickAir(player)) return; suffocate(player); } @@ -79,17 +87,17 @@ private static void toxicityCheck(EntityPlayer player, int dimRating) { if (itemInfo != null && itemInfo.toxic) { // if sealed, no need for toxicity check if (itemInfo.isSealed) { - if (drainOxy(player)) return; + if (tickAir(player)) return; suffocate(player); } else if (dimRating > itemInfo.toxicityRating) { - toxificate(player, dimRating - itemInfo.toxicityRating); + causeToxicDamage(player, dimRating - itemInfo.toxicityRating); return; } } - toxificate(player, 100); + causeToxicDamage(player, 100); } - private static void toxificate(EntityPlayer player, int mult) { + private static void causeToxicDamage(EntityPlayer player, int mult) { player.attackEntityFrom(SuSyDamageSources.getToxicAtmoDamage(), 0.03f * mult); } @@ -117,7 +125,7 @@ private static BreathabilityItemMapKey getItemKey(EntityPlayer player, EntityEqu return new BreathabilityItemMapKey(player.getItemStackFromSlot(slot)); } - private static boolean drainOxy(EntityPlayer player) { + private static boolean tickAir(EntityPlayer player) { // don't drain if we are in creative if (player.isCreative()) return true; Optional tank = player.inventory.mainInventory.stream() diff --git a/src/main/java/supersymmetry/common/item/SimpleGasMask.java b/src/main/java/supersymmetry/common/item/SimpleGasMask.java index 3219cd673..19ea8ebb3 100644 --- a/src/main/java/supersymmetry/common/item/SimpleGasMask.java +++ b/src/main/java/supersymmetry/common/item/SimpleGasMask.java @@ -4,6 +4,7 @@ import gregtech.api.items.armor.IArmorLogic; import gregtech.api.items.metaitem.stats.IItemBehaviour; +import gregtech.api.items.metaitem.stats.IItemDurabilityManager; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.EntityEquipmentSlot; @@ -14,8 +15,10 @@ import net.minecraft.util.ResourceLocation; import net.minecraft.util.SoundEvent; import net.minecraft.world.World; +import supersymmetry.common.event.DimensionBreathabilityHandler; -public class SimpleGasMask implements IArmorLogic { +public class SimpleGasMask implements IArmorLogic, IItemDurabilityManager { + double damage = 1; @Override public EntityEquipmentSlot getEquipmentSlot(ItemStack itemStack) { @@ -53,4 +56,16 @@ public ActionResult onRightClick(World world, EntityPlayer player, En return ActionResult.newResult(EnumActionResult.PASS, player.getHeldItem(hand)); } + + public void onArmorTick(World world, EntityPlayer player, ItemStack itemStack) { + if (DimensionBreathabilityHandler.isInHazardousEnvironment(player)) { + damage -= 1. / (20. * 60. * 15.); // 20 ticks per second * 60 seconds per minute * 15 minutes + } + } + + + @Override + public double getDurabilityForDisplay(ItemStack itemStack) { + return 0; + } } From ab6c2e37132016ae2cf41c2b4593064043577da8 Mon Sep 17 00:00:00 2001 From: bruberu <80226372+bruberu@users.noreply.github.com> Date: Sat, 6 Jul 2024 00:11:02 -0500 Subject: [PATCH 06/55] feat: beneath to runtimeOnly --- dependencies.gradle | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dependencies.gradle b/dependencies.gradle index 87e950295..15992d2ad 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -53,4 +53,6 @@ dependencies { implementation rfg.deobf("curse.maven:ctm-267602:2915363") // CTM 1.0.2.31 implementation rfg.deobf("curse.maven:groovyscript-687577:5507936") // GRS 1.1.1 implementation rfg.deobf("curse.maven:modularui-624243:5153413") + + runtimeOnly rfg.deobf("curse.maven:the-beneath-254629:3425551") } From f9bf76a43469bafbc26f151b101d54067e9f5f4b Mon Sep 17 00:00:00 2001 From: bruberu <80226372+bruberu@users.noreply.github.com> Date: Thu, 1 Aug 2024 22:58:30 -0500 Subject: [PATCH 07/55] refactor: pull out some interfaces --- .../api/items/IBreathingArmorLogic.java | 13 +++++ .../api/items/IBreathingItem.java | 10 ++++ .../common/item/SuSyArmorItem.java | 48 +++++++++++++++++++ .../assets/base/models/item/wrench.json | 6 +++ 4 files changed, 77 insertions(+) create mode 100644 src/main/java/supersymmetry/api/items/IBreathingArmorLogic.java create mode 100644 src/main/java/supersymmetry/api/items/IBreathingItem.java create mode 100644 src/main/java/supersymmetry/common/item/SuSyArmorItem.java create mode 100644 src/main/resources/assets/base/models/item/wrench.json diff --git a/src/main/java/supersymmetry/api/items/IBreathingArmorLogic.java b/src/main/java/supersymmetry/api/items/IBreathingArmorLogic.java new file mode 100644 index 000000000..0c71fac57 --- /dev/null +++ b/src/main/java/supersymmetry/api/items/IBreathingArmorLogic.java @@ -0,0 +1,13 @@ +package supersymmetry.api.items; + +import gregtech.api.items.armor.IArmorLogic; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; + +public interface IBreathingArmorLogic extends IArmorLogic { + + boolean isValid(ItemStack stack, int dimension); + + + boolean tryTick(ItemStack stack, EntityPlayer player, int dimension); +} diff --git a/src/main/java/supersymmetry/api/items/IBreathingItem.java b/src/main/java/supersymmetry/api/items/IBreathingItem.java new file mode 100644 index 000000000..5e9431cbc --- /dev/null +++ b/src/main/java/supersymmetry/api/items/IBreathingItem.java @@ -0,0 +1,10 @@ +package supersymmetry.api.items; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; + +public interface IBreathingItem { + boolean isValid(ItemStack stack, int dimension); + + boolean tryTick(ItemStack stack, EntityPlayer player, int dimension); +} diff --git a/src/main/java/supersymmetry/common/item/SuSyArmorItem.java b/src/main/java/supersymmetry/common/item/SuSyArmorItem.java new file mode 100644 index 000000000..9a06c9247 --- /dev/null +++ b/src/main/java/supersymmetry/common/item/SuSyArmorItem.java @@ -0,0 +1,48 @@ +package supersymmetry.common.item; + +import com.google.common.base.Preconditions; +import gregtech.api.items.armor.ArmorMetaItem; +import gregtech.api.items.armor.IArmorLogic; +import gregtech.api.items.metaitem.stats.IItemComponent; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumRarity; +import net.minecraft.item.ItemStack; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import supersymmetry.api.items.IBreathingArmorLogic; +import supersymmetry.api.items.IBreathingItem; + + +public class SuSyArmorItem extends ArmorMetaItem implements IBreathingItem { + + + @Override + public boolean isValid(ItemStack stack, int dimension) { + return getItem(stack).armorLogic.isValid(stack, dimension); + } + + @Override + public boolean tryTick(ItemStack stack, EntityPlayer player, int dimension) { + return getItem(stack).armorLogic.tryTick(stack, player, dimension); + } + + public class SuSyArmorMetaValueItem extends ArmorMetaItem.ArmorMetaValueItem { + private IBreathingArmorLogic armorLogic = null; + protected SuSyArmorMetaValueItem(int metaValue, String unlocalizedName) { + super(metaValue, unlocalizedName); + this.setMaxStackSize(1); + } + + public SuSyArmorMetaValueItem setArmorLogic(IBreathingArmorLogic armorLogic) { + Preconditions.checkNotNull(armorLogic, "Cannot set ArmorLogic to null"); + this.armorLogic = armorLogic; + this.armorLogic.addToolComponents(this); + return this; + } + } + + protected SuSyArmorMetaValueItem constructMetaValueItem(short metaValue, String unlocalizedName) { + return new SuSyArmorMetaValueItem(metaValue, unlocalizedName); + } + +} diff --git a/src/main/resources/assets/base/models/item/wrench.json b/src/main/resources/assets/base/models/item/wrench.json new file mode 100644 index 000000000..81e4314c8 --- /dev/null +++ b/src/main/resources/assets/base/models/item/wrench.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "base:items/wrench" + } +} From 979ebcf0fd4d1a72e302d23708be73ab58eb31fc Mon Sep 17 00:00:00 2001 From: bruberu <80226372+bruberu@users.noreply.github.com> Date: Fri, 6 Sep 2024 22:06:17 -0500 Subject: [PATCH 08/55] feat: make gas masks simple --- .../api/event/MobHordeEvent.java | 4 +- .../api/items/IBreathingArmorLogic.java | 4 +- .../api/items/IBreathingItem.java | 2 +- .../event/DimensionBreathabilityHandler.java | 171 +++--------------- .../common/item/SimpleGasMask.java | 61 ++++++- .../common/item/SuSyArmorItem.java | 12 +- .../common/item/SuSyMetaItems.java | 6 +- 7 files changed, 94 insertions(+), 166 deletions(-) diff --git a/src/main/java/supersymmetry/api/event/MobHordeEvent.java b/src/main/java/supersymmetry/api/event/MobHordeEvent.java index 80f2fb64a..3bc80293b 100644 --- a/src/main/java/supersymmetry/api/event/MobHordeEvent.java +++ b/src/main/java/supersymmetry/api/event/MobHordeEvent.java @@ -134,8 +134,8 @@ public boolean spawnMobWithoutPod(EntityPlayer player, Consumer uuidConsum for (int i = 0; i < 3; i++) { double angle = Math.random() * 2 * Math.PI; - int x = (int) (player.posX + 15 * Math.cos(angle)); - int z = (int) (player.posZ + 15 * Math.sin(angle)); + int x = (int) (player.posX + 30 * Math.cos(angle)); + int z = (int) (player.posZ + 30 * Math.sin(angle)); mob.setPosition(x, player.posY - 5, z); while ((!mob.getCanSpawnHere() || !mob.isNotColliding()) && mob.posY < player.posY + 12) { diff --git a/src/main/java/supersymmetry/api/items/IBreathingArmorLogic.java b/src/main/java/supersymmetry/api/items/IBreathingArmorLogic.java index 0c71fac57..6eef40951 100644 --- a/src/main/java/supersymmetry/api/items/IBreathingArmorLogic.java +++ b/src/main/java/supersymmetry/api/items/IBreathingArmorLogic.java @@ -6,8 +6,8 @@ public interface IBreathingArmorLogic extends IArmorLogic { - boolean isValid(ItemStack stack, int dimension); + boolean mayBreatheWith(ItemStack stack, int dimension); - boolean tryTick(ItemStack stack, EntityPlayer player, int dimension); + double tryTick(ItemStack stack, EntityPlayer player, int dimension); } diff --git a/src/main/java/supersymmetry/api/items/IBreathingItem.java b/src/main/java/supersymmetry/api/items/IBreathingItem.java index 5e9431cbc..b7868dd47 100644 --- a/src/main/java/supersymmetry/api/items/IBreathingItem.java +++ b/src/main/java/supersymmetry/api/items/IBreathingItem.java @@ -6,5 +6,5 @@ public interface IBreathingItem { boolean isValid(ItemStack stack, int dimension); - boolean tryTick(ItemStack stack, EntityPlayer player, int dimension); + double tryTick(ItemStack stack, EntityPlayer player, int dimension); } diff --git a/src/main/java/supersymmetry/common/event/DimensionBreathabilityHandler.java b/src/main/java/supersymmetry/common/event/DimensionBreathabilityHandler.java index 4e76f8398..fc73da4f9 100644 --- a/src/main/java/supersymmetry/common/event/DimensionBreathabilityHandler.java +++ b/src/main/java/supersymmetry/common/event/DimensionBreathabilityHandler.java @@ -7,10 +7,12 @@ import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.DamageSource; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.capability.CapabilityFluidHandler; import net.minecraftforge.fluids.capability.IFluidHandlerItem; import supersymmetry.api.util.SuSyDamageSources; +import supersymmetry.common.item.SuSyArmorItem; import java.util.HashMap; import java.util.Map; @@ -21,111 +23,23 @@ public final class DimensionBreathabilityHandler { - private static FluidStack oxyStack; private static final Map dimensionBreathabilityMap = new HashMap<>(); - private static BreathabilityInfo defaultDimensionBreathability; - private static final Map itemBreathabilityMap = new HashMap<>(); - - private static boolean hasDrainedOxy = false; - private static boolean hasSuffocated = false; private DimensionBreathabilityHandler() {} public static void loadConfig() { - oxyStack = Materials.Oxygen.getFluid(1); dimensionBreathabilityMap.clear(); - defaultDimensionBreathability = new BreathabilityInfo(false, false, -1, -1); // Nether - dimensionBreathabilityMap.put(-1, new DimensionBreathabilityHandler.BreathabilityInfo(true, true, 1, 0)); + dimensionBreathabilityMap.put(-1, new DimensionBreathabilityHandler.BreathabilityInfo(SuSyDamageSources.getToxicAtmoDamage(), 2)); // Beneath - dimensionBreathabilityMap.put(10, new DimensionBreathabilityHandler.BreathabilityInfo(true, true, 4, 0)); - - - itemBreathabilityMap.clear(); - itemBreathabilityMap.put(new BreathabilityItemMapKey(Item.getByNameOrId("susy_armor_item"), 0), - new BreathabilityInfo(true, false, 10, 0)); - itemBreathabilityMap.put(new BreathabilityItemMapKey(Item.getByNameOrId("susy_armor_item"), 1), - new BreathabilityInfo(true, true, 15, 0)); - } - - public static void tickPlayer(EntityPlayer player) { - BreathabilityInfo dimInfo = dimensionBreathabilityMap.get(player.dimension); - if (dimInfo == null) { - dimInfo = defaultDimensionBreathability; - } - if (dimInfo.suffocation) suffocationCheck(player); - if (dimInfo.toxic) toxicityCheck(player, dimInfo.toxicityRating); - if (dimInfo.radiation) radiationCheck(player, dimInfo.radiationRating); - hasDrainedOxy = false; - hasSuffocated = false; - } - - public static boolean isInHazardousEnvironment(EntityPlayer player) { - BreathabilityInfo dimInfo = dimensionBreathabilityMap.get(player.dimension); - if (dimInfo == null) { - dimInfo = defaultDimensionBreathability; - } - return dimInfo.suffocation || dimInfo.toxic || dimInfo.radiation; - } + dimensionBreathabilityMap.put(10, new DimensionBreathabilityHandler.BreathabilityInfo(SuSyDamageSources.getSuffocationDamage(), 1)); - private static void suffocationCheck(EntityPlayer player) { - BreathabilityInfo itemInfo = itemBreathabilityMap.get(getItemKey(player, HEAD)); - if (itemInfo != null && itemInfo.suffocation && tickAir(player)) return; - suffocate(player); } - private static void suffocate(EntityPlayer player) { - if (hasSuffocated) return; - player.attackEntityFrom(SuSyDamageSources.getSuffocationDamage(), 2); - hasSuffocated = true; - } - - private static void toxicityCheck(EntityPlayer player, int dimRating) { - BreathabilityInfo itemInfo = itemBreathabilityMap.get(getItemKey(player, HEAD)); - if (itemInfo != null && itemInfo.toxic) { - // if sealed, no need for toxicity check - if (itemInfo.isSealed) { - if (tickAir(player)) return; - suffocate(player); - } else if (dimRating > itemInfo.toxicityRating) { - causeToxicDamage(player, dimRating - itemInfo.toxicityRating); - return; - } - } - causeToxicDamage(player, 100); - } - - private static void causeToxicDamage(EntityPlayer player, int mult) { - player.attackEntityFrom(SuSyDamageSources.getToxicAtmoDamage(), 0.03f * mult); - } - - private static void radiationCheck(EntityPlayer player, int dimRating) { - // natural radiation protection of 20 - int ratingSum = 20; - - BreathabilityInfo itemInfo = itemBreathabilityMap.get(getItemKey(player, HEAD)); - if (itemInfo != null && itemInfo.radiation) ratingSum += itemInfo.radiationRating; - itemInfo = itemBreathabilityMap.get(getItemKey(player, CHEST)); - if (itemInfo != null && itemInfo.radiation) ratingSum += itemInfo.radiationRating; - itemInfo = itemBreathabilityMap.get(getItemKey(player, LEGS)); - if (itemInfo != null && itemInfo.radiation) ratingSum += itemInfo.radiationRating; - itemInfo = itemBreathabilityMap.get(getItemKey(player, FEET)); - if (itemInfo != null && itemInfo.radiation) ratingSum += itemInfo.radiationRating; - - if (dimRating > ratingSum) radiate(player, dimRating - ratingSum); - } - private static void radiate(EntityPlayer player, int mult) { - player.attackEntityFrom(DamageSources.getRadioactiveDamage(), 0.01f * mult); - } - - private static BreathabilityItemMapKey getItemKey(EntityPlayer player, EntityEquipmentSlot slot) { - return new BreathabilityItemMapKey(player.getItemStackFromSlot(slot)); - } - - private static boolean tickAir(EntityPlayer player) { + public static boolean tickAir(EntityPlayer player, FluidStack oxyStack) { // don't drain if we are in creative if (player.isCreative()) return true; Optional tank = player.inventory.mainInventory.stream() @@ -135,69 +49,40 @@ private static boolean tickAir(EntityPlayer player) { FluidStack drain = a.drain(oxyStack, false); return drain != null && drain.amount > 0; }).findFirst(); - // don't drain if we've already drained - if (!hasDrainedOxy) { - tank.ifPresent(a -> a.drain(oxyStack, true)); - hasDrainedOxy = true; - } return tank.isPresent(); } - public void addBreathabilityItem(ItemStack item, BreathabilityInfo info) { - itemBreathabilityMap.put(new BreathabilityItemMapKey(item), info); - } - - public void removeBreathabilityItem(ItemStack item) { - itemBreathabilityMap.remove(new BreathabilityItemMapKey(item)); + public static boolean isInHazardousEnvironment(EntityPlayer player) { + return dimensionBreathabilityMap.containsKey(player.dimension); } - private static final class BreathabilityItemMapKey { - - public final Item item; - public final int meta; - - BreathabilityItemMapKey(ItemStack stack) { - this.item = stack.getItem(); - this.meta = stack.getMetadata(); - } - - BreathabilityItemMapKey(Item item, int meta) { - this.item = item; - this.meta = meta; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - BreathabilityItemMapKey that = (BreathabilityItemMapKey) o; - return meta == that.meta && Objects.equals(item, that.item); - } - - @Override - public int hashCode() { - return Objects.hash(item, meta); + public static void tickPlayer(EntityPlayer player) { + if (isInHazardousEnvironment(player)) { + if (player.getItemStackFromSlot(HEAD).getItem() instanceof SuSyArmorItem item) { + if (item.isValid(player.getItemStackFromSlot(HEAD), player.dimension)) { + double remainingDamage = item.tryTick(player.getItemStackFromSlot(HEAD), player, player.dimension); + if (remainingDamage > 0) { + player.getItemStackFromSlot(HEAD).damageItem((int) remainingDamage, player); + } + return; + } + } + dimensionBreathabilityMap.get(player.dimension).damagePlayer(player); } } - public static final class BreathabilityInfo { - - public final boolean suffocation; - public final boolean toxic; - public final boolean radiation; - private final int toxicityRating; - private final int radiationRating; + public static final class BreathabilityInfo { + public DamageSource damageType; + public double defaultDamage; - public final boolean isSealed; + public BreathabilityInfo(DamageSource damageType, double defaultDamage) { + this.damageType = damageType; + this.defaultDamage = defaultDamage; + } - public BreathabilityInfo(boolean suffocation, boolean isSealed, int toxic, int radiation) { - this.suffocation = suffocation; - this.toxic = toxic != -1; - this.radiation = toxic != -1; - this.radiationRating = radiation; - this.toxicityRating = toxic; - this.isSealed = isSealed; + public void damagePlayer(EntityPlayer player) { + player.attackEntityFrom(damageType, (float) defaultDamage); } } } diff --git a/src/main/java/supersymmetry/common/item/SimpleGasMask.java b/src/main/java/supersymmetry/common/item/SimpleGasMask.java index 19ea8ebb3..6bb363cbc 100644 --- a/src/main/java/supersymmetry/common/item/SimpleGasMask.java +++ b/src/main/java/supersymmetry/common/item/SimpleGasMask.java @@ -1,7 +1,6 @@ package supersymmetry.common.item; import gregtech.api.items.armor.ArmorMetaItem; -import gregtech.api.items.armor.IArmorLogic; import gregtech.api.items.metaitem.stats.IItemBehaviour; import gregtech.api.items.metaitem.stats.IItemDurabilityManager; @@ -9,17 +8,18 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ActionResult; import net.minecraft.util.EnumActionResult; import net.minecraft.util.EnumHand; import net.minecraft.util.ResourceLocation; import net.minecraft.util.SoundEvent; import net.minecraft.world.World; +import org.jetbrains.annotations.NotNull; +import supersymmetry.api.items.IBreathingArmorLogic; import supersymmetry.common.event.DimensionBreathabilityHandler; -public class SimpleGasMask implements IArmorLogic, IItemDurabilityManager { - double damage = 1; - +public class SimpleGasMask implements IBreathingArmorLogic, IItemDurabilityManager { @Override public EntityEquipmentSlot getEquipmentSlot(ItemStack itemStack) { return EntityEquipmentSlot.HEAD; @@ -57,15 +57,58 @@ public ActionResult onRightClick(World world, EntityPlayer player, En return ActionResult.newResult(EnumActionResult.PASS, player.getHeldItem(hand)); } - public void onArmorTick(World world, EntityPlayer player, ItemStack itemStack) { - if (DimensionBreathabilityHandler.isInHazardousEnvironment(player)) { - damage -= 1. / (20. * 60. * 15.); // 20 ticks per second * 60 seconds per minute * 15 minutes - } - } @Override public double getDurabilityForDisplay(ItemStack itemStack) { + return 1 - getDamage(itemStack); + } + + @Override + public boolean canBreakWithDamage(ItemStack stack) { + return getDamage(stack) >= 1; + } + + @Override + public boolean mayBreatheWith(ItemStack stack, int dimension) { + return getDamage(stack) < 1; + } + + + @Override + public boolean isValidArmor(ItemStack itemStack, Entity entity, EntityEquipmentSlot equipmentSlot) { + return true; + } + + @Override + public double tryTick(ItemStack stack, EntityPlayer player, int dimension) { + if (DimensionBreathabilityHandler.isInHazardousEnvironment(player)) { + changeDamage(stack, 1. / 30.); // It's actually ticked every overall second, not just every tick. + } + if (getDamage(stack) >= 1) { + player.renderBrokenItemStack(stack); + stack.shrink(1); + player.setItemStackToSlot(EntityEquipmentSlot.HEAD, ItemStack.EMPTY); + } return 0; } + + private double getDamage(ItemStack stack) { + if (stack.getTagCompound() == null) { + stack.setTagCompound(new NBTTagCompound()); + } + if (!stack.getTagCompound().hasKey("damage")) { + stack.getTagCompound().setDouble("damage", 0); + } + return stack.getTagCompound().getDouble("damage"); + } + + private void changeDamage(ItemStack stack, double damageChange) { + NBTTagCompound compound = stack.getTagCompound(); + compound.setDouble("damage", getDamage(stack) + damageChange); + stack.setTagCompound(compound); + } + + + } diff --git a/src/main/java/supersymmetry/common/item/SuSyArmorItem.java b/src/main/java/supersymmetry/common/item/SuSyArmorItem.java index 9a06c9247..347ea7601 100644 --- a/src/main/java/supersymmetry/common/item/SuSyArmorItem.java +++ b/src/main/java/supersymmetry/common/item/SuSyArmorItem.java @@ -5,10 +5,8 @@ import gregtech.api.items.armor.IArmorLogic; import gregtech.api.items.metaitem.stats.IItemComponent; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemStack; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import supersymmetry.api.items.IBreathingArmorLogic; import supersymmetry.api.items.IBreathingItem; @@ -18,11 +16,11 @@ public class SuSyArmorItem extends ArmorMetaItem.ArmorMetaValueItem> armorItem; + private static SuSyArmorItem armorItem; public static MetaOreDictItem oreDictItem; public static MetaValueItem CATALYST_BED_SUPPORT_GRID; public static MetaValueItem CONVEYOR_STEAM; public static MetaValueItem PUMP_STEAM; public static MetaValueItem AIR_VENT; public static MetaValueItem TRACK_SEGMENT; - public static ArmorMetaItem.ArmorMetaValueItem SIMPLE_GAS_MASK; + public static SuSyArmorItem.SuSyArmorMetaValueItem SIMPLE_GAS_MASK; public static ArmorMetaItem.ArmorMetaValueItem GAS_MASK; public static void initMetaItems() { @@ -32,7 +32,7 @@ public static void initMetaItems() { metaItem.setRegistryName("meta_item"); oreDictItem = new MetaOreDictItem((short) 0); oreDictItem.setRegistryName("susy_oredict_item"); - armorItem = new ArmorMetaItem<>(); + armorItem = new SuSyArmorItem(); armorItem.setRegistryName("susy_armor_item"); CatalystItems.init(); From c41f897949da03093b3631d4cc7f08899d3b8837 Mon Sep 17 00:00:00 2001 From: bruberu <80226372+bruberu@users.noreply.github.com> Date: Thu, 12 Sep 2024 20:24:12 -0500 Subject: [PATCH 09/55] feat: the armors! --- .../api/items/IBreathingArmorLogic.java | 22 +++- .../api/items/IBreathingItem.java | 4 +- .../event/DimensionBreathabilityHandler.java | 12 +- .../supersymmetry/common/item/GasMask.java | 18 --- .../common/item/SuSyArmorItem.java | 8 +- .../common/item/SuSyMetaItems.java | 43 ++++++- .../armor/AdvancedBreathingApparatus.java | 114 ++++++++++++++++++ .../common/item/armor/BreathingApparatus.java | 93 ++++++++++++++ .../item/{ => armor}/SimpleGasMask.java | 10 +- 9 files changed, 283 insertions(+), 41 deletions(-) delete mode 100644 src/main/java/supersymmetry/common/item/GasMask.java create mode 100644 src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java create mode 100644 src/main/java/supersymmetry/common/item/armor/BreathingApparatus.java rename src/main/java/supersymmetry/common/item/{ => armor}/SimpleGasMask.java (91%) diff --git a/src/main/java/supersymmetry/api/items/IBreathingArmorLogic.java b/src/main/java/supersymmetry/api/items/IBreathingArmorLogic.java index 6eef40951..ddf8782bc 100644 --- a/src/main/java/supersymmetry/api/items/IBreathingArmorLogic.java +++ b/src/main/java/supersymmetry/api/items/IBreathingArmorLogic.java @@ -1,13 +1,29 @@ package supersymmetry.api.items; import gregtech.api.items.armor.IArmorLogic; +import gregtech.api.items.armor.ISpecialArmorLogic; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.item.ItemStack; +import net.minecraft.util.DamageSource; +import net.minecraftforge.common.ISpecialArmor; +import org.jetbrains.annotations.NotNull; -public interface IBreathingArmorLogic extends IArmorLogic { +public interface IBreathingArmorLogic extends ISpecialArmorLogic { - boolean mayBreatheWith(ItemStack stack, int dimension); + boolean mayBreatheWith(ItemStack stack, EntityPlayer player); - double tryTick(ItemStack stack, EntityPlayer player, int dimension); + double tryTick(ItemStack stack, EntityPlayer player); + + default ISpecialArmor.ArmorProperties getProperties(EntityLivingBase player, @NotNull ItemStack armor, DamageSource source, double damage, + EntityEquipmentSlot equipmentSlot) { + return new ISpecialArmor.ArmorProperties(0, 0, (int) player.getMaxHealth()); + } + + default int getArmorDisplay(EntityPlayer player, @NotNull ItemStack armor, int slot) { + return 0; + } + } diff --git a/src/main/java/supersymmetry/api/items/IBreathingItem.java b/src/main/java/supersymmetry/api/items/IBreathingItem.java index b7868dd47..2b4872387 100644 --- a/src/main/java/supersymmetry/api/items/IBreathingItem.java +++ b/src/main/java/supersymmetry/api/items/IBreathingItem.java @@ -4,7 +4,7 @@ import net.minecraft.item.ItemStack; public interface IBreathingItem { - boolean isValid(ItemStack stack, int dimension); + boolean isValid(ItemStack stack, EntityPlayer player); - double tryTick(ItemStack stack, EntityPlayer player, int dimension); + double tryTick(ItemStack stack, EntityPlayer player); } diff --git a/src/main/java/supersymmetry/common/event/DimensionBreathabilityHandler.java b/src/main/java/supersymmetry/common/event/DimensionBreathabilityHandler.java index fc73da4f9..cab090c1e 100644 --- a/src/main/java/supersymmetry/common/event/DimensionBreathabilityHandler.java +++ b/src/main/java/supersymmetry/common/event/DimensionBreathabilityHandler.java @@ -59,10 +59,10 @@ public static boolean isInHazardousEnvironment(EntityPlayer player) { public static void tickPlayer(EntityPlayer player) { if (isInHazardousEnvironment(player)) { if (player.getItemStackFromSlot(HEAD).getItem() instanceof SuSyArmorItem item) { - if (item.isValid(player.getItemStackFromSlot(HEAD), player.dimension)) { - double remainingDamage = item.tryTick(player.getItemStackFromSlot(HEAD), player, player.dimension); - if (remainingDamage > 0) { - player.getItemStackFromSlot(HEAD).damageItem((int) remainingDamage, player); + if (item.isValid(player.getItemStackFromSlot(HEAD), player)) { + double damageAbsorbed = item.tryTick(player.getItemStackFromSlot(HEAD), player); + if (damageAbsorbed > 0) { + dimensionBreathabilityMap.get(player.dimension).damagePlayer(player, damageAbsorbed); } return; } @@ -84,5 +84,9 @@ public BreathabilityInfo(DamageSource damageType, double defaultDamage) { public void damagePlayer(EntityPlayer player) { player.attackEntityFrom(damageType, (float) defaultDamage); } + public void damagePlayer(EntityPlayer player, double amount) { + player.attackEntityFrom(damageType, (float) defaultDamage - (float) amount); + } + } } diff --git a/src/main/java/supersymmetry/common/item/GasMask.java b/src/main/java/supersymmetry/common/item/GasMask.java deleted file mode 100644 index 8791a44e3..000000000 --- a/src/main/java/supersymmetry/common/item/GasMask.java +++ /dev/null @@ -1,18 +0,0 @@ -package supersymmetry.common.item; - -import gregtech.common.items.armor.NightvisionGoggles; -import net.minecraft.entity.Entity; -import net.minecraft.inventory.EntityEquipmentSlot; -import net.minecraft.item.ItemStack; - -public class GasMask extends NightvisionGoggles { - - public GasMask(int energyPerUse, long capacity, int voltageTier, EntityEquipmentSlot slot) { - super(energyPerUse, capacity, voltageTier, slot); - } - - @Override - public String getArmorTexture(ItemStack stack, Entity entity, EntityEquipmentSlot slot, String type) { - return "gregtech:textures/armor/gas_mask.png"; - } -} diff --git a/src/main/java/supersymmetry/common/item/SuSyArmorItem.java b/src/main/java/supersymmetry/common/item/SuSyArmorItem.java index 347ea7601..99af7ed4b 100644 --- a/src/main/java/supersymmetry/common/item/SuSyArmorItem.java +++ b/src/main/java/supersymmetry/common/item/SuSyArmorItem.java @@ -15,13 +15,13 @@ public class SuSyArmorItem extends ArmorMetaItem.ArmorMetaValueItem { diff --git a/src/main/java/supersymmetry/common/item/SuSyMetaItems.java b/src/main/java/supersymmetry/common/item/SuSyMetaItems.java index 1d593ce29..523e3ed94 100644 --- a/src/main/java/supersymmetry/common/item/SuSyMetaItems.java +++ b/src/main/java/supersymmetry/common/item/SuSyMetaItems.java @@ -8,11 +8,15 @@ import gregtech.api.items.metaitem.StandardMetaItem; import gregtech.api.unification.material.info.MaterialIconSet; import gregtech.api.unification.ore.OrePrefix; -import gregtech.common.ConfigHolder; import gregtech.common.items.behaviors.TooltipBehavior; import net.minecraft.client.resources.I18n; import net.minecraft.inventory.EntityEquipmentSlot; import supersymmetry.SuSyValues; +import supersymmetry.common.item.armor.AdvancedBreathingApparatus; +import supersymmetry.common.item.armor.BreathingApparatus; +import supersymmetry.common.item.armor.SimpleGasMask; + +import static net.minecraft.inventory.EntityEquipmentSlot.*; public class SuSyMetaItems { @@ -26,6 +30,22 @@ public class SuSyMetaItems { public static MetaValueItem TRACK_SEGMENT; public static SuSyArmorItem.SuSyArmorMetaValueItem SIMPLE_GAS_MASK; public static ArmorMetaItem.ArmorMetaValueItem GAS_MASK; + public static ArmorMetaItem.ArmorMetaValueItem GAS_TANK; + public static ArmorMetaItem.ArmorMetaValueItem ASBESTOS_MASK; + public static ArmorMetaItem.ArmorMetaValueItem ASBESTOS_CHESTPLATE; + public static ArmorMetaItem.ArmorMetaValueItem ASBESTOS_LEGGINGS; + public static ArmorMetaItem.ArmorMetaValueItem ASBESTOS_BOOTS; + public static ArmorMetaItem.ArmorMetaValueItem REBREATHER_TANK; + public static ArmorMetaItem.ArmorMetaValueItem REFLECTIVE_MASK; + public static ArmorMetaItem.ArmorMetaValueItem REFLECTIVE_CHESTPLATE; + public static ArmorMetaItem.ArmorMetaValueItem REFLECTIVE_LEGGINGS; + public static ArmorMetaItem.ArmorMetaValueItem REFLECTIVE_BOOTS; + public static ArmorMetaItem.ArmorMetaValueItem FILTERED_TANK; + public static ArmorMetaItem.ArmorMetaValueItem NOMEX_MASK; + public static ArmorMetaItem.ArmorMetaValueItem NOMEX_CHESTPLATE; + public static ArmorMetaItem.ArmorMetaValueItem NOMEX_LEGGINGS; + public static ArmorMetaItem.ArmorMetaValueItem NOMEX_BOOTS; + public static void initMetaItems() { metaItem = new StandardMetaItem(); @@ -64,12 +84,25 @@ private static void initMetaItem() { })); SIMPLE_GAS_MASK = armorItem.addItem(0, "simple_gas_mask") .setArmorLogic(new SimpleGasMask()); - GAS_MASK = armorItem.addItem(1, "gas_mask").setArmorLogic(new GasMask(2, - 80_000L * (long) Math.max(1, Math.pow(1, ConfigHolder.tools.voltageTierNightVision - 1)), - ConfigHolder.tools.voltageTierNightVision, EntityEquipmentSlot.HEAD)); + GAS_MASK = armorItem.addItem(1, "gas_mask").setArmorLogic(new BreathingApparatus(HEAD)); + GAS_TANK = armorItem.addItem(2, "gas_tank").setArmorLogic(new BreathingApparatus(CHEST)); + ASBESTOS_MASK = armorItem.addItem(3, "asbestos_mask").setArmorLogic(new AdvancedBreathingApparatus(HEAD, 1, "asbestos", 0)); + ASBESTOS_CHESTPLATE = armorItem.addItem(4, "asbestos_chestplate").setArmorLogic(new AdvancedBreathingApparatus(CHEST, 1, "asbestos", 0)); + ASBESTOS_LEGGINGS = armorItem.addItem(5, "asbestos_leggings").setArmorLogic(new AdvancedBreathingApparatus(LEGS, 1, "asbestos", 0)); + ASBESTOS_BOOTS = armorItem.addItem(6, "asbestos_boots").setArmorLogic(new AdvancedBreathingApparatus(FEET, 1, "asbestos", 0)); + REBREATHER_TANK = armorItem.addItem(7, "rebreather_tank").setArmorLogic(new AdvancedBreathingApparatus(CHEST, 1, "asbestos", 0)); + REFLECTIVE_MASK = armorItem.addItem(8, "reflective_mask").setArmorLogic(new AdvancedBreathingApparatus(HEAD, 5, "reflective", 0)); + REFLECTIVE_CHESTPLATE = armorItem.addItem(9, "reflective_chestplate").setArmorLogic(new AdvancedBreathingApparatus(CHEST, 5, "reflective", 0)); + REFLECTIVE_LEGGINGS = armorItem.addItem(10, "reflective_leggings").setArmorLogic(new AdvancedBreathingApparatus(LEGS, 5, "reflective", 0)); + REFLECTIVE_BOOTS = armorItem.addItem(11, "reflective_boots").setArmorLogic(new AdvancedBreathingApparatus(FEET, 5, "reflective", 0)); + FILTERED_TANK = armorItem.addItem(12, "filtered_tank").setArmorLogic(new AdvancedBreathingApparatus(CHEST, 5, "filtered", 0)); + NOMEX_MASK = armorItem.addItem(13, "nomex_mask").setArmorLogic(new AdvancedBreathingApparatus(HEAD, 0, "nomex", 1)); + NOMEX_CHESTPLATE = armorItem.addItem(14, "nomex_chestplate").setArmorLogic(new AdvancedBreathingApparatus(CHEST, 0, "nomex", 1)); + NOMEX_LEGGINGS = armorItem.addItem(15, "nomex_leggings").setArmorLogic(new AdvancedBreathingApparatus(LEGS, 0, "nomex", 1)); + NOMEX_BOOTS = armorItem.addItem(16, "nomex_boots").setArmorLogic(new AdvancedBreathingApparatus(FEET, 0, "nomex", 1)); } - private static void addTieredOredictItem (OreDictValueItem[] items, int id, int RGB, OrePrefix prefix) { + private static void addTieredOredictItem(OreDictValueItem[] items, int id, int RGB, OrePrefix prefix) { for (int i = 0; i < items.length; i++) { items[i] = oreDictItem.addOreDictItem(id + i, SuSyValues.TierMaterials[i + 1].toString(), RGB, MaterialIconSet.DULL, prefix, I18n.format("gregtech.universal.catalysts.tooltip.tier", GTValues.V[i], GTValues.VN[i])); diff --git a/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java b/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java new file mode 100644 index 000000000..f59f2ed01 --- /dev/null +++ b/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java @@ -0,0 +1,114 @@ +package supersymmetry.common.item.armor; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.EntityEquipmentSlot; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import supersymmetry.common.event.DimensionBreathabilityHandler; +import supersymmetry.common.item.SuSyArmorItem; + +import static net.minecraft.inventory.EntityEquipmentSlot.*; + +public class AdvancedBreathingApparatus extends BreathingApparatus { + private final double hoursOfLife; + private final String name; + private final int tier; + + public AdvancedBreathingApparatus(EntityEquipmentSlot slot, double hoursOfLife, String name, int tier) { + super(slot); + this.hoursOfLife = hoursOfLife; + this.name = name; + this.tier = tier; + } + + @Override + public String getArmorTexture(ItemStack stack, Entity entity, EntityEquipmentSlot slot, String type) { + if (this.SLOT == LEGS) { + return "gregtech:textures/armor/" + name + "/legs.png"; + } + return "gregtech:textures/armor/" + name + "/not_legs.png"; + } + + @Override + public double tryTick(ItemStack stack, EntityPlayer player) { + if (!DimensionBreathabilityHandler.isInHazardousEnvironment(player)) { + return 0; + } + this.handleDamage(stack, player); + + ItemStack chest = player.getItemStackFromSlot(CHEST); + if (chest.getItem() instanceof SuSyArmorItem item) { + if (item.getItem(chest).getArmorLogic() instanceof AdvancedBreathingApparatus tank && tank.tier == tier) { + tank.changeOxygen(stack, 1.); + tank.handleDamage(stack, player); + + int piecesCount = 0; + ItemStack leggings = player.getItemStackFromSlot(LEGS); + if (leggings.getItem() instanceof SuSyArmorItem item2) { + if (item2.getItem(leggings).getArmorLogic() instanceof AdvancedBreathingApparatus legLogic) { + legLogic.handleDamage(stack, player); + piecesCount++; + } + } + + ItemStack boots = player.getItemStackFromSlot(FEET); + if (boots.getItem() instanceof SuSyArmorItem item2) { + if (item2.getItem(boots).getArmorLogic() instanceof AdvancedBreathingApparatus bootLogic) { + bootLogic.handleDamage(stack, player); + piecesCount++; + } + } + switch (piecesCount) { + case 0: + return 0.5; + case 1: + return 1; + case 2: + return 2; + } + } + } + return 0.0625; + } + + + private double getDamage(ItemStack stack) { + if (stack.getTagCompound() == null) { + stack.setTagCompound(new NBTTagCompound()); + } + if (!stack.getTagCompound().hasKey("damage")) { + stack.getTagCompound().setDouble("damage", 0); + } + return stack.getTagCompound().getDouble("damage"); + } + + private void changeDamage(ItemStack stack, double damageChange) { + NBTTagCompound compound = stack.getTagCompound(); + compound.setDouble("damage", getDamage(stack) + damageChange); + stack.setTagCompound(compound); + } + + + void handleDamage(ItemStack stack, EntityPlayer player) { + if (hoursOfLife == 0) { + return; // No damage + } + double amount = (1. / (60. * 60. * hoursOfLife)); + changeDamage(stack, amount); // It's actually ticked every overall second, not just every tick. + if (getDamage(stack) >= 1) { + player.renderBrokenItemStack(stack); + stack.shrink(1); + player.setItemStackToSlot(HEAD, ItemStack.EMPTY); + } + } + + @Override + public double getDurabilityForDisplay(ItemStack itemStack) { + if (SLOT == CHEST) { + return 1 - (getOxygen(itemStack) / getMaxOxygen(itemStack)); + } else { + return 1 - getDamage(itemStack); + } + } +} diff --git a/src/main/java/supersymmetry/common/item/armor/BreathingApparatus.java b/src/main/java/supersymmetry/common/item/armor/BreathingApparatus.java new file mode 100644 index 000000000..c7be9025f --- /dev/null +++ b/src/main/java/supersymmetry/common/item/armor/BreathingApparatus.java @@ -0,0 +1,93 @@ +package supersymmetry.common.item.armor; + +import gregtech.api.items.metaitem.stats.IItemDurabilityManager; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.EntityEquipmentSlot; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import supersymmetry.api.items.IBreathingArmorLogic; +import supersymmetry.common.event.DimensionBreathabilityHandler; +import supersymmetry.common.item.SuSyArmorItem; + +public class BreathingApparatus implements IBreathingArmorLogic, IItemDurabilityManager { + protected final EntityEquipmentSlot SLOT; + + public BreathingApparatus(EntityEquipmentSlot slot) { + SLOT = slot; + } + + @Override + public EntityEquipmentSlot getEquipmentSlot(ItemStack itemStack) { + return SLOT; + } + + @Override + public String getArmorTexture(ItemStack stack, Entity entity, EntityEquipmentSlot slot, String type) { + return "gregtech:textures/armor/gas_mask/not_legs.png"; + } + + @Override + public boolean mayBreatheWith(ItemStack stack, EntityPlayer player) { + ItemStack chest = player.getItemStackFromSlot(EntityEquipmentSlot.CHEST); + if (chest.getItem() instanceof SuSyArmorItem item) { + if (item.getItem(chest).getArmorLogic() instanceof BreathingApparatus tank) { + return tank.getOxygen(stack) < tank.getMaxOxygen(stack); + } + } + return false; + } + + @Override + public double tryTick(ItemStack stack, EntityPlayer player) { + if (!DimensionBreathabilityHandler.isInHazardousEnvironment(player)) { + return 0; + } + + ItemStack chest = player.getItemStackFromSlot(EntityEquipmentSlot.CHEST); + if (chest.getItem() instanceof SuSyArmorItem item) { + if (item.getItem(chest).getArmorLogic() instanceof BreathingApparatus tank) { + tank.changeOxygen(stack, 1); + return 0; + } + } + return 0.5; + } + + + @Override + public double getDurabilityForDisplay(ItemStack itemStack) { + if (SLOT == EntityEquipmentSlot.CHEST) { + return 1 - (getOxygen(itemStack) / getMaxOxygen(itemStack)); + } else { + return 1; + } + } + + double getOxygen(ItemStack stack) { + if (stack.getTagCompound() == null) { + stack.setTagCompound(new NBTTagCompound()); + } + if (!stack.getTagCompound().hasKey("oxygen")) { + stack.getTagCompound().setDouble("oxygen", 0); + } + return stack.getTagCompound().getDouble("oxygen"); + } + + double getMaxOxygen(ItemStack stack) { + if (stack.getTagCompound() == null) { + stack.setTagCompound(new NBTTagCompound()); + } + if (!stack.getTagCompound().hasKey("maxOxygen")) { + stack.getTagCompound().setDouble("maxOxygen", 1000); + } + return stack.getTagCompound().getDouble("oxygen"); + } + + void changeOxygen(ItemStack stack, double oxygenChange) { + NBTTagCompound compound = stack.getTagCompound(); + compound.setDouble("oxygen", getOxygen(stack) + oxygenChange); + stack.setTagCompound(compound); + } + +} diff --git a/src/main/java/supersymmetry/common/item/SimpleGasMask.java b/src/main/java/supersymmetry/common/item/armor/SimpleGasMask.java similarity index 91% rename from src/main/java/supersymmetry/common/item/SimpleGasMask.java rename to src/main/java/supersymmetry/common/item/armor/SimpleGasMask.java index 6bb363cbc..d5f3601c5 100644 --- a/src/main/java/supersymmetry/common/item/SimpleGasMask.java +++ b/src/main/java/supersymmetry/common/item/armor/SimpleGasMask.java @@ -1,4 +1,4 @@ -package supersymmetry.common.item; +package supersymmetry.common.item.armor; import gregtech.api.items.armor.ArmorMetaItem; import gregtech.api.items.metaitem.stats.IItemBehaviour; @@ -15,7 +15,6 @@ import net.minecraft.util.ResourceLocation; import net.minecraft.util.SoundEvent; import net.minecraft.world.World; -import org.jetbrains.annotations.NotNull; import supersymmetry.api.items.IBreathingArmorLogic; import supersymmetry.common.event.DimensionBreathabilityHandler; @@ -70,7 +69,7 @@ public boolean canBreakWithDamage(ItemStack stack) { } @Override - public boolean mayBreatheWith(ItemStack stack, int dimension) { + public boolean mayBreatheWith(ItemStack stack, EntityPlayer player) { return getDamage(stack) < 1; } @@ -81,9 +80,9 @@ public boolean isValidArmor(ItemStack itemStack, Entity entity, EntityEquipmentS } @Override - public double tryTick(ItemStack stack, EntityPlayer player, int dimension) { + public double tryTick(ItemStack stack, EntityPlayer player) { if (DimensionBreathabilityHandler.isInHazardousEnvironment(player)) { - changeDamage(stack, 1. / 30.); // It's actually ticked every overall second, not just every tick. + changeDamage(stack, 1. / (60. * 6.)); // It's actually ticked every overall second, not just every tick. } if (getDamage(stack) >= 1) { player.renderBrokenItemStack(stack); @@ -111,4 +110,5 @@ private void changeDamage(ItemStack stack, double damageChange) { + } From d74a75ed5b1f90c2323afd1fdffeac3849840ee8 Mon Sep 17 00:00:00 2001 From: bruberu <80226372+bruberu@users.noreply.github.com> Date: Sun, 15 Sep 2024 10:29:35 -0500 Subject: [PATCH 10/55] fix: little thing --- .../supersymmetry/common/item/armor/BreathingApparatus.java | 6 +++--- .../java/supersymmetry/common/item/armor/SimpleGasMask.java | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/supersymmetry/common/item/armor/BreathingApparatus.java b/src/main/java/supersymmetry/common/item/armor/BreathingApparatus.java index c7be9025f..5e65fb792 100644 --- a/src/main/java/supersymmetry/common/item/armor/BreathingApparatus.java +++ b/src/main/java/supersymmetry/common/item/armor/BreathingApparatus.java @@ -47,7 +47,7 @@ public double tryTick(ItemStack stack, EntityPlayer player) { ItemStack chest = player.getItemStackFromSlot(EntityEquipmentSlot.CHEST); if (chest.getItem() instanceof SuSyArmorItem item) { if (item.getItem(chest).getArmorLogic() instanceof BreathingApparatus tank) { - tank.changeOxygen(stack, 1); + tank.changeOxygen(stack, -1); return 0; } } @@ -69,7 +69,7 @@ public double getDurabilityForDisplay(ItemStack itemStack) { stack.setTagCompound(new NBTTagCompound()); } if (!stack.getTagCompound().hasKey("oxygen")) { - stack.getTagCompound().setDouble("oxygen", 0); + stack.getTagCompound().setDouble("oxygen", getMaxOxygen(stack)); } return stack.getTagCompound().getDouble("oxygen"); } @@ -81,7 +81,7 @@ public double getDurabilityForDisplay(ItemStack itemStack) { if (!stack.getTagCompound().hasKey("maxOxygen")) { stack.getTagCompound().setDouble("maxOxygen", 1000); } - return stack.getTagCompound().getDouble("oxygen"); + return stack.getTagCompound().getDouble("maxOxygen"); } void changeOxygen(ItemStack stack, double oxygenChange) { diff --git a/src/main/java/supersymmetry/common/item/armor/SimpleGasMask.java b/src/main/java/supersymmetry/common/item/armor/SimpleGasMask.java index d5f3601c5..e925714fe 100644 --- a/src/main/java/supersymmetry/common/item/armor/SimpleGasMask.java +++ b/src/main/java/supersymmetry/common/item/armor/SimpleGasMask.java @@ -26,7 +26,7 @@ public EntityEquipmentSlot getEquipmentSlot(ItemStack itemStack) { @Override public String getArmorTexture(ItemStack stack, Entity entity, EntityEquipmentSlot slot, String type) { - return "gregtech:textures/armor/simple_gas_mask.json.png"; + return "gregtech:textures/armor/simple_gas_mask.png"; } @Override @@ -82,7 +82,7 @@ public boolean isValidArmor(ItemStack itemStack, Entity entity, EntityEquipmentS @Override public double tryTick(ItemStack stack, EntityPlayer player) { if (DimensionBreathabilityHandler.isInHazardousEnvironment(player)) { - changeDamage(stack, 1. / (60. * 6.)); // It's actually ticked every overall second, not just every tick. + changeDamage(stack, 1. / (60. * 20.)); // It's actually ticked every overall second, not just every tick. } if (getDamage(stack) >= 1) { player.renderBrokenItemStack(stack); From cd9e803c5f96019c4f995e4e172bae48e9ca20b2 Mon Sep 17 00:00:00 2001 From: bruberu <80226372+bruberu@users.noreply.github.com> Date: Thu, 19 Sep 2024 18:35:53 -0500 Subject: [PATCH 11/55] feat: armor values --- .../common/item/SuSyMetaItems.java | 28 ++++----- .../armor/AdvancedBreathingApparatus.java | 63 ++++++++++++++++++- .../common/item/armor/BreathingApparatus.java | 5 +- .../common/item/armor/SimpleGasMask.java | 11 +--- 4 files changed, 82 insertions(+), 25 deletions(-) diff --git a/src/main/java/supersymmetry/common/item/SuSyMetaItems.java b/src/main/java/supersymmetry/common/item/SuSyMetaItems.java index 523e3ed94..aa220934b 100644 --- a/src/main/java/supersymmetry/common/item/SuSyMetaItems.java +++ b/src/main/java/supersymmetry/common/item/SuSyMetaItems.java @@ -86,20 +86,20 @@ private static void initMetaItem() { .setArmorLogic(new SimpleGasMask()); GAS_MASK = armorItem.addItem(1, "gas_mask").setArmorLogic(new BreathingApparatus(HEAD)); GAS_TANK = armorItem.addItem(2, "gas_tank").setArmorLogic(new BreathingApparatus(CHEST)); - ASBESTOS_MASK = armorItem.addItem(3, "asbestos_mask").setArmorLogic(new AdvancedBreathingApparatus(HEAD, 1, "asbestos", 0)); - ASBESTOS_CHESTPLATE = armorItem.addItem(4, "asbestos_chestplate").setArmorLogic(new AdvancedBreathingApparatus(CHEST, 1, "asbestos", 0)); - ASBESTOS_LEGGINGS = armorItem.addItem(5, "asbestos_leggings").setArmorLogic(new AdvancedBreathingApparatus(LEGS, 1, "asbestos", 0)); - ASBESTOS_BOOTS = armorItem.addItem(6, "asbestos_boots").setArmorLogic(new AdvancedBreathingApparatus(FEET, 1, "asbestos", 0)); - REBREATHER_TANK = armorItem.addItem(7, "rebreather_tank").setArmorLogic(new AdvancedBreathingApparatus(CHEST, 1, "asbestos", 0)); - REFLECTIVE_MASK = armorItem.addItem(8, "reflective_mask").setArmorLogic(new AdvancedBreathingApparatus(HEAD, 5, "reflective", 0)); - REFLECTIVE_CHESTPLATE = armorItem.addItem(9, "reflective_chestplate").setArmorLogic(new AdvancedBreathingApparatus(CHEST, 5, "reflective", 0)); - REFLECTIVE_LEGGINGS = armorItem.addItem(10, "reflective_leggings").setArmorLogic(new AdvancedBreathingApparatus(LEGS, 5, "reflective", 0)); - REFLECTIVE_BOOTS = armorItem.addItem(11, "reflective_boots").setArmorLogic(new AdvancedBreathingApparatus(FEET, 5, "reflective", 0)); - FILTERED_TANK = armorItem.addItem(12, "filtered_tank").setArmorLogic(new AdvancedBreathingApparatus(CHEST, 5, "filtered", 0)); - NOMEX_MASK = armorItem.addItem(13, "nomex_mask").setArmorLogic(new AdvancedBreathingApparatus(HEAD, 0, "nomex", 1)); - NOMEX_CHESTPLATE = armorItem.addItem(14, "nomex_chestplate").setArmorLogic(new AdvancedBreathingApparatus(CHEST, 0, "nomex", 1)); - NOMEX_LEGGINGS = armorItem.addItem(15, "nomex_leggings").setArmorLogic(new AdvancedBreathingApparatus(LEGS, 0, "nomex", 1)); - NOMEX_BOOTS = armorItem.addItem(16, "nomex_boots").setArmorLogic(new AdvancedBreathingApparatus(FEET, 0, "nomex", 1)); + ASBESTOS_MASK = armorItem.addItem(3, "asbestos_mask").setArmorLogic(new AdvancedBreathingApparatus(HEAD, 1, "asbestos", 0, 0.3)); + ASBESTOS_CHESTPLATE = armorItem.addItem(4, "asbestos_chestplate").setArmorLogic(new AdvancedBreathingApparatus(CHEST, 1, "asbestos", 0, 0.3)); + ASBESTOS_LEGGINGS = armorItem.addItem(5, "asbestos_leggings").setArmorLogic(new AdvancedBreathingApparatus(LEGS, 1, "asbestos", 0, 0.3)); + ASBESTOS_BOOTS = armorItem.addItem(6, "asbestos_boots").setArmorLogic(new AdvancedBreathingApparatus(FEET, 1, "asbestos", 0, 0.3)); + REBREATHER_TANK = armorItem.addItem(7, "rebreather_tank").setArmorLogic(new AdvancedBreathingApparatus(CHEST, 1, "rebreather", 0, 0.3)); + REFLECTIVE_MASK = armorItem.addItem(8, "reflective_mask").setArmorLogic(new AdvancedBreathingApparatus(HEAD, 5, "reflective", 0, 0.4)); + REFLECTIVE_CHESTPLATE = armorItem.addItem(9, "reflective_chestplate").setArmorLogic(new AdvancedBreathingApparatus(CHEST, 5, "reflective", 0, 0.4)); + REFLECTIVE_LEGGINGS = armorItem.addItem(10, "reflective_leggings").setArmorLogic(new AdvancedBreathingApparatus(LEGS, 5, "reflective", 0, 0.4)); + REFLECTIVE_BOOTS = armorItem.addItem(11, "reflective_boots").setArmorLogic(new AdvancedBreathingApparatus(FEET, 5, "reflective", 0, 0.4)); + FILTERED_TANK = armorItem.addItem(12, "filtered_tank").setArmorLogic(new AdvancedBreathingApparatus(CHEST, 5, "filtered", 0, 0.4)); + NOMEX_MASK = armorItem.addItem(13, "nomex_mask").setArmorLogic(new AdvancedBreathingApparatus(HEAD, 0, "nomex", 1, 0.6)); + NOMEX_CHESTPLATE = armorItem.addItem(14, "nomex_chestplate").setArmorLogic(new AdvancedBreathingApparatus(CHEST, 0, "nomex", 1, 0.6)); + NOMEX_LEGGINGS = armorItem.addItem(15, "nomex_leggings").setArmorLogic(new AdvancedBreathingApparatus(LEGS, 0, "nomex", 1, 0.6)); + NOMEX_BOOTS = armorItem.addItem(16, "nomex_boots").setArmorLogic(new AdvancedBreathingApparatus(FEET, 0, "nomex", 1, 0.6)); } private static void addTieredOredictItem(OreDictValueItem[] items, int id, int RGB, OrePrefix prefix) { diff --git a/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java b/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java index f59f2ed01..30c6946f3 100644 --- a/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java +++ b/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java @@ -1,25 +1,42 @@ package supersymmetry.common.item.armor; +import gregtech.api.capability.GregtechCapabilities; +import gregtech.api.capability.IElectricItem; +import gregtech.api.items.armor.ArmorMetaItem; +import gregtech.api.items.metaitem.ElectricStats; +import gregtech.common.items.behaviors.TooltipBehavior; +import net.minecraft.client.resources.I18n; import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ActionResult; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumHand; +import net.minecraft.world.World; +import net.minecraftforge.common.ISpecialArmor; +import org.jetbrains.annotations.NotNull; import supersymmetry.common.event.DimensionBreathabilityHandler; import supersymmetry.common.item.SuSyArmorItem; +import java.util.List; + import static net.minecraft.inventory.EntityEquipmentSlot.*; public class AdvancedBreathingApparatus extends BreathingApparatus { private final double hoursOfLife; private final String name; private final int tier; + private final double relativeAbsorption; - public AdvancedBreathingApparatus(EntityEquipmentSlot slot, double hoursOfLife, String name, int tier) { + public AdvancedBreathingApparatus(EntityEquipmentSlot slot, double hoursOfLife, String name, int tier, double relativeAbsorption) { super(slot); this.hoursOfLife = hoursOfLife; this.name = name; this.tier = tier; + this.relativeAbsorption = relativeAbsorption; } @Override @@ -111,4 +128,48 @@ public double getDurabilityForDisplay(ItemStack itemStack) { return 1 - getDamage(itemStack); } } + + @Override + public float getHeatResistance() { + return 0.25F; + } + + @Override + public ISpecialArmor.ArmorProperties getProperties(EntityLivingBase player, @NotNull ItemStack armor, DamageSource source, + double damage, EntityEquipmentSlot equipmentSlot) { + int damageLimit = Integer.MAX_VALUE; + if (source.isUnblockable()) return new ISpecialArmor.ArmorProperties(0, 0.0, 0); + return new ISpecialArmor.ArmorProperties(0, getAbsorption(armor) * relativeAbsorption, damageLimit); + } + + protected float getAbsorption(ItemStack itemStack) { + return getAbsorption(this.SLOT); + } + + protected float getAbsorption(EntityEquipmentSlot slot) { + return switch (slot) { + case HEAD, FEET -> 0.15F; + case CHEST -> 0.4F; + case LEGS -> 0.3F; + default -> 0.0F; + }; + } + + + @Override + public void addToolComponents(ArmorMetaItem.ArmorMetaValueItem mvi) { + mvi.addComponents(new TooltipBehavior(this::addInfo)); + } + + private void addInfo(List strings) { + int armor = (int) Math.round(20.0F * this.getAbsorption(this.SLOT) * this.relativeAbsorption); + if (armor > 0) + strings.add(I18n.format("attribute.modifier.plus.0", armor, I18n.format("attribute.name.generic.armor"))); + } + + @Override + public int getArmorDisplay(EntityPlayer player, ItemStack armor, int slot) { + return (int) Math.round(20.0F * this.getAbsorption(armor) * relativeAbsorption); + } + } diff --git a/src/main/java/supersymmetry/common/item/armor/BreathingApparatus.java b/src/main/java/supersymmetry/common/item/armor/BreathingApparatus.java index 5e65fb792..95e7775c3 100644 --- a/src/main/java/supersymmetry/common/item/armor/BreathingApparatus.java +++ b/src/main/java/supersymmetry/common/item/armor/BreathingApparatus.java @@ -2,10 +2,14 @@ import gregtech.api.items.metaitem.stats.IItemDurabilityManager; import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.DamageSource; +import net.minecraftforge.common.ISpecialArmor; +import org.jetbrains.annotations.NotNull; import supersymmetry.api.items.IBreathingArmorLogic; import supersymmetry.common.event.DimensionBreathabilityHandler; import supersymmetry.common.item.SuSyArmorItem; @@ -89,5 +93,4 @@ void changeOxygen(ItemStack stack, double oxygenChange) { compound.setDouble("oxygen", getOxygen(stack) + oxygenChange); stack.setTagCompound(compound); } - } diff --git a/src/main/java/supersymmetry/common/item/armor/SimpleGasMask.java b/src/main/java/supersymmetry/common/item/armor/SimpleGasMask.java index e925714fe..056cc55b9 100644 --- a/src/main/java/supersymmetry/common/item/armor/SimpleGasMask.java +++ b/src/main/java/supersymmetry/common/item/armor/SimpleGasMask.java @@ -5,15 +5,12 @@ import gregtech.api.items.metaitem.stats.IItemDurabilityManager; import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ActionResult; -import net.minecraft.util.EnumActionResult; -import net.minecraft.util.EnumHand; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.SoundEvent; +import net.minecraft.util.*; import net.minecraft.world.World; import supersymmetry.api.items.IBreathingArmorLogic; import supersymmetry.common.event.DimensionBreathabilityHandler; @@ -107,8 +104,4 @@ private void changeDamage(ItemStack stack, double damageChange) { compound.setDouble("damage", getDamage(stack) + damageChange); stack.setTagCompound(compound); } - - - - } From 74d7f23885fb2d77de2c52f73fdb090912687860 Mon Sep 17 00:00:00 2001 From: bruberu <80226372+bruberu@users.noreply.github.com> Date: Thu, 19 Sep 2024 19:19:47 -0500 Subject: [PATCH 12/55] feat: decent localization and tooltips --- .../api/items/IBreathingArmorLogic.java | 44 ++++++++++++++++++- .../api/items/IBreathingItem.java | 2 + .../event/DimensionBreathabilityHandler.java | 3 ++ .../armor/AdvancedBreathingApparatus.java | 30 ++++++++----- .../common/item/armor/BreathingApparatus.java | 18 +++++++- .../common/item/armor/SimpleGasMask.java | 41 +++++------------ .../resources/assets/susy/lang/en_us.lang | 37 +++++++++++++++- 7 files changed, 132 insertions(+), 43 deletions(-) diff --git a/src/main/java/supersymmetry/api/items/IBreathingArmorLogic.java b/src/main/java/supersymmetry/api/items/IBreathingArmorLogic.java index ddf8782bc..9bf196eb1 100644 --- a/src/main/java/supersymmetry/api/items/IBreathingArmorLogic.java +++ b/src/main/java/supersymmetry/api/items/IBreathingArmorLogic.java @@ -1,15 +1,21 @@ package supersymmetry.api.items; +import gregtech.api.items.armor.ArmorMetaItem; import gregtech.api.items.armor.IArmorLogic; import gregtech.api.items.armor.ISpecialArmorLogic; +import gregtech.api.items.metaitem.stats.IItemBehaviour; +import gregtech.common.items.behaviors.TooltipBehavior; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.item.ItemStack; -import net.minecraft.util.DamageSource; +import net.minecraft.util.*; +import net.minecraft.world.World; import net.minecraftforge.common.ISpecialArmor; import org.jetbrains.annotations.NotNull; +import java.util.List; + public interface IBreathingArmorLogic extends ISpecialArmorLogic { boolean mayBreatheWith(ItemStack stack, EntityPlayer player); @@ -18,7 +24,7 @@ public interface IBreathingArmorLogic extends ISpecialArmorLogic { double tryTick(ItemStack stack, EntityPlayer player); default ISpecialArmor.ArmorProperties getProperties(EntityLivingBase player, @NotNull ItemStack armor, DamageSource source, double damage, - EntityEquipmentSlot equipmentSlot) { + EntityEquipmentSlot equipmentSlot) { return new ISpecialArmor.ArmorProperties(0, 0, (int) player.getMaxHealth()); } @@ -26,4 +32,38 @@ default int getArmorDisplay(EntityPlayer player, @NotNull ItemStack armor, int s return 0; } + void addInformation(ItemStack stack, List tooltips); + + @Override + default void addToolComponents(ArmorMetaItem.ArmorMetaValueItem metaValueItem) { + metaValueItem.addComponents(new TooltipBehavior((ignored) -> { + }) { + @Override + public void addInformation(ItemStack itemStack, @NotNull List lines) { + IBreathingArmorLogic.this.addInformation(itemStack, lines); + } + }, new IItemBehaviour() { + + @Override + public ActionResult onItemRightClick(World world, EntityPlayer player, EnumHand hand) { + return onRightClick(world, player, hand); + } + }); + } + + default ActionResult onRightClick(World world, EntityPlayer player, EnumHand hand) { + if (player.getHeldItem(hand).getItem() instanceof ArmorMetaItem) { + ItemStack armor = player.getHeldItem(hand); + if (armor.getItem() instanceof ArmorMetaItem && + player.inventory.armorInventory.get(getEquipmentSlot(armor).getIndex()).isEmpty() && + !player.isSneaking()) { + player.inventory.armorInventory.set(getEquipmentSlot(armor).getIndex(), armor.copy()); + player.setHeldItem(hand, ItemStack.EMPTY); + player.playSound(new SoundEvent(new ResourceLocation("item.armor.equip_generic")), 1.0F, 1.0F); + return ActionResult.newResult(EnumActionResult.SUCCESS, armor); + } + } + + return ActionResult.newResult(EnumActionResult.PASS, player.getHeldItem(hand)); + } } diff --git a/src/main/java/supersymmetry/api/items/IBreathingItem.java b/src/main/java/supersymmetry/api/items/IBreathingItem.java index 2b4872387..2c82d21a7 100644 --- a/src/main/java/supersymmetry/api/items/IBreathingItem.java +++ b/src/main/java/supersymmetry/api/items/IBreathingItem.java @@ -3,6 +3,8 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import java.util.List; + public interface IBreathingItem { boolean isValid(ItemStack stack, EntityPlayer player); diff --git a/src/main/java/supersymmetry/common/event/DimensionBreathabilityHandler.java b/src/main/java/supersymmetry/common/event/DimensionBreathabilityHandler.java index cab090c1e..244a4bf75 100644 --- a/src/main/java/supersymmetry/common/event/DimensionBreathabilityHandler.java +++ b/src/main/java/supersymmetry/common/event/DimensionBreathabilityHandler.java @@ -25,6 +25,9 @@ public final class DimensionBreathabilityHandler { private static final Map dimensionBreathabilityMap = new HashMap<>(); + public static final int BENEATH_ID = 10; + public static final int NETHER_ID = -1; + private DimensionBreathabilityHandler() {} public static void loadConfig() { diff --git a/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java b/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java index 30c6946f3..72cf55e84 100644 --- a/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java +++ b/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java @@ -47,11 +47,13 @@ public String getArmorTexture(ItemStack stack, Entity entity, EntityEquipmentSlo return "gregtech:textures/armor/" + name + "/not_legs.png"; } + @Override + public boolean mayBreatheWith(ItemStack stack, EntityPlayer player) { + return player.dimension == DimensionBreathabilityHandler.BENEATH_ID || player.dimension == DimensionBreathabilityHandler.NETHER_ID; + } + @Override public double tryTick(ItemStack stack, EntityPlayer player) { - if (!DimensionBreathabilityHandler.isInHazardousEnvironment(player)) { - return 0; - } this.handleDamage(stack, player); ItemStack chest = player.getItemStackFromSlot(CHEST); @@ -108,7 +110,7 @@ private void changeDamage(ItemStack stack, double damageChange) { void handleDamage(ItemStack stack, EntityPlayer player) { - if (hoursOfLife == 0) { + if (hoursOfLife == 0 || player.dimension == DimensionBreathabilityHandler.BENEATH_ID) { return; // No damage } double amount = (1. / (60. * 60. * hoursOfLife)); @@ -143,7 +145,7 @@ public ISpecialArmor.ArmorProperties getProperties(EntityLivingBase player, @Not } protected float getAbsorption(ItemStack itemStack) { - return getAbsorption(this.SLOT); + return getAbsorption(getEquipmentSlot(itemStack)); } protected float getAbsorption(EntityEquipmentSlot slot) { @@ -156,12 +158,20 @@ protected float getAbsorption(EntityEquipmentSlot slot) { } - @Override - public void addToolComponents(ArmorMetaItem.ArmorMetaValueItem mvi) { - mvi.addComponents(new TooltipBehavior(this::addInfo)); - } + public void addInformation(ItemStack stack, List strings) { + if (getEquipmentSlot(stack) == CHEST) { + int oxygen = (int) getOxygen(stack); + int maxOxygen = (int) getMaxOxygen(stack); + strings.add(I18n.format("supersymmetry.oxygen", oxygen, maxOxygen)); + if (hoursOfLife == 0) { + double lifetime = 60 * 60 * hoursOfLife; + int secondsRemaining = (int) (lifetime - getDamage(stack) * lifetime); + strings.add(I18n.format("supersymmetry.seconds_left", secondsRemaining)); + } else { + strings.add(I18n.format("supersymmetry.unlimited")); + } + } - private void addInfo(List strings) { int armor = (int) Math.round(20.0F * this.getAbsorption(this.SLOT) * this.relativeAbsorption); if (armor > 0) strings.add(I18n.format("attribute.modifier.plus.0", armor, I18n.format("attribute.name.generic.armor"))); diff --git a/src/main/java/supersymmetry/common/item/armor/BreathingApparatus.java b/src/main/java/supersymmetry/common/item/armor/BreathingApparatus.java index 95e7775c3..d24a02d05 100644 --- a/src/main/java/supersymmetry/common/item/armor/BreathingApparatus.java +++ b/src/main/java/supersymmetry/common/item/armor/BreathingApparatus.java @@ -1,6 +1,7 @@ package supersymmetry.common.item.armor; import gregtech.api.items.metaitem.stats.IItemDurabilityManager; +import net.minecraft.client.resources.I18n; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -14,6 +15,10 @@ import supersymmetry.common.event.DimensionBreathabilityHandler; import supersymmetry.common.item.SuSyArmorItem; +import java.util.List; + +import static net.minecraft.inventory.EntityEquipmentSlot.CHEST; + public class BreathingApparatus implements IBreathingArmorLogic, IItemDurabilityManager { protected final EntityEquipmentSlot SLOT; @@ -33,6 +38,9 @@ public String getArmorTexture(ItemStack stack, Entity entity, EntityEquipmentSlo @Override public boolean mayBreatheWith(ItemStack stack, EntityPlayer player) { + if (player.dimension != DimensionBreathabilityHandler.BENEATH_ID) { + return false; + } ItemStack chest = player.getItemStackFromSlot(EntityEquipmentSlot.CHEST); if (chest.getItem() instanceof SuSyArmorItem item) { if (item.getItem(chest).getArmorLogic() instanceof BreathingApparatus tank) { @@ -58,6 +66,14 @@ public double tryTick(ItemStack stack, EntityPlayer player) { return 0.5; } + @Override + public void addInformation(ItemStack stack, List tooltips) { + if (getEquipmentSlot(stack) == CHEST) { + int oxygen = (int) getOxygen(stack); + int maxOxygen = (int) getMaxOxygen(stack); + tooltips.add(I18n.format("supersymmetry.oxygen", oxygen, maxOxygen)); + } + } @Override public double getDurabilityForDisplay(ItemStack itemStack) { @@ -83,7 +99,7 @@ public double getDurabilityForDisplay(ItemStack itemStack) { stack.setTagCompound(new NBTTagCompound()); } if (!stack.getTagCompound().hasKey("maxOxygen")) { - stack.getTagCompound().setDouble("maxOxygen", 1000); + stack.getTagCompound().setDouble("maxOxygen", 1200); } return stack.getTagCompound().getDouble("maxOxygen"); } diff --git a/src/main/java/supersymmetry/common/item/armor/SimpleGasMask.java b/src/main/java/supersymmetry/common/item/armor/SimpleGasMask.java index 056cc55b9..a78e67020 100644 --- a/src/main/java/supersymmetry/common/item/armor/SimpleGasMask.java +++ b/src/main/java/supersymmetry/common/item/armor/SimpleGasMask.java @@ -4,6 +4,7 @@ import gregtech.api.items.metaitem.stats.IItemBehaviour; import gregtech.api.items.metaitem.stats.IItemDurabilityManager; +import net.minecraft.client.resources.I18n; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -15,7 +16,10 @@ import supersymmetry.api.items.IBreathingArmorLogic; import supersymmetry.common.event.DimensionBreathabilityHandler; +import java.util.List; + public class SimpleGasMask implements IBreathingArmorLogic, IItemDurabilityManager { + public static final double LIFETIME = 1200; @Override public EntityEquipmentSlot getEquipmentSlot(ItemStack itemStack) { return EntityEquipmentSlot.HEAD; @@ -26,33 +30,6 @@ public String getArmorTexture(ItemStack stack, Entity entity, EntityEquipmentSlo return "gregtech:textures/armor/simple_gas_mask.png"; } - @Override - public void addToolComponents(ArmorMetaItem.ArmorMetaValueItem mvi) { - mvi.addComponents(new IItemBehaviour() { - - @Override - public ActionResult onItemRightClick(World world, EntityPlayer player, EnumHand hand) { - return onRightClick(world, player, hand); - } - }); - } - - public ActionResult onRightClick(World world, EntityPlayer player, EnumHand hand) { - if (player.getHeldItem(hand).getItem() instanceof ArmorMetaItem) { - ItemStack armor = player.getHeldItem(hand); - if (armor.getItem() instanceof ArmorMetaItem && - player.inventory.armorInventory.get(EntityEquipmentSlot.HEAD.getIndex()).isEmpty() && - !player.isSneaking()) { - player.inventory.armorInventory.set(EntityEquipmentSlot.HEAD.getIndex(), armor.copy()); - player.setHeldItem(hand, ItemStack.EMPTY); - player.playSound(new SoundEvent(new ResourceLocation("item.armor.equip_generic")), 1.0F, 1.0F); - return ActionResult.newResult(EnumActionResult.SUCCESS, armor); - } - } - - return ActionResult.newResult(EnumActionResult.PASS, player.getHeldItem(hand)); - } - @Override @@ -67,7 +44,7 @@ public boolean canBreakWithDamage(ItemStack stack) { @Override public boolean mayBreatheWith(ItemStack stack, EntityPlayer player) { - return getDamage(stack) < 1; + return player.dimension == DimensionBreathabilityHandler.BENEATH_ID && getDamage(stack) < 1; } @@ -79,7 +56,7 @@ public boolean isValidArmor(ItemStack itemStack, Entity entity, EntityEquipmentS @Override public double tryTick(ItemStack stack, EntityPlayer player) { if (DimensionBreathabilityHandler.isInHazardousEnvironment(player)) { - changeDamage(stack, 1. / (60. * 20.)); // It's actually ticked every overall second, not just every tick. + changeDamage(stack, 1. / LIFETIME); // It's actually ticked every overall second, not just every tick. } if (getDamage(stack) >= 1) { player.renderBrokenItemStack(stack); @@ -89,6 +66,12 @@ public double tryTick(ItemStack stack, EntityPlayer player) { return 0; } + @Override + public void addInformation(ItemStack stack, List tooltips) { + int secondsRemaining = (int) (LIFETIME - getDamage(stack) * LIFETIME); + tooltips.add(I18n.format("supersymmetry.seconds_left", secondsRemaining)); + } + private double getDamage(ItemStack stack) { if (stack.getTagCompound() == null) { stack.setTagCompound(new NBTTagCompound()); diff --git a/src/main/resources/assets/susy/lang/en_us.lang b/src/main/resources/assets/susy/lang/en_us.lang index ca4639d3c..293b84516 100644 --- a/src/main/resources/assets/susy/lang/en_us.lang +++ b/src/main/resources/assets/susy/lang/en_us.lang @@ -820,4 +820,39 @@ death.attack.suffocation=%s couldn't breathe metaitem.simple_gas_mask.name=Primitive Gas Mask metaitem.simple_gas_mask.tooltip=Survive in oxygenless environments metaitem.gas_mask.name=Gas Mask -metaitem.gas_mask.tooltip=Survive in toxic environments +metaitem.gas_mask.tooltip=Survive in oxygenless environments for longer +metaitem.gas_tank.name=Gas Tank +metaitem.gas_tank.tooltip=Survive in oxygenless environments for longer +metaitem.asbestos_mask.name=Asbestos Gas Mask +metaitem.asbestos_mask.tooltip=Survive in hot environments +metaitem.asbestos_chestplate.name=Asbestos Tank +metaitem.asbestos_chestplate.tooltip=Survive in hot environments +metaitem.asbestos_leggings.name=Asbestos Leggings +metaitem.asbestos_leggings.tooltip=Survive in hot environments +metaitem.asbestos_boots.name=Asbestos Boots +metaitem.asbestos_boots.tooltip=Survive in hot environments +metaitem.rebreather_tank.name=Rebreather Tank +metaitem.rebreather_tank.tooltip=Holds oxygen for longer +metaitem.reflective_mask.name=Reflective Gas Mask +metaitem.reflective_mask.tooltip=Reduce heating damage +metaitem.reflective_chestplate.name=Reflective Tank +metaitem.reflective_chestplate.tooltip=Reduce heating damage +metaitem.reflective_leggings.name=Reflective Leggings +metaitem.reflective_leggings.tooltip=Reduce heating damage +metaitem.reflective_boots.name=Reflective Boots +metaitem.reflective_boots.tooltip=Reduce heating damage +metaitem.filtered_tank.name=Filtered Tank +metaitem.filtered_tank.tooltip=Holds oxygen for very long +metaitem.nomex_mask.name=Nomex Gas Mask +metaitem.nomex_mask.tooltip=Stay infinitely in the mantle! +metaitem.nomex_chestplate.name=Nomex Tank +metaitem.nomex_chestplate.tooltip=Stay infinitely in the mantle! +metaitem.nomex_leggings.name=Nomex Leggings +metaitem.nomex_leggings.tooltip=Stay infinitely in the mantle! +metaitem.nomex_boots.name=Nomex Boots +metaitem.nomex_boots.tooltip=Stay infinitely in the mantle! + +supersymmetry.oxygen=Remaining air: §b%s seconds§r (out of %s) +supersymmetry.seconds_left=Remaining life: §2%s seconds§r +supersymmetry.unlimited=Remaining life: §2Unlimited§r + From 33fe6ed1c2d1950d2669fa7384d22f63f1a8e731 Mon Sep 17 00:00:00 2001 From: bruberu <80226372+bruberu@users.noreply.github.com> Date: Thu, 19 Sep 2024 21:09:57 -0500 Subject: [PATCH 13/55] fix: breathing apparatus reversal --- .../supersymmetry/common/item/armor/BreathingApparatus.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/supersymmetry/common/item/armor/BreathingApparatus.java b/src/main/java/supersymmetry/common/item/armor/BreathingApparatus.java index d24a02d05..8bae16564 100644 --- a/src/main/java/supersymmetry/common/item/armor/BreathingApparatus.java +++ b/src/main/java/supersymmetry/common/item/armor/BreathingApparatus.java @@ -44,7 +44,7 @@ public boolean mayBreatheWith(ItemStack stack, EntityPlayer player) { ItemStack chest = player.getItemStackFromSlot(EntityEquipmentSlot.CHEST); if (chest.getItem() instanceof SuSyArmorItem item) { if (item.getItem(chest).getArmorLogic() instanceof BreathingApparatus tank) { - return tank.getOxygen(stack) < tank.getMaxOxygen(stack); + return tank.getOxygen(stack) > 0; } } return false; @@ -78,7 +78,7 @@ public void addInformation(ItemStack stack, List tooltips) { @Override public double getDurabilityForDisplay(ItemStack itemStack) { if (SLOT == EntityEquipmentSlot.CHEST) { - return 1 - (getOxygen(itemStack) / getMaxOxygen(itemStack)); + return (getOxygen(itemStack) / getMaxOxygen(itemStack)); } else { return 1; } From ece3f956049057672daaf3ecbbbbc12bedc36bcc Mon Sep 17 00:00:00 2001 From: bruberu <80226372+bruberu@users.noreply.github.com> Date: Thu, 19 Sep 2024 21:15:22 -0500 Subject: [PATCH 14/55] fix: you still need to show damage for the other pieces, bru --- .../item/armor/AdvancedBreathingApparatus.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java b/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java index 72cf55e84..e8cd1ee54 100644 --- a/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java +++ b/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java @@ -163,13 +163,13 @@ public void addInformation(ItemStack stack, List strings) { int oxygen = (int) getOxygen(stack); int maxOxygen = (int) getMaxOxygen(stack); strings.add(I18n.format("supersymmetry.oxygen", oxygen, maxOxygen)); - if (hoursOfLife == 0) { - double lifetime = 60 * 60 * hoursOfLife; - int secondsRemaining = (int) (lifetime - getDamage(stack) * lifetime); - strings.add(I18n.format("supersymmetry.seconds_left", secondsRemaining)); - } else { - strings.add(I18n.format("supersymmetry.unlimited")); - } + } + if (hoursOfLife == 0) { + double lifetime = 60 * 60 * hoursOfLife; + int secondsRemaining = (int) (lifetime - getDamage(stack) * lifetime); + strings.add(I18n.format("supersymmetry.seconds_left", secondsRemaining)); + } else { + strings.add(I18n.format("supersymmetry.unlimited")); } int armor = (int) Math.round(20.0F * this.getAbsorption(this.SLOT) * this.relativeAbsorption); From 9de58923d287d5010d95432416d9918d3c1368bc Mon Sep 17 00:00:00 2001 From: bruberu <80226372+bruberu@users.noreply.github.com> Date: Sun, 22 Sep 2024 17:29:00 -0500 Subject: [PATCH 15/55] fix: I18n mixin loading on server-side --- src/main/resources/mixins.susy.gregtech.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/resources/mixins.susy.gregtech.json b/src/main/resources/mixins.susy.gregtech.json index 61e4a0df1..29189ca61 100644 --- a/src/main/resources/mixins.susy.gregtech.json +++ b/src/main/resources/mixins.susy.gregtech.json @@ -6,9 +6,11 @@ "compatibilityLevel" : "JAVA_8", "mixins" : [ "BlockMachineMixin", - "MultiblockControllerBaseMixin", "MetaTileEntityFluidDrillMixin", "MetaTileEntityLargeMinerMixin", "MetaTileEntityMinerMixin" + ], + "client" : [ + "MultiblockControllerBaseMixin" ] } From 3420a97e30702f11013612b98e2d6cc49fa033c5 Mon Sep 17 00:00:00 2001 From: bruberu <80226372+bruberu@users.noreply.github.com> Date: Thu, 26 Sep 2024 20:11:55 -0500 Subject: [PATCH 16/55] fix: that's the wrong item bro --- .../common/item/armor/AdvancedBreathingApparatus.java | 10 +++++----- src/main/resources/assets/susy/lang/en_us.lang | 8 ++++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java b/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java index e8cd1ee54..2aa5cd978 100644 --- a/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java +++ b/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java @@ -60,13 +60,13 @@ public double tryTick(ItemStack stack, EntityPlayer player) { if (chest.getItem() instanceof SuSyArmorItem item) { if (item.getItem(chest).getArmorLogic() instanceof AdvancedBreathingApparatus tank && tank.tier == tier) { tank.changeOxygen(stack, 1.); - tank.handleDamage(stack, player); + tank.handleDamage(chest, player); int piecesCount = 0; ItemStack leggings = player.getItemStackFromSlot(LEGS); if (leggings.getItem() instanceof SuSyArmorItem item2) { if (item2.getItem(leggings).getArmorLogic() instanceof AdvancedBreathingApparatus legLogic) { - legLogic.handleDamage(stack, player); + legLogic.handleDamage(leggings, player); piecesCount++; } } @@ -74,7 +74,7 @@ public double tryTick(ItemStack stack, EntityPlayer player) { ItemStack boots = player.getItemStackFromSlot(FEET); if (boots.getItem() instanceof SuSyArmorItem item2) { if (item2.getItem(boots).getArmorLogic() instanceof AdvancedBreathingApparatus bootLogic) { - bootLogic.handleDamage(stack, player); + bootLogic.handleDamage(boots, player); piecesCount++; } } @@ -109,7 +109,7 @@ private void changeDamage(ItemStack stack, double damageChange) { } - void handleDamage(ItemStack stack, EntityPlayer player) { + private void handleDamage(ItemStack stack, EntityPlayer player) { if (hoursOfLife == 0 || player.dimension == DimensionBreathabilityHandler.BENEATH_ID) { return; // No damage } @@ -164,7 +164,7 @@ public void addInformation(ItemStack stack, List strings) { int maxOxygen = (int) getMaxOxygen(stack); strings.add(I18n.format("supersymmetry.oxygen", oxygen, maxOxygen)); } - if (hoursOfLife == 0) { + if (hoursOfLife > 0) { double lifetime = 60 * 60 * hoursOfLife; int secondsRemaining = (int) (lifetime - getDamage(stack) * lifetime); strings.add(I18n.format("supersymmetry.seconds_left", secondsRemaining)); diff --git a/src/main/resources/assets/susy/lang/en_us.lang b/src/main/resources/assets/susy/lang/en_us.lang index 1ac0296e0..c24185cf9 100644 --- a/src/main/resources/assets/susy/lang/en_us.lang +++ b/src/main/resources/assets/susy/lang/en_us.lang @@ -847,13 +847,13 @@ metaitem.reflective_boots.tooltip=Reduce heating damage metaitem.filtered_tank.name=Filtered Tank metaitem.filtered_tank.tooltip=Holds oxygen for very long metaitem.nomex_mask.name=Nomex Gas Mask -metaitem.nomex_mask.tooltip=Stay infinitely in the mantle! +metaitem.nomex_mask.tooltip=Stay indefinitely in the mantle! metaitem.nomex_chestplate.name=Nomex Tank -metaitem.nomex_chestplate.tooltip=Stay infinitely in the mantle! +metaitem.nomex_chestplate.tooltip=Stay indefinitely in the mantle! metaitem.nomex_leggings.name=Nomex Leggings -metaitem.nomex_leggings.tooltip=Stay infinitely in the mantle! +metaitem.nomex_leggings.tooltip=Stay indefinitely in the mantle! metaitem.nomex_boots.name=Nomex Boots -metaitem.nomex_boots.tooltip=Stay infinitely in the mantle! +metaitem.nomex_boots.tooltip=Stay indefinitely in the mantle! supersymmetry.oxygen=Remaining air: §b%s seconds§r (out of %s) supersymmetry.seconds_left=Remaining life: §2%s seconds§r From faa5e44b9cc134d74d203f6cffa2a5dc38d6b010 Mon Sep 17 00:00:00 2001 From: bruberu <80226372+bruberu@users.noreply.github.com> Date: Thu, 26 Sep 2024 20:20:24 -0500 Subject: [PATCH 17/55] fix: air is stored in the tank --- .../common/item/armor/AdvancedBreathingApparatus.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java b/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java index 2aa5cd978..897f32f67 100644 --- a/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java +++ b/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java @@ -59,7 +59,7 @@ public double tryTick(ItemStack stack, EntityPlayer player) { ItemStack chest = player.getItemStackFromSlot(CHEST); if (chest.getItem() instanceof SuSyArmorItem item) { if (item.getItem(chest).getArmorLogic() instanceof AdvancedBreathingApparatus tank && tank.tier == tier) { - tank.changeOxygen(stack, 1.); + tank.changeOxygen(chest, 1.); tank.handleDamage(chest, player); int piecesCount = 0; From ce3e1a01ab8744af6ec7c9497ddc82a9066cd8f1 Mon Sep 17 00:00:00 2001 From: bruberu <80226372+bruberu@users.noreply.github.com> Date: Thu, 26 Sep 2024 21:24:20 -0500 Subject: [PATCH 18/55] feat: final switcharounds for tooltips and whatnot --- .../armor/AdvancedBreathingApparatus.java | 24 ++++++++++++++----- .../resources/assets/susy/lang/en_us.lang | 1 + 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java b/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java index 897f32f67..16ec86606 100644 --- a/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java +++ b/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java @@ -59,7 +59,11 @@ public double tryTick(ItemStack stack, EntityPlayer player) { ItemStack chest = player.getItemStackFromSlot(CHEST); if (chest.getItem() instanceof SuSyArmorItem item) { if (item.getItem(chest).getArmorLogic() instanceof AdvancedBreathingApparatus tank && tank.tier == tier) { - tank.changeOxygen(chest, 1.); + if (tank.getOxygen(chest) <= 0) { + return 0.0625; + } else { + tank.changeOxygen(chest, -1.); + } tank.handleDamage(chest, player); int piecesCount = 0; @@ -124,11 +128,14 @@ private void handleDamage(ItemStack stack, EntityPlayer player) { @Override public double getDurabilityForDisplay(ItemStack itemStack) { - if (SLOT == CHEST) { - return 1 - (getOxygen(itemStack) / getMaxOxygen(itemStack)); + if (SLOT == CHEST && getMaxOxygen(itemStack) != -1) { + return getOxygen(itemStack) / getMaxOxygen(itemStack); } else { - return 1 - getDamage(itemStack); + if (hoursOfLife > 0) { + return 1 - getDamage(itemStack); + } } + return 1; } @Override @@ -159,10 +166,15 @@ protected float getAbsorption(EntityEquipmentSlot slot) { public void addInformation(ItemStack stack, List strings) { + if (getEquipmentSlot(stack) == CHEST) { - int oxygen = (int) getOxygen(stack); int maxOxygen = (int) getMaxOxygen(stack); - strings.add(I18n.format("supersymmetry.oxygen", oxygen, maxOxygen)); + if (maxOxygen == -1) { + strings.add(I18n.format("supersymmetry.unlimited_oxygen")); + } else { + int oxygen = (int) getOxygen(stack); + strings.add(I18n.format("supersymmetry.oxygen", oxygen, maxOxygen)); + } } if (hoursOfLife > 0) { double lifetime = 60 * 60 * hoursOfLife; diff --git a/src/main/resources/assets/susy/lang/en_us.lang b/src/main/resources/assets/susy/lang/en_us.lang index c24185cf9..3929d4a2a 100644 --- a/src/main/resources/assets/susy/lang/en_us.lang +++ b/src/main/resources/assets/susy/lang/en_us.lang @@ -856,6 +856,7 @@ metaitem.nomex_boots.name=Nomex Boots metaitem.nomex_boots.tooltip=Stay indefinitely in the mantle! supersymmetry.oxygen=Remaining air: §b%s seconds§r (out of %s) +supersymmetry.oxygen=Remaining air: §2Unlimited§r supersymmetry.seconds_left=Remaining life: §2%s seconds§r supersymmetry.unlimited=Remaining life: §2Unlimited§r From 9907b5b9c94c6ae8bf2090b9f850d9bd6bab2177 Mon Sep 17 00:00:00 2001 From: bruberu <80226372+bruberu@users.noreply.github.com> Date: Thu, 3 Oct 2024 20:47:46 -0500 Subject: [PATCH 19/55] fix: minor lang mishap --- .../resources/assets/susy/lang/en_us.lang | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/src/main/resources/assets/susy/lang/en_us.lang b/src/main/resources/assets/susy/lang/en_us.lang index 3929d4a2a..2e70f0a71 100644 --- a/src/main/resources/assets/susy/lang/en_us.lang +++ b/src/main/resources/assets/susy/lang/en_us.lang @@ -817,6 +817,50 @@ susy.fluid.voiding.liquid=Voidable with Dumper susy.fluid.voiding.gas=Voidable with Smoke Stack susy.fluid.voiding.flammable=Voidable with Flare Stack +death.attack.toxic_atmo=%s's lungs were shredded +death.attack.suffocation=%s couldn't breathe + +metaitem.simple_gas_mask.name=Primitive Gas Mask +metaitem.simple_gas_mask.tooltip=Survive in oxygenless environments +metaitem.gas_mask.name=Gas Mask +metaitem.gas_mask.tooltip=Survive in oxygenless environments for longer +metaitem.gas_tank.name=Gas Tank +metaitem.gas_tank.tooltip=Survive in oxygenless environments for longer +metaitem.asbestos_mask.name=Asbestos Gas Mask +metaitem.asbestos_mask.tooltip=Survive in hot environments +metaitem.asbestos_chestplate.name=Asbestos Tank +metaitem.asbestos_chestplate.tooltip=Survive in hot environments +metaitem.asbestos_leggings.name=Asbestos Leggings +metaitem.asbestos_leggings.tooltip=Survive in hot environments +metaitem.asbestos_boots.name=Asbestos Boots +metaitem.asbestos_boots.tooltip=Survive in hot environments +metaitem.rebreather_tank.name=Rebreather Tank +metaitem.rebreather_tank.tooltip=Holds oxygen for longer +metaitem.reflective_mask.name=Reflective Gas Mask +metaitem.reflective_mask.tooltip=Reduce heating damage +metaitem.reflective_chestplate.name=Reflective Tank +metaitem.reflective_chestplate.tooltip=Reduce heating damage +metaitem.reflective_leggings.name=Reflective Leggings +metaitem.reflective_leggings.tooltip=Reduce heating damage +metaitem.reflective_boots.name=Reflective Boots +metaitem.reflective_boots.tooltip=Reduce heating damage +metaitem.filtered_tank.name=Filtered Tank +metaitem.filtered_tank.tooltip=Holds oxygen for very long +metaitem.nomex_mask.name=Nomex Gas Mask +metaitem.nomex_mask.tooltip=Stay indefinitely in the mantle! +metaitem.nomex_chestplate.name=Nomex Tank +metaitem.nomex_chestplate.tooltip=Stay indefinitely in the mantle! +metaitem.nomex_leggings.name=Nomex Leggings +metaitem.nomex_leggings.tooltip=Stay indefinitely in the mantle! +metaitem.nomex_boots.name=Nomex Boots +metaitem.nomex_boots.tooltip=Stay indefinitely in the mantle! + +supersymmetry.oxygen=Remaining air: §b%s seconds§r (out of %s) +supersymmetry.unlimited_oxygen=Remaining air: §2Unlimited§r +supersymmetry.seconds_left=Remaining life: §2%s seconds§r +supersymmetry.unlimited=Remaining life: §2Unlimited§r + + death.attack.toxic_atmo=%s's lungs were shredded death.attack.suffocation=%s couldn't breathe From 6f9f437bec5eede0f3f5355e4bedbbfa9acfcdce Mon Sep 17 00:00:00 2001 From: bruberu <80226372+bruberu@users.noreply.github.com> Date: Sun, 15 Dec 2024 11:14:30 -0600 Subject: [PATCH 20/55] fix: bugs found in testing --- src/main/java/supersymmetry/common/EventHandlers.java | 3 ++- .../common/event/DimensionBreathabilityHandler.java | 6 ++++-- src/main/resources/assets/susy/lang/en_us.lang | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/main/java/supersymmetry/common/EventHandlers.java b/src/main/java/supersymmetry/common/EventHandlers.java index c0c8bd428..c889e95d5 100644 --- a/src/main/java/supersymmetry/common/EventHandlers.java +++ b/src/main/java/supersymmetry/common/EventHandlers.java @@ -8,6 +8,7 @@ import gregtechfoodoption.item.GTFOMetaItem; import net.minecraft.block.BlockCauldron; import net.minecraft.block.state.IBlockState; +import net.minecraft.entity.boss.dragon.phase.PhaseHoldingPattern; import net.minecraft.entity.monster.EntityZombie; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; @@ -160,7 +161,7 @@ public static void onWorldTick(TickEvent.WorldTickEvent event) { @SubscribeEvent public static void onPlayerTick(TickEvent.PlayerTickEvent event) { - if (FMLCommonHandler.instance().getMinecraftServerInstance().getTickCounter() % 20 == 0) { + if (FMLCommonHandler.instance().getMinecraftServerInstance().getTickCounter() % 20 == 0 && event.phase == TickEvent.Phase.START) { DimensionBreathabilityHandler.tickPlayer(event.player); } } diff --git a/src/main/java/supersymmetry/common/event/DimensionBreathabilityHandler.java b/src/main/java/supersymmetry/common/event/DimensionBreathabilityHandler.java index 244a4bf75..172755f51 100644 --- a/src/main/java/supersymmetry/common/event/DimensionBreathabilityHandler.java +++ b/src/main/java/supersymmetry/common/event/DimensionBreathabilityHandler.java @@ -37,7 +37,7 @@ public static void loadConfig() { // Nether dimensionBreathabilityMap.put(-1, new DimensionBreathabilityHandler.BreathabilityInfo(SuSyDamageSources.getToxicAtmoDamage(), 2)); // Beneath - dimensionBreathabilityMap.put(10, new DimensionBreathabilityHandler.BreathabilityInfo(SuSyDamageSources.getSuffocationDamage(), 1)); + dimensionBreathabilityMap.put(10, new DimensionBreathabilityHandler.BreathabilityInfo(SuSyDamageSources.getSuffocationDamage(), 0.5)); } @@ -88,7 +88,9 @@ public void damagePlayer(EntityPlayer player) { player.attackEntityFrom(damageType, (float) defaultDamage); } public void damagePlayer(EntityPlayer player, double amount) { - player.attackEntityFrom(damageType, (float) defaultDamage - (float) amount); + if (defaultDamage > amount) { + player.attackEntityFrom(damageType, (float) defaultDamage - (float) amount); + } } } diff --git a/src/main/resources/assets/susy/lang/en_us.lang b/src/main/resources/assets/susy/lang/en_us.lang index 2e70f0a71..3db7d849e 100644 --- a/src/main/resources/assets/susy/lang/en_us.lang +++ b/src/main/resources/assets/susy/lang/en_us.lang @@ -900,7 +900,7 @@ metaitem.nomex_boots.name=Nomex Boots metaitem.nomex_boots.tooltip=Stay indefinitely in the mantle! supersymmetry.oxygen=Remaining air: §b%s seconds§r (out of %s) -supersymmetry.oxygen=Remaining air: §2Unlimited§r +supersymmetry.unlimited_oxygen=oxygen=Remaining air: §2Unlimited§r supersymmetry.seconds_left=Remaining life: §2%s seconds§r supersymmetry.unlimited=Remaining life: §2Unlimited§r From aa7d9a42384d42a4e07e30134b6fc54c746ed268 Mon Sep 17 00:00:00 2001 From: bruberu <80226372+bruberu@users.noreply.github.com> Date: Sun, 22 Dec 2024 13:14:59 -0600 Subject: [PATCH 21/55] feat: file rearranging --- .../common/item/SuSyMetaItems.java | 16 -------------- .../common/item/armor/SuSyMetaArmor.java | 21 +++++++++++++++++++ .../models/item/metaitems/asbestos_mask.json | 6 ++++++ .../models/item/metaitems/gas_tank.json | 6 ++++++ 4 files changed, 33 insertions(+), 16 deletions(-) create mode 100644 src/main/resources/assets/gregtech/models/item/metaitems/asbestos_mask.json create mode 100644 src/main/resources/assets/gregtech/models/item/metaitems/gas_tank.json diff --git a/src/main/java/supersymmetry/common/item/SuSyMetaItems.java b/src/main/java/supersymmetry/common/item/SuSyMetaItems.java index fb8801d7b..6abccea02 100644 --- a/src/main/java/supersymmetry/common/item/SuSyMetaItems.java +++ b/src/main/java/supersymmetry/common/item/SuSyMetaItems.java @@ -85,22 +85,6 @@ private static void initMetaItem() { })); SIMPLE_GAS_MASK = armorItem.addItem(0, "simple_gas_mask") .setArmorLogic(new SimpleGasMask()); - GAS_MASK = armorItem.addItem(1, "gas_mask").setArmorLogic(new BreathingApparatus(HEAD)); - GAS_TANK = armorItem.addItem(2, "gas_tank").setArmorLogic(new BreathingApparatus(CHEST)); - ASBESTOS_MASK = armorItem.addItem(3, "asbestos_mask").setArmorLogic(new AdvancedBreathingApparatus(HEAD, 1, "asbestos", 0, 0.3)); - ASBESTOS_CHESTPLATE = armorItem.addItem(4, "asbestos_chestplate").setArmorLogic(new AdvancedBreathingApparatus(CHEST, 1, "asbestos", 0, 0.3)); - ASBESTOS_LEGGINGS = armorItem.addItem(5, "asbestos_leggings").setArmorLogic(new AdvancedBreathingApparatus(LEGS, 1, "asbestos", 0, 0.3)); - ASBESTOS_BOOTS = armorItem.addItem(6, "asbestos_boots").setArmorLogic(new AdvancedBreathingApparatus(FEET, 1, "asbestos", 0, 0.3)); - REBREATHER_TANK = armorItem.addItem(7, "rebreather_tank").setArmorLogic(new AdvancedBreathingApparatus(CHEST, 1, "rebreather", 0, 0.3)); - REFLECTIVE_MASK = armorItem.addItem(8, "reflective_mask").setArmorLogic(new AdvancedBreathingApparatus(HEAD, 5, "reflective", 0, 0.4)); - REFLECTIVE_CHESTPLATE = armorItem.addItem(9, "reflective_chestplate").setArmorLogic(new AdvancedBreathingApparatus(CHEST, 5, "reflective", 0, 0.4)); - REFLECTIVE_LEGGINGS = armorItem.addItem(10, "reflective_leggings").setArmorLogic(new AdvancedBreathingApparatus(LEGS, 5, "reflective", 0, 0.4)); - REFLECTIVE_BOOTS = armorItem.addItem(11, "reflective_boots").setArmorLogic(new AdvancedBreathingApparatus(FEET, 5, "reflective", 0, 0.4)); - FILTERED_TANK = armorItem.addItem(12, "filtered_tank").setArmorLogic(new AdvancedBreathingApparatus(CHEST, 5, "filtered", 0, 0.4)); - NOMEX_MASK = armorItem.addItem(13, "nomex_mask").setArmorLogic(new AdvancedBreathingApparatus(HEAD, 0, "nomex", 1, 0.6)); - NOMEX_CHESTPLATE = armorItem.addItem(14, "nomex_chestplate").setArmorLogic(new AdvancedBreathingApparatus(CHEST, 0, "nomex", 1, 0.6)); - NOMEX_LEGGINGS = armorItem.addItem(15, "nomex_leggings").setArmorLogic(new AdvancedBreathingApparatus(LEGS, 0, "nomex", 1, 0.6)); - NOMEX_BOOTS = armorItem.addItem(16, "nomex_boots").setArmorLogic(new AdvancedBreathingApparatus(FEET, 0, "nomex", 1, 0.6)); } private static void addTieredOredictItem(OreDictValueItem[] items, int id, int RGB, OrePrefix prefix) { diff --git a/src/main/java/supersymmetry/common/item/armor/SuSyMetaArmor.java b/src/main/java/supersymmetry/common/item/armor/SuSyMetaArmor.java index f25bab9cf..a28044dfc 100644 --- a/src/main/java/supersymmetry/common/item/armor/SuSyMetaArmor.java +++ b/src/main/java/supersymmetry/common/item/armor/SuSyMetaArmor.java @@ -3,10 +3,31 @@ import gregtech.api.items.armor.ArmorMetaItem; import supersymmetry.common.item.SuSyMetaItems; +import static supersymmetry.common.item.SuSyMetaItems.*; +import static net.minecraft.inventory.EntityEquipmentSlot.*; +import static net.minecraft.inventory.EntityEquipmentSlot.FEET; + public class SuSyMetaArmor extends ArmorMetaItem.ArmorMetaValueItem> { @Override public void registerSubItems() { SuSyMetaItems.JET_WINGPACK = addItem(1, "jet_wingpack").setArmorLogic(new JetWingpack()); + GAS_MASK = addItem(2, "gas_mask").setArmorLogic(new BreathingApparatus(HEAD)); + GAS_TANK = addItem(3, "gas_tank").setArmorLogic(new BreathingApparatus(CHEST)); + ASBESTOS_MASK = addItem(4, "asbestos_mask").setArmorLogic(new AdvancedBreathingApparatus(HEAD, 1, "asbestos", 0, 0.3)); + ASBESTOS_CHESTPLATE = addItem(5, "asbestos_chestplate").setArmorLogic(new AdvancedBreathingApparatus(CHEST, 1, "asbestos", 0, 0.3)); + ASBESTOS_LEGGINGS = addItem(6, "asbestos_leggings").setArmorLogic(new AdvancedBreathingApparatus(LEGS, 1, "asbestos", 0, 0.3)); + ASBESTOS_BOOTS = addItem(7, "asbestos_boots").setArmorLogic(new AdvancedBreathingApparatus(FEET, 1, "asbestos", 0, 0.3)); + REBREATHER_TANK = addItem(8, "rebreather_tank").setArmorLogic(new AdvancedBreathingApparatus(CHEST, 1, "rebreather", 0, 0.3)); + REFLECTIVE_MASK = addItem(9, "reflective_mask").setArmorLogic(new AdvancedBreathingApparatus(HEAD, 5, "reflective", 0, 0.4)); + REFLECTIVE_CHESTPLATE = addItem(10, "reflective_chestplate").setArmorLogic(new AdvancedBreathingApparatus(CHEST, 5, "reflective", 0, 0.4)); + REFLECTIVE_LEGGINGS = addItem(11, "reflective_leggings").setArmorLogic(new AdvancedBreathingApparatus(LEGS, 5, "reflective", 0, 0.4)); + REFLECTIVE_BOOTS = addItem(12, "reflective_boots").setArmorLogic(new AdvancedBreathingApparatus(FEET, 5, "reflective", 0, 0.4)); + FILTERED_TANK = addItem(13, "filtered_tank").setArmorLogic(new AdvancedBreathingApparatus(CHEST, 5, "filtered", 0, 0.4)); + NOMEX_MASK = addItem(14, "nomex_mask").setArmorLogic(new AdvancedBreathingApparatus(HEAD, 0, "nomex", 1, 0.6)); + NOMEX_CHESTPLATE = addItem(15, "nomex_chestplate").setArmorLogic(new AdvancedBreathingApparatus(CHEST, 0, "nomex", 1, 0.6)); + NOMEX_LEGGINGS = addItem(16, "nomex_leggings").setArmorLogic(new AdvancedBreathingApparatus(LEGS, 0, "nomex", 1, 0.6)); + NOMEX_BOOTS = addItem(17, "nomex_boots").setArmorLogic(new AdvancedBreathingApparatus(FEET, 0, "nomex", 1, 0.6)); + } } diff --git a/src/main/resources/assets/gregtech/models/item/metaitems/asbestos_mask.json b/src/main/resources/assets/gregtech/models/item/metaitems/asbestos_mask.json new file mode 100644 index 000000000..ecf1121e7 --- /dev/null +++ b/src/main/resources/assets/gregtech/models/item/metaitems/asbestos_mask.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gregtech:items/metaitems/asbestos_mask" + } +} diff --git a/src/main/resources/assets/gregtech/models/item/metaitems/gas_tank.json b/src/main/resources/assets/gregtech/models/item/metaitems/gas_tank.json new file mode 100644 index 000000000..0a956eb3b --- /dev/null +++ b/src/main/resources/assets/gregtech/models/item/metaitems/gas_tank.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gregtech:items/metaitems/gas_tank" + } +} From b6b7b4866c44e867c98769986da94e6d81c74139 Mon Sep 17 00:00:00 2001 From: bruberu <80226372+bruberu@users.noreply.github.com> Date: Mon, 23 Dec 2024 17:30:11 -0600 Subject: [PATCH 22/55] feat: try loading the nomex helmet --- .../supersymmetry/client/ClientProxy.java | 1 + .../handler/BreathingApparatusModel.java | 25 ++ .../common/item/SuSyMetaItems.java | 4 +- .../armor/AdvancedBreathingApparatus.java | 20 +- .../common/item/armor/SimpleGasMask.java | 2 - .../common/item/armor/SuSyMetaArmor.java | 1 + .../assets/susy/models/armor/nomex_head.mtl | 4 + .../assets/susy/models/armor/nomex_head.obj | 233 ++++++++++++++++++ 8 files changed, 281 insertions(+), 9 deletions(-) create mode 100644 src/main/java/supersymmetry/client/renderer/handler/BreathingApparatusModel.java create mode 100644 src/main/resources/assets/susy/models/armor/nomex_head.mtl create mode 100644 src/main/resources/assets/susy/models/armor/nomex_head.obj diff --git a/src/main/java/supersymmetry/client/ClientProxy.java b/src/main/java/supersymmetry/client/ClientProxy.java index bc7bcdf77..11da60c86 100644 --- a/src/main/java/supersymmetry/client/ClientProxy.java +++ b/src/main/java/supersymmetry/client/ClientProxy.java @@ -113,5 +113,6 @@ public static void registerModels(@NotNull ModelRegistryEvent event) { public static void stitchTexture(TextureStitchEvent.Pre event) { TextureMap map = event.getMap(); map.registerSprite(new ResourceLocation(Supersymmetry.MODID, "armor/jet_wingpack")); + map.registerSprite(new ResourceLocation(Supersymmetry.MODID, "armor/nomex_head")); } } diff --git a/src/main/java/supersymmetry/client/renderer/handler/BreathingApparatusModel.java b/src/main/java/supersymmetry/client/renderer/handler/BreathingApparatusModel.java new file mode 100644 index 000000000..16729daa3 --- /dev/null +++ b/src/main/java/supersymmetry/client/renderer/handler/BreathingApparatusModel.java @@ -0,0 +1,25 @@ +package supersymmetry.client.renderer.handler; + +import net.minecraft.client.model.ModelBiped; + +import static supersymmetry.api.util.SuSyUtility.susyId; + +public class BreathingApparatusModel extends ModelBiped { + private final OBJModelRender objModel; + + public BreathingApparatusModel(String loc) { + this.textureWidth = 64; + this.textureHeight = 64; + + this.bipedHead.cubeList.clear(); + this.bipedHeadwear.cubeList.clear(); + this.bipedBody.cubeList.clear(); + this.bipedRightArm.cubeList.clear(); + this.bipedLeftArm.cubeList.clear(); + this.bipedLeftLeg.cubeList.clear(); + this.bipedRightLeg.cubeList.clear(); + + this.objModel = new OBJModelRender(this, susyId("models/armor/" + loc + ".obj")); + this.bipedHead.addChild(objModel); + } +} diff --git a/src/main/java/supersymmetry/common/item/SuSyMetaItems.java b/src/main/java/supersymmetry/common/item/SuSyMetaItems.java index 6abccea02..cc7a96397 100644 --- a/src/main/java/supersymmetry/common/item/SuSyMetaItems.java +++ b/src/main/java/supersymmetry/common/item/SuSyMetaItems.java @@ -29,7 +29,7 @@ public class SuSyMetaItems { public static MetaValueItem PUMP_STEAM; public static MetaValueItem AIR_VENT; public static MetaValueItem TRACK_SEGMENT; - public static SuSyArmorItem.SuSyArmorMetaValueItem SIMPLE_GAS_MASK; + public static ArmorMetaItem.ArmorMetaValueItem SIMPLE_GAS_MASK; public static ArmorMetaItem.ArmorMetaValueItem GAS_MASK; public static ArmorMetaItem.ArmorMetaValueItem GAS_TANK; public static ArmorMetaItem.ArmorMetaValueItem ASBESTOS_MASK; @@ -83,8 +83,6 @@ private static void initMetaItem() { TRACK_SEGMENT = metaItem.addItem(5, "track_segment").addComponents(new TooltipBehavior((lines) -> { lines.add(I18n.format("metaitem.track_segment.length_info")); })); - SIMPLE_GAS_MASK = armorItem.addItem(0, "simple_gas_mask") - .setArmorLogic(new SimpleGasMask()); } private static void addTieredOredictItem(OreDictValueItem[] items, int id, int RGB, OrePrefix prefix) { diff --git a/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java b/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java index 16ec86606..2f6807aa9 100644 --- a/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java +++ b/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java @@ -5,6 +5,7 @@ import gregtech.api.items.armor.ArmorMetaItem; import gregtech.api.items.metaitem.ElectricStats; import gregtech.common.items.behaviors.TooltipBehavior; +import net.minecraft.client.model.ModelBiped; import net.minecraft.client.resources.I18n; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -17,7 +18,11 @@ import net.minecraft.util.EnumHand; import net.minecraft.world.World; import net.minecraftforge.common.ISpecialArmor; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import supersymmetry.client.renderer.handler.BreathingApparatusModel; import supersymmetry.common.event.DimensionBreathabilityHandler; import supersymmetry.common.item.SuSyArmorItem; @@ -30,6 +35,8 @@ public class AdvancedBreathingApparatus extends BreathingApparatus { private final String name; private final int tier; private final double relativeAbsorption; + @SideOnly(Side.CLIENT) + private BreathingApparatusModel model; public AdvancedBreathingApparatus(EntityEquipmentSlot slot, double hoursOfLife, String name, int tier, double relativeAbsorption) { super(slot); @@ -41,10 +48,15 @@ public AdvancedBreathingApparatus(EntityEquipmentSlot slot, double hoursOfLife, @Override public String getArmorTexture(ItemStack stack, Entity entity, EntityEquipmentSlot slot, String type) { - if (this.SLOT == LEGS) { - return "gregtech:textures/armor/" + name + "/legs.png"; - } - return "gregtech:textures/armor/" + name + "/not_legs.png"; + return "susy:textures/armor/" + name + "_" + slot.getName() + ".png"; + } + + @SideOnly(Side.CLIENT) + @Override + public @Nullable ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, EntityEquipmentSlot armorSlot, ModelBiped defaultModel) { + if (model == null) + model = new BreathingApparatusModel(name + "_" + armorSlot.getName()); + return model; } @Override diff --git a/src/main/java/supersymmetry/common/item/armor/SimpleGasMask.java b/src/main/java/supersymmetry/common/item/armor/SimpleGasMask.java index a78e67020..1e12214bc 100644 --- a/src/main/java/supersymmetry/common/item/armor/SimpleGasMask.java +++ b/src/main/java/supersymmetry/common/item/armor/SimpleGasMask.java @@ -30,8 +30,6 @@ public String getArmorTexture(ItemStack stack, Entity entity, EntityEquipmentSlo return "gregtech:textures/armor/simple_gas_mask.png"; } - - @Override public double getDurabilityForDisplay(ItemStack itemStack) { return 1 - getDamage(itemStack); diff --git a/src/main/java/supersymmetry/common/item/armor/SuSyMetaArmor.java b/src/main/java/supersymmetry/common/item/armor/SuSyMetaArmor.java index a28044dfc..4bde8d43e 100644 --- a/src/main/java/supersymmetry/common/item/armor/SuSyMetaArmor.java +++ b/src/main/java/supersymmetry/common/item/armor/SuSyMetaArmor.java @@ -11,6 +11,7 @@ public class SuSyMetaArmor extends ArmorMetaItem.ArmorMetaValue @Override public void registerSubItems() { + SIMPLE_GAS_MASK = addItem(0, "simple_gas_mask").setArmorLogic(new SimpleGasMask()); SuSyMetaItems.JET_WINGPACK = addItem(1, "jet_wingpack").setArmorLogic(new JetWingpack()); GAS_MASK = addItem(2, "gas_mask").setArmorLogic(new BreathingApparatus(HEAD)); GAS_TANK = addItem(3, "gas_tank").setArmorLogic(new BreathingApparatus(CHEST)); diff --git a/src/main/resources/assets/susy/models/armor/nomex_head.mtl b/src/main/resources/assets/susy/models/armor/nomex_head.mtl new file mode 100644 index 000000000..cfa452fe9 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/nomex_head.mtl @@ -0,0 +1,4 @@ +# Made in Blockbench 4.11.2 +newmtl NomexHelmet +map_Kd susy:armor/nomex_head +map_d susy:armor/nomex_head diff --git a/src/main/resources/assets/susy/models/armor/nomex_head.obj b/src/main/resources/assets/susy/models/armor/nomex_head.obj new file mode 100644 index 000000000..9edc1f3af --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/nomex_head.obj @@ -0,0 +1,233 @@ +# Made in Blockbench 4.11.2 +mtllib nomex_head.mtl + +o root_item +v 0.0625 0.125 0.0625 +v 0.0625 0.125 -0.0625 +v 0.0625 0 0.0625 +v 0.0625 0 -0.0625 +v -0.0625 0.125 -0.0625 +v -0.0625 0.125 0.0625 +v -0.0625 0 -0.0625 +v -0.0625 0 0.0625 +vt 0.0625 0.9375 +vt 0.125 0.9375 +vt 0.125 0.875 +vt 0.0625 0.875 +vt 0 0.9375 +vt 0.0625 0.9375 +vt 0.0625 0.875 +vt 0 0.875 +vt 0.1875 0.9375 +vt 0.25 0.9375 +vt 0.25 0.875 +vt 0.1875 0.875 +vt 0.125 0.9375 +vt 0.1875 0.9375 +vt 0.1875 0.875 +vt 0.125 0.875 +vt 0.125 0.9375 +vt 0.0625 0.9375 +vt 0.0625 1 +vt 0.125 1 +vt 0.1875 1 +vt 0.125 1 +vt 0.125 0.9375 +vt 0.1875 0.9375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl NomexHelmet +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o helmet +v 0.25 0.5 0.25 +v 0.25 0.5 -0.25 +v 0.25 0 0.25 +v 0.25 0 -0.25 +v -0.25 0.5 -0.25 +v -0.25 0.5 0.25 +v -0.25 0 -0.25 +v -0.25 0 0.25 +vt 0.25 0.75 +vt 0.5 0.75 +vt 0.5 0.5 +vt 0.25 0.5 +vt 0 0.75 +vt 0.25 0.75 +vt 0.25 0.5 +vt 0 0.5 +vt 0.75 0.75 +vt 1 0.75 +vt 1 0.5 +vt 0.75 0.5 +vt 0.5 0.75 +vt 0.75 0.75 +vt 0.75 0.5 +vt 0.5 0.5 +vt 0.5 0.75 +vt 0.25 0.75 +vt 0.25 1 +vt 0.5 1 +vt 0.75 1 +vt 0.5 1 +vt 0.5 0.75 +vt 0.75 0.75 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl NomexHelmet +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o helmet +v 0.3125 0.0625 -0.1875 +v 0.3125 0.0625 -0.3125 +v 0.3125 -0.0625 -0.1875 +v 0.3125 -0.0625 -0.3125 +v 0.1875 0.0625 -0.3125 +v 0.1875 0.0625 -0.1875 +v 0.1875 -0.0625 -0.3125 +v 0.1875 -0.0625 -0.1875 +vt 0.8125 0.0625 +vt 0.875 0.0625 +vt 0.875 0 +vt 0.8125 0 +vt 0.75 0.0625 +vt 0.8125 0.0625 +vt 0.8125 0 +vt 0.75 0 +vt 0.9375 0.0625 +vt 1 0.0625 +vt 1 0 +vt 0.9375 0 +vt 0.875 0.0625 +vt 0.9375 0.0625 +vt 0.9375 0 +vt 0.875 0 +vt 0.875 0.0625 +vt 0.8125 0.0625 +vt 0.8125 0.125 +vt 0.875 0.125 +vt 0.9375 0.125 +vt 0.875 0.125 +vt 0.875 0.0625 +vt 0.9375 0.0625 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl NomexHelmet +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o helmet +v -0.1875 0.0625 -0.1875 +v -0.1875 0.0625 -0.3125 +v -0.1875 -0.0625 -0.1875 +v -0.1875 -0.0625 -0.3125 +v -0.3125 0.0625 -0.3125 +v -0.3125 0.0625 -0.1875 +v -0.3125 -0.0625 -0.3125 +v -0.3125 -0.0625 -0.1875 +vt 0.8125 0.0625 +vt 0.875 0.0625 +vt 0.875 0 +vt 0.8125 0 +vt 0.75 0.0625 +vt 0.8125 0.0625 +vt 0.8125 0 +vt 0.75 0 +vt 0.9375 0.0625 +vt 1 0.0625 +vt 1 0 +vt 0.9375 0 +vt 0.875 0.0625 +vt 0.9375 0.0625 +vt 0.9375 0 +vt 0.875 0 +vt 0.875 0.0625 +vt 0.8125 0.0625 +vt 0.8125 0.125 +vt 0.875 0.125 +vt 0.9375 0.125 +vt 0.875 0.125 +vt 0.875 0.0625 +vt 0.9375 0.0625 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl NomexHelmet +f 28/76/19 31/75/19 29/74/19 26/73/19 +f 27/80/20 28/79/20 26/78/20 25/77/20 +f 32/84/21 27/83/21 25/82/21 30/81/21 +f 31/88/22 32/87/22 30/86/22 29/85/22 +f 30/92/23 25/91/23 26/90/23 29/89/23 +f 31/96/24 28/95/24 27/94/24 32/93/24 +o helmet +v 0.03125 0.09375 -0.25 +v 0.03125 0.09375 -0.28125 +v 0.03125 0 -0.25 +v 0.03125 0 -0.28125 +v -0.03125 0.09375 -0.28125 +v -0.03125 0.09375 -0.25 +v -0.03125 0 -0.28125 +v -0.03125 0 -0.25 +vt 0.9375 0.03125 +vt 0.96875 0.03125 +vt 0.96875 0 +vt 0.9375 0 +vt 0.9375 0.03125 +vt 0.9375 0.03125 +vt 0.9375 0 +vt 0.9375 0 +vt 0.96875 0.03125 +vt 1 0.03125 +vt 1 0 +vt 0.96875 0 +vt 0.96875 0.03125 +vt 0.96875 0.03125 +vt 0.96875 0 +vt 0.96875 0 +vt 0.96875 0.03125 +vt 0.9375 0.03125 +vt 0.9375 0.03125 +vt 0.96875 0.03125 +vt 1 0.03125 +vt 0.96875 0.03125 +vt 0.96875 0.03125 +vt 1 0.03125 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl NomexHelmet +f 36/100/25 39/99/25 37/98/25 34/97/25 +f 35/104/26 36/103/26 34/102/26 33/101/26 +f 40/108/27 35/107/27 33/106/27 38/105/27 +f 39/112/28 40/111/28 38/110/28 37/109/28 +f 38/116/29 33/115/29 34/114/29 37/113/29 +f 39/120/30 36/119/30 35/118/30 40/117/30 From 53a9490c89f4bf4059b2e4ffe80588ef29ecdc51 Mon Sep 17 00:00:00 2001 From: bruberu <80226372+bruberu@users.noreply.github.com> Date: Wed, 25 Dec 2024 16:48:12 -0600 Subject: [PATCH 23/55] feat: upgrade renderer --- .../supersymmetry/client/ClientProxy.java | 1 + .../handler/BreathingApparatusModel.java | 39 ++- .../renderer/handler/OBJModelRender.java | 8 +- .../armor/AdvancedBreathingApparatus.java | 2 +- .../assets/susy/models/armor/nomex_chest.mtl | 3 + .../assets/susy/models/armor/nomex_chest.obj | 233 ++++++++++++++++++ .../assets/susy/models/armor/nomex_head.mtl | 3 +- .../assets/susy/models/armor/nomex_head.obj | 232 ++++++++--------- .../susy/textures/armor/nomex_chest.png | Bin 0 -> 6727 bytes .../assets/susy/textures/armor/nomex_head.png | Bin 0 -> 7095 bytes 10 files changed, 396 insertions(+), 125 deletions(-) create mode 100644 src/main/resources/assets/susy/models/armor/nomex_chest.mtl create mode 100644 src/main/resources/assets/susy/models/armor/nomex_chest.obj create mode 100644 src/main/resources/assets/susy/textures/armor/nomex_chest.png create mode 100644 src/main/resources/assets/susy/textures/armor/nomex_head.png diff --git a/src/main/java/supersymmetry/client/ClientProxy.java b/src/main/java/supersymmetry/client/ClientProxy.java index 11da60c86..a415262cc 100644 --- a/src/main/java/supersymmetry/client/ClientProxy.java +++ b/src/main/java/supersymmetry/client/ClientProxy.java @@ -114,5 +114,6 @@ public static void stitchTexture(TextureStitchEvent.Pre event) { TextureMap map = event.getMap(); map.registerSprite(new ResourceLocation(Supersymmetry.MODID, "armor/jet_wingpack")); map.registerSprite(new ResourceLocation(Supersymmetry.MODID, "armor/nomex_head")); + map.registerSprite(new ResourceLocation(Supersymmetry.MODID, "armor/nomex_chest")); } } diff --git a/src/main/java/supersymmetry/client/renderer/handler/BreathingApparatusModel.java b/src/main/java/supersymmetry/client/renderer/handler/BreathingApparatusModel.java index 16729daa3..fe04c5604 100644 --- a/src/main/java/supersymmetry/client/renderer/handler/BreathingApparatusModel.java +++ b/src/main/java/supersymmetry/client/renderer/handler/BreathingApparatusModel.java @@ -1,13 +1,14 @@ package supersymmetry.client.renderer.handler; import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.inventory.EntityEquipmentSlot; +import net.minecraft.util.ResourceLocation; import static supersymmetry.api.util.SuSyUtility.susyId; public class BreathingApparatusModel extends ModelBiped { - private final OBJModelRender objModel; - - public BreathingApparatusModel(String loc) { + public BreathingApparatusModel(String name, EntityEquipmentSlot slot) { this.textureWidth = 64; this.textureHeight = 64; @@ -19,7 +20,35 @@ public BreathingApparatusModel(String loc) { this.bipedLeftLeg.cubeList.clear(); this.bipedRightLeg.cubeList.clear(); - this.objModel = new OBJModelRender(this, susyId("models/armor/" + loc + ".obj")); - this.bipedHead.addChild(objModel); + addChildren(name, slot); + } + + public void addChildren(String name, EntityEquipmentSlot slot) { + switch (slot) { + case FEET -> { + this.bipedLeftLeg.addChild(modelForPart(name, "left_foot")); + this.bipedRightLeg.addChild(modelForPart(name, "right_foot")); + } + case CHEST -> { + this.bipedBody.addChild(modelForPart(name, "chest")); + this.bipedLeftArm.addChild(modelForPart(name, "left_arm")); + this.bipedRightArm.addChild(modelForPart(name, "right_arm")); + } + case LEGS -> { + this.bipedLeftLeg.addChild(modelForPart(name, "left_leg")); + this.bipedRightLeg.addChild(modelForPart(name, "right_leg")); + } + case HEAD -> { + this.bipedHead.addChild(modelForPart(name, "head")); + } + } + } + + public ResourceLocation resourceFromPart(String armor, String model) { + return susyId("models/armor/" + armor + "_" + model + ".obj"); + } + + public OBJModelRender modelForPart(String armor, String model) { + return new OBJModelRender(this, resourceFromPart(armor, model), 17); } } diff --git a/src/main/java/supersymmetry/client/renderer/handler/OBJModelRender.java b/src/main/java/supersymmetry/client/renderer/handler/OBJModelRender.java index db8efd092..3ae489567 100644 --- a/src/main/java/supersymmetry/client/renderer/handler/OBJModelRender.java +++ b/src/main/java/supersymmetry/client/renderer/handler/OBJModelRender.java @@ -37,6 +37,12 @@ public class OBJModelRender extends ModelRenderer { private int displayList; private boolean compiled = false; private IBakedModel objModel; + private float scaleMultiplier = 1F; + + public OBJModelRender(ModelBase baseModel, ResourceLocation customModel, float scaleMultiplier) { + this(baseModel, customModel); + this.scaleMultiplier = scaleMultiplier; + } public OBJModelRender(ModelBase baseModel, ResourceLocation customModel) { super(baseModel); @@ -109,7 +115,7 @@ public void render(float scale) { private void compileDisplayList(float scale) { if (this.scale == 0) { - this.scale = scale; + this.scale = scale * scaleMultiplier; } if (objModel == null) { diff --git a/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java b/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java index 2f6807aa9..d26e9643f 100644 --- a/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java +++ b/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java @@ -55,7 +55,7 @@ public String getArmorTexture(ItemStack stack, Entity entity, EntityEquipmentSlo @Override public @Nullable ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, EntityEquipmentSlot armorSlot, ModelBiped defaultModel) { if (model == null) - model = new BreathingApparatusModel(name + "_" + armorSlot.getName()); + model = new BreathingApparatusModel(name, armorSlot); return model; } diff --git a/src/main/resources/assets/susy/models/armor/nomex_chest.mtl b/src/main/resources/assets/susy/models/armor/nomex_chest.mtl new file mode 100644 index 000000000..28624d620 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/nomex_chest.mtl @@ -0,0 +1,3 @@ +# Made in Blockbench 4.11.2 +newmtl m_cca0660c-e698-1789-5d68-d099fe0e0a48 +map_Kd susy:armor/nomex_chest \ No newline at end of file diff --git a/src/main/resources/assets/susy/models/armor/nomex_chest.obj b/src/main/resources/assets/susy/models/armor/nomex_chest.obj new file mode 100644 index 000000000..6daa57fbd --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/nomex_chest.obj @@ -0,0 +1,233 @@ +# Made in Blockbench 4.11.2 +mtllib nomex_chest.mtl + +o bb_main +v -0.0625 0.9375 0.25 +v -0.0625 0.9375 0.125 +v -0.0625 0.25 0.25 +v -0.0625 0.25 0.125 +v -0.1875 0.9375 0.125 +v -0.1875 0.9375 0.25 +v -0.1875 0.25 0.125 +v -0.1875 0.25 0.25 +vt 0.8125 0.34375 +vt 0.875 0.34375 +vt 0.875 0 +vt 0.8125 0 +vt 0.75 0.34375 +vt 0.8125 0.34375 +vt 0.8125 0 +vt 0.75 0 +vt 0.9375 0.34375 +vt 1 0.34375 +vt 1 0 +vt 0.9375 0 +vt 0.875 0.34375 +vt 0.9375 0.34375 +vt 0.9375 0 +vt 0.875 0 +vt 0.875 0.34375 +vt 0.8125 0.34375 +vt 0.8125 0.40625 +vt 0.875 0.40625 +vt 0.9375 0.40625 +vt 0.875 0.40625 +vt 0.875 0.34375 +vt 0.9375 0.34375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_cca0660c-e698-1789-5d68-d099fe0e0a48 +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o bb_main +v 0.1875 0.9375 0.25 +v 0.1875 0.9375 0.125 +v 0.1875 0.25 0.25 +v 0.1875 0.25 0.125 +v 0.0625 0.9375 0.125 +v 0.0625 0.9375 0.25 +v 0.0625 0.25 0.125 +v 0.0625 0.25 0.25 +vt 0.8125 0.34375 +vt 0.875 0.34375 +vt 0.875 0 +vt 0.8125 0 +vt 0.75 0.34375 +vt 0.8125 0.34375 +vt 0.8125 0 +vt 0.75 0 +vt 0.9375 0.34375 +vt 1 0.34375 +vt 1 0 +vt 0.9375 0 +vt 0.875 0.34375 +vt 0.9375 0.34375 +vt 0.9375 0 +vt 0.875 0 +vt 0.875 0.34375 +vt 0.8125 0.34375 +vt 0.8125 0.40625 +vt 0.875 0.40625 +vt 0.9375 0.40625 +vt 0.875 0.40625 +vt 0.875 0.34375 +vt 0.9375 0.34375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_cca0660c-e698-1789-5d68-d099fe0e0a48 +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o chestplate +v 0.313125 0.938125 0.188125 +v 0.313125 0.938125 -0.188125 +v 0.313125 0.06187500000000001 0.188125 +v 0.313125 0.06187500000000001 -0.188125 +v -0.313125 0.938125 -0.188125 +v -0.313125 0.938125 0.188125 +v -0.313125 0.06187500000000001 -0.188125 +v -0.313125 0.06187500000000001 0.188125 +vt 0.125 0.875 +vt 0.375 0.875 +vt 0.375 0.5 +vt 0.125 0.5 +vt 0 0.875 +vt 0.125 0.875 +vt 0.125 0.5 +vt 0 0.5 +vt 0.5 0.875 +vt 0.75 0.875 +vt 0.75 0.5 +vt 0.5 0.5 +vt 0.375 0.875 +vt 0.5 0.875 +vt 0.5 0.5 +vt 0.375 0.5 +vt 0.375 0.875 +vt 0.125 0.875 +vt 0.125 1 +vt 0.375 1 +vt 0.625 1 +vt 0.375 1 +vt 0.375 0.875 +vt 0.625 0.875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_cca0660c-e698-1789-5d68-d099fe0e0a48 +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o arm_plate_right +v 0.5625 0.9375 0.1875 +v 0.5625 0.9375 -0.1875 +v 0.5625 0.0625 0.1875 +v 0.5625 0.0625 -0.1875 +v 0.1875 0.9375 -0.1875 +v 0.1875 0.9375 0.1875 +v 0.1875 0.0625 -0.1875 +v 0.1875 0.0625 0.1875 +vt 0.125 0.375 +vt 0.25 0.375 +vt 0.25 0 +vt 0.125 0 +vt 0 0.375 +vt 0.125 0.375 +vt 0.125 0 +vt 0 0 +vt 0.375 0.375 +vt 0.5 0.375 +vt 0.5 0 +vt 0.375 0 +vt 0.25 0.375 +vt 0.375 0.375 +vt 0.375 0 +vt 0.25 0 +vt 0.25 0.375 +vt 0.125 0.375 +vt 0.125 0.5 +vt 0.25 0.5 +vt 0.375 0.5 +vt 0.25 0.5 +vt 0.25 0.375 +vt 0.375 0.375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_cca0660c-e698-1789-5d68-d099fe0e0a48 +f 28/76/19 31/75/19 29/74/19 26/73/19 +f 27/80/20 28/79/20 26/78/20 25/77/20 +f 32/84/21 27/83/21 25/82/21 30/81/21 +f 31/88/22 32/87/22 30/86/22 29/85/22 +f 30/92/23 25/91/23 26/90/23 29/89/23 +f 31/96/24 28/95/24 27/94/24 32/93/24 +o arm_plate_left +v -0.1875 0.9375 0.1875 +v -0.1875 0.9375 -0.1875 +v -0.1875 0.0625 0.1875 +v -0.1875 0.0625 -0.1875 +v -0.5625 0.9375 -0.1875 +v -0.5625 0.9375 0.1875 +v -0.5625 0.0625 -0.1875 +v -0.5625 0.0625 0.1875 +vt 0.25 0.375 +vt 0.125 0.375 +vt 0.125 0 +vt 0.25 0 +vt 0.375 0.375 +vt 0.25 0.375 +vt 0.25 0 +vt 0.375 0 +vt 0.5 0.375 +vt 0.375 0.375 +vt 0.375 0 +vt 0.5 0 +vt 0.125 0.375 +vt 0 0.375 +vt 0 0 +vt 0.125 0 +vt 0.125 0.375 +vt 0.25 0.375 +vt 0.25 0.5 +vt 0.125 0.5 +vt 0.25 0.5 +vt 0.375 0.5 +vt 0.375 0.375 +vt 0.25 0.375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_cca0660c-e698-1789-5d68-d099fe0e0a48 +f 36/100/25 39/99/25 37/98/25 34/97/25 +f 35/104/26 36/103/26 34/102/26 33/101/26 +f 40/108/27 35/107/27 33/106/27 38/105/27 +f 39/112/28 40/111/28 38/110/28 37/109/28 +f 38/116/29 33/115/29 34/114/29 37/113/29 +f 39/120/30 36/119/30 35/118/30 40/117/30 \ No newline at end of file diff --git a/src/main/resources/assets/susy/models/armor/nomex_head.mtl b/src/main/resources/assets/susy/models/armor/nomex_head.mtl index cfa452fe9..2206a86c1 100644 --- a/src/main/resources/assets/susy/models/armor/nomex_head.mtl +++ b/src/main/resources/assets/susy/models/armor/nomex_head.mtl @@ -1,4 +1,3 @@ # Made in Blockbench 4.11.2 -newmtl NomexHelmet +newmtl m_51eee937-2e6e-681e-fc08-613a1dbdb863 map_Kd susy:armor/nomex_head -map_d susy:armor/nomex_head diff --git a/src/main/resources/assets/susy/models/armor/nomex_head.obj b/src/main/resources/assets/susy/models/armor/nomex_head.obj index 9edc1f3af..9367f682a 100644 --- a/src/main/resources/assets/susy/models/armor/nomex_head.obj +++ b/src/main/resources/assets/susy/models/armor/nomex_head.obj @@ -1,46 +1,46 @@ # Made in Blockbench 4.11.2 mtllib nomex_head.mtl -o root_item -v 0.0625 0.125 0.0625 -v 0.0625 0.125 -0.0625 -v 0.0625 0 0.0625 -v 0.0625 0 -0.0625 -v -0.0625 0.125 -0.0625 -v -0.0625 0.125 0.0625 -v -0.0625 0 -0.0625 -v -0.0625 0 0.0625 -vt 0.0625 0.9375 -vt 0.125 0.9375 -vt 0.125 0.875 -vt 0.0625 0.875 -vt 0 0.9375 -vt 0.0625 0.9375 -vt 0.0625 0.875 -vt 0 0.875 -vt 0.1875 0.9375 -vt 0.25 0.9375 -vt 0.25 0.875 -vt 0.1875 0.875 -vt 0.125 0.9375 -vt 0.1875 0.9375 -vt 0.1875 0.875 -vt 0.125 0.875 -vt 0.125 0.9375 -vt 0.0625 0.9375 -vt 0.0625 1 -vt 0.125 1 -vt 0.1875 1 -vt 0.125 1 -vt 0.125 0.9375 -vt 0.1875 0.9375 -vn 0 0 -1 -vn 1 0 0 -vn 0 0 1 -vn -1 0 0 +o helmet +v 0.3125 0.09375 0.03124999999999993 +v 0.34375 0.09375 0.031249999999999924 +v 0.3125 0 0.03124999999999993 +v 0.34375 0 0.031249999999999924 +v 0.34375 0.09375 -0.031250000000000076 +v 0.3125 0.09375 -0.03125000000000007 +v 0.34375 0 -0.031250000000000076 +v 0.3125 0 -0.03125000000000007 +vt 0.9375 0.03125 +vt 0.96875 0.03125 +vt 0.96875 0 +vt 0.9375 0 +vt 0.9375 0.03125 +vt 0.9375 0.03125 +vt 0.9375 0 +vt 0.9375 0 +vt 0.96875 0.03125 +vt 1 0.03125 +vt 1 0 +vt 0.96875 0 +vt 0.96875 0.03125 +vt 0.96875 0.03125 +vt 0.96875 0 +vt 0.96875 0 +vt 0.96875 0.03125 +vt 0.9375 0.03125 +vt 0.9375 0.03125 +vt 0.96875 0.03125 +vt 1 0.03125 +vt 0.96875 0.03125 +vt 0.96875 0.03125 +vt 1 0.03125 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 vn 0 1 0 vn 0 -1 0 -usemtl NomexHelmet +usemtl m_51eee937-2e6e-681e-fc08-613a1dbdb863 f 4/4/1 7/3/1 5/2/1 2/1/1 f 3/8/2 4/7/2 2/6/2 1/5/2 f 8/12/3 3/11/3 1/10/3 6/9/3 @@ -48,14 +48,14 @@ f 7/16/4 8/15/4 6/14/4 5/13/4 f 6/20/5 1/19/5 2/18/5 5/17/5 f 7/24/6 4/23/6 3/22/6 8/21/6 o helmet -v 0.25 0.5 0.25 -v 0.25 0.5 -0.25 -v 0.25 0 0.25 -v 0.25 0 -0.25 -v -0.25 0.5 -0.25 -v -0.25 0.5 0.25 -v -0.25 0 -0.25 -v -0.25 0 0.25 +v -0.31249999999999994 0.5625 0.31250000000000006 +v 0.31250000000000006 0.5625 0.31249999999999994 +v -0.31249999999999994 -0.0625 0.31250000000000006 +v 0.31250000000000006 -0.0625 0.31249999999999994 +v 0.31249999999999994 0.5625 -0.31250000000000006 +v -0.31250000000000006 0.5625 -0.31249999999999994 +v 0.31249999999999994 -0.0625 -0.31250000000000006 +v -0.31250000000000006 -0.0625 -0.31249999999999994 vt 0.25 0.75 vt 0.5 0.75 vt 0.5 0.5 @@ -80,13 +80,13 @@ vt 0.75 1 vt 0.5 1 vt 0.5 0.75 vt 0.75 0.75 -vn 0 0 -1 -vn 1 0 0 -vn 0 0 1 -vn -1 0 0 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 vn 0 1 0 vn 0 -1 0 -usemtl NomexHelmet +usemtl m_51eee937-2e6e-681e-fc08-613a1dbdb863 f 12/28/7 15/27/7 13/26/7 10/25/7 f 11/32/8 12/31/8 10/30/8 9/29/8 f 16/36/9 11/35/9 9/34/9 14/33/9 @@ -94,14 +94,14 @@ f 15/40/10 16/39/10 14/38/10 13/37/10 f 14/44/11 9/43/11 10/42/11 13/41/11 f 15/48/12 12/47/12 11/46/12 16/45/12 o helmet -v 0.3125 0.0625 -0.1875 -v 0.3125 0.0625 -0.3125 -v 0.3125 -0.0625 -0.1875 -v 0.3125 -0.0625 -0.3125 -v 0.1875 0.0625 -0.3125 -v 0.1875 0.0625 -0.1875 -v 0.1875 -0.0625 -0.3125 -v 0.1875 -0.0625 -0.1875 +v 0.25000000000000006 0 0.37499999999999994 +v 0.37500000000000006 0 0.37499999999999994 +v 0.25000000000000006 -0.125 0.37499999999999994 +v 0.37500000000000006 -0.125 0.37499999999999994 +v 0.37500000000000006 0 0.24999999999999994 +v 0.25000000000000006 0 0.24999999999999994 +v 0.37500000000000006 -0.125 0.24999999999999994 +v 0.25000000000000006 -0.125 0.24999999999999994 vt 0.8125 0.0625 vt 0.875 0.0625 vt 0.875 0 @@ -126,13 +126,13 @@ vt 0.9375 0.125 vt 0.875 0.125 vt 0.875 0.0625 vt 0.9375 0.0625 -vn 0 0 -1 -vn 1 0 0 -vn 0 0 1 -vn -1 0 0 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 vn 0 1 0 vn 0 -1 0 -usemtl NomexHelmet +usemtl m_51eee937-2e6e-681e-fc08-613a1dbdb863 f 20/52/13 23/51/13 21/50/13 18/49/13 f 19/56/14 20/55/14 18/54/14 17/53/14 f 24/60/15 19/59/15 17/58/15 22/57/15 @@ -140,14 +140,14 @@ f 23/64/16 24/63/16 22/62/16 21/61/16 f 22/68/17 17/67/17 18/66/17 21/65/17 f 23/72/18 20/71/18 19/70/18 24/69/18 o helmet -v -0.1875 0.0625 -0.1875 -v -0.1875 0.0625 -0.3125 -v -0.1875 -0.0625 -0.1875 -v -0.1875 -0.0625 -0.3125 -v -0.3125 0.0625 -0.3125 -v -0.3125 0.0625 -0.1875 -v -0.3125 -0.0625 -0.3125 -v -0.3125 -0.0625 -0.1875 +v 0.24999999999999994 0 -0.25000000000000006 +v 0.37499999999999994 0 -0.25000000000000006 +v 0.24999999999999994 -0.125 -0.25000000000000006 +v 0.37499999999999994 -0.125 -0.25000000000000006 +v 0.37499999999999994 0 -0.37500000000000006 +v 0.24999999999999994 0 -0.37500000000000006 +v 0.37499999999999994 -0.125 -0.37500000000000006 +v 0.24999999999999994 -0.125 -0.37500000000000006 vt 0.8125 0.0625 vt 0.875 0.0625 vt 0.875 0 @@ -172,62 +172,62 @@ vt 0.9375 0.125 vt 0.875 0.125 vt 0.875 0.0625 vt 0.9375 0.0625 -vn 0 0 -1 -vn 1 0 0 -vn 0 0 1 -vn -1 0 0 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 vn 0 1 0 vn 0 -1 0 -usemtl NomexHelmet +usemtl m_51eee937-2e6e-681e-fc08-613a1dbdb863 f 28/76/19 31/75/19 29/74/19 26/73/19 f 27/80/20 28/79/20 26/78/20 25/77/20 f 32/84/21 27/83/21 25/82/21 30/81/21 f 31/88/22 32/87/22 30/86/22 29/85/22 f 30/92/23 25/91/23 26/90/23 29/89/23 f 31/96/24 28/95/24 27/94/24 32/93/24 -o helmet -v 0.03125 0.09375 -0.25 -v 0.03125 0.09375 -0.28125 -v 0.03125 0 -0.25 -v 0.03125 0 -0.28125 -v -0.03125 0.09375 -0.28125 -v -0.03125 0.09375 -0.25 -v -0.03125 0 -0.28125 -v -0.03125 0 -0.25 -vt 0.9375 0.03125 -vt 0.96875 0.03125 -vt 0.96875 0 -vt 0.9375 0 -vt 0.9375 0.03125 -vt 0.9375 0.03125 -vt 0.9375 0 -vt 0.9375 0 -vt 0.96875 0.03125 -vt 1 0.03125 -vt 1 0 -vt 0.96875 0 -vt 0.96875 0.03125 -vt 0.96875 0.03125 -vt 0.96875 0 -vt 0.96875 0 -vt 0.96875 0.03125 -vt 0.9375 0.03125 -vt 0.9375 0.03125 -vt 0.96875 0.03125 -vt 1 0.03125 -vt 0.96875 0.03125 -vt 0.96875 0.03125 -vt 1 0.03125 -vn 0 0 -1 -vn 1 0 0 -vn 0 0 1 -vn -1 0 0 +o root_item +v -0.062499999999999986 0.125 0.06250000000000001 +v 0.06250000000000001 0.125 0.062499999999999986 +v -0.062499999999999986 0 0.06250000000000001 +v 0.06250000000000001 0 0.062499999999999986 +v 0.062499999999999986 0.125 -0.06250000000000001 +v -0.06250000000000001 0.125 -0.062499999999999986 +v 0.062499999999999986 0 -0.06250000000000001 +v -0.06250000000000001 0 -0.062499999999999986 +vt 0.0625 0.9375 +vt 0.125 0.9375 +vt 0.125 0.875 +vt 0.0625 0.875 +vt 0 0.9375 +vt 0.0625 0.9375 +vt 0.0625 0.875 +vt 0 0.875 +vt 0.1875 0.9375 +vt 0.25 0.9375 +vt 0.25 0.875 +vt 0.1875 0.875 +vt 0.125 0.9375 +vt 0.1875 0.9375 +vt 0.1875 0.875 +vt 0.125 0.875 +vt 0.125 0.9375 +vt 0.0625 0.9375 +vt 0.0625 1 +vt 0.125 1 +vt 0.1875 1 +vt 0.125 1 +vt 0.125 0.9375 +vt 0.1875 0.9375 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 vn 0 1 0 vn 0 -1 0 -usemtl NomexHelmet +usemtl m_51eee937-2e6e-681e-fc08-613a1dbdb863 f 36/100/25 39/99/25 37/98/25 34/97/25 f 35/104/26 36/103/26 34/102/26 33/101/26 f 40/108/27 35/107/27 33/106/27 38/105/27 f 39/112/28 40/111/28 38/110/28 37/109/28 f 38/116/29 33/115/29 34/114/29 37/113/29 -f 39/120/30 36/119/30 35/118/30 40/117/30 +f 39/120/30 36/119/30 35/118/30 40/117/30 \ No newline at end of file diff --git a/src/main/resources/assets/susy/textures/armor/nomex_chest.png b/src/main/resources/assets/susy/textures/armor/nomex_chest.png new file mode 100644 index 0000000000000000000000000000000000000000..314305c05815506f648dd292c0171b402aa4c113 GIT binary patch literal 6727 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 aprhy(?pN&Z)dvi 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 literal 0 HcmV?d00001 From b501e9815d6394f6f48e64e56258a3ad17274778 Mon Sep 17 00:00:00 2001 From: bruberu <80226372+bruberu@users.noreply.github.com> Date: Fri, 27 Dec 2024 13:29:35 -0600 Subject: [PATCH 24/55] feat: try loading everything else --- .../supersymmetry/client/ClientProxy.java | 4 +- .../handler/BreathingApparatusModel.java | 12 +- .../renderer/handler/ITextureRegistrar.java | 12 + .../common/item/SuSyArmorItem.java | 15 +- .../common/item/SuSyMetaItems.java | 6 +- .../armor/AdvancedBreathingApparatus.java | 21 +- .../common/item/armor/BreathingApparatus.java | 4 - .../common/item/armor/SuSyMetaArmor.java | 3 +- .../assets/susy/models/armor/nomex_chest.mtl | 5 +- .../assets/susy/models/armor/nomex_chest.obj | 250 ++++++------------ .../susy/models/armor/nomex_left_arm.mtl | 4 + .../susy/models/armor/nomex_left_arm.obj | 49 ++++ .../susy/models/armor/nomex_left_foot.mtl | 4 + .../susy/models/armor/nomex_left_foot.obj | 49 ++++ .../susy/models/armor/nomex_left_leg.mtl | 4 + .../susy/models/armor/nomex_left_leg.obj | 49 ++++ .../susy/models/armor/nomex_legs_top.mtl | 4 + .../susy/models/armor/nomex_legs_top.obj | 49 ++++ .../susy/models/armor/nomex_right_arm.mtl | 4 + .../susy/models/armor/nomex_right_arm.obj | 49 ++++ .../susy/models/armor/nomex_right_foot.mtl | 4 + .../susy/models/armor/nomex_right_foot.obj | 49 ++++ .../susy/models/armor/nomex_right_leg.mtl | 4 + .../susy/models/armor/nomex_right_leg.obj | 49 ++++ .../assets/susy/textures/armor/nomex_feet.png | Bin 0 -> 1105 bytes .../assets/susy/textures/armor/nomex_legs.png | Bin 0 -> 2460 bytes 26 files changed, 502 insertions(+), 201 deletions(-) create mode 100644 src/main/java/supersymmetry/client/renderer/handler/ITextureRegistrar.java create mode 100644 src/main/resources/assets/susy/models/armor/nomex_left_arm.mtl create mode 100644 src/main/resources/assets/susy/models/armor/nomex_left_arm.obj create mode 100644 src/main/resources/assets/susy/models/armor/nomex_left_foot.mtl create mode 100644 src/main/resources/assets/susy/models/armor/nomex_left_foot.obj create mode 100644 src/main/resources/assets/susy/models/armor/nomex_left_leg.mtl create mode 100644 src/main/resources/assets/susy/models/armor/nomex_left_leg.obj create mode 100644 src/main/resources/assets/susy/models/armor/nomex_legs_top.mtl create mode 100644 src/main/resources/assets/susy/models/armor/nomex_legs_top.obj create mode 100644 src/main/resources/assets/susy/models/armor/nomex_right_arm.mtl create mode 100644 src/main/resources/assets/susy/models/armor/nomex_right_arm.obj create mode 100644 src/main/resources/assets/susy/models/armor/nomex_right_foot.mtl create mode 100644 src/main/resources/assets/susy/models/armor/nomex_right_foot.obj create mode 100644 src/main/resources/assets/susy/models/armor/nomex_right_leg.mtl create mode 100644 src/main/resources/assets/susy/models/armor/nomex_right_leg.obj create mode 100644 src/main/resources/assets/susy/textures/armor/nomex_feet.png create mode 100644 src/main/resources/assets/susy/textures/armor/nomex_legs.png diff --git a/src/main/java/supersymmetry/client/ClientProxy.java b/src/main/java/supersymmetry/client/ClientProxy.java index a415262cc..546054328 100644 --- a/src/main/java/supersymmetry/client/ClientProxy.java +++ b/src/main/java/supersymmetry/client/ClientProxy.java @@ -25,6 +25,7 @@ import supersymmetry.common.blocks.SheetedFrameItemBlock; import supersymmetry.common.blocks.SuSyBlocks; import supersymmetry.common.blocks.SuSyMetaBlocks; +import supersymmetry.common.item.SuSyMetaItems; import supersymmetry.loaders.SuSyFluidTooltipLoader; import supersymmetry.loaders.SuSyIRLoader; @@ -113,7 +114,6 @@ public static void registerModels(@NotNull ModelRegistryEvent event) { public static void stitchTexture(TextureStitchEvent.Pre event) { TextureMap map = event.getMap(); map.registerSprite(new ResourceLocation(Supersymmetry.MODID, "armor/jet_wingpack")); - map.registerSprite(new ResourceLocation(Supersymmetry.MODID, "armor/nomex_head")); - map.registerSprite(new ResourceLocation(Supersymmetry.MODID, "armor/nomex_chest")); + SuSyMetaItems.armorItem.registerIngameModels(map); } } diff --git a/src/main/java/supersymmetry/client/renderer/handler/BreathingApparatusModel.java b/src/main/java/supersymmetry/client/renderer/handler/BreathingApparatusModel.java index fe04c5604..78b0a4e57 100644 --- a/src/main/java/supersymmetry/client/renderer/handler/BreathingApparatusModel.java +++ b/src/main/java/supersymmetry/client/renderer/handler/BreathingApparatusModel.java @@ -1,10 +1,12 @@ package supersymmetry.client.renderer.handler; import net.minecraft.client.model.ModelBiped; -import net.minecraft.client.model.ModelRenderer; import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.util.ResourceLocation; +import java.util.ArrayList; +import java.util.List; + import static supersymmetry.api.util.SuSyUtility.susyId; public class BreathingApparatusModel extends ModelBiped { @@ -38,17 +40,15 @@ public void addChildren(String name, EntityEquipmentSlot slot) { this.bipedLeftLeg.addChild(modelForPart(name, "left_leg")); this.bipedRightLeg.addChild(modelForPart(name, "right_leg")); } - case HEAD -> { - this.bipedHead.addChild(modelForPart(name, "head")); - } + case HEAD -> this.bipedHead.addChild(modelForPart(name, "head")); } } - public ResourceLocation resourceFromPart(String armor, String model) { + public ResourceLocation modelLocationFromPart(String armor, String model) { return susyId("models/armor/" + armor + "_" + model + ".obj"); } public OBJModelRender modelForPart(String armor, String model) { - return new OBJModelRender(this, resourceFromPart(armor, model), 17); + return new OBJModelRender(this, modelLocationFromPart(armor, model), 17); } } diff --git a/src/main/java/supersymmetry/client/renderer/handler/ITextureRegistrar.java b/src/main/java/supersymmetry/client/renderer/handler/ITextureRegistrar.java new file mode 100644 index 000000000..7cb06fde3 --- /dev/null +++ b/src/main/java/supersymmetry/client/renderer/handler/ITextureRegistrar.java @@ -0,0 +1,12 @@ +package supersymmetry.client.renderer.handler; + +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; + +import java.util.List; + +public interface ITextureRegistrar { + @SideOnly(Side.CLIENT) + List getTextureLocations(); +} diff --git a/src/main/java/supersymmetry/common/item/SuSyArmorItem.java b/src/main/java/supersymmetry/common/item/SuSyArmorItem.java index 99af7ed4b..1b3d302e3 100644 --- a/src/main/java/supersymmetry/common/item/SuSyArmorItem.java +++ b/src/main/java/supersymmetry/common/item/SuSyArmorItem.java @@ -1,14 +1,14 @@ package supersymmetry.common.item; -import com.google.common.base.Preconditions; import gregtech.api.items.armor.ArmorMetaItem; -import gregtech.api.items.armor.IArmorLogic; import gregtech.api.items.metaitem.stats.IItemComponent; +import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; -import org.jetbrains.annotations.NotNull; +import net.minecraft.util.ResourceLocation; import supersymmetry.api.items.IBreathingArmorLogic; import supersymmetry.api.items.IBreathingItem; +import supersymmetry.client.renderer.handler.ITextureRegistrar; public class SuSyArmorItem extends ArmorMetaItem implements IBreathingItem { @@ -45,4 +45,13 @@ protected SuSyArmorMetaValueItem constructMetaValueItem(short metaValue, String return new SuSyArmorMetaValueItem(metaValue, unlocalizedName); } + public void registerIngameModels(TextureMap map) { + for (SuSyArmorMetaValueItem item : this.getAllItems()) { + if (item.getArmorLogic() instanceof ITextureRegistrar registrar) { + for (ResourceLocation model : registrar.getTextureLocations()) { + map.registerSprite(model); + } + } + } + } } diff --git a/src/main/java/supersymmetry/common/item/SuSyMetaItems.java b/src/main/java/supersymmetry/common/item/SuSyMetaItems.java index cc7a96397..9c9c97801 100644 --- a/src/main/java/supersymmetry/common/item/SuSyMetaItems.java +++ b/src/main/java/supersymmetry/common/item/SuSyMetaItems.java @@ -22,7 +22,7 @@ public class SuSyMetaItems { private static StandardMetaItem metaItem; - private static SuSyArmorItem armorItem; + public static SuSyArmorItem armorItem; public static MetaOreDictItem oreDictItem; public static MetaValueItem CATALYST_BED_SUPPORT_GRID; public static MetaValueItem CONVEYOR_STEAM; @@ -54,8 +54,8 @@ public static void initMetaItems() { metaItem.setRegistryName("meta_item"); oreDictItem = new MetaOreDictItem((short) 0); oreDictItem.setRegistryName("susy_oredict_item"); - SuSyMetaArmor armor = new SuSyMetaArmor(); - armor.setRegistryName("susy_armor"); + armorItem = new SuSyMetaArmor(); + armorItem.setRegistryName("susy_armor"); CatalystItems.init(); } diff --git a/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java b/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java index d26e9643f..6f79fc89c 100644 --- a/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java +++ b/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java @@ -1,10 +1,5 @@ package supersymmetry.common.item.armor; -import gregtech.api.capability.GregtechCapabilities; -import gregtech.api.capability.IElectricItem; -import gregtech.api.items.armor.ArmorMetaItem; -import gregtech.api.items.metaitem.ElectricStats; -import gregtech.common.items.behaviors.TooltipBehavior; import net.minecraft.client.model.ModelBiped; import net.minecraft.client.resources.I18n; import net.minecraft.entity.Entity; @@ -13,24 +8,25 @@ import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.ActionResult; import net.minecraft.util.DamageSource; -import net.minecraft.util.EnumHand; -import net.minecraft.world.World; +import net.minecraft.util.ResourceLocation; import net.minecraftforge.common.ISpecialArmor; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import supersymmetry.client.renderer.handler.BreathingApparatusModel; +import supersymmetry.client.renderer.handler.ITextureRegistrar; import supersymmetry.common.event.DimensionBreathabilityHandler; import supersymmetry.common.item.SuSyArmorItem; +import java.util.ArrayList; import java.util.List; import static net.minecraft.inventory.EntityEquipmentSlot.*; +import static supersymmetry.api.util.SuSyUtility.susyId; -public class AdvancedBreathingApparatus extends BreathingApparatus { +public class AdvancedBreathingApparatus extends BreathingApparatus implements ITextureRegistrar { private final double hoursOfLife; private final String name; private final int tier; @@ -206,4 +202,11 @@ public int getArmorDisplay(EntityPlayer player, ItemStack armor, int slot) { return (int) Math.round(20.0F * this.getAbsorption(armor) * relativeAbsorption); } + @Override + @SideOnly(Side.CLIENT) + public List getTextureLocations() { + List models = new ArrayList<>(); + models.add(susyId("armor/" + name + "_" + this.SLOT.toString())); + return models; + } } diff --git a/src/main/java/supersymmetry/common/item/armor/BreathingApparatus.java b/src/main/java/supersymmetry/common/item/armor/BreathingApparatus.java index 8bae16564..a534f1fdd 100644 --- a/src/main/java/supersymmetry/common/item/armor/BreathingApparatus.java +++ b/src/main/java/supersymmetry/common/item/armor/BreathingApparatus.java @@ -3,14 +3,10 @@ import gregtech.api.items.metaitem.stats.IItemDurabilityManager; import net.minecraft.client.resources.I18n; import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.DamageSource; -import net.minecraftforge.common.ISpecialArmor; -import org.jetbrains.annotations.NotNull; import supersymmetry.api.items.IBreathingArmorLogic; import supersymmetry.common.event.DimensionBreathabilityHandler; import supersymmetry.common.item.SuSyArmorItem; diff --git a/src/main/java/supersymmetry/common/item/armor/SuSyMetaArmor.java b/src/main/java/supersymmetry/common/item/armor/SuSyMetaArmor.java index 4bde8d43e..1efeabc09 100644 --- a/src/main/java/supersymmetry/common/item/armor/SuSyMetaArmor.java +++ b/src/main/java/supersymmetry/common/item/armor/SuSyMetaArmor.java @@ -1,13 +1,14 @@ package supersymmetry.common.item.armor; import gregtech.api.items.armor.ArmorMetaItem; +import supersymmetry.common.item.SuSyArmorItem; import supersymmetry.common.item.SuSyMetaItems; import static supersymmetry.common.item.SuSyMetaItems.*; import static net.minecraft.inventory.EntityEquipmentSlot.*; import static net.minecraft.inventory.EntityEquipmentSlot.FEET; -public class SuSyMetaArmor extends ArmorMetaItem.ArmorMetaValueItem> { +public class SuSyMetaArmor extends SuSyArmorItem { @Override public void registerSubItems() { diff --git a/src/main/resources/assets/susy/models/armor/nomex_chest.mtl b/src/main/resources/assets/susy/models/armor/nomex_chest.mtl index 28624d620..91d0b7a8c 100644 --- a/src/main/resources/assets/susy/models/armor/nomex_chest.mtl +++ b/src/main/resources/assets/susy/models/armor/nomex_chest.mtl @@ -1,3 +1,4 @@ # Made in Blockbench 4.11.2 -newmtl m_cca0660c-e698-1789-5d68-d099fe0e0a48 -map_Kd susy:armor/nomex_chest \ No newline at end of file +newmtl m_416af319-63d3-e4ba-7c52-9dc8e62ab2f2 +map_Kd susy:armor/nomex_chest +newmtl none diff --git a/src/main/resources/assets/susy/models/armor/nomex_chest.obj b/src/main/resources/assets/susy/models/armor/nomex_chest.obj index 6daa57fbd..81ef007a9 100644 --- a/src/main/resources/assets/susy/models/armor/nomex_chest.obj +++ b/src/main/resources/assets/susy/models/armor/nomex_chest.obj @@ -1,15 +1,61 @@ # Made in Blockbench 4.11.2 mtllib nomex_chest.mtl +o chestplate +v 0.18812500000000007 0.938125 -0.31312499999999993 +v -0.1881249999999999 0.938125 -0.31312500000000004 +v 0.18812500000000007 0.06187500000000001 -0.31312499999999993 +v -0.1881249999999999 0.06187500000000001 -0.31312500000000004 +v -0.18812500000000007 0.938125 0.31312499999999993 +v 0.1881249999999999 0.938125 0.31312500000000004 +v -0.18812500000000007 0.06187500000000001 0.31312499999999993 +v 0.1881249999999999 0.06187500000000001 0.31312500000000004 +vt 0.125 0.875 +vt 0.375 0.875 +vt 0.375 0.5 +vt 0.125 0.5 +vt 0 0.875 +vt 0.125 0.875 +vt 0.125 0.5 +vt 0 0.5 +vt 0.5 0.875 +vt 0.75 0.875 +vt 0.75 0.5 +vt 0.5 0.5 +vt 0.375 0.875 +vt 0.5 0.875 +vt 0.5 0.5 +vt 0.375 0.5 +vt 0.375 0.875 +vt 0.125 0.875 +vt 0.125 1 +vt 0.375 1 +vt 0.625 1 +vt 0.375 1 +vt 0.375 0.875 +vt 0.625 0.875 +vn -1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 -1 +vn 1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_416af319-63d3-e4ba-7c52-9dc8e62ab2f2 +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 o bb_main -v -0.0625 0.9375 0.25 -v -0.0625 0.9375 0.125 -v -0.0625 0.25 0.25 -v -0.0625 0.25 0.125 -v -0.1875 0.9375 0.125 -v -0.1875 0.9375 0.25 -v -0.1875 0.25 0.125 -v -0.1875 0.25 0.25 +v 0.25 0.9375 0.06250000000000006 +v 0.12499999999999999 0.9375 0.06250000000000003 +v 0.25 0.25 0.06250000000000006 +v 0.12499999999999999 0.25 0.06250000000000003 +v 0.12499999999999996 0.9375 0.18750000000000003 +v 0.24999999999999994 0.9375 0.18750000000000006 +v 0.12499999999999996 0.25 0.18750000000000003 +v 0.24999999999999994 0.25 0.18750000000000006 vt 0.8125 0.34375 vt 0.875 0.34375 vt 0.875 0 @@ -34,28 +80,28 @@ vt 0.9375 0.40625 vt 0.875 0.40625 vt 0.875 0.34375 vt 0.9375 0.34375 -vn 0 0 -1 -vn 1 0 0 -vn 0 0 1 -vn -1 0 0 +vn -1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 -1 +vn 1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 1 vn 0 1 0 vn 0 -1 0 -usemtl m_cca0660c-e698-1789-5d68-d099fe0e0a48 -f 4/4/1 7/3/1 5/2/1 2/1/1 -f 3/8/2 4/7/2 2/6/2 1/5/2 -f 8/12/3 3/11/3 1/10/3 6/9/3 -f 7/16/4 8/15/4 6/14/4 5/13/4 -f 6/20/5 1/19/5 2/18/5 5/17/5 -f 7/24/6 4/23/6 3/22/6 8/21/6 +usemtl m_416af319-63d3-e4ba-7c52-9dc8e62ab2f2 +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 o bb_main -v 0.1875 0.9375 0.25 -v 0.1875 0.9375 0.125 -v 0.1875 0.25 0.25 -v 0.1875 0.25 0.125 -v 0.0625 0.9375 0.125 -v 0.0625 0.9375 0.25 -v 0.0625 0.25 0.125 -v 0.0625 0.25 0.25 +v 0.25000000000000006 0.9375 -0.18749999999999994 +v 0.12500000000000006 0.9375 -0.18749999999999997 +v 0.25000000000000006 0.25 -0.18749999999999994 +v 0.12500000000000006 0.25 -0.18749999999999997 +v 0.125 0.9375 -0.06249999999999997 +v 0.25 0.9375 -0.062499999999999944 +v 0.125 0.25 -0.06249999999999997 +v 0.25 0.25 -0.062499999999999944 vt 0.8125 0.34375 vt 0.875 0.34375 vt 0.875 0 @@ -80,154 +126,16 @@ vt 0.9375 0.40625 vt 0.875 0.40625 vt 0.875 0.34375 vt 0.9375 0.34375 -vn 0 0 -1 -vn 1 0 0 -vn 0 0 1 -vn -1 0 0 +vn -1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 -1 +vn 1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 1 vn 0 1 0 vn 0 -1 0 -usemtl m_cca0660c-e698-1789-5d68-d099fe0e0a48 -f 12/28/7 15/27/7 13/26/7 10/25/7 -f 11/32/8 12/31/8 10/30/8 9/29/8 -f 16/36/9 11/35/9 9/34/9 14/33/9 -f 15/40/10 16/39/10 14/38/10 13/37/10 -f 14/44/11 9/43/11 10/42/11 13/41/11 -f 15/48/12 12/47/12 11/46/12 16/45/12 -o chestplate -v 0.313125 0.938125 0.188125 -v 0.313125 0.938125 -0.188125 -v 0.313125 0.06187500000000001 0.188125 -v 0.313125 0.06187500000000001 -0.188125 -v -0.313125 0.938125 -0.188125 -v -0.313125 0.938125 0.188125 -v -0.313125 0.06187500000000001 -0.188125 -v -0.313125 0.06187500000000001 0.188125 -vt 0.125 0.875 -vt 0.375 0.875 -vt 0.375 0.5 -vt 0.125 0.5 -vt 0 0.875 -vt 0.125 0.875 -vt 0.125 0.5 -vt 0 0.5 -vt 0.5 0.875 -vt 0.75 0.875 -vt 0.75 0.5 -vt 0.5 0.5 -vt 0.375 0.875 -vt 0.5 0.875 -vt 0.5 0.5 -vt 0.375 0.5 -vt 0.375 0.875 -vt 0.125 0.875 -vt 0.125 1 -vt 0.375 1 -vt 0.625 1 -vt 0.375 1 -vt 0.375 0.875 -vt 0.625 0.875 -vn 0 0 -1 -vn 1 0 0 -vn 0 0 1 -vn -1 0 0 -vn 0 1 0 -vn 0 -1 0 -usemtl m_cca0660c-e698-1789-5d68-d099fe0e0a48 +usemtl m_416af319-63d3-e4ba-7c52-9dc8e62ab2f2 f 20/52/13 23/51/13 21/50/13 18/49/13 f 19/56/14 20/55/14 18/54/14 17/53/14 f 24/60/15 19/59/15 17/58/15 22/57/15 f 23/64/16 24/63/16 22/62/16 21/61/16 f 22/68/17 17/67/17 18/66/17 21/65/17 -f 23/72/18 20/71/18 19/70/18 24/69/18 -o arm_plate_right -v 0.5625 0.9375 0.1875 -v 0.5625 0.9375 -0.1875 -v 0.5625 0.0625 0.1875 -v 0.5625 0.0625 -0.1875 -v 0.1875 0.9375 -0.1875 -v 0.1875 0.9375 0.1875 -v 0.1875 0.0625 -0.1875 -v 0.1875 0.0625 0.1875 -vt 0.125 0.375 -vt 0.25 0.375 -vt 0.25 0 -vt 0.125 0 -vt 0 0.375 -vt 0.125 0.375 -vt 0.125 0 -vt 0 0 -vt 0.375 0.375 -vt 0.5 0.375 -vt 0.5 0 -vt 0.375 0 -vt 0.25 0.375 -vt 0.375 0.375 -vt 0.375 0 -vt 0.25 0 -vt 0.25 0.375 -vt 0.125 0.375 -vt 0.125 0.5 -vt 0.25 0.5 -vt 0.375 0.5 -vt 0.25 0.5 -vt 0.25 0.375 -vt 0.375 0.375 -vn 0 0 -1 -vn 1 0 0 -vn 0 0 1 -vn -1 0 0 -vn 0 1 0 -vn 0 -1 0 -usemtl m_cca0660c-e698-1789-5d68-d099fe0e0a48 -f 28/76/19 31/75/19 29/74/19 26/73/19 -f 27/80/20 28/79/20 26/78/20 25/77/20 -f 32/84/21 27/83/21 25/82/21 30/81/21 -f 31/88/22 32/87/22 30/86/22 29/85/22 -f 30/92/23 25/91/23 26/90/23 29/89/23 -f 31/96/24 28/95/24 27/94/24 32/93/24 -o arm_plate_left -v -0.1875 0.9375 0.1875 -v -0.1875 0.9375 -0.1875 -v -0.1875 0.0625 0.1875 -v -0.1875 0.0625 -0.1875 -v -0.5625 0.9375 -0.1875 -v -0.5625 0.9375 0.1875 -v -0.5625 0.0625 -0.1875 -v -0.5625 0.0625 0.1875 -vt 0.25 0.375 -vt 0.125 0.375 -vt 0.125 0 -vt 0.25 0 -vt 0.375 0.375 -vt 0.25 0.375 -vt 0.25 0 -vt 0.375 0 -vt 0.5 0.375 -vt 0.375 0.375 -vt 0.375 0 -vt 0.5 0 -vt 0.125 0.375 -vt 0 0.375 -vt 0 0 -vt 0.125 0 -vt 0.125 0.375 -vt 0.25 0.375 -vt 0.25 0.5 -vt 0.125 0.5 -vt 0.25 0.5 -vt 0.375 0.5 -vt 0.375 0.375 -vt 0.25 0.375 -vn 0 0 -1 -vn 1 0 0 -vn 0 0 1 -vn -1 0 0 -vn 0 1 0 -vn 0 -1 0 -usemtl m_cca0660c-e698-1789-5d68-d099fe0e0a48 -f 36/100/25 39/99/25 37/98/25 34/97/25 -f 35/104/26 36/103/26 34/102/26 33/101/26 -f 40/108/27 35/107/27 33/106/27 38/105/27 -f 39/112/28 40/111/28 38/110/28 37/109/28 -f 38/116/29 33/115/29 34/114/29 37/113/29 -f 39/120/30 36/119/30 35/118/30 40/117/30 \ No newline at end of file +f 23/72/18 20/71/18 19/70/18 24/69/18 \ No newline at end of file diff --git a/src/main/resources/assets/susy/models/armor/nomex_left_arm.mtl b/src/main/resources/assets/susy/models/armor/nomex_left_arm.mtl new file mode 100644 index 000000000..2fd870d11 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/nomex_left_arm.mtl @@ -0,0 +1,4 @@ +# Made in Blockbench 4.11.2 +newmtl m_64d34cc8-1926-f466-d642-ba1a500f20c0 +map_Kd susy:armor/nomex_chest +newmtl none diff --git a/src/main/resources/assets/susy/models/armor/nomex_left_arm.obj b/src/main/resources/assets/susy/models/armor/nomex_left_arm.obj new file mode 100644 index 000000000..a4f84a123 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/nomex_left_arm.obj @@ -0,0 +1,49 @@ +# Made in Blockbench 4.11.2 +mtllib nomex_left_arm.mtl + +o arm_plate_left +v 0.18749999999999994 0.9375 0.18750000000000006 +v -0.18750000000000006 0.9375 0.18749999999999994 +v 0.18749999999999994 0.0625 0.18750000000000006 +v -0.18750000000000006 0.0625 0.18749999999999994 +v -0.1875000000000001 0.9375 0.5625 +v 0.1874999999999999 0.9375 0.5625 +v -0.1875000000000001 0.0625 0.5625 +v 0.1874999999999999 0.0625 0.5625 +vt 0.25 0.375 +vt 0.125 0.375 +vt 0.125 0 +vt 0.25 0 +vt 0.375 0.375 +vt 0.25 0.375 +vt 0.25 0 +vt 0.375 0 +vt 0.5 0.375 +vt 0.375 0.375 +vt 0.375 0 +vt 0.5 0 +vt 0.125 0.375 +vt 0 0.375 +vt 0 0 +vt 0.125 0 +vt 0.125 0.375 +vt 0.25 0.375 +vt 0.25 0.5 +vt 0.125 0.5 +vt 0.25 0.5 +vt 0.375 0.5 +vt 0.375 0.375 +vt 0.25 0.375 +vn -1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 -1 +vn 1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_64d34cc8-1926-f466-d642-ba1a500f20c0 +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 \ No newline at end of file diff --git a/src/main/resources/assets/susy/models/armor/nomex_left_foot.mtl b/src/main/resources/assets/susy/models/armor/nomex_left_foot.mtl new file mode 100644 index 000000000..2daff05ee --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/nomex_left_foot.mtl @@ -0,0 +1,4 @@ +# Made in Blockbench 4.11.2 +newmtl m_4af8cc83-b806-6d86-c8dd-c6f51a9e21a0 +map_Kd susy:armor/nomex_feet +newmtl none diff --git a/src/main/resources/assets/susy/models/armor/nomex_left_foot.obj b/src/main/resources/assets/susy/models/armor/nomex_left_foot.obj new file mode 100644 index 000000000..9b72e4e3b --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/nomex_left_foot.obj @@ -0,0 +1,49 @@ +# Made in Blockbench 4.11.2 +mtllib nomex_left_foot.mtl + +o leggings_right +v 0.275 0.78125 0.15625 +v 0.275 0.78125 -0.15625 +v 0.275 -0.03125 0.15625 +v 0.275 -0.03125 -0.15625 +v -0.037500000000000006 0.78125 -0.15625 +v -0.037500000000000006 0.78125 0.15625 +v -0.037500000000000006 -0.03125 -0.15625 +v -0.037500000000000006 -0.03125 0.15625 +vt 0.125 0.875 +vt 0.25 0.875 +vt 0.25 0.5 +vt 0.125 0.5 +vt 0 0.875 +vt 0.125 0.875 +vt 0.125 0.5 +vt 0 0.5 +vt 0.375 0.875 +vt 0.5 0.875 +vt 0.5 0.5 +vt 0.375 0.5 +vt 0.25 0.875 +vt 0.375 0.875 +vt 0.375 0.5 +vt 0.25 0.5 +vt 0.25 0.875 +vt 0.125 0.875 +vt 0.125 1 +vt 0.25 1 +vt 0.375 1 +vt 0.25 1 +vt 0.25 0.875 +vt 0.375 0.875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_4af8cc83-b806-6d86-c8dd-c6f51a9e21a0 +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 \ No newline at end of file diff --git a/src/main/resources/assets/susy/models/armor/nomex_left_leg.mtl b/src/main/resources/assets/susy/models/armor/nomex_left_leg.mtl new file mode 100644 index 000000000..ce3b9a2b7 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/nomex_left_leg.mtl @@ -0,0 +1,4 @@ +# Made in Blockbench 4.11.2 +newmtl m_45df9991-7315-ca4a-8de6-222a6a7899e1 +map_Kd susy:armor/nomex_legs +newmtl none diff --git a/src/main/resources/assets/susy/models/armor/nomex_left_leg.obj b/src/main/resources/assets/susy/models/armor/nomex_left_leg.obj new file mode 100644 index 000000000..888bef367 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/nomex_left_leg.obj @@ -0,0 +1,49 @@ +# Made in Blockbench 4.11.2 +mtllib nomex_left_leg.mtl + +o leggings_left +v 0.037500000000000006 0.78125 0.15625 +v 0.037500000000000006 0.78125 -0.15625 +v 0.037500000000000006 -0.03125 0.15625 +v 0.037500000000000006 -0.03125 -0.15625 +v -0.275 0.78125 -0.15625 +v -0.275 0.78125 0.15625 +v -0.275 -0.03125 -0.15625 +v -0.275 -0.03125 0.15625 +vt 0.25 0.375 +vt 0.125 0.375 +vt 0.125 0 +vt 0.25 0 +vt 0.375 0.375 +vt 0.25 0.375 +vt 0.25 0 +vt 0.375 0 +vt 0.5 0.375 +vt 0.375 0.375 +vt 0.375 0 +vt 0.5 0 +vt 0.125 0.375 +vt 0 0.375 +vt 0 0 +vt 0.125 0 +vt 0.125 0.375 +vt 0.25 0.375 +vt 0.25 0.5 +vt 0.125 0.5 +vt 0.25 0.5 +vt 0.375 0.5 +vt 0.375 0.375 +vt 0.25 0.375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_45df9991-7315-ca4a-8de6-222a6a7899e1 +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 \ No newline at end of file diff --git a/src/main/resources/assets/susy/models/armor/nomex_legs_top.mtl b/src/main/resources/assets/susy/models/armor/nomex_legs_top.mtl new file mode 100644 index 000000000..dbbef9ca1 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/nomex_legs_top.mtl @@ -0,0 +1,4 @@ +# Made in Blockbench 4.11.2 +newmtl m_574cd15e-defe-0a85-4631-fa756f18cb3d +map_Kd susy:armor/nomex_legs +newmtl none diff --git a/src/main/resources/assets/susy/models/armor/nomex_legs_top.obj b/src/main/resources/assets/susy/models/armor/nomex_legs_top.obj new file mode 100644 index 000000000..55aeba921 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/nomex_legs_top.obj @@ -0,0 +1,49 @@ +# Made in Blockbench 4.11.2 +mtllib nomex_legs_top.mtl + +o belt +v 0.281875 1.5318749999999999 0.156875 +v 0.281875 1.5318749999999999 -0.156875 +v 0.281875 0.718125 0.156875 +v 0.281875 0.718125 -0.156875 +v -0.281875 1.5318749999999999 -0.156875 +v -0.281875 1.5318749999999999 0.156875 +v -0.281875 0.718125 -0.156875 +v -0.281875 0.718125 0.156875 +vt 0.125 0.875 +vt 0.375 0.875 +vt 0.375 0.5 +vt 0.125 0.5 +vt 0 0.875 +vt 0.125 0.875 +vt 0.125 0.5 +vt 0 0.5 +vt 0.5 0.875 +vt 0.75 0.875 +vt 0.75 0.5 +vt 0.5 0.5 +vt 0.375 0.875 +vt 0.5 0.875 +vt 0.5 0.5 +vt 0.375 0.5 +vt 0.375 0.875 +vt 0.125 0.875 +vt 0.125 1 +vt 0.375 1 +vt 0.625 1 +vt 0.375 1 +vt 0.375 0.875 +vt 0.625 0.875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_574cd15e-defe-0a85-4631-fa756f18cb3d +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 \ No newline at end of file diff --git a/src/main/resources/assets/susy/models/armor/nomex_right_arm.mtl b/src/main/resources/assets/susy/models/armor/nomex_right_arm.mtl new file mode 100644 index 000000000..ea7b46baf --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/nomex_right_arm.mtl @@ -0,0 +1,4 @@ +# Made in Blockbench 4.11.2 +newmtl m_b2d35747-d43a-9a3a-1913-6b1d8d106d33 +map_Kd susy:armor/nomex_chest +newmtl none diff --git a/src/main/resources/assets/susy/models/armor/nomex_right_arm.obj b/src/main/resources/assets/susy/models/armor/nomex_right_arm.obj new file mode 100644 index 000000000..731c5864b --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/nomex_right_arm.obj @@ -0,0 +1,49 @@ +# Made in Blockbench 4.11.2 +mtllib nomex_right_arm.mtl + +o arm_plate_right +v 0.1875000000000001 0.9375 -0.5625 +v -0.1874999999999999 0.9375 -0.5625 +v 0.1875000000000001 0.0625 -0.5625 +v -0.1874999999999999 0.0625 -0.5625 +v -0.18749999999999994 0.9375 -0.18750000000000006 +v 0.18750000000000006 0.9375 -0.18749999999999994 +v -0.18749999999999994 0.0625 -0.18750000000000006 +v 0.18750000000000006 0.0625 -0.18749999999999994 +vt 0.125 0.375 +vt 0.25 0.375 +vt 0.25 0 +vt 0.125 0 +vt 0 0.375 +vt 0.125 0.375 +vt 0.125 0 +vt 0 0 +vt 0.375 0.375 +vt 0.5 0.375 +vt 0.5 0 +vt 0.375 0 +vt 0.25 0.375 +vt 0.375 0.375 +vt 0.375 0 +vt 0.25 0 +vt 0.25 0.375 +vt 0.125 0.375 +vt 0.125 0.5 +vt 0.25 0.5 +vt 0.375 0.5 +vt 0.25 0.5 +vt 0.25 0.375 +vt 0.375 0.375 +vn -1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 -1 +vn 1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_b2d35747-d43a-9a3a-1913-6b1d8d106d33 +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 \ No newline at end of file diff --git a/src/main/resources/assets/susy/models/armor/nomex_right_foot.mtl b/src/main/resources/assets/susy/models/armor/nomex_right_foot.mtl new file mode 100644 index 000000000..2268783d9 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/nomex_right_foot.mtl @@ -0,0 +1,4 @@ +# Made in Blockbench 4.11.2 +newmtl m_7eeb2f72-fdb6-0390-2ec7-e04b5852da1d +map_Kd susy:armor/nomex_feet +newmtl none diff --git a/src/main/resources/assets/susy/models/armor/nomex_right_foot.obj b/src/main/resources/assets/susy/models/armor/nomex_right_foot.obj new file mode 100644 index 000000000..b540883c3 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/nomex_right_foot.obj @@ -0,0 +1,49 @@ +# Made in Blockbench 4.11.2 +mtllib nomex_right_foot.mtl + +o boot_right +v 0.30625 0.8125 0.1875 +v 0.30625 0.8125 -0.1875 +v 0.30625 -0.0625 0.1875 +v 0.30625 -0.0625 -0.1875 +v -0.06875 0.8125 -0.1875 +v -0.06875 0.8125 0.1875 +v -0.06875 -0.0625 -0.1875 +v -0.06875 -0.0625 0.1875 +vt 0.125 0.875 +vt 0.25 0.875 +vt 0.25 0.5 +vt 0.125 0.5 +vt 0 0.875 +vt 0.125 0.875 +vt 0.125 0.5 +vt 0 0.5 +vt 0.375 0.875 +vt 0.5 0.875 +vt 0.5 0.5 +vt 0.375 0.5 +vt 0.25 0.875 +vt 0.375 0.875 +vt 0.375 0.5 +vt 0.25 0.5 +vt 0.25 0.875 +vt 0.125 0.875 +vt 0.125 1 +vt 0.25 1 +vt 0.375 1 +vt 0.25 1 +vt 0.25 0.875 +vt 0.375 0.875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_7eeb2f72-fdb6-0390-2ec7-e04b5852da1d +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 \ No newline at end of file diff --git a/src/main/resources/assets/susy/models/armor/nomex_right_leg.mtl b/src/main/resources/assets/susy/models/armor/nomex_right_leg.mtl new file mode 100644 index 000000000..163c2997e --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/nomex_right_leg.mtl @@ -0,0 +1,4 @@ +# Made in Blockbench 4.11.2 +newmtl m_42886af2-265e-39a6-debf-f7c35875696c +map_Kd susy:armor/nomex_legs +newmtl none diff --git a/src/main/resources/assets/susy/models/armor/nomex_right_leg.obj b/src/main/resources/assets/susy/models/armor/nomex_right_leg.obj new file mode 100644 index 000000000..94bd1a694 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/nomex_right_leg.obj @@ -0,0 +1,49 @@ +# Made in Blockbench 4.11.2 +mtllib nomex_right_leg.mtl + +o leggings_right +v 0.275 0.78125 0.15625 +v 0.275 0.78125 -0.15625 +v 0.275 -0.03125 0.15625 +v 0.275 -0.03125 -0.15625 +v -0.037500000000000006 0.78125 -0.15625 +v -0.037500000000000006 0.78125 0.15625 +v -0.037500000000000006 -0.03125 -0.15625 +v -0.037500000000000006 -0.03125 0.15625 +vt 0.125 0.375 +vt 0.25 0.375 +vt 0.25 0 +vt 0.125 0 +vt 0 0.375 +vt 0.125 0.375 +vt 0.125 0 +vt 0 0 +vt 0.375 0.375 +vt 0.5 0.375 +vt 0.5 0 +vt 0.375 0 +vt 0.25 0.375 +vt 0.375 0.375 +vt 0.375 0 +vt 0.25 0 +vt 0.25 0.375 +vt 0.125 0.375 +vt 0.125 0.5 +vt 0.25 0.5 +vt 0.375 0.5 +vt 0.25 0.5 +vt 0.25 0.375 +vt 0.375 0.375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_42886af2-265e-39a6-debf-f7c35875696c +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 \ No newline at end of file diff --git a/src/main/resources/assets/susy/textures/armor/nomex_feet.png b/src/main/resources/assets/susy/textures/armor/nomex_feet.png new file mode 100644 index 0000000000000000000000000000000000000000..455b2c35e544aea622538456a8eb8182a410044f GIT binary patch literal 1105 zcmV-X1g`suP)Px(3rR#lRCr$PnLTV2M-<2ZZ)R`Lcd|nVg4l?NhA0X`5P=Y)jzmjEmoiMwqx0k`Zi;v5f`zoQYC*wLSlY}`fw3}y%7CK$qn@o4$`k=NKs z0wWuD^uRS1N6C4onR?!N)-yc*>*~mBL=E8c{Z|x#yojgNR)_8o!ouIzCmXAoLS0fyV^bA`?Z#V)@2ak2p%*?UpLZ85FR%eWrIt^u&Q zPz``gJb<07(Brsv)cKhJjDbK>z!)G$y+l$#)ZrO}aY+GVfE@J_NdZxZXAH(A1)M!} zYfDeBs(LU+ni~#8_J89bO^|-^4~R0IN3c3NE|Hlwh_>hZ`?D{%pR|KYpv?fvs;3PN zYjUtOIVj(>yzl-<%S-0<%eUJ8koiVoSumF%7+Bld*7QgKNHbI1aH!nBFs7l+O%I|~ zJ1pmNc*pg{70Rk3%`jNXy$bZ5!MQ#%+g3FYB*+9Jvjs?S0L!m`;kDj9OtnrR#Q4eK z`LHQ)=HN|cazGt%jXe4Gwsw1|>7&jLO!Ziw%e=}JFj50xRXLIZgL6?sQLXqo!lD52 z)qEI1_~ZGxumEEd|wYgAKeZp6QO@i=d=O3(Q5G1{SwpUI+`|d5C{$#rDNYzu}O=oU}ad3iTz1||1&yEG)v5c;_D>Z`B- zzL=e7Ynoc*O77}tOdDnO*4xdp70#e?9auB1BczxK6OzBo-z#tf*5+VG>ippUo&FP@ zZfIIBC!h@(h3T+{yRW_u3*f};&zb`AR7b{=SL#Tws)v?le4n3J^|Oqgj6eL{UlYWV z_YIY~HB%aWNsVr?sIvutV|iref9=)O#r>sk!U8xx`;!(yaHS3kfQ&xUQB56K%s^)L zpmZy>GURKKyMd&T)D8h)Ozv-r&X`nmc9)OVB34u37-&@ehh3A zfEc0>(uSmfko03%J1HQBD1@{jDIg^M7}ib-h#?9gZAc0TNk4|QlLBIhLP#5u0z%S{ zVeO=V7@`o;hNOUy^kY~%DIkU@gtQ?kASC@5)=mnDAqpXFND2r^KZdoF0%C|lNE_Y* XcP{8q{(T7%00000NkvXXu0mjfG-3)n literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/susy/textures/armor/nomex_legs.png b/src/main/resources/assets/susy/textures/armor/nomex_legs.png new file mode 100644 index 0000000000000000000000000000000000000000..72dd7114d7f4f2c2d37f13b48f52b2e64f7fc393 GIT binary patch literal 2460 zcmV;N31jw&P)Px;R!KxbRCr$PT3d@`R~7#D-se))*K}8RCzFxU7|nGOq7fX>XCLz7v*LpY>VpvP z5Kt6EL4u$@C^1n3g5pc^An311P&AY1fFhG*Ceu^Z)75qAa?ZZVTKk;pi_?7u%CZ7g z8=6ynF8i$Yt#7Tp*4js4&WD(D{jmUG!GJkOVBrFDPJl%aT)4o(1?C)qg$v9%0T!#k z!UYyCFy{y?Twu-#uvi5aE-?2l@bUNl(JQ5(WCW=qXtR%Ix;@54n-N6iDT00pKm_7c z=LP>S5RS*kXw-+05|W-3^2lGff4_U<*aOD(5y|Bf=Q1d<1P>2myHIi!fP)9{%Jol8 z#A5NW3xDuRMUXOL5DL4G<;LA(0Y-VRRP3mNrRrnFD>w+83Yc*JXp}Jkq`W)oNF}gVGXwao$Cw~MKssj+0fRtZ3?PMK0GuxnsU}GA!tA4wY@wI6pQ?#%E9nOt7vGDVq56?q??i;QULTlqUfL0GnfXAdB_-?NUzx zAr0W;|8|2C2kQVnJVF|8SIA?xp2f08b*4Rgl@1YTGqMKbulE!?8*1^i8#O+ssa5jo4Rxnyng4}^%B2Z!mL%V&X z(G~~A{;(KLem*08LCvM{*U;XNY8ALN~jHG)<7_ zVO*iwvm#!;CB>*1MpuKyOG^{WP6BZ9T}Od=t^MW6V!&yWSLZLbe&NTN;B9XH zTW7K;T=)KIU#~^)vDWkBAQ^;lhgljtUh90Rc8+N)G0FV3!e4CtobpjtI;5uofa>pZ z=WDfdOd{a4pRE=C(bi8q1jpx6mg5X~z5Pt>9Me`}lKE?ef28$8c7c0Ovdh@-UthdKtp!a2jgt)oIDEPz5axSpxT?D`yECJxb02u5+xK$>48aDy}aGdWOV?doBDw(Ll zGuXWY0Lojau~POCx&J2wF1MeaH3NR_6;{Zb*)qm=A<=|&nqxsTUBxipXN4Q-GPEAR zxFIV~h*{C8i2)Cc89+4!m9a`Lu^V`daJlo9*#hw4bHDNm%j^Q$WgsV~&Wy2C{{vAh zV6TCh{(B02_fhG1xYCBQj zgQpTU1S%Cw&}13U@{B;0c(06cQcx|R@6>^$cs zx0)@CKY$b|9MQildQ{|LjD|ywG+xH2xK;XpSOy`=2EZu@B>uk88}vokGw?}Rbt$_L z1unP0K3fJnzVkCLeG^U$;jHHyvikstQkTOJC*3KHSzrYNr ztbg=ga)&qeW?M{&C$?Yoo;o?8u4~Ky@bczH!A!!y+98s76}j%f`p_09fY?P;Xpx;Z zV*ehtIPD2=yF9Fh9AK><;2(S6nJohz+j_whJstV754$%?#xQOW)@|WY*js2M8yM=F z-1np4$cd2vl8E-{P9MtO!+=q^lu%*Ai!x28xefo%{by$j05v=)kkK+oEokR+-o4Sb z52AQsGERP$l5J%9)u1@*OY9J6#G5q$v`QDCeFMp>2`AES1nYpL%=lp2+ zDjLlvF^l7U_rEY(03O+V);kQ@AL&TcB+JusNRkzX&gW$dEExN+Nh+|?JbxwwV3&f= zQ{qF*CMQ6YbmibmqW8<$0x=C~ z(`EA0HvrYXAGyNDD&_j8k384q=4r@(NO2_KoF#wb*Ye>XstzA45fFkD>QkgkY zO+nuYR1E0P9)MQziL&n>0v~+`L|=haX)slWX}p14-(p4LC=J&IeJ&GWd;Rem0K!H} z74!lClxg<(xtTNIr1Tr@-m{#4&_rxMQ8|L#=CY2G*Y a0Q?7w7(0~u0000 Date: Sat, 28 Dec 2024 22:15:23 -0600 Subject: [PATCH 25/55] feat: nomex item textures --- .../renderer/handler/BreathingApparatusModel.java | 3 --- .../models/item/metaitems/nomex_boots.json | 6 ++++++ .../models/item/metaitems/nomex_chestplate.json | 6 ++++++ .../models/item/metaitems/nomex_leggings.json | 6 ++++++ .../models/item/metaitems/nomex_mask.json | 6 ++++++ .../textures/items/metaitems/nomex_boots.png | Bin 0 -> 284 bytes .../textures/items/metaitems/nomex_chestplate.png | Bin 0 -> 277 bytes .../textures/items/metaitems/nomex_leggings.png | Bin 0 -> 264 bytes .../textures/items/metaitems/nomex_mask.png | Bin 0 -> 263 bytes 9 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 src/main/resources/assets/gregtech/models/item/metaitems/nomex_boots.json create mode 100644 src/main/resources/assets/gregtech/models/item/metaitems/nomex_chestplate.json create mode 100644 src/main/resources/assets/gregtech/models/item/metaitems/nomex_leggings.json create mode 100644 src/main/resources/assets/gregtech/models/item/metaitems/nomex_mask.json create mode 100644 src/main/resources/assets/gregtech/textures/items/metaitems/nomex_boots.png create mode 100644 src/main/resources/assets/gregtech/textures/items/metaitems/nomex_chestplate.png create mode 100644 src/main/resources/assets/gregtech/textures/items/metaitems/nomex_leggings.png create mode 100644 src/main/resources/assets/gregtech/textures/items/metaitems/nomex_mask.png diff --git a/src/main/java/supersymmetry/client/renderer/handler/BreathingApparatusModel.java b/src/main/java/supersymmetry/client/renderer/handler/BreathingApparatusModel.java index 78b0a4e57..00bdf1776 100644 --- a/src/main/java/supersymmetry/client/renderer/handler/BreathingApparatusModel.java +++ b/src/main/java/supersymmetry/client/renderer/handler/BreathingApparatusModel.java @@ -4,9 +4,6 @@ import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.util.ResourceLocation; -import java.util.ArrayList; -import java.util.List; - import static supersymmetry.api.util.SuSyUtility.susyId; public class BreathingApparatusModel extends ModelBiped { diff --git a/src/main/resources/assets/gregtech/models/item/metaitems/nomex_boots.json b/src/main/resources/assets/gregtech/models/item/metaitems/nomex_boots.json new file mode 100644 index 000000000..70fc769ee --- /dev/null +++ b/src/main/resources/assets/gregtech/models/item/metaitems/nomex_boots.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gregtech:items/metaitems/nomex_boots" + } +} diff --git a/src/main/resources/assets/gregtech/models/item/metaitems/nomex_chestplate.json b/src/main/resources/assets/gregtech/models/item/metaitems/nomex_chestplate.json new file mode 100644 index 000000000..4710af9f8 --- /dev/null +++ b/src/main/resources/assets/gregtech/models/item/metaitems/nomex_chestplate.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gregtech:items/metaitems/nomex_chestplate" + } +} diff --git a/src/main/resources/assets/gregtech/models/item/metaitems/nomex_leggings.json b/src/main/resources/assets/gregtech/models/item/metaitems/nomex_leggings.json new file mode 100644 index 000000000..ebdc97a50 --- /dev/null +++ b/src/main/resources/assets/gregtech/models/item/metaitems/nomex_leggings.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gregtech:items/metaitems/nomex_leggings" + } +} diff --git a/src/main/resources/assets/gregtech/models/item/metaitems/nomex_mask.json b/src/main/resources/assets/gregtech/models/item/metaitems/nomex_mask.json new file mode 100644 index 000000000..6f0e9b955 --- /dev/null +++ b/src/main/resources/assets/gregtech/models/item/metaitems/nomex_mask.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gregtech:items/metaitems/nomex_mask" + } +} diff --git a/src/main/resources/assets/gregtech/textures/items/metaitems/nomex_boots.png b/src/main/resources/assets/gregtech/textures/items/metaitems/nomex_boots.png new file mode 100644 index 0000000000000000000000000000000000000000..2e9899024fdeb2baf3c36f866618b627a751031e GIT binary patch literal 284 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|_ISEDhFA!m zo#4oI$U%UmIA}_PoDD}@O#}ajSIK`S&lk@B)#I`DiqRXDN!EpL~J#sjvXEo_^GcAS)7S?D7+UoGC>BdJfa;d75CGsmfi8Y+#NSFWx#nN(P9 zvcR3$|DyXoi4B%{{Y+J>u3izDutV+nsvjoBrDt#Sug|yOnSOlFuL3!sKloB3JkxxA Z8MJ_G4j=}BOTm*tl&7no%Q~loCII?DYgqsQ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/items/metaitems/nomex_chestplate.png b/src/main/resources/assets/gregtech/textures/items/metaitems/nomex_chestplate.png new file mode 100644 index 0000000000000000000000000000000000000000..7232e98a5ee6e0974c5ecd4d623b20d6cf1b2deb GIT binary patch literal 277 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|wtBiahFA!m zo#4oID1e7`chHn3y%>%>n+EoR+lRmS#rfTNX{Zz|!ErYKx^9cw!@Vc7cjp!R@892^ zYVrK>JF$1O-hX~5IQ^fc=-y*{qFYive>Gv*%&PEymVnF61)j>8Me%ly42SN27oGpz zqLxc7y-JaF0Y}62&$n4#aXEba6Te~kjcVB&S_f7XztB36aba)UL6$$2X{BdbBm}t( zs_xwuXP9mn9Os&&^er-&p)%2j_gv)Wx&Qccj~(X?yLnd{=mEae2+uTMUj{88n*)eJ S;8O5p5asFW=d#Wzp$P!+CTX|; literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/items/metaitems/nomex_leggings.png b/src/main/resources/assets/gregtech/textures/items/metaitems/nomex_leggings.png new file mode 100644 index 0000000000000000000000000000000000000000..be329c18aeeb5a6ff527af51980c264ad0500357 GIT binary patch literal 264 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|R(QHNhFA!m zooL9_93bGbR*6kfOpH;Q{{iErsu_1Qrwdyb_vo*malU1~{Jv0;X|cy<-i%zk>auOF zE!(RqNvG>Rg<}7V4OCoee|P+?oBg;)bIuyhB$g>YQ=Imma7a3lvsC7^nuCIplHkFq zt1KF&4PHl!NIH}yedK)qR&+&aWt~KV+MIGL-IoHQSN$2T#~0WbeqiylneyPa8jnGU zzZrMIB=r*yFa6#A-u}n5`)s}U76IMNmm1-j=IhI#1!QvoF$i1=o(!TqUHx3vIVCg! E0Bj~)XaE2J literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/items/metaitems/nomex_mask.png b/src/main/resources/assets/gregtech/textures/items/metaitems/nomex_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..c078a04a5f882ee6e0e1581f2ad769131cb3484f GIT binary patch literal 263 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|mV3H5hFA#R z?YHJTtRUdBy<5rE>(mrWhpeb6O_TbXgbUcB_#94`s!KiTl{tOPGkb~P{F~;xJ7mi5 zuGbIP{(1BJ`oAHH?>>L_SDb!%v9qDuiap;SSZ|d+l+>j3Ni|z{MIu8YE907Z?TV8< z%S6+D7&JUSyF6pflI-YL6oPfpUXO@geCy9 CB4Pdj literal 0 HcmV?d00001 From ed42c2d6481cbaf9edea6d55d23422ae41fbf5b8 Mon Sep 17 00:00:00 2001 From: oliwier509 <53867161+oliwier509@users.noreply.github.com> Date: Mon, 30 Dec 2024 00:31:03 +0100 Subject: [PATCH 26/55] nomex obj/mtl files --- .../assets/susy/models/armor/nomex_belt.mtl | 4 + .../assets/susy/models/armor/nomex_belt.obj | 49 ++++++++++++ .../assets/susy/models/armor/nomex_chest.mtl | 2 +- .../assets/susy/models/armor/nomex_chest.obj | 78 +++++++++---------- .../assets/susy/models/armor/nomex_head.mtl | 1 + .../susy/models/armor/nomex_left_arm.mtl | 2 +- .../susy/models/armor/nomex_left_arm.obj | 26 +++---- .../susy/models/armor/nomex_left_foot.mtl | 2 +- .../susy/models/armor/nomex_left_foot.obj | 78 +++++++++---------- .../susy/models/armor/nomex_left_leg.mtl | 3 +- .../susy/models/armor/nomex_left_leg.obj | 76 +++++++++--------- .../susy/models/armor/nomex_right_arm.mtl | 2 +- .../susy/models/armor/nomex_right_arm.obj | 26 +++---- .../susy/models/armor/nomex_right_foot.mtl | 2 +- .../susy/models/armor/nomex_right_foot.obj | 78 +++++++++---------- .../susy/models/armor/nomex_right_leg.mtl | 3 +- .../susy/models/armor/nomex_right_leg.obj | 76 +++++++++--------- 17 files changed, 280 insertions(+), 228 deletions(-) create mode 100644 src/main/resources/assets/susy/models/armor/nomex_belt.mtl create mode 100644 src/main/resources/assets/susy/models/armor/nomex_belt.obj diff --git a/src/main/resources/assets/susy/models/armor/nomex_belt.mtl b/src/main/resources/assets/susy/models/armor/nomex_belt.mtl new file mode 100644 index 000000000..61ee2faa6 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/nomex_belt.mtl @@ -0,0 +1,4 @@ +# Made in Blockbench 4.11.2 +newmtl m_22146c5c-7b00-d50c-efb6-59ee4d389240 +map_Kd susy:armor/nomex_belt +newmtl none diff --git a/src/main/resources/assets/susy/models/armor/nomex_belt.obj b/src/main/resources/assets/susy/models/armor/nomex_belt.obj new file mode 100644 index 000000000..36308dbb5 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/nomex_belt.obj @@ -0,0 +1,49 @@ +# Made in Blockbench 4.11.2 +mtllib nomex_belt.mtl + +o belt +v 0.15688 -0.34313 -0.28187 +v -0.15687 -0.34313 -0.28188 +v 0.15688 -0.71937 -0.28187 +v -0.15687 -0.71937 -0.28188 +v -0.15688 -0.34313 0.28187 +v 0.15687 -0.34313 0.28188 +v -0.15688 -0.71937 0.28187 +v 0.15687 -0.71937 0.28188 +vt 0.000 0.5625 +vt 0.250 0.5625 +vt 0.250 0.7500 +vt 0.000 0.7500 +vt 0.250 0.5625 +vt 0.750 0.5625 +vt 0.750 0.7500 +vt 0.250 0.7500 +vt 0.750 0.5625 +vt 1.000 0.5625 +vt 1.000 0.7500 +vt 0.750 0.7500 +vt 0.500 0.5625 +vt 1.000 0.5625 +vt 1.000 0.7500 +vt 0.500 0.7500 +vt 0.000 0.7500 +vt 0.500 0.7500 +vt 0.500 1.0000 +vt 0.000 1.0000 +vt 0.000 0.7500 +vt 0.500 0.7500 +vt 0.500 1.0000 +vt 0.000 1.0000 +vn -1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 -1 +vn 1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_22146c5c-7b00-d50c-efb6-59ee4d389240 +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 diff --git a/src/main/resources/assets/susy/models/armor/nomex_chest.mtl b/src/main/resources/assets/susy/models/armor/nomex_chest.mtl index 91d0b7a8c..bbf34d5ee 100644 --- a/src/main/resources/assets/susy/models/armor/nomex_chest.mtl +++ b/src/main/resources/assets/susy/models/armor/nomex_chest.mtl @@ -1,4 +1,4 @@ # Made in Blockbench 4.11.2 -newmtl m_416af319-63d3-e4ba-7c52-9dc8e62ab2f2 +newmtl m_964eed96-0152-85cc-6af8-b64ba4cebc95 map_Kd susy:armor/nomex_chest newmtl none diff --git a/src/main/resources/assets/susy/models/armor/nomex_chest.obj b/src/main/resources/assets/susy/models/armor/nomex_chest.obj index 81ef007a9..a2fbc59ea 100644 --- a/src/main/resources/assets/susy/models/armor/nomex_chest.obj +++ b/src/main/resources/assets/susy/models/armor/nomex_chest.obj @@ -2,14 +2,14 @@ mtllib nomex_chest.mtl o chestplate -v 0.18812500000000007 0.938125 -0.31312499999999993 -v -0.1881249999999999 0.938125 -0.31312500000000004 -v 0.18812500000000007 0.06187500000000001 -0.31312499999999993 -v -0.1881249999999999 0.06187500000000001 -0.31312500000000004 -v -0.18812500000000007 0.938125 0.31312499999999993 -v 0.1881249999999999 0.938125 0.31312500000000004 -v -0.18812500000000007 0.06187500000000001 0.31312499999999993 -v 0.1881249999999999 0.06187500000000001 0.31312500000000004 +v -0.1881249999999999 0.06312499999999999 0.31312500000000004 +v 0.18812500000000007 0.06312499999999999 0.31312499999999993 +v -0.1881249999999999 -0.813125 0.31312500000000004 +v 0.18812500000000007 -0.813125 0.31312499999999993 +v 0.1881249999999999 0.06312499999999999 -0.31312500000000004 +v -0.18812500000000007 0.06312499999999999 -0.31312499999999993 +v 0.1881249999999999 -0.813125 -0.31312500000000004 +v -0.18812500000000007 -0.813125 -0.31312499999999993 vt 0.125 0.875 vt 0.375 0.875 vt 0.375 0.5 @@ -34,13 +34,13 @@ vt 0.625 1 vt 0.375 1 vt 0.375 0.875 vt 0.625 0.875 -vn -1 0 -2.220446049250313e-16 -vn 2.220446049250313e-16 0 -1 -vn 1 0 2.220446049250313e-16 -vn -2.220446049250313e-16 0 1 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 vn 0 1 0 vn 0 -1 0 -usemtl m_416af319-63d3-e4ba-7c52-9dc8e62ab2f2 +usemtl m_964eed96-0152-85cc-6af8-b64ba4cebc95 f 4/4/1 7/3/1 5/2/1 2/1/1 f 3/8/2 4/7/2 2/6/2 1/5/2 f 8/12/3 3/11/3 1/10/3 6/9/3 @@ -48,14 +48,14 @@ f 7/16/4 8/15/4 6/14/4 5/13/4 f 6/20/5 1/19/5 2/18/5 5/17/5 f 7/24/6 4/23/6 3/22/6 8/21/6 o bb_main -v 0.25 0.9375 0.06250000000000006 -v 0.12499999999999999 0.9375 0.06250000000000003 -v 0.25 0.25 0.06250000000000006 -v 0.12499999999999999 0.25 0.06250000000000003 -v 0.12499999999999996 0.9375 0.18750000000000003 -v 0.24999999999999994 0.9375 0.18750000000000006 -v 0.12499999999999996 0.25 0.18750000000000003 -v 0.24999999999999994 0.25 0.18750000000000006 +v -0.25 0.0625 -0.062499999999999944 +v -0.125 0.0625 -0.06249999999999997 +v -0.25 -0.625 -0.062499999999999944 +v -0.125 -0.625 -0.06249999999999997 +v -0.12500000000000006 0.0625 -0.18749999999999997 +v -0.25000000000000006 0.0625 -0.18749999999999994 +v -0.12500000000000006 -0.625 -0.18749999999999997 +v -0.25000000000000006 -0.625 -0.18749999999999994 vt 0.8125 0.34375 vt 0.875 0.34375 vt 0.875 0 @@ -80,13 +80,13 @@ vt 0.9375 0.40625 vt 0.875 0.40625 vt 0.875 0.34375 vt 0.9375 0.34375 -vn -1 0 -2.220446049250313e-16 -vn 2.220446049250313e-16 0 -1 -vn 1 0 2.220446049250313e-16 -vn -2.220446049250313e-16 0 1 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 vn 0 1 0 vn 0 -1 0 -usemtl m_416af319-63d3-e4ba-7c52-9dc8e62ab2f2 +usemtl m_964eed96-0152-85cc-6af8-b64ba4cebc95 f 12/28/7 15/27/7 13/26/7 10/25/7 f 11/32/8 12/31/8 10/30/8 9/29/8 f 16/36/9 11/35/9 9/34/9 14/33/9 @@ -94,14 +94,14 @@ f 15/40/10 16/39/10 14/38/10 13/37/10 f 14/44/11 9/43/11 10/42/11 13/41/11 f 15/48/12 12/47/12 11/46/12 16/45/12 o bb_main -v 0.25000000000000006 0.9375 -0.18749999999999994 -v 0.12500000000000006 0.9375 -0.18749999999999997 -v 0.25000000000000006 0.25 -0.18749999999999994 -v 0.12500000000000006 0.25 -0.18749999999999997 -v 0.125 0.9375 -0.06249999999999997 -v 0.25 0.9375 -0.062499999999999944 -v 0.125 0.25 -0.06249999999999997 -v 0.25 0.25 -0.062499999999999944 +v -0.24999999999999994 0.0625 0.18750000000000006 +v -0.12499999999999996 0.0625 0.18750000000000003 +v -0.24999999999999994 -0.625 0.18750000000000006 +v -0.12499999999999996 -0.625 0.18750000000000003 +v -0.12499999999999999 0.0625 0.06250000000000003 +v -0.25 0.0625 0.06250000000000006 +v -0.12499999999999999 -0.625 0.06250000000000003 +v -0.25 -0.625 0.06250000000000006 vt 0.8125 0.34375 vt 0.875 0.34375 vt 0.875 0 @@ -126,13 +126,13 @@ vt 0.9375 0.40625 vt 0.875 0.40625 vt 0.875 0.34375 vt 0.9375 0.34375 -vn -1 0 -2.220446049250313e-16 -vn 2.220446049250313e-16 0 -1 -vn 1 0 2.220446049250313e-16 -vn -2.220446049250313e-16 0 1 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 vn 0 1 0 vn 0 -1 0 -usemtl m_416af319-63d3-e4ba-7c52-9dc8e62ab2f2 +usemtl m_964eed96-0152-85cc-6af8-b64ba4cebc95 f 20/52/13 23/51/13 21/50/13 18/49/13 f 19/56/14 20/55/14 18/54/14 17/53/14 f 24/60/15 19/59/15 17/58/15 22/57/15 diff --git a/src/main/resources/assets/susy/models/armor/nomex_head.mtl b/src/main/resources/assets/susy/models/armor/nomex_head.mtl index 2206a86c1..1b90c2265 100644 --- a/src/main/resources/assets/susy/models/armor/nomex_head.mtl +++ b/src/main/resources/assets/susy/models/armor/nomex_head.mtl @@ -1,3 +1,4 @@ # Made in Blockbench 4.11.2 newmtl m_51eee937-2e6e-681e-fc08-613a1dbdb863 map_Kd susy:armor/nomex_head +newmtl none diff --git a/src/main/resources/assets/susy/models/armor/nomex_left_arm.mtl b/src/main/resources/assets/susy/models/armor/nomex_left_arm.mtl index 2fd870d11..2bca3824c 100644 --- a/src/main/resources/assets/susy/models/armor/nomex_left_arm.mtl +++ b/src/main/resources/assets/susy/models/armor/nomex_left_arm.mtl @@ -1,4 +1,4 @@ # Made in Blockbench 4.11.2 -newmtl m_64d34cc8-1926-f466-d642-ba1a500f20c0 +newmtl m_26ade174-421c-f967-6735-4c103218f3de map_Kd susy:armor/nomex_chest newmtl none diff --git a/src/main/resources/assets/susy/models/armor/nomex_left_arm.obj b/src/main/resources/assets/susy/models/armor/nomex_left_arm.obj index a4f84a123..cc2cc3df9 100644 --- a/src/main/resources/assets/susy/models/armor/nomex_left_arm.obj +++ b/src/main/resources/assets/susy/models/armor/nomex_left_arm.obj @@ -2,14 +2,14 @@ mtllib nomex_left_arm.mtl o arm_plate_left -v 0.18749999999999994 0.9375 0.18750000000000006 -v -0.18750000000000006 0.9375 0.18749999999999994 -v 0.18749999999999994 0.0625 0.18750000000000006 -v -0.18750000000000006 0.0625 0.18749999999999994 -v -0.1875000000000001 0.9375 0.5625 -v 0.1874999999999999 0.9375 0.5625 -v -0.1875000000000001 0.0625 0.5625 -v 0.1874999999999999 0.0625 0.5625 +v -0.18750000000000003 0.17500000000000004 0.15625000000000006 +v 0.18749999999999997 0.17500000000000004 0.15624999999999994 +v -0.18750000000000003 -0.7 0.15625000000000006 +v 0.18749999999999997 -0.7 0.15624999999999994 +v 0.1874999999999999 0.17500000000000004 -0.21875 +v -0.1875000000000001 0.17500000000000004 -0.21875 +v 0.1874999999999999 -0.7 -0.21875 +v -0.1875000000000001 -0.7 -0.21875 vt 0.25 0.375 vt 0.125 0.375 vt 0.125 0 @@ -34,13 +34,13 @@ vt 0.25 0.5 vt 0.375 0.5 vt 0.375 0.375 vt 0.25 0.375 -vn -1 0 -2.220446049250313e-16 -vn 2.220446049250313e-16 0 -1 -vn 1 0 2.220446049250313e-16 -vn -2.220446049250313e-16 0 1 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 vn 0 1 0 vn 0 -1 0 -usemtl m_64d34cc8-1926-f466-d642-ba1a500f20c0 +usemtl m_26ade174-421c-f967-6735-4c103218f3de f 4/4/1 7/3/1 5/2/1 2/1/1 f 3/8/2 4/7/2 2/6/2 1/5/2 f 8/12/3 3/11/3 1/10/3 6/9/3 diff --git a/src/main/resources/assets/susy/models/armor/nomex_left_foot.mtl b/src/main/resources/assets/susy/models/armor/nomex_left_foot.mtl index 2daff05ee..14d9d41ba 100644 --- a/src/main/resources/assets/susy/models/armor/nomex_left_foot.mtl +++ b/src/main/resources/assets/susy/models/armor/nomex_left_foot.mtl @@ -1,4 +1,4 @@ # Made in Blockbench 4.11.2 -newmtl m_4af8cc83-b806-6d86-c8dd-c6f51a9e21a0 +newmtl m_e574fba4-4e60-fb97-202c-219df851e040 map_Kd susy:armor/nomex_feet newmtl none diff --git a/src/main/resources/assets/susy/models/armor/nomex_left_foot.obj b/src/main/resources/assets/susy/models/armor/nomex_left_foot.obj index 9b72e4e3b..f73cc5d0b 100644 --- a/src/main/resources/assets/susy/models/armor/nomex_left_foot.obj +++ b/src/main/resources/assets/susy/models/armor/nomex_left_foot.obj @@ -1,49 +1,49 @@ # Made in Blockbench 4.11.2 mtllib nomex_left_foot.mtl -o leggings_right -v 0.275 0.78125 0.15625 -v 0.275 0.78125 -0.15625 -v 0.275 -0.03125 0.15625 -v 0.275 -0.03125 -0.15625 -v -0.037500000000000006 0.78125 -0.15625 -v -0.037500000000000006 0.78125 0.15625 -v -0.037500000000000006 -0.03125 -0.15625 -v -0.037500000000000006 -0.03125 0.15625 -vt 0.125 0.875 -vt 0.25 0.875 -vt 0.25 0.5 -vt 0.125 0.5 -vt 0 0.875 -vt 0.125 0.875 -vt 0.125 0.5 -vt 0 0.5 -vt 0.375 0.875 -vt 0.5 0.875 -vt 0.5 0.5 -vt 0.375 0.5 -vt 0.25 0.875 -vt 0.375 0.875 -vt 0.375 0.5 -vt 0.25 0.5 -vt 0.25 0.875 -vt 0.125 0.875 -vt 0.125 1 -vt 0.25 1 -vt 0.375 1 -vt 0.25 1 -vt 0.25 0.875 -vt 0.375 0.875 -vn 0 0 -1 -vn 1 0 0 -vn 0 0 1 -vn -1 0 0 +o feet_left +v 0.15625 0.0 -0.1625 +v -0.15625 0.0 -0.1625 +v 0.15625 -0.71875 -0.1625 +v -0.15625 -0.71875 -0.1625 +v -0.15625 0.0 0.15 +v 0.15625 0.0 0.15 +v -0.15625 -0.71875 0.15 +v 0.15625 -0.71875 0.15 +vt 0.0 0.4375 +vt 0.125 0.4375 +vt 0.125 0.125 +vt 0.0 0.125 +vt 0.125 0.4375 +vt 0.25 0.4375 +vt 0.25 0.125 +vt 0.125 0.125 +vt 0.25 0.4375 +vt 0.375 0.4375 +vt 0.375 0.125 +vt 0.25 0.125 +vt 0.375 0.4375 +vt 0.5 0.4375 +vt 0.5 0.125 +vt 0.375 0.125 +vt 0.25 0.125 +vt 0.375 0.125 +vt 0.375 0.0 +vt 0.25 0.0 +vt 0.125 0.125 +vt 0.25 0.125 +vt 0.25 0.0 +vt 0.125 0.0 +vn -1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 -1 +vn 1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 1 vn 0 1 0 vn 0 -1 0 -usemtl m_4af8cc83-b806-6d86-c8dd-c6f51a9e21a0 +usemtl m_e574fba4-4e60-fb97-202c-219df851e040 f 4/4/1 7/3/1 5/2/1 2/1/1 f 3/8/2 4/7/2 2/6/2 1/5/2 f 8/12/3 3/11/3 1/10/3 6/9/3 f 7/16/4 8/15/4 6/14/4 5/13/4 f 6/20/5 1/19/5 2/18/5 5/17/5 -f 7/24/6 4/23/6 3/22/6 8/21/6 \ No newline at end of file +f 7/24/6 4/23/6 3/22/6 8/21/6 diff --git a/src/main/resources/assets/susy/models/armor/nomex_left_leg.mtl b/src/main/resources/assets/susy/models/armor/nomex_left_leg.mtl index ce3b9a2b7..822caf723 100644 --- a/src/main/resources/assets/susy/models/armor/nomex_left_leg.mtl +++ b/src/main/resources/assets/susy/models/armor/nomex_left_leg.mtl @@ -1,4 +1,3 @@ # Made in Blockbench 4.11.2 -newmtl m_45df9991-7315-ca4a-8de6-222a6a7899e1 +newmtl m_e55485b1-aa5c-02a8-af81-aa2e28db910f map_Kd susy:armor/nomex_legs -newmtl none diff --git a/src/main/resources/assets/susy/models/armor/nomex_left_leg.obj b/src/main/resources/assets/susy/models/armor/nomex_left_leg.obj index 888bef367..cfec33abb 100644 --- a/src/main/resources/assets/susy/models/armor/nomex_left_leg.obj +++ b/src/main/resources/assets/susy/models/armor/nomex_left_leg.obj @@ -2,48 +2,48 @@ mtllib nomex_left_leg.mtl o leggings_left -v 0.037500000000000006 0.78125 0.15625 -v 0.037500000000000006 0.78125 -0.15625 -v 0.037500000000000006 -0.03125 0.15625 -v 0.037500000000000006 -0.03125 -0.15625 -v -0.275 0.78125 -0.15625 -v -0.275 0.78125 0.15625 -v -0.275 -0.03125 -0.15625 -v -0.275 -0.03125 0.15625 -vt 0.25 0.375 -vt 0.125 0.375 -vt 0.125 0 -vt 0.25 0 -vt 0.375 0.375 -vt 0.25 0.375 -vt 0.25 0 -vt 0.375 0 -vt 0.5 0.375 -vt 0.375 0.375 -vt 0.375 0 -vt 0.5 0 -vt 0.125 0.375 -vt 0 0.375 -vt 0 0 -vt 0.125 0 -vt 0.125 0.375 -vt 0.25 0.375 -vt 0.25 0.5 -vt 0.125 0.5 -vt 0.25 0.5 -vt 0.375 0.5 -vt 0.375 0.375 -vt 0.25 0.375 -vn 0 0 -1 -vn 1 0 0 -vn 0 0 1 -vn -1 0 0 +v 0.15625 0.09375 -0.1625 +v -0.15625 0.09375 -0.16250000000000004 +v 0.15625 -0.625 -0.1625 +v -0.15625 -0.625 -0.16250000000000004 +v -0.15625000000000006 0.09375 0.14999999999999997 +v 0.15624999999999994 0.09375 0.15000000000000004 +v -0.15625000000000006 -0.625 0.14999999999999997 +v 0.15624999999999994 -0.625 0.15000000000000004 +vt 0.0 0.4375 +vt 0.125 0.4375 +vt 0.125 0.125 +vt 0.0 0.125 +vt 0.125 0.4375 +vt 0.25 0.4375 +vt 0.25 0.125 +vt 0.125 0.125 +vt 0.25 0.4375 +vt 0.375 0.4375 +vt 0.375 0.125 +vt 0.25 0.125 +vt 0.375 0.4375 +vt 0.5 0.4375 +vt 0.5 0.125 +vt 0.375 0.125 +vt 0.125 0.125 +vt 0.25 0.125 +vt 0.25 0.0 +vt 0.125 0.0 +vt 0.25 0.125 +vt 0.375 0.125 +vt 0.375 0.0 +vt 0.25 0.0 +vn -1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 -1 +vn 1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 1 vn 0 1 0 vn 0 -1 0 -usemtl m_45df9991-7315-ca4a-8de6-222a6a7899e1 +usemtl m_e55485b1-aa5c-02a8-af81-aa2e28db910f f 4/4/1 7/3/1 5/2/1 2/1/1 f 3/8/2 4/7/2 2/6/2 1/5/2 f 8/12/3 3/11/3 1/10/3 6/9/3 f 7/16/4 8/15/4 6/14/4 5/13/4 f 6/20/5 1/19/5 2/18/5 5/17/5 -f 7/24/6 4/23/6 3/22/6 8/21/6 \ No newline at end of file +f 7/24/6 4/23/6 3/22/6 8/21/6 diff --git a/src/main/resources/assets/susy/models/armor/nomex_right_arm.mtl b/src/main/resources/assets/susy/models/armor/nomex_right_arm.mtl index ea7b46baf..a0613135d 100644 --- a/src/main/resources/assets/susy/models/armor/nomex_right_arm.mtl +++ b/src/main/resources/assets/susy/models/armor/nomex_right_arm.mtl @@ -1,4 +1,4 @@ # Made in Blockbench 4.11.2 -newmtl m_b2d35747-d43a-9a3a-1913-6b1d8d106d33 +newmtl m_201e6fcf-bb21-89bd-8072-3791d64ec61b map_Kd susy:armor/nomex_chest newmtl none diff --git a/src/main/resources/assets/susy/models/armor/nomex_right_arm.obj b/src/main/resources/assets/susy/models/armor/nomex_right_arm.obj index 731c5864b..700d270c6 100644 --- a/src/main/resources/assets/susy/models/armor/nomex_right_arm.obj +++ b/src/main/resources/assets/susy/models/armor/nomex_right_arm.obj @@ -2,14 +2,14 @@ mtllib nomex_right_arm.mtl o arm_plate_right -v 0.1875000000000001 0.9375 -0.5625 -v -0.1874999999999999 0.9375 -0.5625 -v 0.1875000000000001 0.0625 -0.5625 -v -0.1874999999999999 0.0625 -0.5625 -v -0.18749999999999994 0.9375 -0.18750000000000006 -v 0.18750000000000006 0.9375 -0.18749999999999994 -v -0.18749999999999994 0.0625 -0.18750000000000006 -v 0.18750000000000006 0.0625 -0.18749999999999994 +v -0.1874999999999999 0.17500000000000004 0.21875 +v 0.1875000000000001 0.17500000000000004 0.21875 +v -0.1874999999999999 -0.7 0.21875 +v 0.1875000000000001 -0.7 0.21875 +v 0.18750000000000003 0.17500000000000004 -0.15625000000000006 +v -0.18749999999999997 0.17500000000000004 -0.15624999999999994 +v 0.18750000000000003 -0.7 -0.15625000000000006 +v -0.18749999999999997 -0.7 -0.15624999999999994 vt 0.125 0.375 vt 0.25 0.375 vt 0.25 0 @@ -34,13 +34,13 @@ vt 0.375 0.5 vt 0.25 0.5 vt 0.25 0.375 vt 0.375 0.375 -vn -1 0 -2.220446049250313e-16 -vn 2.220446049250313e-16 0 -1 -vn 1 0 2.220446049250313e-16 -vn -2.220446049250313e-16 0 1 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 vn 0 1 0 vn 0 -1 0 -usemtl m_b2d35747-d43a-9a3a-1913-6b1d8d106d33 +usemtl m_201e6fcf-bb21-89bd-8072-3791d64ec61b f 4/4/1 7/3/1 5/2/1 2/1/1 f 3/8/2 4/7/2 2/6/2 1/5/2 f 8/12/3 3/11/3 1/10/3 6/9/3 diff --git a/src/main/resources/assets/susy/models/armor/nomex_right_foot.mtl b/src/main/resources/assets/susy/models/armor/nomex_right_foot.mtl index 2268783d9..f5a6c1a0c 100644 --- a/src/main/resources/assets/susy/models/armor/nomex_right_foot.mtl +++ b/src/main/resources/assets/susy/models/armor/nomex_right_foot.mtl @@ -1,4 +1,4 @@ # Made in Blockbench 4.11.2 -newmtl m_7eeb2f72-fdb6-0390-2ec7-e04b5852da1d +newmtl m_88d90717-7a97-65ec-0381-649670f355ef map_Kd susy:armor/nomex_feet newmtl none diff --git a/src/main/resources/assets/susy/models/armor/nomex_right_foot.obj b/src/main/resources/assets/susy/models/armor/nomex_right_foot.obj index b540883c3..a2f4fb9e9 100644 --- a/src/main/resources/assets/susy/models/armor/nomex_right_foot.obj +++ b/src/main/resources/assets/susy/models/armor/nomex_right_foot.obj @@ -1,49 +1,49 @@ # Made in Blockbench 4.11.2 mtllib nomex_right_foot.mtl -o boot_right -v 0.30625 0.8125 0.1875 -v 0.30625 0.8125 -0.1875 -v 0.30625 -0.0625 0.1875 -v 0.30625 -0.0625 -0.1875 -v -0.06875 0.8125 -0.1875 -v -0.06875 0.8125 0.1875 -v -0.06875 -0.0625 -0.1875 -v -0.06875 -0.0625 0.1875 -vt 0.125 0.875 -vt 0.25 0.875 -vt 0.25 0.5 -vt 0.125 0.5 -vt 0 0.875 -vt 0.125 0.875 -vt 0.125 0.5 -vt 0 0.5 -vt 0.375 0.875 -vt 0.5 0.875 -vt 0.5 0.5 -vt 0.375 0.5 -vt 0.25 0.875 -vt 0.375 0.875 -vt 0.375 0.5 -vt 0.25 0.5 -vt 0.25 0.875 -vt 0.125 0.875 -vt 0.125 1 -vt 0.25 1 -vt 0.375 1 -vt 0.25 1 -vt 0.25 0.875 -vt 0.375 0.875 -vn 0 0 -1 -vn 1 0 0 -vn 0 0 1 -vn -1 0 0 +o feet_right +v 0.15625 0.0 -0.15 +v -0.15625 0.0 -0.15 +v 0.15625 -0.71875 -0.15 +v -0.15625 -0.71875 -0.15 +v -0.15625 0.0 0.1625 +v 0.15625 0.0 0.1625 +v -0.15625 -0.71875 0.1625 +v 0.15625 -0.71875 0.1625 +vt 0.0 0.4375 +vt 0.125 0.4375 +vt 0.125 0.125 +vt 0.0 0.125 +vt 0.25 0.4375 +vt 0.375 0.4375 +vt 0.375 0.125 +vt 0.25 0.125 +vt 0.125 0.4375 +vt 0.25 0.4375 +vt 0.25 0.125 +vt 0.125 0.125 +vt 0.375 0.4375 +vt 0.5 0.4375 +vt 0.5 0.125 +vt 0.375 0.125 +vt 0.25 0.125 +vt 0.375 0.125 +vt 0.375 0.0 +vt 0.25 0.0 +vt 0.125 0.125 +vt 0.25 0.125 +vt 0.25 0.0 +vt 0.125 0.0 +vn -1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 -1 +vn 1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 1 vn 0 1 0 vn 0 -1 0 -usemtl m_7eeb2f72-fdb6-0390-2ec7-e04b5852da1d +usemtl m_88d90717-7a97-65ec-0381-649670f355ef f 4/4/1 7/3/1 5/2/1 2/1/1 f 3/8/2 4/7/2 2/6/2 1/5/2 f 8/12/3 3/11/3 1/10/3 6/9/3 f 7/16/4 8/15/4 6/14/4 5/13/4 f 6/20/5 1/19/5 2/18/5 5/17/5 -f 7/24/6 4/23/6 3/22/6 8/21/6 \ No newline at end of file +f 7/24/6 4/23/6 3/22/6 8/21/6 diff --git a/src/main/resources/assets/susy/models/armor/nomex_right_leg.mtl b/src/main/resources/assets/susy/models/armor/nomex_right_leg.mtl index 163c2997e..0a38f9617 100644 --- a/src/main/resources/assets/susy/models/armor/nomex_right_leg.mtl +++ b/src/main/resources/assets/susy/models/armor/nomex_right_leg.mtl @@ -1,4 +1,3 @@ # Made in Blockbench 4.11.2 -newmtl m_42886af2-265e-39a6-debf-f7c35875696c +newmtl m_f29d979d-1d85-a8fe-f2de-47532cc35779 map_Kd susy:armor/nomex_legs -newmtl none diff --git a/src/main/resources/assets/susy/models/armor/nomex_right_leg.obj b/src/main/resources/assets/susy/models/armor/nomex_right_leg.obj index 94bd1a694..54748e3a0 100644 --- a/src/main/resources/assets/susy/models/armor/nomex_right_leg.obj +++ b/src/main/resources/assets/susy/models/armor/nomex_right_leg.obj @@ -2,48 +2,48 @@ mtllib nomex_right_leg.mtl o leggings_right -v 0.275 0.78125 0.15625 -v 0.275 0.78125 -0.15625 -v 0.275 -0.03125 0.15625 -v 0.275 -0.03125 -0.15625 -v -0.037500000000000006 0.78125 -0.15625 -v -0.037500000000000006 0.78125 0.15625 -v -0.037500000000000006 -0.03125 -0.15625 -v -0.037500000000000006 -0.03125 0.15625 -vt 0.125 0.375 -vt 0.25 0.375 -vt 0.25 0 -vt 0.125 0 -vt 0 0.375 -vt 0.125 0.375 -vt 0.125 0 -vt 0 0 -vt 0.375 0.375 -vt 0.5 0.375 -vt 0.5 0 -vt 0.375 0 -vt 0.25 0.375 -vt 0.375 0.375 -vt 0.375 0 -vt 0.25 0 -vt 0.25 0.375 -vt 0.125 0.375 -vt 0.125 0.5 -vt 0.25 0.5 -vt 0.375 0.5 -vt 0.25 0.5 -vt 0.25 0.375 -vt 0.375 0.375 -vn 0 0 -1 -vn 1 0 0 -vn 0 0 1 -vn -1 0 0 +v 0.15625000000000006 0.09375 -0.14999999999999997 +v -0.15624999999999994 0.09375 -0.1500000000000001 +v 0.15625000000000006 -0.625 -0.14999999999999997 +v -0.15624999999999994 -0.625 -0.1500000000000001 +v -0.15625 0.09375 0.16249999999999997 +v 0.15625 0.09375 0.16250000000000004 +v -0.15625 -0.625 0.16249999999999997 +v 0.15625 -0.625 0.16250000000000004 +vt 0.0 0.4375 +vt 0.125 0.4375 +vt 0.125 0.125 +vt 0.0 0.125 +vt 0.25 0.4375 +vt 0.375 0.4375 +vt 0.375 0.125 +vt 0.25 0.125 +vt 0.125 0.4375 +vt 0.25 0.4375 +vt 0.25 0.125 +vt 0.125 0.125 +vt 0.375 0.4375 +vt 0.5 0.4375 +vt 0.5 0.125 +vt 0.375 0.125 +vt 0.125 0.125 +vt 0.25 0.125 +vt 0.25 0.0 +vt 0.125 0.0 +vt 0.25 0.125 +vt 0.375 0.125 +vt 0.375 0.0 +vt 0.25 0.0 +vn -1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 -1 +vn 1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 1 vn 0 1 0 vn 0 -1 0 -usemtl m_42886af2-265e-39a6-debf-f7c35875696c +usemtl m_f29d979d-1d85-a8fe-f2de-47532cc35779 f 4/4/1 7/3/1 5/2/1 2/1/1 f 3/8/2 4/7/2 2/6/2 1/5/2 f 8/12/3 3/11/3 1/10/3 6/9/3 f 7/16/4 8/15/4 6/14/4 5/13/4 f 6/20/5 1/19/5 2/18/5 5/17/5 -f 7/24/6 4/23/6 3/22/6 8/21/6 \ No newline at end of file +f 7/24/6 4/23/6 3/22/6 8/21/6 From 6914d5f6ac0be2b60d5a0f840043d376e5c3fa42 Mon Sep 17 00:00:00 2001 From: oliwier509 <53867161+oliwier509@users.noreply.github.com> Date: Mon, 30 Dec 2024 00:31:53 +0100 Subject: [PATCH 27/55] nomex textures --- .../assets/susy/textures/armor/nomex_belt.png | Bin 0 -> 922 bytes .../assets/susy/textures/armor/nomex_feet.png | Bin 1105 -> 856 bytes .../assets/susy/textures/armor/nomex_legs.png | Bin 2460 -> 1333 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/main/resources/assets/susy/textures/armor/nomex_belt.png diff --git a/src/main/resources/assets/susy/textures/armor/nomex_belt.png b/src/main/resources/assets/susy/textures/armor/nomex_belt.png new file mode 100644 index 0000000000000000000000000000000000000000..1e0bdf0212020dcfb9c4a82c380f6b1cb21203e7 GIT binary patch literal 922 zcmV;L17-Y)P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D120KLK~#8N?UqY+ z6EP4)tJUoo@Ch@<*$5k9q3nWvZ~_BtgYEw4!+TX~cPGGr<1nJGsiSX8s;VaiaU92S z9Ou8KdH?XSv~4SG=p?kAOmQ!-x9{q(pxsM@pVF{~I!bNU{zltq)&4bof08By3H-JR zE3^6g!(*Lk#C(!2>}t!1`G>U48!7n3bii5f(VNi{`Skh2ubch_p_C-0WXZ6Stz47R zBq`IPWSG{`mskB(T0cw9%h}eo^^>jt%tT#4kn>SXI=?`7>-Tf1b^eyMZzZG{CB_Lh z%6a^PNZ-SeQ8(ZrBI+DtSqj>8RzcK#M#8qI%6t(t{=4JnMny?2hqZ8P-grUzNad zn{yfVm_sKQH85z*zA3==(Y9vQ)V5^W#wV5e4lT=mXtr4Eq+_N8ly&S@a0MW9I7_FQ zB|02o=l)UaR70er!na_n^=o!(opYvm(SQ{M<2nasS%fmu1>bkN*A&lo-E=J0tA~<- zVF~9f^DE;I&YRV_=)V=bO?=AuGbyg4%#Aernn{FU_^wVb_r8`45b6aEQB*PYXfFz| zHO&E*RMIBAwKg21@%~fZu^erF?VmH9a?iuzAJ<@?Dfd>O04|Cx)F^pVfvQ5^hfzXc zw3$U_6?eX7H^zGZQMYRoanGR?yz;67jFIaebH=$3>r|b#&8c~eN@Lv&`{J*F{mr?n zj=vnHfNBcfgowwc!((W7mxn|4duG)Rr5RTxm#{_y$5yd;!6eh-bm8ui`uS3W9Io)l<$2o&+C3J-8=9 z%|doFGu3`yRZkL0U~&*r6ozE@EBc}bl5~L_u&lH8mvIBY>jmDXvZZizjD{^x+rD#+EdT>RaYBU~ zxnu37FlvB-!GGI>=WmJ;($jlKm+E}qpGeN!-zq6Je(?%W6y>!2fjKjqmtYo3R*G4^ zjsEx%;r*9qlb$0kML-ATsTh5Ib)Dy3wXK2Lh;gz~Nd|o>R5w1@ajF4$z@btsYYOkr zy!KbcsIun*Z&aMd(bC#{&cF@)({KgPFYFmIyl2QGyMIPneScjxC!b__>yb<$?>~4m z=@v*&4&RlM;2rajM*?bI^%&0kXT!DaLL@*Y!G{kb#P>I)d%mbkdb~+f$k+P zx;2@R2(6US+a`T0*!WC&_dbIVv*98Ud7M1n+ClXU_A78)cY>=qSfFW|Xnf7(oyOK@bE%5ClOG z1TH}k1VIo4K@bE%5ClOG1VIo4K@bGNKS$&bn5JBoTgsa)00000NkvXXu0mjf_KSd~ delta 1072 zcmV-01kd}}2GIzRFnW^d1TvO@=g*ocURC<;Olfe@mO zL`y}NGF_x7D3K^Y0*N9@mm-pzR4Hhws1qpy@mXLQ(eP!QAf>>*wdFZ{_JN%Kz z#mP6L^X&OFx4yZZ_kQpH-mKmdMm&yve4YR663h(Z91oYjqkj>X*wLSlY}`fw3}y%7 zCK$qn@o4$`k=NKs0wWuD^uRS1N6C4onR?!N)-yc*>*~mBL=E8c{Z|x#yojgNR)_8o z!ouIzCmXAoLS0fyV^bA`?Z#V)@2ak2p%*?UpL zZ85FR%eWrIu73frxlj#&Ogw;{tkC1QcGUTq0E~e^QotA>N4-Q+K-A$GgK z5=jA3hi44NB?X*4bZbjbuc~@5Mw%NAMD~BBNXtv+^~<-~{(q49MqybnmmnBe+uGLjNB~GP zQ`~T<+`llUq0LPXqE$OA=W=+*^~Dv+sw2%XSjxQ$^qs-EJ~G=@H4r4o1R}EqNN@nl zuYcjS-aSmUP9Vhi$>I61DRAcCO=faH9dV63`S!MUd#UN8&JIlVSf9(h$`vqD17KA- zk^+NsQGY{Gt@t{^q5$#Ld>BFad5C{$#rDNYzu}O=oU}ad3iTz z1||1&yEG)v5c;_D>Z`B-zL=e7Ynoc*O77}tOdDnO*4xdp70#e?9auB1BczxK6OzBo z-+wD`1J>qXN9z3G|DFC5oo;AaFDIZ48HMSvhP$u64h!JK?9ZA4@>EC0l2__Tud0WZ zW_+KYSM{@uo{T^I-Cq;LlJ^ajxiwQ7eMyaOv8b~JfMa=N=6~(g)W!X!Z^8mNKKqjv zL2#uG3V@70(oszvSj<3X_MmhtwKC*uk$<~^q>$7O0boq-Z;IqI_=VB>foHP6~)23L$Ms z3J6I*hP9IdVu(UW8n6SWGEFn<69XF*Lt006O%3;baP00009a7bBm000iZ000iZ0XPLyBme*e z%1J~)RCr$PSjlcAMG%dwr8j#Qi9yR?SJd54-fLV%czF-R{T}? z3`$ZYf_j@eVjNV!PS7G9XbbU;*e4x3UP1v7JdhwTS{caZ&_8m#gaS5F3aqZQ8Cob~ zpkv2j1*oMV=$|bAzwrRI_6uTvH$HY8RDfC?c|ZoTWXS9vK?&q=IF1Rm9fr#fzkrz$*QSOq-{=hE#)=l^lSagR!UaE*?$i*)$!PBDL8 z04mPr?|=fbS_X+tR?x#P#?9Jlc?iX%*Vc1by@!?8P{tN>_AXFMs#7x$SUzJ;uz8AW zp2SuP=l5gs8yi(s7J48GWLAe4)X0snehEm55Pw)7M9BD?{t_+nfLhQLw6ppi5RD1) z_x}};Cq2h_?>z!aCa;lEC0bt(Ov`sjUWjqTHx;6{0Aie(o7Rp9gP1^2N`zNL?9mVc z0)z~K9+a_{dBA|ws*1uaTHGEGn!IDW!S~n0uJM2zz<7rH^Pu|Bp(j{;OW4RJUa8B| zOMhazRsrk^v?R!QC-vnLEy4iafZHDZcE}CnW$y<44OKP?o&~;RBmDTo$7Qp=klFlP z{z*HXJ(Bh6LKY{Fb=co`E^N!_l*rF>NgiCFT%%2rW&1b_48Tc>{~A{?Mg|7_V_r^$?QxJuPE(eSs^_ z%yNU3D3q4U+Gm2K!Z5~u^N{<}hJP~^nl4_4Ir=P)^g|WXXvYsk1*#&)1qvZpSuLOB zrvF|Aqr2;2LA&~$v=;@j&N>18rk>&IYowXfGHoBoV)CZUr>{%f&QMWKG!L*Y*m;e4 z0C|iryu;yeI2;a#!{Kl^91e%W;cz${4u`|xa5x+ehr{9cuS4WFr@9%Wl@GXHJOBUy M07*qoM6N<$f>Ir3Pyhe` delta 2437 zcmV;033~Rm3Y-&=Fnge?Z>_!7+DBl{hnREyu>fGffPXnhVBrFDPJl%aT)4o( z1?C)qg$v9%0T!#k!UYyCFy{y?Twu-#uvi5aE-?2l@bUNl(JQ5(WCW=qXtR%Ix;@54 zn-N6iDT00pKm_7c=LP>S5RS*kXw-+05|W-3^2lGff4_U<*aOD(5y|Bf=Q1d<1P>2m zyHIi!fP)9{%767wO~hjHu?v6jN=1+|Vh{?ukLAYQV*y5auT<=)f~D$X#Va@noC=t5 z|7esk0HnM;0f3Ye``uk=cYs)~ft05a03dZe;604*L!lV}a6Krx?!)z0-}%gB09?BF zWiOS2lnNFZ(x`DVQ-F2=O?UL#TsW&|;<8E+x$@1byA z#9|fN_kR#!nE@ddR1Bb_a|1Zok_mwI8KhXkUv@t?82}%>_az@_E8&nKi8k2!#&yw5 zw$bbFvZbYRER;5R84(U$f|%mGW%^1E5lM&2f08b*4Rgl@1YTGqMKbulE!?8*1^i8#O+ssa5jo4 zR(~*BP=efnU?Nar21C1jq|p`!#s09vzD)oKq;Tj%pg9h5goeeCXCQ^E@jnBgVgOA{ zN=I@P&S!{ZU_v*$hBQr(=j6*3*vD4^DT9Rt#RmbzaRWj`(0a&jVZ30;C$m7!?85=5RKF zQW8nDj9im71yetYD0mV8N7*3J8@@TVE-!3i1mOc~PFnl_0sy^){4kPhY^{EN9cjFd zQJ(SpD>fXH5I~Yd9Hfj6R~qRGKSQ|%4RVXa^*ykG0M15NgT+fr6U$BlaPnP8fq!|e z{pHDGz-g0L=P$N?;m4WaZEpTsXR;_<_x@>LuSM^%*7M^a8H90%SsFZE>wKwpj%h0~ z$^5m#Uu^xH@=;bgq^ALZ>hE&rYqfJsBH*;2trh;!)=xYH$LCU(;|zGc{Y>o~(^g`V z`D=xLr1e8~fs>Z681P2tyR~ynB7fktpRE=C;jQnTaDhYm69|8A|Dbk`X)7_w{I$YA z*!q?iqAX31#ex9DmG+Nn=a@vmX+K*l{DWKHybS{m#k$h|aqS$_R$`L*#ijF93mod; zsrc}Yt2_GBCJV(3RVZaF2&E4NLkBJXedhZU|IlGa>0Ovdh@-UthdKtp!hbo#zpbM} zBrJeJT5#1%E&NpVtAo1k67kw<(;XLKAB%Fcv zHzEBxD;dWrM#TX$AWa)w%NO~On-jzUBd*l|@K9N76N3b(aB?oN>0JcC8Y}_e!2lTS zLAX^WdKxzZ0C1e|8)HD7AAc&DsKPVYy#oNsTd1*8_7S=NCj>6HpPn@Xe(e=j$eYBOED^G}7(W!|64~!W=H3gNiN-nV*c#Lql^Oe~G z@Zod6@(RoB0@`IDC#TMgu~h#9Q7mAzVRuN<1jZB`7aRjXj<8aJ5k_+rxG>V;+%06u* z{{AroJPHUT+;b!VJaWvsmJmyvikstQkTOJC*3KHSzrYNrtbg=ga)&qeW?M{&C$?Yoo;o?8u4~Ky@bczH z!A!!y+98s76}j%f`p_09fY?P;Xpx;ZV*ehtIPD2=yF9Fh9DiV~AK)K*-r3nqXvCW}0JKUM zpnU_$s|hF4Zhr*phxk|br?Um%`nBi$X!t4`%_lL7<9+wPFk1i~*?iVJ4A~#)NYo_D z({f0X6^72|WeY4A`>;tWu+lt#CIeuXg3nXpL(3*7K$LXl;7X$R%h>`j_YC;JUC(&l zj}sckW@Xu1H9!GvC>99BY8Be{_(=CvTv%Uz|CtP^_J0Y=YMN8%usKTkgT|Y^-^`W) z?^}J^Ll($Q2aRY4BTbv36sbeSrtJV}bQcQKW%AQE0M))9xx&UO<@%?OJlEysX~=&_ zaU~Tre+;4VR`%Q30&rpF^B&T$f{l0wL;Vg{Y*egJqCy!jrNG7pMR@m@K9b;IAh5YY zKoF#wb*Ye>XstzA45fFkD>QkgkYO@2Y&2~-T|&mMqQ@`)g;H2~$=|`TrmA~?* zvlsWtu0F8+?WeBX{Qgwmai Date: Mon, 30 Dec 2024 00:34:00 +0100 Subject: [PATCH 28/55] Update BreathingApparatusModel.java added belt --- .../client/renderer/handler/BreathingApparatusModel.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/supersymmetry/client/renderer/handler/BreathingApparatusModel.java b/src/main/java/supersymmetry/client/renderer/handler/BreathingApparatusModel.java index 00bdf1776..294068a5a 100644 --- a/src/main/java/supersymmetry/client/renderer/handler/BreathingApparatusModel.java +++ b/src/main/java/supersymmetry/client/renderer/handler/BreathingApparatusModel.java @@ -34,6 +34,7 @@ public void addChildren(String name, EntityEquipmentSlot slot) { this.bipedRightArm.addChild(modelForPart(name, "right_arm")); } case LEGS -> { + this.bipedBody.addChild(modelForPart(name, "belt")); this.bipedLeftLeg.addChild(modelForPart(name, "left_leg")); this.bipedRightLeg.addChild(modelForPart(name, "right_leg")); } From ef00a28e8560c23c31b75020ec40aed84b38c8a3 Mon Sep 17 00:00:00 2001 From: oliwier509 <53867161+oliwier509@users.noreply.github.com> Date: Mon, 30 Dec 2024 03:33:16 +0100 Subject: [PATCH 29/55] finished textures nomex set --- .../assets/susy/textures/armor/nomex_feet.png | Bin 856 -> 747 bytes .../assets/susy/textures/armor/nomex_legs.png | Bin 1333 -> 2252 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/src/main/resources/assets/susy/textures/armor/nomex_feet.png b/src/main/resources/assets/susy/textures/armor/nomex_feet.png index e16912805eeee58f775e912c3dce0ba6e71921d2..f0ba92ec6ca8f3364e730ae43650116c36fc1412 100644 GIT binary patch delta 686 zcmV;f0#W_g2I~coNq@lr01m+cxRGn^0007jNkl7ZG78j_lLw`RF_LncVah2^ij+`5ePJW`7tTIHL}580^tm^fPk` z#+|LLkF|A>Lub?hLE|BPTGxmp?KyY2f%?!H&j8<9?=Tpe>F*euA6fDxYQS+@b-0W> z08tM_o5n_P_6ve7(B#m$!WMu7U^t<{GrLvfx-ja1fg##M zzui)r)r*&arhjN>yYE;tFY6NALd{Mw&o?n1KO(&Q{AAK|#Dxs#U_1?DtS|5Lyz6Ca zpf_TkN~3GpYsB1q1&AGVAuaF8V|RckpF1>z5nubS_l018SwDrHFs}|IHP+m z6QGmfhYvEO?r-WE`S7Y4@mX4wbqTd2;YSiPq0Es9o81bUrG^=R>@XaqOL4994_}{6 z>VRB}6n~DnR)wh>afWdfw=L#d6tfM!JX;*bsPN@Jo=v4&IIgoe!Xaf_Z1HM3hc4r@ z=LDxpZ||p`n#?a!dp8Z@7wfQx7Z~&G&ubg}@`Dp-2<};;F#1(WODqwsW7Y)vq11`; zS)E9s13UkLYjjY?I%*+=5JCtcgb+dqA%qY@2qz(g5JCtcgb+dqA%qY@{8P++12Y`& UYowd(ssI2007*qoM6N<$f~d7p00000 delta 796 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 R8UO$Q00>D%PDHLkV1hxI6^8%- delta 1264 zcmV03+U}()7v77grUi`Y5gf`5@uYCB6`iqWq=Ov52d{oog519C z>#GkB^0>>WhW1wcRrm}_QY3u0~RKQNqA{}T8@r~Fg9e+DsLIDswkRUKx8OY|) zKXSZ;0ya_#tgf^fS}0?nW5;0ysHGw3pDh2s@c^~<3u1paK6V^bfLa}SKnAj8$m}0M z3FL4%ju_$mjn7M4-Ir7l*9A#0M@08C3Hcs|S*GnwHr=nDIf%?K;(y4>Hy9 z*r;}gD?D6T;!u!C#|Z|4jWNeI=swm0I6R201l$5xqkq@%%}}72lzZvpwRG_r_>h-< zt7gVt8>7oL9gmBu!1}a26(F!OtsN8Zck>FX`e6NvYrS-7i4|0Y@D7goeFzm?8{v^x zlG283As)XUl&M5sYY5&BWB%S7D@)%1@R#%u|&EDmq?K3yMzV@_)V^_0P; z;GxQ>ntwq!QviAC!)fpUD$eHbfC92w28m5p(8Dgq&Dv^t2*sq=)^k|Bhn3e*#ujt- zE>KIVQ!@`(K4VU>d5UYE#8wLD_ha%K8&y>ndLRm9R)-hV$c?am2}p_%SRX{l_?!L` zE%Ja`&=j<@`W_IC3G(;<6_6)A$9V5O0!k*Yk$+JoT3-)L%Xdg#h;hU>6{5EQVw{LNDFR5C?N#ES6g^RMhMZH zzFmGct^)q82e4hQzJ$fi170-#yLNOBcz^f7(~?l_@m^<)Tk&GVzkR&XSZ?cksP&iH za-V@7@DRlhb3v`e5G~6ut)8eQMU!t=^H{E7DQ!2&cgrtERX`OJ6JWxF<`-$JS2P58 zIF_{5kJ3~py3RKPGdC+o5=&qyd`^Hv#5V~KDO8bcw;iiOW_0pX8?hUInAO>uF&@yZW897X`7-IsyHrp5f|iq?yz*Z6C;D@}|tE zuS?s`P*F}a53nxSd5w7hd5kZ-!{Kl^91e%W;cz${4u`|xa5x+ehr{7;I2;a#!{PX^ aL*zH7x*4RExL!N}0000 Date: Mon, 30 Dec 2024 03:33:48 +0100 Subject: [PATCH 30/55] Delete src/main/resources/assets/susy/textures/armor/nomex_belt.png --- .../assets/susy/textures/armor/nomex_belt.png | Bin 922 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/main/resources/assets/susy/textures/armor/nomex_belt.png diff --git a/src/main/resources/assets/susy/textures/armor/nomex_belt.png b/src/main/resources/assets/susy/textures/armor/nomex_belt.png deleted file mode 100644 index 1e0bdf0212020dcfb9c4a82c380f6b1cb21203e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 922 zcmV;L17-Y)P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D120KLK~#8N?UqY+ z6EP4)tJUoo@Ch@<*$5k9q3nWvZ~_BtgYEw4!+TX~cPGGr<1nJGsiSX8s;VaiaU92S z9Ou8KdH?XSv~4SG=p?kAOmQ!-x9{q(pxsM@pVF{~I!bNU{zltq)&4bof08By3H-JR zE3^6g!(*Lk#C(!2>}t!1`G>U48!7n3bii5f(VNi{`Skh2ubch_p_C-0WXZ6Stz47R zBq`IPWSG{`mskB(T0cw9%h}eo^^>jt%tT#4kn>SXI=?`7>-Tf1b^eyMZzZG{CB_Lh z%6a^PNZ-SeQ8(ZrBI+DtSqj>8RzcK#M#8qI%6t(t{=4JnMny?2hqZ8P-grUzNad zn{yfVm_sKQH85z*zA3==(Y9vQ)V5^W#wV5e4lT=mXtr4Eq+_N8ly&S@a0MW9I7_FQ zB|02o=l)UaR70er!na_n^=o!(opYvm(SQ{M<2nasS%fmu1>bkN*A&lo-E=J0tA~<- zVF~9f^DE;I&YRV_=)V=bO?=AuGbyg4%#Aernn{FU_^wVb_r8`45b6aEQB*PYXfFz| zHO&E*RMIBAwKg21@%~fZu^erF?VmH9a?iuzAJ<@?Dfd>O04|Cx)F^pVfvQ5^hfzXc zw3$U_6?eX7H^zGZQMYRoanGR?yz;67jFIaebH=$3>r|b#&8c~eN@Lv&`{J*F{mr?n zj=vnHfNBcfgowwc!((W7mxn|4duG)Rr5RTxm Date: Mon, 30 Dec 2024 03:35:08 +0100 Subject: [PATCH 31/55] fixed nomex set some in-code scaling is required but it should work now --- .../assets/susy/models/armor/nomex_belt.mtl | 2 +- .../assets/susy/models/armor/nomex_belt.obj | 52 ++++++------ .../susy/models/armor/nomex_left_leg.mtl | 3 +- .../susy/models/armor/nomex_left_leg.obj | 82 +++++++++---------- .../susy/models/armor/nomex_right_leg.mtl | 3 +- .../susy/models/armor/nomex_right_leg.obj | 68 +++++++-------- 6 files changed, 108 insertions(+), 102 deletions(-) diff --git a/src/main/resources/assets/susy/models/armor/nomex_belt.mtl b/src/main/resources/assets/susy/models/armor/nomex_belt.mtl index 61ee2faa6..d47723ae3 100644 --- a/src/main/resources/assets/susy/models/armor/nomex_belt.mtl +++ b/src/main/resources/assets/susy/models/armor/nomex_belt.mtl @@ -1,4 +1,4 @@ # Made in Blockbench 4.11.2 newmtl m_22146c5c-7b00-d50c-efb6-59ee4d389240 -map_Kd susy:armor/nomex_belt +map_Kd susy:armor/nomex_legs newmtl none diff --git a/src/main/resources/assets/susy/models/armor/nomex_belt.obj b/src/main/resources/assets/susy/models/armor/nomex_belt.obj index 36308dbb5..98e996219 100644 --- a/src/main/resources/assets/susy/models/armor/nomex_belt.obj +++ b/src/main/resources/assets/susy/models/armor/nomex_belt.obj @@ -10,30 +10,32 @@ v -0.15688 -0.34313 0.28187 v 0.15687 -0.34313 0.28188 v -0.15688 -0.71937 0.28187 v 0.15687 -0.71937 0.28188 -vt 0.000 0.5625 -vt 0.250 0.5625 -vt 0.250 0.7500 -vt 0.000 0.7500 -vt 0.250 0.5625 -vt 0.750 0.5625 -vt 0.750 0.7500 -vt 0.250 0.7500 -vt 0.750 0.5625 -vt 1.000 0.5625 -vt 1.000 0.7500 -vt 0.750 0.7500 -vt 0.500 0.5625 -vt 1.000 0.5625 -vt 1.000 0.7500 -vt 0.500 0.7500 -vt 0.000 0.7500 -vt 0.500 0.7500 -vt 0.500 1.0000 -vt 0.000 1.0000 -vt 0.000 0.7500 -vt 0.500 0.7500 -vt 0.500 1.0000 -vt 0.000 1.0000 + +vt 0.125 0.4375 +vt 0.375 0.4375 +vt 0.375 0.28125 +vt 0.125 0.28125 +vt 0 0.4375 +vt 0.125 0.4375 +vt 0.125 0.28125 +vt 0 0.28125 +vt 0.5 0.4375 +vt 0.75 0.4375 +vt 0.75 0.28125 +vt 0.5 0.28125 +vt 0.375 0.4375 +vt 0.5 0.4375 +vt 0.5 0.28125 +vt 0.375 0.28125 +vt 0.375 0.4375 +vt 0.125 0.4375 +vt 0.125 0.5625 +vt 0.375 0.5625 +vt 0.625 0.5625 +vt 0.375 0.5625 +vt 0.375 0.4375 +vt 0.625 0.4375 + vn -1 0 -2.220446049250313e-16 vn 2.220446049250313e-16 0 -1 vn 1 0 2.220446049250313e-16 @@ -42,8 +44,10 @@ vn 0 1 0 vn 0 -1 0 usemtl m_22146c5c-7b00-d50c-efb6-59ee4d389240 f 4/4/1 7/3/1 5/2/1 2/1/1 + f 3/8/2 4/7/2 2/6/2 1/5/2 f 8/12/3 3/11/3 1/10/3 6/9/3 f 7/16/4 8/15/4 6/14/4 5/13/4 f 6/20/5 1/19/5 2/18/5 5/17/5 + f 7/24/6 4/23/6 3/22/6 8/21/6 diff --git a/src/main/resources/assets/susy/models/armor/nomex_left_leg.mtl b/src/main/resources/assets/susy/models/armor/nomex_left_leg.mtl index 822caf723..167bea016 100644 --- a/src/main/resources/assets/susy/models/armor/nomex_left_leg.mtl +++ b/src/main/resources/assets/susy/models/armor/nomex_left_leg.mtl @@ -1,3 +1,4 @@ # Made in Blockbench 4.11.2 -newmtl m_e55485b1-aa5c-02a8-af81-aa2e28db910f +newmtl m_02a51ee3-f5c1-cd12-65bc-c058bc31a5c6 map_Kd susy:armor/nomex_legs +newmtl none diff --git a/src/main/resources/assets/susy/models/armor/nomex_left_leg.obj b/src/main/resources/assets/susy/models/armor/nomex_left_leg.obj index cfec33abb..6f06f7b53 100644 --- a/src/main/resources/assets/susy/models/armor/nomex_left_leg.obj +++ b/src/main/resources/assets/susy/models/armor/nomex_left_leg.obj @@ -2,48 +2,48 @@ mtllib nomex_left_leg.mtl o leggings_left -v 0.15625 0.09375 -0.1625 -v -0.15625 0.09375 -0.16250000000000004 -v 0.15625 -0.625 -0.1625 -v -0.15625 -0.625 -0.16250000000000004 -v -0.15625000000000006 0.09375 0.14999999999999997 -v 0.15624999999999994 0.09375 0.15000000000000004 -v -0.15625000000000006 -0.625 0.14999999999999997 -v 0.15624999999999994 -0.625 0.15000000000000004 -vt 0.0 0.4375 -vt 0.125 0.4375 -vt 0.125 0.125 -vt 0.0 0.125 -vt 0.125 0.4375 -vt 0.25 0.4375 -vt 0.25 0.125 -vt 0.125 0.125 -vt 0.25 0.4375 -vt 0.375 0.4375 -vt 0.375 0.125 -vt 0.25 0.125 -vt 0.375 0.4375 -vt 0.5 0.4375 -vt 0.5 0.125 -vt 0.375 0.125 -vt 0.125 0.125 -vt 0.25 0.125 -vt 0.25 0.0 -vt 0.125 0.0 -vt 0.25 0.125 -vt 0.375 0.125 -vt 0.375 0.0 -vt 0.25 0.0 -vn -1 0 -2.220446049250313e-16 +v 0.15625 0.15625 -0.16249999999999998 +v -0.15625 0.15625 -0.16250000000000003 +v 0.15625 -0.5625 -0.16249999999999998 +v -0.15625 -0.5625 -0.16250000000000003 +v 0.15624999999999994 0.15625 0.15000000000000008 +v -0.15625000000000006 0.15625 0.14999999999999997 +v 0.15624999999999994 -0.5625 0.15000000000000008 +v -0.15625000000000006 -0.5625 0.14999999999999997 +vt 0.25 0.5625 +vt 0.25 0.875 +vt 0.375 0.875 +vt 0.375 0.5625 +vt 0 0.5625 +vt 0 0.875 +vt 0.125 0.875 +vt 0.125 0.5625 +vt 0.25 1 +vt 0.25 0.875 +vt 0.125 0.875 +vt 0.125 1 +vt 0.375 0.875 +vt 0.375 1 +vt 0.25 1 +vt 0.25 0.875 +vt 0.375 0.5625 +vt 0.375 0.875 +vt 0.5 0.875 +vt 0.5 0.5625 +vt 0.125 0.5625 +vt 0.125 0.875 +vt 0.25 0.875 +vt 0.25 0.5625 vn 2.220446049250313e-16 0 -1 -vn 1 0 2.220446049250313e-16 vn -2.220446049250313e-16 0 1 vn 0 1 0 vn 0 -1 0 -usemtl m_e55485b1-aa5c-02a8-af81-aa2e28db910f -f 4/4/1 7/3/1 5/2/1 2/1/1 -f 3/8/2 4/7/2 2/6/2 1/5/2 -f 8/12/3 3/11/3 1/10/3 6/9/3 -f 7/16/4 8/15/4 6/14/4 5/13/4 -f 6/20/5 1/19/5 2/18/5 5/17/5 -f 7/24/6 4/23/6 3/22/6 8/21/6 +vn 1 0 2.220446049250313e-16 +vn -1 0 -2.220446049250313e-16 +usemtl m_02a51ee3-f5c1-cd12-65bc-c058bc31a5c6 +f 4/1/1 2/2/1 1/3/1 3/4/1 +f 7/5/2 5/6/2 6/7/2 8/8/2 +f 1/9/3 2/10/3 6/11/3 5/12/3 +f 4/13/4 3/14/4 7/15/4 8/16/4 +f 3/17/5 1/18/5 5/19/5 7/20/5 +f 8/21/6 6/22/6 2/23/6 4/24/6 \ No newline at end of file diff --git a/src/main/resources/assets/susy/models/armor/nomex_right_leg.mtl b/src/main/resources/assets/susy/models/armor/nomex_right_leg.mtl index 0a38f9617..e1db9cf44 100644 --- a/src/main/resources/assets/susy/models/armor/nomex_right_leg.mtl +++ b/src/main/resources/assets/susy/models/armor/nomex_right_leg.mtl @@ -1,3 +1,4 @@ # Made in Blockbench 4.11.2 -newmtl m_f29d979d-1d85-a8fe-f2de-47532cc35779 +newmtl m_e55485b1-aa5c-02a8-af81-aa2e28db910f map_Kd susy:armor/nomex_legs +newmtl none diff --git a/src/main/resources/assets/susy/models/armor/nomex_right_leg.obj b/src/main/resources/assets/susy/models/armor/nomex_right_leg.obj index 54748e3a0..1099cf001 100644 --- a/src/main/resources/assets/susy/models/armor/nomex_right_leg.obj +++ b/src/main/resources/assets/susy/models/armor/nomex_right_leg.obj @@ -2,48 +2,48 @@ mtllib nomex_right_leg.mtl o leggings_right -v 0.15625000000000006 0.09375 -0.14999999999999997 -v -0.15624999999999994 0.09375 -0.1500000000000001 -v 0.15625000000000006 -0.625 -0.14999999999999997 -v -0.15624999999999994 -0.625 -0.1500000000000001 -v -0.15625 0.09375 0.16249999999999997 -v 0.15625 0.09375 0.16250000000000004 -v -0.15625 -0.625 0.16249999999999997 -v 0.15625 -0.625 0.16250000000000004 -vt 0.0 0.4375 -vt 0.125 0.4375 -vt 0.125 0.125 -vt 0.0 0.125 -vt 0.25 0.4375 -vt 0.375 0.4375 -vt 0.375 0.125 -vt 0.25 0.125 -vt 0.125 0.4375 -vt 0.25 0.4375 -vt 0.25 0.125 -vt 0.125 0.125 -vt 0.375 0.4375 -vt 0.5 0.4375 -vt 0.5 0.125 -vt 0.375 0.125 -vt 0.125 0.125 -vt 0.25 0.125 -vt 0.25 0.0 -vt 0.125 0.0 -vt 0.25 0.125 -vt 0.375 0.125 -vt 0.375 0.0 -vt 0.25 0.0 +v 0.15625000000000006 0.15625 -0.14999999999999997 +v -0.15624999999999994 0.15625 -0.15000000000000008 +v 0.15625000000000006 -0.5625 -0.14999999999999997 +v -0.15624999999999994 -0.5625 -0.15000000000000008 +v -0.15625 0.15625 0.16249999999999998 +v 0.15625 0.15625 0.16250000000000003 +v -0.15625 -0.5625 0.16249999999999998 +v 0.15625 -0.5625 0.16250000000000003 +vt 0.125 0.875 +vt 0.25 0.875 +vt 0.25 0.5625 +vt 0.125 0.5625 +vt 0 0.875 +vt 0.125 0.875 +vt 0.125 0.5625 +vt 0 0.5625 +vt 0.375 0.875 +vt 0.5 0.875 +vt 0.5 0.5625 +vt 0.375 0.5625 +vt 0.25 0.875 +vt 0.375 0.875 +vt 0.375 0.5625 +vt 0.25 0.5625 +vt 0.25 0.875 +vt 0.125 0.875 +vt 0.125 1 +vt 0.25 1 +vt 0.375 1 +vt 0.25 1 +vt 0.25 0.875 +vt 0.375 0.875 vn -1 0 -2.220446049250313e-16 vn 2.220446049250313e-16 0 -1 vn 1 0 2.220446049250313e-16 vn -2.220446049250313e-16 0 1 vn 0 1 0 vn 0 -1 0 -usemtl m_f29d979d-1d85-a8fe-f2de-47532cc35779 +usemtl m_e55485b1-aa5c-02a8-af81-aa2e28db910f f 4/4/1 7/3/1 5/2/1 2/1/1 f 3/8/2 4/7/2 2/6/2 1/5/2 f 8/12/3 3/11/3 1/10/3 6/9/3 f 7/16/4 8/15/4 6/14/4 5/13/4 f 6/20/5 1/19/5 2/18/5 5/17/5 -f 7/24/6 4/23/6 3/22/6 8/21/6 +f 7/24/6 4/23/6 3/22/6 8/21/6 \ No newline at end of file From 7cf304edb655ef193aa7f314b7298d7dd1f2b269 Mon Sep 17 00:00:00 2001 From: bruberu <80226372+bruberu@users.noreply.github.com> Date: Mon, 30 Dec 2024 16:45:05 -0600 Subject: [PATCH 32/55] feat: change model proportions slightly --- .../handler/BreathingApparatusModel.java | 21 +++++++++++++------ .../armor/AdvancedBreathingApparatus.java | 3 +++ 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/main/java/supersymmetry/client/renderer/handler/BreathingApparatusModel.java b/src/main/java/supersymmetry/client/renderer/handler/BreathingApparatusModel.java index 294068a5a..7743e331d 100644 --- a/src/main/java/supersymmetry/client/renderer/handler/BreathingApparatusModel.java +++ b/src/main/java/supersymmetry/client/renderer/handler/BreathingApparatusModel.java @@ -1,6 +1,7 @@ package supersymmetry.client.renderer.handler; import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.util.ResourceLocation; @@ -30,13 +31,17 @@ public void addChildren(String name, EntityEquipmentSlot slot) { } case CHEST -> { this.bipedBody.addChild(modelForPart(name, "chest")); - this.bipedLeftArm.addChild(modelForPart(name, "left_arm")); - this.bipedRightArm.addChild(modelForPart(name, "right_arm")); + ModelRenderer leftArm = modelForPart(name, "left_arm", 12.125F); + leftArm.offsetX = 0.0625F; + this.bipedLeftArm.addChild(leftArm); + ModelRenderer rightArm = modelForPart(name, "right_arm", 12.125F); + rightArm.offsetX = -0.0625F; + this.bipedRightArm.addChild(rightArm); } case LEGS -> { - this.bipedBody.addChild(modelForPart(name, "belt")); - this.bipedLeftLeg.addChild(modelForPart(name, "left_leg")); - this.bipedRightLeg.addChild(modelForPart(name, "right_leg")); + this.bipedBody.addChild(modelForPart(name, "belt", 17.5F)); + this.bipedLeftLeg.addChild(modelForPart(name, "left_leg", 16.5F)); + this.bipedRightLeg.addChild(modelForPart(name, "right_leg", 16.5F)); } case HEAD -> this.bipedHead.addChild(modelForPart(name, "head")); } @@ -47,6 +52,10 @@ public ResourceLocation modelLocationFromPart(String armor, String model) { } public OBJModelRender modelForPart(String armor, String model) { - return new OBJModelRender(this, modelLocationFromPart(armor, model), 17); + return modelForPart(armor, model, 17); + } + + public OBJModelRender modelForPart(String armor, String model, float size) { + return new OBJModelRender(this, modelLocationFromPart(armor, model), size); } } diff --git a/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java b/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java index 6f79fc89c..12fc04c9c 100644 --- a/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java +++ b/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java @@ -207,6 +207,9 @@ public int getArmorDisplay(EntityPlayer player, ItemStack armor, int slot) { public List getTextureLocations() { List models = new ArrayList<>(); models.add(susyId("armor/" + name + "_" + this.SLOT.toString())); + if (this.SLOT == LEGS) { + models.add(susyId("armor/" + name + "_belt")); + } return models; } } From c2a57741fba85d583fa0565fde0db0f029f23063 Mon Sep 17 00:00:00 2001 From: grema Date: Sun, 5 Jan 2025 22:03:14 +0100 Subject: [PATCH 33/55] feat: adding hardended blocks --- .../supersymmetry/common/CommonProxy.java | 3 +- .../common/blocks/BlocksHardened.java | 68 ++++++++++++++++++ .../common/blocks/SuSyBlocks.java | 4 ++ .../textures/blocks/hardened_blocks/kryp7.png | Bin 0 -> 695 bytes .../textures/blocks/hardened_blocks/kryp8.png | Bin 0 -> 526 bytes .../blocks/hardened_blocks/lair10.png | Bin 0 -> 618 bytes .../blocks/hardened_blocks/lair11.png | Bin 0 -> 443 bytes .../textures/blocks/hardened_blocks/lair7.png | Bin 0 -> 535 bytes .../susy/blockstates/hardened_blocks.json | 43 +++++++++++ .../resources/assets/susy/lang/en_us.lang | 6 ++ 10 files changed, 123 insertions(+), 1 deletion(-) create mode 100644 src/main/java/supersymmetry/common/blocks/BlocksHardened.java create mode 100644 src/main/resources/assets/gregtech/textures/blocks/hardened_blocks/kryp7.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/hardened_blocks/kryp8.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/hardened_blocks/lair10.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/hardened_blocks/lair11.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/hardened_blocks/lair7.png create mode 100644 src/main/resources/assets/susy/blockstates/hardened_blocks.json diff --git a/src/main/java/supersymmetry/common/CommonProxy.java b/src/main/java/supersymmetry/common/CommonProxy.java index d594aab6d..a5da94f1a 100644 --- a/src/main/java/supersymmetry/common/CommonProxy.java +++ b/src/main/java/supersymmetry/common/CommonProxy.java @@ -86,6 +86,7 @@ public static void registerBlocks(@NotNull RegistryEvent.Register event) registry.register(SuSyBlocks.ELECTRODE_ASSEMBLY); registry.register(SuSyBlocks.MULTIBLOCK_CASING); registry.register(SuSyBlocks.SERPENTINE); + registry.register(SuSyBlocks.HARDBLOCKS); SHEETED_FRAMES.values().stream().distinct().forEach(registry::register); } @@ -115,7 +116,7 @@ public static void registerItems(@NotNull RegistryEvent.Register event) { registry.register(createItemBlock(SuSyBlocks.ELECTRODE_ASSEMBLY, VariantItemBlock::new)); registry.register(createItemBlock(SuSyBlocks.MULTIBLOCK_CASING, VariantItemBlock::new)); registry.register(createItemBlock(SuSyBlocks.SERPENTINE, VariantItemBlock::new)); - + registry.register(createItemBlock(SuSyBlocks.HARDBLOCKS, VariantItemBlock::new)); SHEETED_FRAMES.values() .stream().distinct() diff --git a/src/main/java/supersymmetry/common/blocks/BlocksHardened.java b/src/main/java/supersymmetry/common/blocks/BlocksHardened.java new file mode 100644 index 000000000..44a32cac0 --- /dev/null +++ b/src/main/java/supersymmetry/common/blocks/BlocksHardened.java @@ -0,0 +1,68 @@ +package supersymmetry.common.blocks; + +import gregtech.api.block.IStateHarvestLevel; +import gregtech.api.block.VariantBlock; +import net.minecraft.block.SoundType; +import net.minecraft.block.material.Material; +import net.minecraft.block.state.IBlockState; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.util.IStringSerializable; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; + +import java.util.Random; + +public class BlocksHardened extends VariantBlock { + + public BlocksHardened() { + super(Material.ROCK); + this.setHardness(25.0F); + this.setResistance(25.0F); + this.setSoundType(SoundType.STONE); + this.setTranslationKey("hardened_blocks"); + } + + public int quantityDropped(Random random) + { + return 0; + } + + public Item getItemDropped(IBlockState state, Random rand, int fortune) + { + return Items.AIR; + } + + @Override + public boolean canSilkHarvest(World world, BlockPos pos, IBlockState state, EntityPlayer player) { + return false; + } + + public static enum HardenedBlockType implements IStringSerializable, IStateHarvestLevel { + LAIR10("lair10", 3), + KRYP8("kryp8", 3), + KRYP7("kryp7", 3), + LAIR11("lair11", 3), + LAIR7("lair7", 3); + + private final String name; + private final int harvestLevel; + + private HardenedBlockType(String name, int harvestLevel) { + this.name = name; + this.harvestLevel = harvestLevel; + } + + @Override + public int getHarvestLevel(IBlockState iBlockState) { + return this.harvestLevel; + } + + @Override + public String getName() { + return this.name; + } + } +} + diff --git a/src/main/java/supersymmetry/common/blocks/SuSyBlocks.java b/src/main/java/supersymmetry/common/blocks/SuSyBlocks.java index a4f07a677..f6c5e3288 100644 --- a/src/main/java/supersymmetry/common/blocks/SuSyBlocks.java +++ b/src/main/java/supersymmetry/common/blocks/SuSyBlocks.java @@ -40,6 +40,7 @@ public class SuSyBlocks { public static BlockElectrodeAssembly ELECTRODE_ASSEMBLY; public static BlockSuSyMultiblockCasing MULTIBLOCK_CASING; public static BlockSerpentine SERPENTINE; + public static BlocksHardened HARDBLOCKS; public static void init() { COOLING_COIL = new BlockCoolingCoil(); @@ -101,6 +102,8 @@ public static void init() { SERPENTINE = new BlockSerpentine(); SERPENTINE.setRegistryName("serpentine"); + HARDBLOCKS = new BlocksHardened(); + HARDBLOCKS.setRegistryName("hardened_blocks"); } @SideOnly(Side.CLIENT) @@ -125,6 +128,7 @@ public static void registerItemModels() { ELECTRODE_ASSEMBLY.onModelRegister(); registerItemModel(MULTIBLOCK_CASING); SERPENTINE.onModelRegister(); + registerItemModel(HARDBLOCKS); } @SideOnly(Side.CLIENT) diff --git a/src/main/resources/assets/gregtech/textures/blocks/hardened_blocks/kryp7.png b/src/main/resources/assets/gregtech/textures/blocks/hardened_blocks/kryp7.png new file mode 100644 index 0000000000000000000000000000000000000000..3d27c45938ac1870f2258bde434c736fd0d3b7a6 GIT binary patch literal 695 zcmV;o0!aOdP)Lp84hM_X$rOT9L?KjDyJrzt|BI*1&g^u^LE5Z&7$2H zQ!MQeh7lPf#c(hqwWSdF5yjFj?fRJNS&qh^5zB>($R8TaZ3m=?UUy36)S}y-a9r6z z(^brzPR2-5C~niLkEqlvdfh2e6k^ZTB!+_-RxXW^O)RD$EmE{Y;^ zP{<+xdYuW9kZ3i=cy6%C7ld3~mihSU8yD}(1VPB$c5vN*PIFAeX2g2sv7Ob(7)gYX zSS>wFOUH8qhQkF1#eIgu1)dvVS~{zxhY%7OBZ=n)n+pHy9Op#Db&hi);yTAUk#4T9 zq96?M-GF>yn_+(j5*!qaw_gxKdUFy*a8%0D?`@ojxXy7-L|o@MCvv~zf4;aZW7{rK z1nafW)8h;+y;%b2_onFSBoDn85($|o0@v}W*7o=Zg|2r`n+^T%0000EWmrjOO-%qQ d00008000000002eQ{XE z)7O>#9=EKh9{&b0nJxwf#>t*8jv*GOmrgd!4|Wu2*}wVy(P^Dd&O%u~3`Inyn0Wk& z=HlY2a}=4_@aRP0qdm`ems{@^ar995DAf5fy{xQUZEyW|GoPesLf`*7*z?RdA|f;) zC@G%n=hxNKb;P*6R?hGh{@E?Fsw9I2!TUiur=DCBj%9$wGRa4G~?e0$)ar!rq; z!W=8JDB~hYo}H7Q|Jm30N06~Rs(6j%&&TcNua7RWwzI1}_;b3qUfJ`UUxyxU7G3>x z((bwh8TWbevOQ=l2uol%V6c@xn$?W>*3b_ zR`-fe&z>c@RIKc~?b%zCe*uGTTG}6$(5jRPS2CMH@ynMQ;hE;^%b*2ha{w_2Tne5H OqC8#wT-G@yGywpBq|sRb literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/blocks/hardened_blocks/lair10.png b/src/main/resources/assets/gregtech/textures/blocks/hardened_blocks/lair10.png new file mode 100644 index 0000000000000000000000000000000000000000..8614b465f513f271294e7b89ba01de0e7541090c GIT binary patch literal 618 zcmV-w0+s!VP)KU7rqSaCg5O(5B074={=#8Y_gVWPagpPX>1R|%2Kxn%x zD2W`-nzU&>7$Z?Y^uW`o2}uN$Tx~Y&#H!b95N3?Y97Yl3NZJz2wJe81piQ*Edd)}@ zWPP2yYm6~b6LVzcme8MG_PA2R&PsN()g$OjqeYN5%hJK7w}3@Bq2K*|#CWrCC;$<` z<=GiuK3;KgamqT9<)pFO?P;wtn^W{}KR%Fa5-mt4)dPdY*H72vU2t>r#I*4=1msNS zoFM2|m*>niX-lhCWpO2$tLt-a@1MDScpz;S_JWy@wNmxz*ebgVme=;qO!7&1H7TU6>*jlfShJsy&-kL z{Xngbmi_@^k|IwduluC{000hUSV?A0O#mtY000O800000007cclK=n!07*qoM6N<$ Ef)Zu_V*mgE literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/blocks/hardened_blocks/lair11.png b/src/main/resources/assets/gregtech/textures/blocks/hardened_blocks/lair11.png new file mode 100644 index 0000000000000000000000000000000000000000..4d558c4d21ddc8325b5526777904b9e624bf09b6 GIT binary patch literal 443 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4q^o-y{ID781^#7YKwZ*-3 z;ox*?%6qbEV~dK2fF@InyuhoZowL~%O{-dM$JyyH!S7P%+a^Jcq+i^tXNEp6I~g-m zZqsFzc}#j{OKx&IBq@d#n)envxFk5#RplorhHZ^&-%+yChI6HZ+nyb|QBE=w7T-U9 zVcArxmcH+cQr_;B-ys+L>W(q@VSl;wO`mHmg*{!QDiY*9i2%v6yj3AazrM3?{`&rKUsK0HU|{m4 eMtG+A`Z8z%*&IL&0+)g(gD6i|KbLh*2~7ZE-K%l{ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/blocks/hardened_blocks/lair7.png b/src/main/resources/assets/gregtech/textures/blocks/hardened_blocks/lair7.png new file mode 100644 index 0000000000000000000000000000000000000000..337a1da551be3ec0b353fc95368fe055ffe013d2 GIT binary patch literal 535 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#9=9B?JR86Gzg<8f+02lL66gHf+|;}hAeVu`xhOTUBsE2$JhLQ2!QIn0AVn{g zoq>U|*we)^#Nu@8d7L|pu$tYVAi?O$Vd8Ws&o~%kuaYCr_o8PX&o=Grkz{juB_yc^t$&VQ}}fa0Z)eM z75!X297;`=>Z{eyoH5l(kX{wm@Y;Hl(6*T~RW7XSSfaPQmhmFjBcELfZ_m^u2TW=RAL__8jvP zyEnh*`Cq$VnL6$97LF*Eg{n92e~wvT8oPSC%0I?e|M};?E1h2tj26Ds2+uTMUj{88 Xn*$V2KyWE|GKlhY^>bP0l+XkKQQ*}C literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/susy/blockstates/hardened_blocks.json b/src/main/resources/assets/susy/blockstates/hardened_blocks.json new file mode 100644 index 000000000..937d467ad --- /dev/null +++ b/src/main/resources/assets/susy/blockstates/hardened_blocks.json @@ -0,0 +1,43 @@ +{ + "forge_marker" : 1, + "defaults": { + "model": "minecraft:cube_bottom_top", + "textures": { + "bottom": "gregtech:blocks/hardened_blocks/lair10", + "top": "gregtech:blocks/hardened_blocks/lair10", + "side": "gregtech:blocks/hardened_blocks/lair10" + } + }, + "variants" : { + "variant=lair10" : { + "model" : "minecraft:cube_all", + "textures" : { + "all" : "gregtech:blocks/hardened_blocks/lair10" + } + }, + "variant=lair11" : { + "model" : "minecraft:cube_all", + "textures" : { + "all" : "gregtech:blocks/hardened_blocks/lair11" + } + }, + "variant=lair7" : { + "model" : "minecraft:cube_all", + "textures" : { + "all" : "gregtech:blocks/hardened_blocks/lair7" + } + }, + "variant=kryp7" : { + "model" : "minecraft:cube_all", + "textures" : { + "all" : "gregtech:blocks/hardened_blocks/kryp7" + } + }, + "variant=kryp8" : { + "model" : "minecraft:cube_all", + "textures" : { + "all" : "gregtech:blocks/hardened_blocks/kryp8" + } + } + } +} diff --git a/src/main/resources/assets/susy/lang/en_us.lang b/src/main/resources/assets/susy/lang/en_us.lang index 3a315dbe4..28e2d3338 100644 --- a/src/main/resources/assets/susy/lang/en_us.lang +++ b/src/main/resources/assets/susy/lang/en_us.lang @@ -984,3 +984,9 @@ supersymmetry.unlimited_oxygen=oxygen=Remaining air: §2Unlimited§r supersymmetry.seconds_left=Remaining life: §2%s seconds§r supersymmetry.unlimited=Remaining life: §2Unlimited§r +#Hardened blocks +tile.hardened_blocks.lair7.name=Hardened Lair 7 +tile.hardened_blocks.lair10.name=Hardened Lair 10 +tile.hardened_blocks.lair11.name=Hardened Lair 11 +tile.hardened_blocks.kryp7.name=Hardened Kryp 7 +tile.hardened_blocks.kryp8.name=Hardened Kryp 8 From 692aaafdcecc0ac42a144748b3cf90661ab14a7e Mon Sep 17 00:00:00 2001 From: grema Date: Sun, 5 Jan 2025 22:04:46 +0100 Subject: [PATCH 34/55] feat: 3 env survival textures/models --- .../properties/SuSyMaterialProperties.java | 3 +- .../handler/BreathingApparatusModel.java | 24 ++--- .../blocks/BlockCoagulationTankWall.java | 2 +- .../common/blocks/BlockSheetedFrame.java | 8 +- .../common/blocks/SuSyMetaBlocks.java | 2 +- .../common/blocks/SusyStoneVariantBlock.java | 4 +- .../common/entities/EntityDrone.java | 2 +- .../event/DimensionBreathabilityHandler.java | 4 +- .../common/item/SuSyArmorItem.java | 2 +- .../armor/AdvancedBreathingApparatus.java | 3 - ...aTileEntityRailroadEngineeringStation.java | 2 +- .../models/item/metaitems/nomex_boots.json | 6 -- .../item/metaitems/nomex_chestplate.json | 6 -- .../models/item/metaitems/nomex_leggings.json | 6 -- .../models/item/metaitems/nomex_mask.json | 6 -- .../textures/items/metaitems/nomex_boots.png | Bin 284 -> 0 bytes .../items/metaitems/nomex_chestplate.png | Bin 277 -> 0 bytes .../items/metaitems/nomex_leggings.png | Bin 264 -> 0 bytes .../textures/items/metaitems/nomex_mask.png | Bin 263 -> 0 bytes .../susy/models/armor/asbestos_belt.mtl | 4 + .../susy/models/armor/asbestos_belt.obj | 49 +++++++++ .../susy/models/armor/asbestos_chest.mtl | 4 + .../susy/models/armor/asbestos_chest.obj | 49 +++++++++ .../susy/models/armor/asbestos_head.mtl | 4 + .../susy/models/armor/asbestos_head.obj | 95 ++++++++++++++++++ .../susy/models/armor/asbestos_left_arm.mtl | 4 + .../susy/models/armor/asbestos_left_arm.obj | 49 +++++++++ .../susy/models/armor/asbestos_left_foot.mtl | 4 + .../susy/models/armor/asbestos_left_foot.obj | 49 +++++++++ .../susy/models/armor/asbestos_left_leg.mtl | 4 + .../susy/models/armor/asbestos_left_leg.obj | 49 +++++++++ .../susy/models/armor/asbestos_right_arm.mtl | 4 + .../susy/models/armor/asbestos_right_arm.obj | 49 +++++++++ .../susy/models/armor/asbestos_right_foot.mtl | 4 + .../susy/models/armor/asbestos_right_foot.obj | 49 +++++++++ .../susy/models/armor/asbestos_right_leg.mtl | 4 + .../susy/models/armor/asbestos_right_leg.obj | 49 +++++++++ .../susy/models/armor/nomex_legs_top.mtl | 4 - .../susy/models/armor/nomex_legs_top.obj | 49 --------- .../susy/models/armor/reflective_belt.mtl | 4 + .../susy/models/armor/reflective_belt.obj | 49 +++++++++ .../susy/models/armor/reflective_chest.mtl | 4 + .../susy/models/armor/reflective_chest.obj | 49 +++++++++ .../susy/models/armor/reflective_head.mtl | 4 + .../susy/models/armor/reflective_head.obj | 95 ++++++++++++++++++ .../susy/models/armor/reflective_left_arm.mtl | 4 + .../susy/models/armor/reflective_left_arm.obj | 49 +++++++++ .../models/armor/reflective_left_foot.mtl | 4 + .../models/armor/reflective_left_foot.obj | 49 +++++++++ .../susy/models/armor/reflective_left_leg.mtl | 4 + .../susy/models/armor/reflective_left_leg.obj | 49 +++++++++ .../models/armor/reflective_right_arm.mtl | 4 + .../models/armor/reflective_right_arm.obj | 49 +++++++++ .../models/armor/reflective_right_foot.mtl | 4 + .../models/armor/reflective_right_foot.obj | 49 +++++++++ .../models/armor/reflective_right_leg.mtl | 4 + .../models/armor/reflective_right_leg.obj | 49 +++++++++ .../susy/textures/armor/asbestos_chest.png | Bin 0 -> 3379 bytes .../susy/textures/armor/asbestos_feet.png | Bin 0 -> 900 bytes .../susy/textures/armor/asbestos_head.png | Bin 0 -> 3097 bytes .../susy/textures/armor/asbestos_legs.png | Bin 0 -> 2542 bytes .../susy/textures/armor/reflective_chest.png | Bin 0 -> 5299 bytes .../susy/textures/armor/reflective_feet.png | Bin 0 -> 1358 bytes .../susy/textures/armor/reflective_head.png | Bin 0 -> 4396 bytes .../susy/textures/armor/reflective_legs.png | Bin 0 -> 3423 bytes 65 files changed, 1070 insertions(+), 109 deletions(-) delete mode 100644 src/main/resources/assets/gregtech/models/item/metaitems/nomex_boots.json delete mode 100644 src/main/resources/assets/gregtech/models/item/metaitems/nomex_chestplate.json delete mode 100644 src/main/resources/assets/gregtech/models/item/metaitems/nomex_leggings.json delete mode 100644 src/main/resources/assets/gregtech/models/item/metaitems/nomex_mask.json delete mode 100644 src/main/resources/assets/gregtech/textures/items/metaitems/nomex_boots.png delete mode 100644 src/main/resources/assets/gregtech/textures/items/metaitems/nomex_chestplate.png delete mode 100644 src/main/resources/assets/gregtech/textures/items/metaitems/nomex_leggings.png delete mode 100644 src/main/resources/assets/gregtech/textures/items/metaitems/nomex_mask.png create mode 100644 src/main/resources/assets/susy/models/armor/asbestos_belt.mtl create mode 100644 src/main/resources/assets/susy/models/armor/asbestos_belt.obj create mode 100644 src/main/resources/assets/susy/models/armor/asbestos_chest.mtl create mode 100644 src/main/resources/assets/susy/models/armor/asbestos_chest.obj create mode 100644 src/main/resources/assets/susy/models/armor/asbestos_head.mtl create mode 100644 src/main/resources/assets/susy/models/armor/asbestos_head.obj create mode 100644 src/main/resources/assets/susy/models/armor/asbestos_left_arm.mtl create mode 100644 src/main/resources/assets/susy/models/armor/asbestos_left_arm.obj create mode 100644 src/main/resources/assets/susy/models/armor/asbestos_left_foot.mtl create mode 100644 src/main/resources/assets/susy/models/armor/asbestos_left_foot.obj create mode 100644 src/main/resources/assets/susy/models/armor/asbestos_left_leg.mtl create mode 100644 src/main/resources/assets/susy/models/armor/asbestos_left_leg.obj create mode 100644 src/main/resources/assets/susy/models/armor/asbestos_right_arm.mtl create mode 100644 src/main/resources/assets/susy/models/armor/asbestos_right_arm.obj create mode 100644 src/main/resources/assets/susy/models/armor/asbestos_right_foot.mtl create mode 100644 src/main/resources/assets/susy/models/armor/asbestos_right_foot.obj create mode 100644 src/main/resources/assets/susy/models/armor/asbestos_right_leg.mtl create mode 100644 src/main/resources/assets/susy/models/armor/asbestos_right_leg.obj delete mode 100644 src/main/resources/assets/susy/models/armor/nomex_legs_top.mtl delete mode 100644 src/main/resources/assets/susy/models/armor/nomex_legs_top.obj create mode 100644 src/main/resources/assets/susy/models/armor/reflective_belt.mtl create mode 100644 src/main/resources/assets/susy/models/armor/reflective_belt.obj create mode 100644 src/main/resources/assets/susy/models/armor/reflective_chest.mtl create mode 100644 src/main/resources/assets/susy/models/armor/reflective_chest.obj create mode 100644 src/main/resources/assets/susy/models/armor/reflective_head.mtl create mode 100644 src/main/resources/assets/susy/models/armor/reflective_head.obj create mode 100644 src/main/resources/assets/susy/models/armor/reflective_left_arm.mtl create mode 100644 src/main/resources/assets/susy/models/armor/reflective_left_arm.obj create mode 100644 src/main/resources/assets/susy/models/armor/reflective_left_foot.mtl create mode 100644 src/main/resources/assets/susy/models/armor/reflective_left_foot.obj create mode 100644 src/main/resources/assets/susy/models/armor/reflective_left_leg.mtl create mode 100644 src/main/resources/assets/susy/models/armor/reflective_left_leg.obj create mode 100644 src/main/resources/assets/susy/models/armor/reflective_right_arm.mtl create mode 100644 src/main/resources/assets/susy/models/armor/reflective_right_arm.obj create mode 100644 src/main/resources/assets/susy/models/armor/reflective_right_foot.mtl create mode 100644 src/main/resources/assets/susy/models/armor/reflective_right_foot.obj create mode 100644 src/main/resources/assets/susy/models/armor/reflective_right_leg.mtl create mode 100644 src/main/resources/assets/susy/models/armor/reflective_right_leg.obj create mode 100644 src/main/resources/assets/susy/textures/armor/asbestos_chest.png create mode 100644 src/main/resources/assets/susy/textures/armor/asbestos_feet.png create mode 100644 src/main/resources/assets/susy/textures/armor/asbestos_head.png create mode 100644 src/main/resources/assets/susy/textures/armor/asbestos_legs.png create mode 100644 src/main/resources/assets/susy/textures/armor/reflective_chest.png create mode 100644 src/main/resources/assets/susy/textures/armor/reflective_feet.png create mode 100644 src/main/resources/assets/susy/textures/armor/reflective_head.png create mode 100644 src/main/resources/assets/susy/textures/armor/reflective_legs.png diff --git a/src/main/java/supersymmetry/api/unification/material/properties/SuSyMaterialProperties.java b/src/main/java/supersymmetry/api/unification/material/properties/SuSyMaterialProperties.java index 11cf38697..da6b8dfdc 100644 --- a/src/main/java/supersymmetry/api/unification/material/properties/SuSyMaterialProperties.java +++ b/src/main/java/supersymmetry/api/unification/material/properties/SuSyMaterialProperties.java @@ -1,5 +1,6 @@ -package gregtech.api.unification.material.properties; +package supersymmetry.api.unification.material.properties; +import gregtech.api.unification.material.properties.PropertyKey; import supersymmetry.api.unification.material.properties.SuSyPropertyKey; import java.util.*; diff --git a/src/main/java/supersymmetry/client/renderer/handler/BreathingApparatusModel.java b/src/main/java/supersymmetry/client/renderer/handler/BreathingApparatusModel.java index 7743e331d..a010cf03d 100644 --- a/src/main/java/supersymmetry/client/renderer/handler/BreathingApparatusModel.java +++ b/src/main/java/supersymmetry/client/renderer/handler/BreathingApparatusModel.java @@ -1,10 +1,12 @@ package supersymmetry.client.renderer.handler; import net.minecraft.client.model.ModelBiped; -import net.minecraft.client.model.ModelRenderer; import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.util.ResourceLocation; +import java.util.ArrayList; +import java.util.List; + import static supersymmetry.api.util.SuSyUtility.susyId; public class BreathingApparatusModel extends ModelBiped { @@ -31,17 +33,13 @@ public void addChildren(String name, EntityEquipmentSlot slot) { } case CHEST -> { this.bipedBody.addChild(modelForPart(name, "chest")); - ModelRenderer leftArm = modelForPart(name, "left_arm", 12.125F); - leftArm.offsetX = 0.0625F; - this.bipedLeftArm.addChild(leftArm); - ModelRenderer rightArm = modelForPart(name, "right_arm", 12.125F); - rightArm.offsetX = -0.0625F; - this.bipedRightArm.addChild(rightArm); + this.bipedLeftArm.addChild(modelForPart(name, "left_arm")); + this.bipedRightArm.addChild(modelForPart(name, "right_arm")); } case LEGS -> { - this.bipedBody.addChild(modelForPart(name, "belt", 17.5F)); - this.bipedLeftLeg.addChild(modelForPart(name, "left_leg", 16.5F)); - this.bipedRightLeg.addChild(modelForPart(name, "right_leg", 16.5F)); + this.bipedBody.addChild(modelForPart(name, "belt")); + this.bipedLeftLeg.addChild(modelForPart(name, "left_leg")); + this.bipedRightLeg.addChild(modelForPart(name, "right_leg")); } case HEAD -> this.bipedHead.addChild(modelForPart(name, "head")); } @@ -52,10 +50,6 @@ public ResourceLocation modelLocationFromPart(String armor, String model) { } public OBJModelRender modelForPart(String armor, String model) { - return modelForPart(armor, model, 17); - } - - public OBJModelRender modelForPart(String armor, String model, float size) { - return new OBJModelRender(this, modelLocationFromPart(armor, model), size); + return new OBJModelRender(this, modelLocationFromPart(armor, model), 17); } } diff --git a/src/main/java/supersymmetry/common/blocks/BlockCoagulationTankWall.java b/src/main/java/supersymmetry/common/blocks/BlockCoagulationTankWall.java index d7d7f1fa5..28a2bed56 100644 --- a/src/main/java/supersymmetry/common/blocks/BlockCoagulationTankWall.java +++ b/src/main/java/supersymmetry/common/blocks/BlockCoagulationTankWall.java @@ -20,7 +20,7 @@ public BlockCoagulationTankWall(){ setResistance(10.0f); setSoundType(SoundType.METAL); setHarvestLevel("wrench", 2); - setDefaultState(getState(BlockCoagulationTankWall.CoagulationTankWallType.WOODEN_COAGULATION_TANK_WALL)); + setDefaultState(getState(CoagulationTankWallType.WOODEN_COAGULATION_TANK_WALL)); } @Override diff --git a/src/main/java/supersymmetry/common/blocks/BlockSheetedFrame.java b/src/main/java/supersymmetry/common/blocks/BlockSheetedFrame.java index cad88a00c..5547cfc95 100644 --- a/src/main/java/supersymmetry/common/blocks/BlockSheetedFrame.java +++ b/src/main/java/supersymmetry/common/blocks/BlockSheetedFrame.java @@ -43,7 +43,7 @@ public class BlockSheetedFrame extends Block { - public static final PropertyEnum SHEETED_FRAME_AXIS = PropertyEnum.create("axis", BlockSheetedFrame.FrameEnumAxis.class); + public static final PropertyEnum SHEETED_FRAME_AXIS = PropertyEnum.create("axis", FrameEnumAxis.class); public final PropertyMaterial variantProperty; @@ -70,7 +70,7 @@ public BlockSheetedFrame(Material[] materials) @Override @NotNull public IBlockState getStateForPlacement(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer) { - return this.getStateFromMeta(meta).withProperty(SHEETED_FRAME_AXIS, BlockSheetedFrame.FrameEnumAxis.fromFacingAxis(facing.getAxis())); + return this.getStateFromMeta(meta).withProperty(SHEETED_FRAME_AXIS, FrameEnumAxis.fromFacingAxis(facing.getAxis())); } protected BlockStateContainer createStateContainer() { @@ -99,9 +99,9 @@ public IBlockState withRotation(IBlockState state, Rotation rot) switch (state.getValue(SHEETED_FRAME_AXIS)) { case X: - return state.withProperty(SHEETED_FRAME_AXIS, BlockSheetedFrame.FrameEnumAxis.Z); + return state.withProperty(SHEETED_FRAME_AXIS, FrameEnumAxis.Z); case Z: - return state.withProperty(SHEETED_FRAME_AXIS, BlockSheetedFrame.FrameEnumAxis.X); + return state.withProperty(SHEETED_FRAME_AXIS, FrameEnumAxis.X); default: return state; } diff --git a/src/main/java/supersymmetry/common/blocks/SuSyMetaBlocks.java b/src/main/java/supersymmetry/common/blocks/SuSyMetaBlocks.java index dda03e22a..a79858698 100644 --- a/src/main/java/supersymmetry/common/blocks/SuSyMetaBlocks.java +++ b/src/main/java/supersymmetry/common/blocks/SuSyMetaBlocks.java @@ -146,7 +146,7 @@ public static String statePropertiesToString(Map, Comparable> pr .sorted(Comparator.comparing(c -> c.getKey().getName())) .collect(Collectors.toList()); - for (Map.Entry, Comparable> entry : entries) { + for (Entry, Comparable> entry : entries) { if (stringbuilder.length() != 0) { stringbuilder.append(","); } diff --git a/src/main/java/supersymmetry/common/blocks/SusyStoneVariantBlock.java b/src/main/java/supersymmetry/common/blocks/SusyStoneVariantBlock.java index bd5f4b091..0c3c8754e 100644 --- a/src/main/java/supersymmetry/common/blocks/SusyStoneVariantBlock.java +++ b/src/main/java/supersymmetry/common/blocks/SusyStoneVariantBlock.java @@ -39,14 +39,14 @@ public SusyStoneVariantBlock(@Nonnull StoneVariant stoneVariant) { @Nonnull protected BlockStateContainer createBlockState() { this.VARIANT = PROPERTY; - this.VALUES = SusyStoneVariantBlock.StoneType.values(); + this.VALUES = StoneType.values(); return new BlockStateContainer(this, this.VARIANT); } @Override @SuppressWarnings("deprecation") protected boolean canSilkHarvest() { - return this.stoneVariant == SusyStoneVariantBlock.StoneVariant.SMOOTH; + return this.stoneVariant == StoneVariant.SMOOTH; } @NotNull diff --git a/src/main/java/supersymmetry/common/entities/EntityDrone.java b/src/main/java/supersymmetry/common/entities/EntityDrone.java index 96b8b0365..f92b4ef4a 100644 --- a/src/main/java/supersymmetry/common/entities/EntityDrone.java +++ b/src/main/java/supersymmetry/common/entities/EntityDrone.java @@ -273,7 +273,7 @@ private PlayState predicate(AnimationEvent event) { event.getController().setAnimation(new AnimationBuilder().addAnimation("animation.drone.landing", ILoopType.EDefaultLoopTypes.PLAY_ONCE)); } - return software.bernie.geckolib3.core.PlayState.CONTINUE; + return PlayState.CONTINUE; } @Override diff --git a/src/main/java/supersymmetry/common/event/DimensionBreathabilityHandler.java b/src/main/java/supersymmetry/common/event/DimensionBreathabilityHandler.java index 172755f51..947cf0789 100644 --- a/src/main/java/supersymmetry/common/event/DimensionBreathabilityHandler.java +++ b/src/main/java/supersymmetry/common/event/DimensionBreathabilityHandler.java @@ -35,9 +35,9 @@ public static void loadConfig() { dimensionBreathabilityMap.clear(); // Nether - dimensionBreathabilityMap.put(-1, new DimensionBreathabilityHandler.BreathabilityInfo(SuSyDamageSources.getToxicAtmoDamage(), 2)); + dimensionBreathabilityMap.put(-1, new BreathabilityInfo(SuSyDamageSources.getToxicAtmoDamage(), 2)); // Beneath - dimensionBreathabilityMap.put(10, new DimensionBreathabilityHandler.BreathabilityInfo(SuSyDamageSources.getSuffocationDamage(), 0.5)); + dimensionBreathabilityMap.put(10, new BreathabilityInfo(SuSyDamageSources.getSuffocationDamage(), 0.5)); } diff --git a/src/main/java/supersymmetry/common/item/SuSyArmorItem.java b/src/main/java/supersymmetry/common/item/SuSyArmorItem.java index 1b3d302e3..23c6d5db9 100644 --- a/src/main/java/supersymmetry/common/item/SuSyArmorItem.java +++ b/src/main/java/supersymmetry/common/item/SuSyArmorItem.java @@ -24,7 +24,7 @@ public double tryTick(ItemStack stack, EntityPlayer player) { return getItem(stack).armorLogic.tryTick(stack, player); } - public class SuSyArmorMetaValueItem extends ArmorMetaItem.ArmorMetaValueItem { + public class SuSyArmorMetaValueItem extends ArmorMetaItem.ArmorMetaValueItem { private IBreathingArmorLogic armorLogic = null; protected SuSyArmorMetaValueItem(int metaValue, String unlocalizedName) { super(metaValue, unlocalizedName); diff --git a/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java b/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java index 12fc04c9c..6f79fc89c 100644 --- a/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java +++ b/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java @@ -207,9 +207,6 @@ public int getArmorDisplay(EntityPlayer player, ItemStack armor, int slot) { public List getTextureLocations() { List models = new ArrayList<>(); models.add(susyId("armor/" + name + "_" + this.SLOT.toString())); - if (this.SLOT == LEGS) { - models.add(susyId("armor/" + name + "_belt")); - } return models; } } diff --git a/src/main/java/supersymmetry/common/metatileentities/multi/electric/MetaTileEntityRailroadEngineeringStation.java b/src/main/java/supersymmetry/common/metatileentities/multi/electric/MetaTileEntityRailroadEngineeringStation.java index b8bc06279..ede6a9e69 100644 --- a/src/main/java/supersymmetry/common/metatileentities/multi/electric/MetaTileEntityRailroadEngineeringStation.java +++ b/src/main/java/supersymmetry/common/metatileentities/multi/electric/MetaTileEntityRailroadEngineeringStation.java @@ -184,7 +184,7 @@ public List getMatchingShapes() { .where('S', SuSyMetaTileEntities.RAILROAD_ENGINEERING_STATION, EnumFacing.SOUTH) .where('F', MetaBlocks.FRAMES.get(Materials.Steel).getBlock(Materials.Steel)) .where('M', MetaBlocks.METAL_CASING.getState(MetalCasingType.STEEL_SOLID)) - .where('A', () -> ConfigHolder.machines.enableMaintenance ? MetaTileEntities.MAINTENANCE_HATCH : MetaBlocks.METAL_CASING.getState(BlockMetalCasing.MetalCasingType.STEEL_SOLID), EnumFacing.SOUTH) + .where('A', () -> ConfigHolder.machines.enableMaintenance ? MetaTileEntities.MAINTENANCE_HATCH : MetaBlocks.METAL_CASING.getState(MetalCasingType.STEEL_SOLID), EnumFacing.SOUTH) .where('G', MetaBlocks.TURBINE_CASING.getState(BlockTurbineCasing.TurbineCasingType.STEEL_GEARBOX)) .where('C', MetaBlocks.STONE_BLOCKS.get(StoneVariantBlock.StoneVariant.SMOOTH).getState(StoneVariantBlock.StoneType.CONCRETE_LIGHT)) .where('I', MetaTileEntities.ITEM_IMPORT_BUS[3], EnumFacing.NORTH) diff --git a/src/main/resources/assets/gregtech/models/item/metaitems/nomex_boots.json b/src/main/resources/assets/gregtech/models/item/metaitems/nomex_boots.json deleted file mode 100644 index 70fc769ee..000000000 --- a/src/main/resources/assets/gregtech/models/item/metaitems/nomex_boots.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "gregtech:items/metaitems/nomex_boots" - } -} diff --git a/src/main/resources/assets/gregtech/models/item/metaitems/nomex_chestplate.json b/src/main/resources/assets/gregtech/models/item/metaitems/nomex_chestplate.json deleted file mode 100644 index 4710af9f8..000000000 --- a/src/main/resources/assets/gregtech/models/item/metaitems/nomex_chestplate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "gregtech:items/metaitems/nomex_chestplate" - } -} diff --git a/src/main/resources/assets/gregtech/models/item/metaitems/nomex_leggings.json b/src/main/resources/assets/gregtech/models/item/metaitems/nomex_leggings.json deleted file mode 100644 index ebdc97a50..000000000 --- a/src/main/resources/assets/gregtech/models/item/metaitems/nomex_leggings.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "gregtech:items/metaitems/nomex_leggings" - } -} diff --git a/src/main/resources/assets/gregtech/models/item/metaitems/nomex_mask.json b/src/main/resources/assets/gregtech/models/item/metaitems/nomex_mask.json deleted file mode 100644 index 6f0e9b955..000000000 --- a/src/main/resources/assets/gregtech/models/item/metaitems/nomex_mask.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "item/generated", - "textures": { - "layer0": "gregtech:items/metaitems/nomex_mask" - } -} diff --git a/src/main/resources/assets/gregtech/textures/items/metaitems/nomex_boots.png b/src/main/resources/assets/gregtech/textures/items/metaitems/nomex_boots.png deleted file mode 100644 index 2e9899024fdeb2baf3c36f866618b627a751031e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 284 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|_ISEDhFA!m zo#4oI$U%UmIA}_PoDD}@O#}ajSIK`S&lk@B)#I`DiqRXDN!EpL~J#sjvXEo_^GcAS)7S?D7+UoGC>BdJfa;d75CGsmfi8Y+#NSFWx#nN(P9 zvcR3$|DyXoi4B%{{Y+J>u3izDutV+nsvjoBrDt#Sug|yOnSOlFuL3!sKloB3JkxxA Z8MJ_G4j=}BOTm*tl&7no%Q~loCII?DYgqsQ diff --git a/src/main/resources/assets/gregtech/textures/items/metaitems/nomex_chestplate.png b/src/main/resources/assets/gregtech/textures/items/metaitems/nomex_chestplate.png deleted file mode 100644 index 7232e98a5ee6e0974c5ecd4d623b20d6cf1b2deb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 277 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|wtBiahFA!m zo#4oID1e7`chHn3y%>%>n+EoR+lRmS#rfTNX{Zz|!ErYKx^9cw!@Vc7cjp!R@892^ zYVrK>JF$1O-hX~5IQ^fc=-y*{qFYive>Gv*%&PEymVnF61)j>8Me%ly42SN27oGpz zqLxc7y-JaF0Y}62&$n4#aXEba6Te~kjcVB&S_f7XztB36aba)UL6$$2X{BdbBm}t( zs_xwuXP9mn9Os&&^er-&p)%2j_gv)Wx&Qccj~(X?yLnd{=mEae2+uTMUj{88n*)eJ S;8O5p5asFW=d#Wzp$P!+CTX|; diff --git a/src/main/resources/assets/gregtech/textures/items/metaitems/nomex_leggings.png b/src/main/resources/assets/gregtech/textures/items/metaitems/nomex_leggings.png deleted file mode 100644 index be329c18aeeb5a6ff527af51980c264ad0500357..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 264 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|R(QHNhFA!m zooL9_93bGbR*6kfOpH;Q{{iErsu_1Qrwdyb_vo*malU1~{Jv0;X|cy<-i%zk>auOF zE!(RqNvG>Rg<}7V4OCoee|P+?oBg;)bIuyhB$g>YQ=Imma7a3lvsC7^nuCIplHkFq zt1KF&4PHl!NIH}yedK)qR&+&aWt~KV+MIGL-IoHQSN$2T#~0WbeqiylneyPa8jnGU zzZrMIB=r*yFa6#A-u}n5`)s}U76IMNmm1-j=IhI#1!QvoF$i1=o(!TqUHx3vIVCg! E0Bj~)XaE2J diff --git a/src/main/resources/assets/gregtech/textures/items/metaitems/nomex_mask.png b/src/main/resources/assets/gregtech/textures/items/metaitems/nomex_mask.png deleted file mode 100644 index c078a04a5f882ee6e0e1581f2ad769131cb3484f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 263 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|mV3H5hFA#R z?YHJTtRUdBy<5rE>(mrWhpeb6O_TbXgbUcB_#94`s!KiTl{tOPGkb~P{F~;xJ7mi5 zuGbIP{(1BJ`oAHH?>>L_SDb!%v9qDuiap;SSZ|d+l+>j3Ni|z{MIu8YE907Z?TV8< z%S6+D7&JUSyF6pflI-YL6oPfpUXO@geCy9 CB4Pdj diff --git a/src/main/resources/assets/susy/models/armor/asbestos_belt.mtl b/src/main/resources/assets/susy/models/armor/asbestos_belt.mtl new file mode 100644 index 000000000..d87c00eea --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/asbestos_belt.mtl @@ -0,0 +1,4 @@ +# Made in Blockbench 4.11.2 +newmtl m_5949d32f-0394-51de-a934-eb582784295d +map_Kd susy:armor/asbestos_legs +newmtl none diff --git a/src/main/resources/assets/susy/models/armor/asbestos_belt.obj b/src/main/resources/assets/susy/models/armor/asbestos_belt.obj new file mode 100644 index 000000000..3d297ce48 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/asbestos_belt.obj @@ -0,0 +1,49 @@ +# Made in Blockbench 4.11.2 +mtllib asbestos_belt.mtl + +o belt +v -0.15687499999999993 0.031874999999999876 0.28187500000000004 +v 0.15687500000000004 0.031874999999999876 0.28187499999999993 +v -0.15687499999999993 -0.781875 0.28187500000000004 +v 0.15687500000000004 -0.781875 0.28187499999999993 +v 0.15687499999999993 0.031874999999999876 -0.28187500000000004 +v -0.15687500000000004 0.031874999999999876 -0.28187499999999993 +v 0.15687499999999993 -0.781875 -0.28187500000000004 +v -0.15687500000000004 -0.781875 -0.28187499999999993 +vt 0.125 0.875 +vt 0.375 0.875 +vt 0.375 0.5 +vt 0.125 0.5 +vt 0 0.875 +vt 0.125 0.875 +vt 0.125 0.5 +vt 0 0.5 +vt 0.5 0.875 +vt 0.75 0.875 +vt 0.75 0.5 +vt 0.5 0.5 +vt 0.375 0.875 +vt 0.5 0.875 +vt 0.5 0.5 +vt 0.375 0.5 +vt 0.375 0.875 +vt 0.125 0.875 +vt 0.125 1 +vt 0.375 1 +vt 0.625 1 +vt 0.375 1 +vt 0.375 0.875 +vt 0.625 0.875 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_5949d32f-0394-51de-a934-eb582784295d +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 diff --git a/src/main/resources/assets/susy/models/armor/asbestos_chest.mtl b/src/main/resources/assets/susy/models/armor/asbestos_chest.mtl new file mode 100644 index 000000000..ebb849cdd --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/asbestos_chest.mtl @@ -0,0 +1,4 @@ +# Made in Blockbench 4.11.2 +newmtl m_eb463341-51c5-0cd1-e26e-430dc6c2d2de +map_Kd susy:armor/asbestos_chest +newmtl none diff --git a/src/main/resources/assets/susy/models/armor/asbestos_chest.obj b/src/main/resources/assets/susy/models/armor/asbestos_chest.obj new file mode 100644 index 000000000..2bbfb8130 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/asbestos_chest.obj @@ -0,0 +1,49 @@ +# Made in Blockbench 4.11.2 +mtllib asbestos_chest.mtl + +o chestplate +v -0.1881249999999999 0.06312499999999999 0.31312500000000004 +v 0.18812500000000007 0.06312499999999999 0.31312499999999993 +v -0.1881249999999999 -0.813125 0.31312500000000004 +v 0.18812500000000007 -0.813125 0.31312499999999993 +v 0.1881249999999999 0.06312499999999999 -0.31312500000000004 +v -0.18812500000000007 0.06312499999999999 -0.31312499999999993 +v 0.1881249999999999 -0.813125 -0.31312500000000004 +v -0.18812500000000007 -0.813125 -0.31312499999999993 +vt 0.125 0.875 +vt 0.375 0.875 +vt 0.375 0.5 +vt 0.125 0.5 +vt 0 0.875 +vt 0.125 0.875 +vt 0.125 0.5 +vt 0 0.5 +vt 0.5 0.875 +vt 0.75 0.875 +vt 0.75 0.5 +vt 0.5 0.5 +vt 0.375 0.875 +vt 0.5 0.875 +vt 0.5 0.5 +vt 0.375 0.5 +vt 0.375 0.875 +vt 0.125 0.875 +vt 0.125 1 +vt 0.375 1 +vt 0.625 1 +vt 0.375 1 +vt 0.375 0.875 +vt 0.625 0.875 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_eb463341-51c5-0cd1-e26e-430dc6c2d2de +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 diff --git a/src/main/resources/assets/susy/models/armor/asbestos_head.mtl b/src/main/resources/assets/susy/models/armor/asbestos_head.mtl new file mode 100644 index 000000000..7e501d467 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/asbestos_head.mtl @@ -0,0 +1,4 @@ +# Made in Blockbench 4.11.2 +newmtl m_c4a4af8f-b54e-ba46-81eb-ad477771f867 +map_Kd susy:armor/asbestos_head +newmtl none diff --git a/src/main/resources/assets/susy/models/armor/asbestos_head.obj b/src/main/resources/assets/susy/models/armor/asbestos_head.obj new file mode 100644 index 000000000..691e2a408 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/asbestos_head.obj @@ -0,0 +1,95 @@ +# Made in Blockbench 4.11.2 +mtllib asbestos_head.mtl + +o helmet +v -0.31249999999999994 0.5625 0.31250000000000006 +v 0.31250000000000006 0.5625 0.31249999999999994 +v -0.31249999999999994 -0.0625 0.31250000000000006 +v 0.31250000000000006 -0.0625 0.31249999999999994 +v 0.31249999999999994 0.5625 -0.31250000000000006 +v -0.31250000000000006 0.5625 -0.31249999999999994 +v 0.31249999999999994 -0.0625 -0.31250000000000006 +v -0.31250000000000006 -0.0625 -0.31249999999999994 +vt 0.25 0.75 +vt 0.5 0.75 +vt 0.5 0.5 +vt 0.25 0.5 +vt 0 0.75 +vt 0.25 0.75 +vt 0.25 0.5 +vt 0 0.5 +vt 0.75 0.75 +vt 1 0.75 +vt 1 0.5 +vt 0.75 0.5 +vt 0.5 0.75 +vt 0.75 0.75 +vt 0.75 0.5 +vt 0.5 0.5 +vt 0.5 0.75 +vt 0.25 0.75 +vt 0.25 1 +vt 0.5 1 +vt 0.75 1 +vt 0.5 1 +vt 0.5 0.75 +vt 0.75 0.75 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_c4a4af8f-b54e-ba46-81eb-ad477771f867 +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o cube +v 0.25 0.125 0.062499999999999944 +v 0.375 0.125 0.06249999999999992 +v 0.25 0 0.062499999999999944 +v 0.375 0 0.06249999999999992 +v 0.375 0.125 -0.06250000000000008 +v 0.25 0.125 -0.06250000000000006 +v 0.375 0 -0.06250000000000008 +v 0.25 0 -0.06250000000000006 +vt 0.0625 0.4375 +vt 0.125 0.4375 +vt 0.125 0.375 +vt 0.0625 0.375 +vt 0 0.4375 +vt 0.0625 0.4375 +vt 0.0625 0.375 +vt 0 0.375 +vt 0.1875 0.4375 +vt 0.25 0.4375 +vt 0.25 0.375 +vt 0.1875 0.375 +vt 0.125 0.4375 +vt 0.1875 0.4375 +vt 0.1875 0.375 +vt 0.125 0.375 +vt 0.125 0.4375 +vt 0.0625 0.4375 +vt 0.0625 0.5 +vt 0.125 0.5 +vt 0.1875 0.5 +vt 0.125 0.5 +vt 0.125 0.4375 +vt 0.1875 0.4375 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_c4a4af8f-b54e-ba46-81eb-ad477771f867 +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 \ No newline at end of file diff --git a/src/main/resources/assets/susy/models/armor/asbestos_left_arm.mtl b/src/main/resources/assets/susy/models/armor/asbestos_left_arm.mtl new file mode 100644 index 000000000..be025fbaa --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/asbestos_left_arm.mtl @@ -0,0 +1,4 @@ +# Made in Blockbench 4.11.2 +newmtl m_e8ecefa1-bd6c-0ecf-c760-879a39613ede +map_Kd susy:armor/asbestos_chest +newmtl none diff --git a/src/main/resources/assets/susy/models/armor/asbestos_left_arm.obj b/src/main/resources/assets/susy/models/armor/asbestos_left_arm.obj new file mode 100644 index 000000000..3a3b27a1c --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/asbestos_left_arm.obj @@ -0,0 +1,49 @@ +# Made in Blockbench 4.11.2 +mtllib asbestos_left_arm.mtl + +o arm_plate_left +v -0.175 0.17500000000000004 0.11250000000000002 +v 0.175 0.17500000000000004 0.11249999999999996 +v -0.175 -0.675 0.11250000000000002 +v 0.175 -0.675 0.11249999999999996 +v 0.17499999999999993 0.17500000000000004 -0.23750000000000004 +v -0.17500000000000004 0.17500000000000004 -0.23750000000000004 +v 0.17499999999999993 -0.675 -0.23750000000000004 +v -0.17500000000000004 -0.675 -0.23750000000000004 +vt 0.25 0.375 +vt 0.125 0.375 +vt 0.125 0 +vt 0.25 0 +vt 0.375 0.375 +vt 0.25 0.375 +vt 0.25 0 +vt 0.375 0 +vt 0.5 0.375 +vt 0.375 0.375 +vt 0.375 0 +vt 0.5 0 +vt 0.125 0.375 +vt 0 0.375 +vt 0 0 +vt 0.125 0 +vt 0.125 0.375 +vt 0.25 0.375 +vt 0.25 0.5 +vt 0.125 0.5 +vt 0.25 0.5 +vt 0.375 0.5 +vt 0.375 0.375 +vt 0.25 0.375 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_e8ecefa1-bd6c-0ecf-c760-879a39613ede +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 diff --git a/src/main/resources/assets/susy/models/armor/asbestos_left_foot.mtl b/src/main/resources/assets/susy/models/armor/asbestos_left_foot.mtl new file mode 100644 index 000000000..9e2074af4 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/asbestos_left_foot.mtl @@ -0,0 +1,4 @@ +# Made in Blockbench 4.11.2 +newmtl m_7c71707c-7a99-4eb8-db67-d0801c8b5aac +map_Kd susy:armor/asbestos_feet +newmtl none diff --git a/src/main/resources/assets/susy/models/armor/asbestos_left_foot.obj b/src/main/resources/assets/susy/models/armor/asbestos_left_foot.obj new file mode 100644 index 000000000..a1d910d40 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/asbestos_left_foot.obj @@ -0,0 +1,49 @@ +# Made in Blockbench 4.11.2 +mtllib asbestos_left_foot.mtl + +o boot_left +v -0.18749999999999997 0.06216288975122197 0.19254979165039443 +v 0.18750000000000003 0.06216288975122197 0.19254979165039438 +v -0.18749999999999997 -0.8128357775479047 0.19102262933023342 +v 0.18750000000000003 -0.8128357775479047 0.19102262933023334 +v 0.18749999999999994 0.06281738788843383 -0.18244963719208857 +v -0.18750000000000006 0.06281738788843383 -0.18244963719208845 +v 0.18749999999999994 -0.8121812794106928 -0.1839767995122496 +v -0.18750000000000006 -0.8121812794106928 -0.1839767995122495 +vt 0.25 0.875 +vt 0.125 0.875 +vt 0.125 0.5 +vt 0.25 0.5 +vt 0.375 0.875 +vt 0.25 0.875 +vt 0.25 0.5 +vt 0.375 0.5 +vt 0.5 0.875 +vt 0.375 0.875 +vt 0.375 0.5 +vt 0.5 0.5 +vt 0.125 0.875 +vt 0 0.875 +vt 0 0.5 +vt 0.125 0.5 +vt 0.125 0.875 +vt 0.25 0.875 +vt 0.25 1 +vt 0.125 1 +vt 0.25 1 +vt 0.375 1 +vt 0.375 0.875 +vt 0.25 0.875 +vn 1 3.8754074747034047e-19 -2.22044266731844e-16 +vn 2.220446049250313e-16 -0.0017453283658983088 0.9999984769132877 +vn -1 -3.8754074747034047e-19 2.22044266731844e-16 +vn -2.220446049250313e-16 0.0017453283658983088 -0.9999984769132877 +vn 0 0.9999984769132877 0.0017453283658983088 +vn 0 -0.9999984769132877 -0.0017453283658983088 +usemtl m_7c71707c-7a99-4eb8-db67-d0801c8b5aac +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 diff --git a/src/main/resources/assets/susy/models/armor/asbestos_left_leg.mtl b/src/main/resources/assets/susy/models/armor/asbestos_left_leg.mtl new file mode 100644 index 000000000..7ef1a8f91 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/asbestos_left_leg.mtl @@ -0,0 +1,4 @@ +# Made in Blockbench 4.11.2 +newmtl m_b9fba4c0-7347-5c2d-eafa-019bfdfb6a52 +map_Kd susy:armor/asbestos_legs +newmtl none diff --git a/src/main/resources/assets/susy/models/armor/asbestos_left_leg.obj b/src/main/resources/assets/susy/models/armor/asbestos_left_leg.obj new file mode 100644 index 000000000..9b0d0ee19 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/asbestos_left_leg.obj @@ -0,0 +1,49 @@ +# Made in Blockbench 4.11.2 +mtllib asbestos_left_leg.mtl + +o leggings_left +v -0.15000000000000002 0.025000000000000022 0.15625000000000003 +v 0.15 0.025000000000000022 0.15624999999999997 +v -0.15000000000000002 -0.775 0.15625000000000003 +v 0.15 -0.775 0.15624999999999997 +v 0.14999999999999994 0.025000000000000022 -0.14375000000000004 +v -0.15000000000000008 0.025000000000000022 -0.14374999999999993 +v 0.14999999999999994 -0.775 -0.14375000000000004 +v -0.15000000000000008 -0.775 -0.14374999999999993 +vt 0.25 0.375 +vt 0.125 0.375 +vt 0.125 0 +vt 0.25 0 +vt 0.375 0.375 +vt 0.25 0.375 +vt 0.25 0 +vt 0.375 0 +vt 0.5 0.375 +vt 0.375 0.375 +vt 0.375 0 +vt 0.5 0 +vt 0.125 0.375 +vt 0 0.375 +vt 0 0 +vt 0.125 0 +vt 0.125 0.375 +vt 0.25 0.375 +vt 0.25 0.5 +vt 0.125 0.5 +vt 0.25 0.5 +vt 0.375 0.5 +vt 0.375 0.375 +vt 0.25 0.375 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_b9fba4c0-7347-5c2d-eafa-019bfdfb6a52 +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 diff --git a/src/main/resources/assets/susy/models/armor/asbestos_right_arm.mtl b/src/main/resources/assets/susy/models/armor/asbestos_right_arm.mtl new file mode 100644 index 000000000..d0c8aba0e --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/asbestos_right_arm.mtl @@ -0,0 +1,4 @@ +# Made in Blockbench 4.11.2 +newmtl m_6ff59072-f0e8-26d7-8881-f3993ab2f42f +map_Kd susy:armor/asbestos_chest +newmtl none diff --git a/src/main/resources/assets/susy/models/armor/asbestos_right_arm.obj b/src/main/resources/assets/susy/models/armor/asbestos_right_arm.obj new file mode 100644 index 000000000..a65e94209 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/asbestos_right_arm.obj @@ -0,0 +1,49 @@ +# Made in Blockbench 4.11.2 +mtllib asbestos_right_arm.mtl + +o arm_plate_right +v -0.17499999999999993 0.17500000000000004 0.2375000000000001 +v 0.17500000000000004 0.17500000000000004 0.2375000000000001 +v -0.17499999999999993 -0.675 0.2375000000000001 +v 0.17500000000000004 -0.675 0.2375000000000001 +v 0.175 0.17500000000000004 -0.11249999999999996 +v -0.175 0.17500000000000004 -0.1124999999999999 +v 0.175 -0.675 -0.11249999999999996 +v -0.175 -0.675 -0.1124999999999999 +vt 0.125 0.375 +vt 0.25 0.375 +vt 0.25 0 +vt 0.125 0 +vt 0 0.375 +vt 0.125 0.375 +vt 0.125 0 +vt 0 0 +vt 0.375 0.375 +vt 0.5 0.375 +vt 0.5 0 +vt 0.375 0 +vt 0.25 0.375 +vt 0.375 0.375 +vt 0.375 0 +vt 0.25 0 +vt 0.25 0.375 +vt 0.125 0.375 +vt 0.125 0.5 +vt 0.25 0.5 +vt 0.375 0.5 +vt 0.25 0.5 +vt 0.25 0.375 +vt 0.375 0.375 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_6ff59072-f0e8-26d7-8881-f3993ab2f42f +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 diff --git a/src/main/resources/assets/susy/models/armor/asbestos_right_foot.mtl b/src/main/resources/assets/susy/models/armor/asbestos_right_foot.mtl new file mode 100644 index 000000000..9174a7f83 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/asbestos_right_foot.mtl @@ -0,0 +1,4 @@ +# Made in Blockbench 4.11.2 +newmtl m_0733c516-7e15-8621-3ea9-ca3df07dbec0 +map_Kd susy:armor/asbestos_feet +newmtl none diff --git a/src/main/resources/assets/susy/models/armor/asbestos_right_foot.obj b/src/main/resources/assets/susy/models/armor/asbestos_right_foot.obj new file mode 100644 index 000000000..23594f24a --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/asbestos_right_foot.obj @@ -0,0 +1,49 @@ +# Made in Blockbench 4.11.2 +mtllib asbestos_right_foot.mtl + +o boot_right +v -0.18749999999999994 0.0625 0.18125000000000008 +v 0.18750000000000006 0.0625 0.18124999999999997 +v -0.18749999999999994 -0.8125 0.18125000000000008 +v 0.18750000000000006 -0.8125 0.18124999999999997 +v 0.18749999999999997 0.0625 -0.19375000000000003 +v -0.18750000000000003 0.0625 -0.19374999999999998 +v 0.18749999999999997 -0.8125 -0.19375000000000003 +v -0.18750000000000003 -0.8125 -0.19374999999999998 +vt 0.125 0.875 +vt 0.25 0.875 +vt 0.25 0.5 +vt 0.125 0.5 +vt 0 0.875 +vt 0.125 0.875 +vt 0.125 0.5 +vt 0 0.5 +vt 0.375 0.875 +vt 0.5 0.875 +vt 0.5 0.5 +vt 0.375 0.5 +vt 0.25 0.875 +vt 0.375 0.875 +vt 0.375 0.5 +vt 0.25 0.5 +vt 0.25 0.875 +vt 0.125 0.875 +vt 0.125 1 +vt 0.25 1 +vt 0.375 1 +vt 0.25 1 +vt 0.25 0.875 +vt 0.375 0.875 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_0733c516-7e15-8621-3ea9-ca3df07dbec0 +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 diff --git a/src/main/resources/assets/susy/models/armor/asbestos_right_leg.mtl b/src/main/resources/assets/susy/models/armor/asbestos_right_leg.mtl new file mode 100644 index 000000000..fd56aa7cd --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/asbestos_right_leg.mtl @@ -0,0 +1,4 @@ +# Made in Blockbench 4.11.2 +newmtl m_20f4dd20-721a-0e4f-0179-8caa0827770e +map_Kd susy:armor/asbestos_legs +newmtl none diff --git a/src/main/resources/assets/susy/models/armor/asbestos_right_leg.obj b/src/main/resources/assets/susy/models/armor/asbestos_right_leg.obj new file mode 100644 index 000000000..9d301bfeb --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/asbestos_right_leg.obj @@ -0,0 +1,49 @@ +# Made in Blockbench 4.11.2 +mtllib asbestos_right_leg.mtl + +o leggings_right +v -0.14999999999999994 0.025000000000000022 0.14375000000000004 +v 0.15000000000000008 0.025000000000000022 0.14374999999999993 +v -0.14999999999999994 -0.775 0.14375000000000004 +v 0.15000000000000008 -0.775 0.14374999999999993 +v 0.15000000000000002 0.025000000000000022 -0.15625000000000003 +v -0.15 0.025000000000000022 -0.15624999999999997 +v 0.15000000000000002 -0.775 -0.15625000000000003 +v -0.15 -0.775 -0.15624999999999997 +vt 0.125 0.375 +vt 0.25 0.375 +vt 0.25 0 +vt 0.125 0 +vt 0 0.375 +vt 0.125 0.375 +vt 0.125 0 +vt 0 0 +vt 0.375 0.375 +vt 0.5 0.375 +vt 0.5 0 +vt 0.375 0 +vt 0.25 0.375 +vt 0.375 0.375 +vt 0.375 0 +vt 0.25 0 +vt 0.25 0.375 +vt 0.125 0.375 +vt 0.125 0.5 +vt 0.25 0.5 +vt 0.375 0.5 +vt 0.25 0.5 +vt 0.25 0.375 +vt 0.375 0.375 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_20f4dd20-721a-0e4f-0179-8caa0827770e +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 diff --git a/src/main/resources/assets/susy/models/armor/nomex_legs_top.mtl b/src/main/resources/assets/susy/models/armor/nomex_legs_top.mtl deleted file mode 100644 index dbbef9ca1..000000000 --- a/src/main/resources/assets/susy/models/armor/nomex_legs_top.mtl +++ /dev/null @@ -1,4 +0,0 @@ -# Made in Blockbench 4.11.2 -newmtl m_574cd15e-defe-0a85-4631-fa756f18cb3d -map_Kd susy:armor/nomex_legs -newmtl none diff --git a/src/main/resources/assets/susy/models/armor/nomex_legs_top.obj b/src/main/resources/assets/susy/models/armor/nomex_legs_top.obj deleted file mode 100644 index 55aeba921..000000000 --- a/src/main/resources/assets/susy/models/armor/nomex_legs_top.obj +++ /dev/null @@ -1,49 +0,0 @@ -# Made in Blockbench 4.11.2 -mtllib nomex_legs_top.mtl - -o belt -v 0.281875 1.5318749999999999 0.156875 -v 0.281875 1.5318749999999999 -0.156875 -v 0.281875 0.718125 0.156875 -v 0.281875 0.718125 -0.156875 -v -0.281875 1.5318749999999999 -0.156875 -v -0.281875 1.5318749999999999 0.156875 -v -0.281875 0.718125 -0.156875 -v -0.281875 0.718125 0.156875 -vt 0.125 0.875 -vt 0.375 0.875 -vt 0.375 0.5 -vt 0.125 0.5 -vt 0 0.875 -vt 0.125 0.875 -vt 0.125 0.5 -vt 0 0.5 -vt 0.5 0.875 -vt 0.75 0.875 -vt 0.75 0.5 -vt 0.5 0.5 -vt 0.375 0.875 -vt 0.5 0.875 -vt 0.5 0.5 -vt 0.375 0.5 -vt 0.375 0.875 -vt 0.125 0.875 -vt 0.125 1 -vt 0.375 1 -vt 0.625 1 -vt 0.375 1 -vt 0.375 0.875 -vt 0.625 0.875 -vn 0 0 -1 -vn 1 0 0 -vn 0 0 1 -vn -1 0 0 -vn 0 1 0 -vn 0 -1 0 -usemtl m_574cd15e-defe-0a85-4631-fa756f18cb3d -f 4/4/1 7/3/1 5/2/1 2/1/1 -f 3/8/2 4/7/2 2/6/2 1/5/2 -f 8/12/3 3/11/3 1/10/3 6/9/3 -f 7/16/4 8/15/4 6/14/4 5/13/4 -f 6/20/5 1/19/5 2/18/5 5/17/5 -f 7/24/6 4/23/6 3/22/6 8/21/6 \ No newline at end of file diff --git a/src/main/resources/assets/susy/models/armor/reflective_belt.mtl b/src/main/resources/assets/susy/models/armor/reflective_belt.mtl new file mode 100644 index 000000000..632a7382f --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/reflective_belt.mtl @@ -0,0 +1,4 @@ +# Made in Blockbench 4.11.2 +newmtl m_5949d32f-0394-51de-a934-eb582784295d +map_Kd susy:armor/reflective_legs +newmtl none diff --git a/src/main/resources/assets/susy/models/armor/reflective_belt.obj b/src/main/resources/assets/susy/models/armor/reflective_belt.obj new file mode 100644 index 000000000..600ee396d --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/reflective_belt.obj @@ -0,0 +1,49 @@ +# Made in Blockbench 4.11.2 +mtllib reflective_belt.mtl + +o belt +v -0.15687499999999993 0.031874999999999876 0.28187500000000004 +v 0.15687500000000004 0.031874999999999876 0.28187499999999993 +v -0.15687499999999993 -0.781875 0.28187500000000004 +v 0.15687500000000004 -0.781875 0.28187499999999993 +v 0.15687499999999993 0.031874999999999876 -0.28187500000000004 +v -0.15687500000000004 0.031874999999999876 -0.28187499999999993 +v 0.15687499999999993 -0.781875 -0.28187500000000004 +v -0.15687500000000004 -0.781875 -0.28187499999999993 +vt 0.125 0.875 +vt 0.375 0.875 +vt 0.375 0.5 +vt 0.125 0.5 +vt 0 0.875 +vt 0.125 0.875 +vt 0.125 0.5 +vt 0 0.5 +vt 0.5 0.875 +vt 0.75 0.875 +vt 0.75 0.5 +vt 0.5 0.5 +vt 0.375 0.875 +vt 0.5 0.875 +vt 0.5 0.5 +vt 0.375 0.5 +vt 0.375 0.875 +vt 0.125 0.875 +vt 0.125 1 +vt 0.375 1 +vt 0.625 1 +vt 0.375 1 +vt 0.375 0.875 +vt 0.625 0.875 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_5949d32f-0394-51de-a934-eb582784295d +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 \ No newline at end of file diff --git a/src/main/resources/assets/susy/models/armor/reflective_chest.mtl b/src/main/resources/assets/susy/models/armor/reflective_chest.mtl new file mode 100644 index 000000000..4c4416b8a --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/reflective_chest.mtl @@ -0,0 +1,4 @@ +# Made in Blockbench 4.11.2 +newmtl m_eb463341-51c5-0cd1-e26e-430dc6c2d2de +map_Kd susy:armor/reflective_chest +newmtl none diff --git a/src/main/resources/assets/susy/models/armor/reflective_chest.obj b/src/main/resources/assets/susy/models/armor/reflective_chest.obj new file mode 100644 index 000000000..ab4460359 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/reflective_chest.obj @@ -0,0 +1,49 @@ +# Made in Blockbench 4.11.2 +mtllib reflective_chest.mtl + +o chestplate +v -0.1881249999999999 0.06312499999999999 0.31312500000000004 +v 0.18812500000000007 0.06312499999999999 0.31312499999999993 +v -0.1881249999999999 -0.813125 0.31312500000000004 +v 0.18812500000000007 -0.813125 0.31312499999999993 +v 0.1881249999999999 0.06312499999999999 -0.31312500000000004 +v -0.18812500000000007 0.06312499999999999 -0.31312499999999993 +v 0.1881249999999999 -0.813125 -0.31312500000000004 +v -0.18812500000000007 -0.813125 -0.31312499999999993 +vt 0.125 0.875 +vt 0.375 0.875 +vt 0.375 0.5 +vt 0.125 0.5 +vt 0 0.875 +vt 0.125 0.875 +vt 0.125 0.5 +vt 0 0.5 +vt 0.5 0.875 +vt 0.75 0.875 +vt 0.75 0.5 +vt 0.5 0.5 +vt 0.375 0.875 +vt 0.5 0.875 +vt 0.5 0.5 +vt 0.375 0.5 +vt 0.375 0.875 +vt 0.125 0.875 +vt 0.125 1 +vt 0.375 1 +vt 0.625 1 +vt 0.375 1 +vt 0.375 0.875 +vt 0.625 0.875 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_eb463341-51c5-0cd1-e26e-430dc6c2d2de +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 \ No newline at end of file diff --git a/src/main/resources/assets/susy/models/armor/reflective_head.mtl b/src/main/resources/assets/susy/models/armor/reflective_head.mtl new file mode 100644 index 000000000..52c4c2305 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/reflective_head.mtl @@ -0,0 +1,4 @@ +# Made in Blockbench 4.11.2 +newmtl m_0b49210a-e3e0-55ba-f8b9-fe442d8e7b01 +map_Kd susy:armor/reflective_head +newmtl none diff --git a/src/main/resources/assets/susy/models/armor/reflective_head.obj b/src/main/resources/assets/susy/models/armor/reflective_head.obj new file mode 100644 index 000000000..8cded184a --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/reflective_head.obj @@ -0,0 +1,95 @@ +# Made in Blockbench 4.11.2 +mtllib reflective_head.mtl + +o helmet +v -0.31249999999999994 0.5625 0.31250000000000006 +v 0.31250000000000006 0.5625 0.31249999999999994 +v -0.31249999999999994 -0.0625 0.31250000000000006 +v 0.31250000000000006 -0.0625 0.31249999999999994 +v 0.31249999999999994 0.5625 -0.31250000000000006 +v -0.31250000000000006 0.5625 -0.31249999999999994 +v 0.31249999999999994 -0.0625 -0.31250000000000006 +v -0.31250000000000006 -0.0625 -0.31249999999999994 +vt 0.25 0.75 +vt 0.5 0.75 +vt 0.5 0.5 +vt 0.25 0.5 +vt 0 0.75 +vt 0.25 0.75 +vt 0.25 0.5 +vt 0 0.5 +vt 0.75 0.75 +vt 1 0.75 +vt 1 0.5 +vt 0.75 0.5 +vt 0.5 0.75 +vt 0.75 0.75 +vt 0.75 0.5 +vt 0.5 0.5 +vt 0.5 0.75 +vt 0.25 0.75 +vt 0.25 1 +vt 0.5 1 +vt 0.75 1 +vt 0.5 1 +vt 0.5 0.75 +vt 0.75 0.75 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_0b49210a-e3e0-55ba-f8b9-fe442d8e7b01 +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o cube +v -0.34374999999999994 0.03125 0.34375000000000006 +v 0.34375000000000006 0.03125 0.34374999999999994 +v -0.34374999999999994 -0.15625 0.34375000000000006 +v 0.34375000000000006 -0.15625 0.34374999999999994 +v 0.3437499999999999 0.03125 -0.3437500000000001 +v -0.3437500000000001 0.03125 -0.3437499999999999 +v 0.3437499999999999 -0.15625 -0.3437500000000001 +v -0.3437500000000001 -0.15625 -0.3437499999999999 +vt 0 0.0625 +vt 0.3125 0.0625 +vt 0.3125 0 +vt 0 0 +vt 0 0.0625 +vt 0.3125 0.0625 +vt 0.3125 0 +vt 0 0 +vt 0 0.0625 +vt 0.3125 0.0625 +vt 0.3125 0 +vt 0 0 +vt 0 0.0625 +vt 0.3125 0.0625 +vt 0.3125 0 +vt 0 0 +vt 0.3125 0.1875 +vt 0 0.1875 +vt 0 0.5 +vt 0.3125 0.5 +vt 0.3125 0.5 +vt 0 0.5 +vt 0 0.1875 +vt 0.3125 0.1875 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_0b49210a-e3e0-55ba-f8b9-fe442d8e7b01 +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 \ No newline at end of file diff --git a/src/main/resources/assets/susy/models/armor/reflective_left_arm.mtl b/src/main/resources/assets/susy/models/armor/reflective_left_arm.mtl new file mode 100644 index 000000000..54aa47159 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/reflective_left_arm.mtl @@ -0,0 +1,4 @@ +# Made in Blockbench 4.11.2 +newmtl m_e8ecefa1-bd6c-0ecf-c760-879a39613ede +map_Kd susy:armor/reflective_chest +newmtl none diff --git a/src/main/resources/assets/susy/models/armor/reflective_left_arm.obj b/src/main/resources/assets/susy/models/armor/reflective_left_arm.obj new file mode 100644 index 000000000..3e5becc0e --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/reflective_left_arm.obj @@ -0,0 +1,49 @@ +# Made in Blockbench 4.11.2 +mtllib reflective_left_arm.mtl + +o arm_plate_left +v -0.175 0.17500000000000004 0.11250000000000002 +v 0.175 0.17500000000000004 0.11249999999999996 +v -0.175 -0.675 0.11250000000000002 +v 0.175 -0.675 0.11249999999999996 +v 0.17499999999999993 0.17500000000000004 -0.23750000000000004 +v -0.17500000000000004 0.17500000000000004 -0.23750000000000004 +v 0.17499999999999993 -0.675 -0.23750000000000004 +v -0.17500000000000004 -0.675 -0.23750000000000004 +vt 0.25 0.375 +vt 0.125 0.375 +vt 0.125 0 +vt 0.25 0 +vt 0.375 0.375 +vt 0.25 0.375 +vt 0.25 0 +vt 0.375 0 +vt 0.5 0.375 +vt 0.375 0.375 +vt 0.375 0 +vt 0.5 0 +vt 0.125 0.375 +vt 0 0.375 +vt 0 0 +vt 0.125 0 +vt 0.125 0.375 +vt 0.25 0.375 +vt 0.25 0.5 +vt 0.125 0.5 +vt 0.25 0.5 +vt 0.375 0.5 +vt 0.375 0.375 +vt 0.25 0.375 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_e8ecefa1-bd6c-0ecf-c760-879a39613ede +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 \ No newline at end of file diff --git a/src/main/resources/assets/susy/models/armor/reflective_left_foot.mtl b/src/main/resources/assets/susy/models/armor/reflective_left_foot.mtl new file mode 100644 index 000000000..9e354ec31 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/reflective_left_foot.mtl @@ -0,0 +1,4 @@ +# Made in Blockbench 4.11.2 +newmtl m_7c71707c-7a99-4eb8-db67-d0801c8b5aac +map_Kd susy:armor/reflective_feet +newmtl none diff --git a/src/main/resources/assets/susy/models/armor/reflective_left_foot.obj b/src/main/resources/assets/susy/models/armor/reflective_left_foot.obj new file mode 100644 index 000000000..0f788c80f --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/reflective_left_foot.obj @@ -0,0 +1,49 @@ +# Made in Blockbench 4.11.2 +mtllib reflective_left_foot.mtl + +o boot_left +v -0.18749999999999997 0.06216288975122197 0.19254979165039443 +v 0.18750000000000003 0.06216288975122197 0.19254979165039438 +v -0.18749999999999997 -0.8128357775479047 0.19102262933023342 +v 0.18750000000000003 -0.8128357775479047 0.19102262933023334 +v 0.18749999999999994 0.06281738788843383 -0.18244963719208857 +v -0.18750000000000006 0.06281738788843383 -0.18244963719208845 +v 0.18749999999999994 -0.8121812794106928 -0.1839767995122496 +v -0.18750000000000006 -0.8121812794106928 -0.1839767995122495 +vt 0.25 0.875 +vt 0.125 0.875 +vt 0.125 0.5 +vt 0.25 0.5 +vt 0.375 0.875 +vt 0.25 0.875 +vt 0.25 0.5 +vt 0.375 0.5 +vt 0.5 0.875 +vt 0.375 0.875 +vt 0.375 0.5 +vt 0.5 0.5 +vt 0.125 0.875 +vt 0 0.875 +vt 0 0.5 +vt 0.125 0.5 +vt 0.125 0.875 +vt 0.25 0.875 +vt 0.25 1 +vt 0.125 1 +vt 0.25 1 +vt 0.375 1 +vt 0.375 0.875 +vt 0.25 0.875 +vn 1 3.8754074747034047e-19 -2.22044266731844e-16 +vn 2.220446049250313e-16 -0.0017453283658983088 0.9999984769132877 +vn -1 -3.8754074747034047e-19 2.22044266731844e-16 +vn -2.220446049250313e-16 0.0017453283658983088 -0.9999984769132877 +vn 0 0.9999984769132877 0.0017453283658983088 +vn 0 -0.9999984769132877 -0.0017453283658983088 +usemtl m_7c71707c-7a99-4eb8-db67-d0801c8b5aac +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 \ No newline at end of file diff --git a/src/main/resources/assets/susy/models/armor/reflective_left_leg.mtl b/src/main/resources/assets/susy/models/armor/reflective_left_leg.mtl new file mode 100644 index 000000000..f0e846992 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/reflective_left_leg.mtl @@ -0,0 +1,4 @@ +# Made in Blockbench 4.11.2 +newmtl m_b9fba4c0-7347-5c2d-eafa-019bfdfb6a52 +map_Kd susy:armor/reflective_legs +newmtl none diff --git a/src/main/resources/assets/susy/models/armor/reflective_left_leg.obj b/src/main/resources/assets/susy/models/armor/reflective_left_leg.obj new file mode 100644 index 000000000..9e04367f2 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/reflective_left_leg.obj @@ -0,0 +1,49 @@ +# Made in Blockbench 4.11.2 +mtllib reflective_left_leg.mtl + +o leggings_left +v -0.15000000000000002 0.025000000000000022 0.15625000000000003 +v 0.15 0.025000000000000022 0.15624999999999997 +v -0.15000000000000002 -0.775 0.15625000000000003 +v 0.15 -0.775 0.15624999999999997 +v 0.14999999999999994 0.025000000000000022 -0.14375000000000004 +v -0.15000000000000008 0.025000000000000022 -0.14374999999999993 +v 0.14999999999999994 -0.775 -0.14375000000000004 +v -0.15000000000000008 -0.775 -0.14374999999999993 +vt 0.25 0.375 +vt 0.125 0.375 +vt 0.125 0 +vt 0.25 0 +vt 0.375 0.375 +vt 0.25 0.375 +vt 0.25 0 +vt 0.375 0 +vt 0.5 0.375 +vt 0.375 0.375 +vt 0.375 0 +vt 0.5 0 +vt 0.125 0.375 +vt 0 0.375 +vt 0 0 +vt 0.125 0 +vt 0.125 0.375 +vt 0.25 0.375 +vt 0.25 0.5 +vt 0.125 0.5 +vt 0.25 0.5 +vt 0.375 0.5 +vt 0.375 0.375 +vt 0.25 0.375 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_b9fba4c0-7347-5c2d-eafa-019bfdfb6a52 +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 \ No newline at end of file diff --git a/src/main/resources/assets/susy/models/armor/reflective_right_arm.mtl b/src/main/resources/assets/susy/models/armor/reflective_right_arm.mtl new file mode 100644 index 000000000..6bd1328db --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/reflective_right_arm.mtl @@ -0,0 +1,4 @@ +# Made in Blockbench 4.11.2 +newmtl m_6ff59072-f0e8-26d7-8881-f3993ab2f42f +map_Kd susy:armor/reflective_chest +newmtl none diff --git a/src/main/resources/assets/susy/models/armor/reflective_right_arm.obj b/src/main/resources/assets/susy/models/armor/reflective_right_arm.obj new file mode 100644 index 000000000..e0e4b1c61 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/reflective_right_arm.obj @@ -0,0 +1,49 @@ +# Made in Blockbench 4.11.2 +mtllib reflective_right_arm.mtl + +o arm_plate_right +v -0.17499999999999993 0.17500000000000004 0.2375000000000001 +v 0.17500000000000004 0.17500000000000004 0.2375000000000001 +v -0.17499999999999993 -0.675 0.2375000000000001 +v 0.17500000000000004 -0.675 0.2375000000000001 +v 0.175 0.17500000000000004 -0.11249999999999996 +v -0.175 0.17500000000000004 -0.1124999999999999 +v 0.175 -0.675 -0.11249999999999996 +v -0.175 -0.675 -0.1124999999999999 +vt 0.125 0.375 +vt 0.25 0.375 +vt 0.25 0 +vt 0.125 0 +vt 0 0.375 +vt 0.125 0.375 +vt 0.125 0 +vt 0 0 +vt 0.375 0.375 +vt 0.5 0.375 +vt 0.5 0 +vt 0.375 0 +vt 0.25 0.375 +vt 0.375 0.375 +vt 0.375 0 +vt 0.25 0 +vt 0.25 0.375 +vt 0.125 0.375 +vt 0.125 0.5 +vt 0.25 0.5 +vt 0.375 0.5 +vt 0.25 0.5 +vt 0.25 0.375 +vt 0.375 0.375 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_6ff59072-f0e8-26d7-8881-f3993ab2f42f +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 \ No newline at end of file diff --git a/src/main/resources/assets/susy/models/armor/reflective_right_foot.mtl b/src/main/resources/assets/susy/models/armor/reflective_right_foot.mtl new file mode 100644 index 000000000..4affee88d --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/reflective_right_foot.mtl @@ -0,0 +1,4 @@ +# Made in Blockbench 4.11.2 +newmtl m_0733c516-7e15-8621-3ea9-ca3df07dbec0 +map_Kd susy:armor/reflective_feet +newmtl none diff --git a/src/main/resources/assets/susy/models/armor/reflective_right_foot.obj b/src/main/resources/assets/susy/models/armor/reflective_right_foot.obj new file mode 100644 index 000000000..f46232e53 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/reflective_right_foot.obj @@ -0,0 +1,49 @@ +# Made in Blockbench 4.11.2 +mtllib reflective_right_foot.mtl + +o boot_right +v -0.18749999999999994 0.0625 0.18125000000000008 +v 0.18750000000000006 0.0625 0.18124999999999997 +v -0.18749999999999994 -0.8125 0.18125000000000008 +v 0.18750000000000006 -0.8125 0.18124999999999997 +v 0.18749999999999997 0.0625 -0.19375000000000003 +v -0.18750000000000003 0.0625 -0.19374999999999998 +v 0.18749999999999997 -0.8125 -0.19375000000000003 +v -0.18750000000000003 -0.8125 -0.19374999999999998 +vt 0.125 0.875 +vt 0.25 0.875 +vt 0.25 0.5 +vt 0.125 0.5 +vt 0 0.875 +vt 0.125 0.875 +vt 0.125 0.5 +vt 0 0.5 +vt 0.375 0.875 +vt 0.5 0.875 +vt 0.5 0.5 +vt 0.375 0.5 +vt 0.25 0.875 +vt 0.375 0.875 +vt 0.375 0.5 +vt 0.25 0.5 +vt 0.25 0.875 +vt 0.125 0.875 +vt 0.125 1 +vt 0.25 1 +vt 0.375 1 +vt 0.25 1 +vt 0.25 0.875 +vt 0.375 0.875 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_0733c516-7e15-8621-3ea9-ca3df07dbec0 +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 \ No newline at end of file diff --git a/src/main/resources/assets/susy/models/armor/reflective_right_leg.mtl b/src/main/resources/assets/susy/models/armor/reflective_right_leg.mtl new file mode 100644 index 000000000..31013e1a4 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/reflective_right_leg.mtl @@ -0,0 +1,4 @@ +# Made in Blockbench 4.11.2 +newmtl m_20f4dd20-721a-0e4f-0179-8caa0827770e +map_Kd susy:armor/reflective_legs +newmtl none diff --git a/src/main/resources/assets/susy/models/armor/reflective_right_leg.obj b/src/main/resources/assets/susy/models/armor/reflective_right_leg.obj new file mode 100644 index 000000000..03af89d62 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/reflective_right_leg.obj @@ -0,0 +1,49 @@ +# Made in Blockbench 4.11.2 +mtllib reflective_right_leg.mtl + +o leggings_right +v -0.14999999999999994 0.025000000000000022 0.14375000000000004 +v 0.15000000000000008 0.025000000000000022 0.14374999999999993 +v -0.14999999999999994 -0.775 0.14375000000000004 +v 0.15000000000000008 -0.775 0.14374999999999993 +v 0.15000000000000002 0.025000000000000022 -0.15625000000000003 +v -0.15 0.025000000000000022 -0.15624999999999997 +v 0.15000000000000002 -0.775 -0.15625000000000003 +v -0.15 -0.775 -0.15624999999999997 +vt 0.125 0.375 +vt 0.25 0.375 +vt 0.25 0 +vt 0.125 0 +vt 0 0.375 +vt 0.125 0.375 +vt 0.125 0 +vt 0 0 +vt 0.375 0.375 +vt 0.5 0.375 +vt 0.5 0 +vt 0.375 0 +vt 0.25 0.375 +vt 0.375 0.375 +vt 0.375 0 +vt 0.25 0 +vt 0.25 0.375 +vt 0.125 0.375 +vt 0.125 0.5 +vt 0.25 0.5 +vt 0.375 0.5 +vt 0.25 0.5 +vt 0.25 0.375 +vt 0.375 0.375 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_20f4dd20-721a-0e4f-0179-8caa0827770e +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 \ No newline at end of file diff --git a/src/main/resources/assets/susy/textures/armor/asbestos_chest.png b/src/main/resources/assets/susy/textures/armor/asbestos_chest.png new file mode 100644 index 0000000000000000000000000000000000000000..c5bfbb2a0083a0ca6fcda325c62711e405e2ec73 GIT binary patch literal 3379 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 Ef)+WHC;$Ke literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/susy/textures/armor/reflective_chest.png b/src/main/resources/assets/susy/textures/armor/reflective_chest.png new file mode 100644 index 0000000000000000000000000000000000000000..3697aa4f6d2a2e2bb18a78b9e8194fdd4bf51666 GIT binary patch literal 5299 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 Date: Sun, 5 Jan 2025 22:03:14 +0100 Subject: [PATCH 35/55] feat: adding hardended blocks --- .../supersymmetry/common/CommonProxy.java | 3 +- .../common/blocks/BlocksHardened.java | 68 ++++++++++++++++++ .../common/blocks/SuSyBlocks.java | 4 ++ .../textures/blocks/hardened_blocks/kryp7.png | Bin 0 -> 695 bytes .../textures/blocks/hardened_blocks/kryp8.png | Bin 0 -> 526 bytes .../blocks/hardened_blocks/lair10.png | Bin 0 -> 618 bytes .../blocks/hardened_blocks/lair11.png | Bin 0 -> 443 bytes .../textures/blocks/hardened_blocks/lair7.png | Bin 0 -> 535 bytes .../susy/blockstates/hardened_blocks.json | 43 +++++++++++ .../resources/assets/susy/lang/en_us.lang | 7 ++ 10 files changed, 124 insertions(+), 1 deletion(-) create mode 100644 src/main/java/supersymmetry/common/blocks/BlocksHardened.java create mode 100644 src/main/resources/assets/gregtech/textures/blocks/hardened_blocks/kryp7.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/hardened_blocks/kryp8.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/hardened_blocks/lair10.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/hardened_blocks/lair11.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/hardened_blocks/lair7.png create mode 100644 src/main/resources/assets/susy/blockstates/hardened_blocks.json diff --git a/src/main/java/supersymmetry/common/CommonProxy.java b/src/main/java/supersymmetry/common/CommonProxy.java index d594aab6d..a5da94f1a 100644 --- a/src/main/java/supersymmetry/common/CommonProxy.java +++ b/src/main/java/supersymmetry/common/CommonProxy.java @@ -86,6 +86,7 @@ public static void registerBlocks(@NotNull RegistryEvent.Register event) registry.register(SuSyBlocks.ELECTRODE_ASSEMBLY); registry.register(SuSyBlocks.MULTIBLOCK_CASING); registry.register(SuSyBlocks.SERPENTINE); + registry.register(SuSyBlocks.HARDBLOCKS); SHEETED_FRAMES.values().stream().distinct().forEach(registry::register); } @@ -115,7 +116,7 @@ public static void registerItems(@NotNull RegistryEvent.Register event) { registry.register(createItemBlock(SuSyBlocks.ELECTRODE_ASSEMBLY, VariantItemBlock::new)); registry.register(createItemBlock(SuSyBlocks.MULTIBLOCK_CASING, VariantItemBlock::new)); registry.register(createItemBlock(SuSyBlocks.SERPENTINE, VariantItemBlock::new)); - + registry.register(createItemBlock(SuSyBlocks.HARDBLOCKS, VariantItemBlock::new)); SHEETED_FRAMES.values() .stream().distinct() diff --git a/src/main/java/supersymmetry/common/blocks/BlocksHardened.java b/src/main/java/supersymmetry/common/blocks/BlocksHardened.java new file mode 100644 index 000000000..44a32cac0 --- /dev/null +++ b/src/main/java/supersymmetry/common/blocks/BlocksHardened.java @@ -0,0 +1,68 @@ +package supersymmetry.common.blocks; + +import gregtech.api.block.IStateHarvestLevel; +import gregtech.api.block.VariantBlock; +import net.minecraft.block.SoundType; +import net.minecraft.block.material.Material; +import net.minecraft.block.state.IBlockState; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.util.IStringSerializable; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; + +import java.util.Random; + +public class BlocksHardened extends VariantBlock { + + public BlocksHardened() { + super(Material.ROCK); + this.setHardness(25.0F); + this.setResistance(25.0F); + this.setSoundType(SoundType.STONE); + this.setTranslationKey("hardened_blocks"); + } + + public int quantityDropped(Random random) + { + return 0; + } + + public Item getItemDropped(IBlockState state, Random rand, int fortune) + { + return Items.AIR; + } + + @Override + public boolean canSilkHarvest(World world, BlockPos pos, IBlockState state, EntityPlayer player) { + return false; + } + + public static enum HardenedBlockType implements IStringSerializable, IStateHarvestLevel { + LAIR10("lair10", 3), + KRYP8("kryp8", 3), + KRYP7("kryp7", 3), + LAIR11("lair11", 3), + LAIR7("lair7", 3); + + private final String name; + private final int harvestLevel; + + private HardenedBlockType(String name, int harvestLevel) { + this.name = name; + this.harvestLevel = harvestLevel; + } + + @Override + public int getHarvestLevel(IBlockState iBlockState) { + return this.harvestLevel; + } + + @Override + public String getName() { + return this.name; + } + } +} + diff --git a/src/main/java/supersymmetry/common/blocks/SuSyBlocks.java b/src/main/java/supersymmetry/common/blocks/SuSyBlocks.java index a4f07a677..f6c5e3288 100644 --- a/src/main/java/supersymmetry/common/blocks/SuSyBlocks.java +++ b/src/main/java/supersymmetry/common/blocks/SuSyBlocks.java @@ -40,6 +40,7 @@ public class SuSyBlocks { public static BlockElectrodeAssembly ELECTRODE_ASSEMBLY; public static BlockSuSyMultiblockCasing MULTIBLOCK_CASING; public static BlockSerpentine SERPENTINE; + public static BlocksHardened HARDBLOCKS; public static void init() { COOLING_COIL = new BlockCoolingCoil(); @@ -101,6 +102,8 @@ public static void init() { SERPENTINE = new BlockSerpentine(); SERPENTINE.setRegistryName("serpentine"); + HARDBLOCKS = new BlocksHardened(); + HARDBLOCKS.setRegistryName("hardened_blocks"); } @SideOnly(Side.CLIENT) @@ -125,6 +128,7 @@ public static void registerItemModels() { ELECTRODE_ASSEMBLY.onModelRegister(); registerItemModel(MULTIBLOCK_CASING); SERPENTINE.onModelRegister(); + registerItemModel(HARDBLOCKS); } @SideOnly(Side.CLIENT) diff --git a/src/main/resources/assets/gregtech/textures/blocks/hardened_blocks/kryp7.png b/src/main/resources/assets/gregtech/textures/blocks/hardened_blocks/kryp7.png new file mode 100644 index 0000000000000000000000000000000000000000..3d27c45938ac1870f2258bde434c736fd0d3b7a6 GIT binary patch literal 695 zcmV;o0!aOdP)Lp84hM_X$rOT9L?KjDyJrzt|BI*1&g^u^LE5Z&7$2H zQ!MQeh7lPf#c(hqwWSdF5yjFj?fRJNS&qh^5zB>($R8TaZ3m=?UUy36)S}y-a9r6z z(^brzPR2-5C~niLkEqlvdfh2e6k^ZTB!+_-RxXW^O)RD$EmE{Y;^ zP{<+xdYuW9kZ3i=cy6%C7ld3~mihSU8yD}(1VPB$c5vN*PIFAeX2g2sv7Ob(7)gYX zSS>wFOUH8qhQkF1#eIgu1)dvVS~{zxhY%7OBZ=n)n+pHy9Op#Db&hi);yTAUk#4T9 zq96?M-GF>yn_+(j5*!qaw_gxKdUFy*a8%0D?`@ojxXy7-L|o@MCvv~zf4;aZW7{rK z1nafW)8h;+y;%b2_onFSBoDn85($|o0@v}W*7o=Zg|2r`n+^T%0000EWmrjOO-%qQ d00008000000002eQ{XE z)7O>#9=EKh9{&b0nJxwf#>t*8jv*GOmrgd!4|Wu2*}wVy(P^Dd&O%u~3`Inyn0Wk& z=HlY2a}=4_@aRP0qdm`ems{@^ar995DAf5fy{xQUZEyW|GoPesLf`*7*z?RdA|f;) zC@G%n=hxNKb;P*6R?hGh{@E?Fsw9I2!TUiur=DCBj%9$wGRa4G~?e0$)ar!rq; z!W=8JDB~hYo}H7Q|Jm30N06~Rs(6j%&&TcNua7RWwzI1}_;b3qUfJ`UUxyxU7G3>x z((bwh8TWbevOQ=l2uol%V6c@xn$?W>*3b_ zR`-fe&z>c@RIKc~?b%zCe*uGTTG}6$(5jRPS2CMH@ynMQ;hE;^%b*2ha{w_2Tne5H OqC8#wT-G@yGywpBq|sRb literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/blocks/hardened_blocks/lair10.png b/src/main/resources/assets/gregtech/textures/blocks/hardened_blocks/lair10.png new file mode 100644 index 0000000000000000000000000000000000000000..8614b465f513f271294e7b89ba01de0e7541090c GIT binary patch literal 618 zcmV-w0+s!VP)KU7rqSaCg5O(5B074={=#8Y_gVWPagpPX>1R|%2Kxn%x zD2W`-nzU&>7$Z?Y^uW`o2}uN$Tx~Y&#H!b95N3?Y97Yl3NZJz2wJe81piQ*Edd)}@ zWPP2yYm6~b6LVzcme8MG_PA2R&PsN()g$OjqeYN5%hJK7w}3@Bq2K*|#CWrCC;$<` z<=GiuK3;KgamqT9<)pFO?P;wtn^W{}KR%Fa5-mt4)dPdY*H72vU2t>r#I*4=1msNS zoFM2|m*>niX-lhCWpO2$tLt-a@1MDScpz;S_JWy@wNmxz*ebgVme=;qO!7&1H7TU6>*jlfShJsy&-kL z{Xngbmi_@^k|IwduluC{000hUSV?A0O#mtY000O800000007cclK=n!07*qoM6N<$ Ef)Zu_V*mgE literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/blocks/hardened_blocks/lair11.png b/src/main/resources/assets/gregtech/textures/blocks/hardened_blocks/lair11.png new file mode 100644 index 0000000000000000000000000000000000000000..4d558c4d21ddc8325b5526777904b9e624bf09b6 GIT binary patch literal 443 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4q^o-y{ID781^#7YKwZ*-3 z;ox*?%6qbEV~dK2fF@InyuhoZowL~%O{-dM$JyyH!S7P%+a^Jcq+i^tXNEp6I~g-m zZqsFzc}#j{OKx&IBq@d#n)envxFk5#RplorhHZ^&-%+yChI6HZ+nyb|QBE=w7T-U9 zVcArxmcH+cQr_;B-ys+L>W(q@VSl;wO`mHmg*{!QDiY*9i2%v6yj3AazrM3?{`&rKUsK0HU|{m4 eMtG+A`Z8z%*&IL&0+)g(gD6i|KbLh*2~7ZE-K%l{ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/blocks/hardened_blocks/lair7.png b/src/main/resources/assets/gregtech/textures/blocks/hardened_blocks/lair7.png new file mode 100644 index 0000000000000000000000000000000000000000..337a1da551be3ec0b353fc95368fe055ffe013d2 GIT binary patch literal 535 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP>{XE z)7O>#9=9B?JR86Gzg<8f+02lL66gHf+|;}hAeVu`xhOTUBsE2$JhLQ2!QIn0AVn{g zoq>U|*we)^#Nu@8d7L|pu$tYVAi?O$Vd8Ws&o~%kuaYCr_o8PX&o=Grkz{juB_yc^t$&VQ}}fa0Z)eM z75!X297;`=>Z{eyoH5l(kX{wm@Y;Hl(6*T~RW7XSSfaPQmhmFjBcELfZ_m^u2TW=RAL__8jvP zyEnh*`Cq$VnL6$97LF*Eg{n92e~wvT8oPSC%0I?e|M};?E1h2tj26Ds2+uTMUj{88 Xn*$V2KyWE|GKlhY^>bP0l+XkKQQ*}C literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/susy/blockstates/hardened_blocks.json b/src/main/resources/assets/susy/blockstates/hardened_blocks.json new file mode 100644 index 000000000..937d467ad --- /dev/null +++ b/src/main/resources/assets/susy/blockstates/hardened_blocks.json @@ -0,0 +1,43 @@ +{ + "forge_marker" : 1, + "defaults": { + "model": "minecraft:cube_bottom_top", + "textures": { + "bottom": "gregtech:blocks/hardened_blocks/lair10", + "top": "gregtech:blocks/hardened_blocks/lair10", + "side": "gregtech:blocks/hardened_blocks/lair10" + } + }, + "variants" : { + "variant=lair10" : { + "model" : "minecraft:cube_all", + "textures" : { + "all" : "gregtech:blocks/hardened_blocks/lair10" + } + }, + "variant=lair11" : { + "model" : "minecraft:cube_all", + "textures" : { + "all" : "gregtech:blocks/hardened_blocks/lair11" + } + }, + "variant=lair7" : { + "model" : "minecraft:cube_all", + "textures" : { + "all" : "gregtech:blocks/hardened_blocks/lair7" + } + }, + "variant=kryp7" : { + "model" : "minecraft:cube_all", + "textures" : { + "all" : "gregtech:blocks/hardened_blocks/kryp7" + } + }, + "variant=kryp8" : { + "model" : "minecraft:cube_all", + "textures" : { + "all" : "gregtech:blocks/hardened_blocks/kryp8" + } + } + } +} diff --git a/src/main/resources/assets/susy/lang/en_us.lang b/src/main/resources/assets/susy/lang/en_us.lang index 265a21374..b65954038 100644 --- a/src/main/resources/assets/susy/lang/en_us.lang +++ b/src/main/resources/assets/susy/lang/en_us.lang @@ -903,3 +903,10 @@ susy.command.horde.status.no_active_invasion=Player %s has no active invasion. susy.fluid.voiding.liquid=Voidable with Dumper susy.fluid.voiding.gas=Voidable with Smoke Stack susy.fluid.voiding.flammable=Voidable with Flare Stack + +#Hardened blocks +tile.hardened_blocks.lair7.name=Hardened Lair 7 +tile.hardened_blocks.lair10.name=Hardened Lair 10 +tile.hardened_blocks.lair11.name=Hardened Lair 11 +tile.hardened_blocks.kryp7.name=Hardened Kryp 7 +tile.hardened_blocks.kryp8.name=Hardened Kryp 8 From c68b627478baac17025a3b4c1193cbad270c0b46 Mon Sep 17 00:00:00 2001 From: bruberu <80226372+bruberu@users.noreply.github.com> Date: Sun, 5 Jan 2025 15:29:38 -0600 Subject: [PATCH 36/55] feat: readd nomex textures --- .../models/item/metaitems/nomex_boots.json | 6 +++ .../item/metaitems/nomex_chestplate.json | 6 +++ .../models/item/metaitems/nomex_leggings.json | 6 +++ .../models/item/metaitems/nomex_mask.json | 6 +++ .../textures/items/metaitems/nomex_boots.png | Bin 0 -> 284 bytes .../items/metaitems/nomex_chestplate.png | Bin 0 -> 277 bytes .../items/metaitems/nomex_leggings.png | Bin 0 -> 264 bytes .../textures/items/metaitems/nomex_mask.png | Bin 0 -> 263 bytes .../susy/models/armor/nomex_legs_top.mtl | 4 ++ .../susy/models/armor/nomex_legs_top.obj | 49 ++++++++++++++++++ 10 files changed, 77 insertions(+) create mode 100644 src/main/resources/assets/gregtech/models/item/metaitems/nomex_boots.json create mode 100644 src/main/resources/assets/gregtech/models/item/metaitems/nomex_chestplate.json create mode 100644 src/main/resources/assets/gregtech/models/item/metaitems/nomex_leggings.json create mode 100644 src/main/resources/assets/gregtech/models/item/metaitems/nomex_mask.json create mode 100644 src/main/resources/assets/gregtech/textures/items/metaitems/nomex_boots.png create mode 100644 src/main/resources/assets/gregtech/textures/items/metaitems/nomex_chestplate.png create mode 100644 src/main/resources/assets/gregtech/textures/items/metaitems/nomex_leggings.png create mode 100644 src/main/resources/assets/gregtech/textures/items/metaitems/nomex_mask.png create mode 100644 src/main/resources/assets/susy/models/armor/nomex_legs_top.mtl create mode 100644 src/main/resources/assets/susy/models/armor/nomex_legs_top.obj diff --git a/src/main/resources/assets/gregtech/models/item/metaitems/nomex_boots.json b/src/main/resources/assets/gregtech/models/item/metaitems/nomex_boots.json new file mode 100644 index 000000000..70fc769ee --- /dev/null +++ b/src/main/resources/assets/gregtech/models/item/metaitems/nomex_boots.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gregtech:items/metaitems/nomex_boots" + } +} diff --git a/src/main/resources/assets/gregtech/models/item/metaitems/nomex_chestplate.json b/src/main/resources/assets/gregtech/models/item/metaitems/nomex_chestplate.json new file mode 100644 index 000000000..4710af9f8 --- /dev/null +++ b/src/main/resources/assets/gregtech/models/item/metaitems/nomex_chestplate.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gregtech:items/metaitems/nomex_chestplate" + } +} diff --git a/src/main/resources/assets/gregtech/models/item/metaitems/nomex_leggings.json b/src/main/resources/assets/gregtech/models/item/metaitems/nomex_leggings.json new file mode 100644 index 000000000..ebdc97a50 --- /dev/null +++ b/src/main/resources/assets/gregtech/models/item/metaitems/nomex_leggings.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gregtech:items/metaitems/nomex_leggings" + } +} diff --git a/src/main/resources/assets/gregtech/models/item/metaitems/nomex_mask.json b/src/main/resources/assets/gregtech/models/item/metaitems/nomex_mask.json new file mode 100644 index 000000000..6f0e9b955 --- /dev/null +++ b/src/main/resources/assets/gregtech/models/item/metaitems/nomex_mask.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gregtech:items/metaitems/nomex_mask" + } +} diff --git a/src/main/resources/assets/gregtech/textures/items/metaitems/nomex_boots.png b/src/main/resources/assets/gregtech/textures/items/metaitems/nomex_boots.png new file mode 100644 index 0000000000000000000000000000000000000000..2e9899024fdeb2baf3c36f866618b627a751031e GIT binary patch literal 284 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|_ISEDhFA!m zo#4oI$U%UmIA}_PoDD}@O#}ajSIK`S&lk@B)#I`DiqRXDN!EpL~J#sjvXEo_^GcAS)7S?D7+UoGC>BdJfa;d75CGsmfi8Y+#NSFWx#nN(P9 zvcR3$|DyXoi4B%{{Y+J>u3izDutV+nsvjoBrDt#Sug|yOnSOlFuL3!sKloB3JkxxA Z8MJ_G4j=}BOTm*tl&7no%Q~loCII?DYgqsQ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/items/metaitems/nomex_chestplate.png b/src/main/resources/assets/gregtech/textures/items/metaitems/nomex_chestplate.png new file mode 100644 index 0000000000000000000000000000000000000000..7232e98a5ee6e0974c5ecd4d623b20d6cf1b2deb GIT binary patch literal 277 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|wtBiahFA!m zo#4oID1e7`chHn3y%>%>n+EoR+lRmS#rfTNX{Zz|!ErYKx^9cw!@Vc7cjp!R@892^ zYVrK>JF$1O-hX~5IQ^fc=-y*{qFYive>Gv*%&PEymVnF61)j>8Me%ly42SN27oGpz zqLxc7y-JaF0Y}62&$n4#aXEba6Te~kjcVB&S_f7XztB36aba)UL6$$2X{BdbBm}t( zs_xwuXP9mn9Os&&^er-&p)%2j_gv)Wx&Qccj~(X?yLnd{=mEae2+uTMUj{88n*)eJ S;8O5p5asFW=d#Wzp$P!+CTX|; literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/items/metaitems/nomex_leggings.png b/src/main/resources/assets/gregtech/textures/items/metaitems/nomex_leggings.png new file mode 100644 index 0000000000000000000000000000000000000000..be329c18aeeb5a6ff527af51980c264ad0500357 GIT binary patch literal 264 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|R(QHNhFA!m zooL9_93bGbR*6kfOpH;Q{{iErsu_1Qrwdyb_vo*malU1~{Jv0;X|cy<-i%zk>auOF zE!(RqNvG>Rg<}7V4OCoee|P+?oBg;)bIuyhB$g>YQ=Imma7a3lvsC7^nuCIplHkFq zt1KF&4PHl!NIH}yedK)qR&+&aWt~KV+MIGL-IoHQSN$2T#~0WbeqiylneyPa8jnGU zzZrMIB=r*yFa6#A-u}n5`)s}U76IMNmm1-j=IhI#1!QvoF$i1=o(!TqUHx3vIVCg! E0Bj~)XaE2J literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/items/metaitems/nomex_mask.png b/src/main/resources/assets/gregtech/textures/items/metaitems/nomex_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..c078a04a5f882ee6e0e1581f2ad769131cb3484f GIT binary patch literal 263 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|mV3H5hFA#R z?YHJTtRUdBy<5rE>(mrWhpeb6O_TbXgbUcB_#94`s!KiTl{tOPGkb~P{F~;xJ7mi5 zuGbIP{(1BJ`oAHH?>>L_SDb!%v9qDuiap;SSZ|d+l+>j3Ni|z{MIu8YE907Z?TV8< z%S6+D7&JUSyF6pflI-YL6oPfpUXO@geCy9 CB4Pdj literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/susy/models/armor/nomex_legs_top.mtl b/src/main/resources/assets/susy/models/armor/nomex_legs_top.mtl new file mode 100644 index 000000000..dbbef9ca1 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/nomex_legs_top.mtl @@ -0,0 +1,4 @@ +# Made in Blockbench 4.11.2 +newmtl m_574cd15e-defe-0a85-4631-fa756f18cb3d +map_Kd susy:armor/nomex_legs +newmtl none diff --git a/src/main/resources/assets/susy/models/armor/nomex_legs_top.obj b/src/main/resources/assets/susy/models/armor/nomex_legs_top.obj new file mode 100644 index 000000000..e7e2864d5 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/nomex_legs_top.obj @@ -0,0 +1,49 @@ +# Made in Blockbench 4.11.2 +mtllib nomex_legs_top.mtl + +o belt +v 0.281875 1.5318749999999999 0.156875 +v 0.281875 1.5318749999999999 -0.156875 +v 0.281875 0.718125 0.156875 +v 0.281875 0.718125 -0.156875 +v -0.281875 1.5318749999999999 -0.156875 +v -0.281875 1.5318749999999999 0.156875 +v -0.281875 0.718125 -0.156875 +v -0.281875 0.718125 0.156875 +vt 0.125 0.875 +vt 0.375 0.875 +vt 0.375 0.5 +vt 0.125 0.5 +vt 0 0.875 +vt 0.125 0.875 +vt 0.125 0.5 +vt 0 0.5 +vt 0.5 0.875 +vt 0.75 0.875 +vt 0.75 0.5 +vt 0.5 0.5 +vt 0.375 0.875 +vt 0.5 0.875 +vt 0.5 0.5 +vt 0.375 0.5 +vt 0.375 0.875 +vt 0.125 0.875 +vt 0.125 1 +vt 0.375 1 +vt 0.625 1 +vt 0.375 1 +vt 0.375 0.875 +vt 0.625 0.875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_574cd15e-defe-0a85-4631-fa756f18cb3d +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 From 5e77a34a9cce6cdc80696e1d6fa6b2cdf8fef165 Mon Sep 17 00:00:00 2001 From: grema Date: Sun, 5 Jan 2025 23:00:31 +0100 Subject: [PATCH 37/55] feat: added custom metal sheets --- .../supersymmetry/common/CommonProxy.java | 2 + .../common/blocks/BlocksCustomSheets.java | 42 ++++++++++++++++++ .../common/blocks/SuSyBlocks.java | 5 +++ .../darker_white_metal_sheet.png | Bin 0 -> 306 bytes .../lighter_gray_metal_sheet.png | Bin 0 -> 305 bytes .../susy/blockstates/custom_sheets.json | 25 +++++++++++ .../resources/assets/susy/lang/en_us.lang | 4 ++ 7 files changed, 78 insertions(+) create mode 100644 src/main/java/supersymmetry/common/blocks/BlocksCustomSheets.java create mode 100644 src/main/resources/assets/gregtech/textures/blocks/custom_sheets/darker_white_metal_sheet.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/custom_sheets/lighter_gray_metal_sheet.png create mode 100644 src/main/resources/assets/susy/blockstates/custom_sheets.json diff --git a/src/main/java/supersymmetry/common/CommonProxy.java b/src/main/java/supersymmetry/common/CommonProxy.java index a5da94f1a..a12949fd0 100644 --- a/src/main/java/supersymmetry/common/CommonProxy.java +++ b/src/main/java/supersymmetry/common/CommonProxy.java @@ -87,6 +87,7 @@ public static void registerBlocks(@NotNull RegistryEvent.Register event) registry.register(SuSyBlocks.MULTIBLOCK_CASING); registry.register(SuSyBlocks.SERPENTINE); registry.register(SuSyBlocks.HARDBLOCKS); + registry.register(SuSyBlocks.CUSTOMSHEETS); SHEETED_FRAMES.values().stream().distinct().forEach(registry::register); } @@ -117,6 +118,7 @@ public static void registerItems(@NotNull RegistryEvent.Register event) { registry.register(createItemBlock(SuSyBlocks.MULTIBLOCK_CASING, VariantItemBlock::new)); registry.register(createItemBlock(SuSyBlocks.SERPENTINE, VariantItemBlock::new)); registry.register(createItemBlock(SuSyBlocks.HARDBLOCKS, VariantItemBlock::new)); + registry.register(createItemBlock(SuSyBlocks.CUSTOMSHEETS, VariantItemBlock::new)); SHEETED_FRAMES.values() .stream().distinct() diff --git a/src/main/java/supersymmetry/common/blocks/BlocksCustomSheets.java b/src/main/java/supersymmetry/common/blocks/BlocksCustomSheets.java new file mode 100644 index 000000000..6930cb843 --- /dev/null +++ b/src/main/java/supersymmetry/common/blocks/BlocksCustomSheets.java @@ -0,0 +1,42 @@ +package supersymmetry.common.blocks; + +import gregtech.api.block.IStateHarvestLevel; +import gregtech.api.block.VariantBlock; +import net.minecraft.block.SoundType; +import net.minecraft.block.material.Material; +import net.minecraft.block.state.IBlockState; +import net.minecraft.util.IStringSerializable; + +public class BlocksCustomSheets extends VariantBlock { + + public BlocksCustomSheets() { + super(Material.IRON); + this.setHardness(3.0F); + this.setResistance(5.0F); + this.setSoundType(SoundType.METAL); + this.setTranslationKey("custom_sheets"); + } + + public static enum MetalDecorationBlockType implements IStringSerializable, IStateHarvestLevel { + DARKWHITEMETALSHEET("darkwhitemetalsheet", 2), + LIGHTERGRAYMETALSHEET("lightergraymetalsheet", 2); + private final String name; + private final int harvestLevel; + + private MetalDecorationBlockType(String name, int harvestLevel) { + this.name = name; + this.harvestLevel = harvestLevel; + } + + @Override + public int getHarvestLevel(IBlockState iBlockState) { + return this.harvestLevel; + } + + @Override + public String getName() { + return this.name; + } + } +} + diff --git a/src/main/java/supersymmetry/common/blocks/SuSyBlocks.java b/src/main/java/supersymmetry/common/blocks/SuSyBlocks.java index f6c5e3288..7febc3627 100644 --- a/src/main/java/supersymmetry/common/blocks/SuSyBlocks.java +++ b/src/main/java/supersymmetry/common/blocks/SuSyBlocks.java @@ -41,6 +41,7 @@ public class SuSyBlocks { public static BlockSuSyMultiblockCasing MULTIBLOCK_CASING; public static BlockSerpentine SERPENTINE; public static BlocksHardened HARDBLOCKS; + public static BlocksCustomSheets CUSTOMSHEETS; public static void init() { COOLING_COIL = new BlockCoolingCoil(); @@ -104,6 +105,9 @@ public static void init() { HARDBLOCKS = new BlocksHardened(); HARDBLOCKS.setRegistryName("hardened_blocks"); + + CUSTOMSHEETS = new BlocksCustomSheets(); + CUSTOMSHEETS.setRegistryName("custom_sheets"); } @SideOnly(Side.CLIENT) @@ -129,6 +133,7 @@ public static void registerItemModels() { registerItemModel(MULTIBLOCK_CASING); SERPENTINE.onModelRegister(); registerItemModel(HARDBLOCKS); + registerItemModel(CUSTOMSHEETS); } @SideOnly(Side.CLIENT) diff --git a/src/main/resources/assets/gregtech/textures/blocks/custom_sheets/darker_white_metal_sheet.png b/src/main/resources/assets/gregtech/textures/blocks/custom_sheets/darker_white_metal_sheet.png new file mode 100644 index 0000000000000000000000000000000000000000..1a7f3bc025c26849fc59898b22f0409b50450605 GIT binary patch literal 306 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`_dQ)4Ln>~y1{rc4G2l7Azx{1jcfIuN_d=PndCR}v zOP~AqfSL)zg{aMQKKnDgVpu3&`bACaKzr_OH)eJX2Ic^DMvitSgAdIAUVE`ja0q|Y z<*BN@nD2}BM!T>D>~TtrG6!~P&5?V-71POJ z>S4GzbGpLH(_dPaWnGX9?@-yt`^ByaMZNGncFq6* literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/blocks/custom_sheets/lighter_gray_metal_sheet.png b/src/main/resources/assets/gregtech/textures/blocks/custom_sheets/lighter_gray_metal_sheet.png new file mode 100644 index 0000000000000000000000000000000000000000..cc085d2e0ac31ca1cbcc38b9d0a15cc6f3719ad1 GIT binary patch literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`_dH!3Ln>~y1{rc4G2l7<|G2|K z=XM(fXNBnHe6sJt?L-0sV!r2D?6@*b^|aSgk>7W=UyaJW|NZ0cb=mv+A8+_o@FX3mF@(&3Zbgo+*Hxa=7EfMIk(NEEF2gm8mu@SEJPX_bm}5(@Xx zij*u}5a0QABa`h1A(8&ei4`<8iFn@VB<%Q%`lmC8# z$t)e`_ON)yE>kxNZT_~yN#$eig7XKJJpv1C93@mzuUKE6ykZ~AOWjp=zw4Wqqz7O2 xcp$p)JNJ#HKNXkWo^lxIQ@+#)&op0O1}z|)1BgN3Qt)ID<>~6@vd$@?2>?|0cf0@q literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/susy/blockstates/custom_sheets.json b/src/main/resources/assets/susy/blockstates/custom_sheets.json new file mode 100644 index 000000000..73845c28a --- /dev/null +++ b/src/main/resources/assets/susy/blockstates/custom_sheets.json @@ -0,0 +1,25 @@ +{ + "forge_marker" : 1, + "defaults": { + "model": "minecraft:cube_bottom_top", + "textures": { + "bottom": "gregtech:blocks/custom_sheets/darker_white_metal_sheet", + "top": "gregtech:blocks/custom_sheets/darker_white_metal_sheet", + "side": "gregtech:blocks/custom_sheets/darker_white_metal_sheet" + } + }, + "variants" : { + "variant=darkwhitemetalsheet" : { + "model" : "minecraft:cube_all", + "textures" : { + "all" : "gregtech:blocks/custom_sheets/darker_white_metal_sheet" + } + }, + "variant=lightergraymetalsheet" : { + "model" : "minecraft:cube_all", + "textures" : { + "all" : "gregtech:blocks/custom_sheets/lighter_gray_metal_sheet" + } + } + } +} diff --git a/src/main/resources/assets/susy/lang/en_us.lang b/src/main/resources/assets/susy/lang/en_us.lang index b65954038..17926b349 100644 --- a/src/main/resources/assets/susy/lang/en_us.lang +++ b/src/main/resources/assets/susy/lang/en_us.lang @@ -910,3 +910,7 @@ tile.hardened_blocks.lair10.name=Hardened Lair 10 tile.hardened_blocks.lair11.name=Hardened Lair 11 tile.hardened_blocks.kryp7.name=Hardened Kryp 7 tile.hardened_blocks.kryp8.name=Hardened Kryp 8 + +#Custom Sheets +tile.custom_sheets.darkwhitemetalsheet.name=Dark White Metal Sheet +tile.custom_sheets.lightergraymetalsheet.name=Light Gray Metal Sheet From 0609d50d10bc8469a4a522e766806da209f0a8f5 Mon Sep 17 00:00:00 2001 From: grema Date: Sun, 5 Jan 2025 23:20:36 +0100 Subject: [PATCH 38/55] feat: lang fix --- src/main/resources/assets/susy/lang/en_us.lang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/assets/susy/lang/en_us.lang b/src/main/resources/assets/susy/lang/en_us.lang index 17926b349..931106af7 100644 --- a/src/main/resources/assets/susy/lang/en_us.lang +++ b/src/main/resources/assets/susy/lang/en_us.lang @@ -913,4 +913,4 @@ tile.hardened_blocks.kryp8.name=Hardened Kryp 8 #Custom Sheets tile.custom_sheets.darkwhitemetalsheet.name=Dark White Metal Sheet -tile.custom_sheets.lightergraymetalsheet.name=Light Gray Metal Sheet +tile.custom_sheets.lightergraymetalsheet.name=Lighter Gray Metal Sheet From f62b97f1fa8d24689914c66da9421c44ec923020 Mon Sep 17 00:00:00 2001 From: oliwier509 <53867161+oliwier509@users.noreply.github.com> Date: Mon, 6 Jan 2025 22:31:43 +0100 Subject: [PATCH 39/55] gas tank and gas mask textures feat: added textures for basic beneath gear --- .../assets/susy/textures/armor/gas_mask.png | Bin 0 -> 1071 bytes .../assets/susy/textures/armor/gas_tank.png | Bin 0 -> 975 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/main/resources/assets/susy/textures/armor/gas_mask.png create mode 100644 src/main/resources/assets/susy/textures/armor/gas_tank.png diff --git a/src/main/resources/assets/susy/textures/armor/gas_mask.png b/src/main/resources/assets/susy/textures/armor/gas_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..0e2d0084329623406c969f526e504ac49bb08b93 GIT binary patch literal 1071 zcmV+~1kn45P)Px&=}AOERCt{2n9WWbR}_H1YsMjoVS`Xe`WJQOO(Bxq$^n5?wrmQEstda5JNO0q z9({sz!3s;>byF#^7*eTJX;&42R1}0VBV;_|nYpJ6uw}#8abO&#=6;gpxifdpnS1W} znKO_u#bQy4#iH~(P7|472(@in4RS6G48;KdClWQlATFM^Fi6}3`nh@FH@^W@e~VDmPvU5~~7#zIw&#>MG4R1MO4*{@}NI<8jr)aJ5JdYp@+Xm2DqqWBOeHx7hzV8!;AtC}weXz>VPmh&E z43~5SplHoc|=i!h;%K!R;w{NIf>SKs4qi<=72=1z{Knygkgx*pk$11 zp8QC)TJ1`PvvYI&=KOSaPAkX={$I0wAMSmgA&!>Zesk1Sy0p%F?tigE6hi58LM-&hK&e zpGCqjBn(3$t+6bNtYy)B^qhm*$L+ZfzS`%-vmkbt-ql_w6+Z1Ucu`>78(N&wC^~cV z&mTYL@7-NQ3tDS}Fk~W^Bhnhzb+K|ew3e>9NWAPpbtl2Kg)Xj-3ku%+`Vo)j-;mvZ zN_3w2CnqKdqX@@wxH~>hCX+!v+vafV6CQlI55S9`gByJpNJRPkcXve2lfd(5fm&Et z5CG5f5E1TVvxHHEZQH8!ZMMC$H@$e0GC&+pOC=Ezv+1F+au-5vCWY0`*@z$b397K8o=|sc1s&K9wlPG2ee$j*Lak$3WY){ zKURJytb9J-j`6sp*BXy%9vD2((ls8{JYdDe_if4n?V3I}J1ZiBQVJ2_ z_nn=Qs`tIPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D17t}=K~#8N?V8U{ z6Hye#Z`7LwpnOlTw3 z5*^QXde3A!P>@Q&dpW=49_sk5_lyRJwD=VS>$c#@+m{zN0vO!>q#iBVp zJhXc*l1ima+J5$jko=$!S6E~^Z8DjR3CI-QrT`($bKU@miwA&sDeWMeW#PG8jw55u zK!xOJpYsNYAU1$TK`J1ynTHWs2)0H=Vdpsu#AQXK7+{wH;0mBWU8xY;u;d)PNnw+qEI*1{au`v!Yt57KL zvx4&mp!|=IBXEDu877e!0R*#9j1(oxdXciv_YFQ608yM( zo6%$sU~{k!^X!~>xNm?JB2^%3T;NR8_j1D|^JLk0V*r~#Ar&A!ASpN+?R@7A7^dd{ z1lB)hi3ug86jD{&;uYE`w~4sD#UpM1kNmFno@7S=^+0R z;!3dDhZ!=@8v}49;M-qW|2D%c7#Z(Dw_P4ktJS3XFJ)t6qf4_l70@r<8IY&W9*=J) zCmi&Yz>(y^SAe1@ilQirq9}@@D2k#eilQira^Fl&PDU>|r>3T^eBt>o{I_q1pUljJ zc!$p?NaOzg{y@&PuRl65K7MINJ|7+3+DXpM&4uza7mW3K{eBFnR;w)b%keR950y&h z)4_ph{dmmVLb31_Su@|y&UpLj>@1IOx3>B^@x{eOHh>SNad&rjAO`gPcDP)wbj58G z{iMZ?gW_6OpD!(O1t9b9x3_uz!u)*r>-RH!jL4)vn)==z?|-qp97-j8*x4CK=5C9> zt^g4)KyWTUo002ovPDHLkV1fpUz9|3z literal 0 HcmV?d00001 From 66bd1250a60ae60934a34e9826a9dfd1532ac6c4 Mon Sep 17 00:00:00 2001 From: oliwier509 <53867161+oliwier509@users.noreply.github.com> Date: Mon, 6 Jan 2025 22:33:52 +0100 Subject: [PATCH 40/55] gas mask + gas tank obj files feat: added gas mask and gas tank obj files --- .../assets/susy/models/armor/gas_mask.mtl | 4 + .../assets/susy/models/armor/gas_mask.obj | 187 ++++++++++++++++++ .../assets/susy/models/armor/gas_tank.mtl | 4 + .../assets/susy/models/armor/gas_tank.obj | 141 +++++++++++++ 4 files changed, 336 insertions(+) create mode 100644 src/main/resources/assets/susy/models/armor/gas_mask.mtl create mode 100644 src/main/resources/assets/susy/models/armor/gas_mask.obj create mode 100644 src/main/resources/assets/susy/models/armor/gas_tank.mtl create mode 100644 src/main/resources/assets/susy/models/armor/gas_tank.obj diff --git a/src/main/resources/assets/susy/models/armor/gas_mask.mtl b/src/main/resources/assets/susy/models/armor/gas_mask.mtl new file mode 100644 index 000000000..ab2e0dc44 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/gas_mask.mtl @@ -0,0 +1,4 @@ +# Made in Blockbench 4.11.2 +newmtl m_4482b2e6-b18b-58ba-e2d5-1b9c58643c8e +map_Kd susy:armor/gas_mask +newmtl none diff --git a/src/main/resources/assets/susy/models/armor/gas_mask.obj b/src/main/resources/assets/susy/models/armor/gas_mask.obj new file mode 100644 index 000000000..5801a5d33 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/gas_mask.obj @@ -0,0 +1,187 @@ +# Made in Blockbench 4.11.2 +mtllib gas_mask.mtl + +o helmet +v -0.31249999999999994 0.5625 0.31250000000000006 +v 0.31250000000000006 0.5625 0.31249999999999994 +v -0.31249999999999994 -0.0625 0.31250000000000006 +v 0.31250000000000006 -0.0625 0.31249999999999994 +v 0.31249999999999994 0.5625 -0.31250000000000006 +v -0.31250000000000006 0.5625 -0.31249999999999994 +v 0.31249999999999994 -0.0625 -0.31250000000000006 +v -0.31250000000000006 -0.0625 -0.31249999999999994 +vt 0.25 0.75 +vt 0.5 0.75 +vt 0.5 0.5 +vt 0.25 0.5 +vt 0 0.75 +vt 0.25 0.75 +vt 0.25 0.5 +vt 0 0.5 +vt 0.75 0.75 +vt 1 0.75 +vt 1 0.5 +vt 0.75 0.5 +vt 0.5 0.75 +vt 0.75 0.75 +vt 0.75 0.5 +vt 0.5 0.5 +vt 0.5 0.75 +vt 0.25 0.75 +vt 0.25 1 +vt 0.5 1 +vt 0.75 1 +vt 0.5 1 +vt 0.5 0.75 +vt 0.75 0.75 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_4482b2e6-b18b-58ba-e2d5-1b9c58643c8e +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o helmet +v 0.25 0.1875 0.062499999999999944 +v 0.375 0.1875 0.06249999999999992 +v 0.25 0.0625 0.062499999999999944 +v 0.375 0.0625 0.06249999999999992 +v 0.375 0.1875 -0.06250000000000008 +v 0.25 0.1875 -0.06250000000000006 +v 0.375 0.0625 -0.06250000000000008 +v 0.25 0.0625 -0.06250000000000006 +vt 0.0625 0.4375 +vt 0.125 0.4375 +vt 0.125 0.375 +vt 0.0625 0.375 +vt 0 0.4375 +vt 0.0625 0.4375 +vt 0.0625 0.375 +vt 0 0.375 +vt 0.1875 0.4375 +vt 0.25 0.4375 +vt 0.25 0.375 +vt 0.1875 0.375 +vt 0.125 0.4375 +vt 0.1875 0.4375 +vt 0.1875 0.375 +vt 0.125 0.375 +vt 0.125 0.4375 +vt 0.0625 0.4375 +vt 0.0625 0.5 +vt 0.125 0.5 +vt 0.1875 0.5 +vt 0.125 0.5 +vt 0.125 0.4375 +vt 0.1875 0.4375 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_4482b2e6-b18b-58ba-e2d5-1b9c58643c8e +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o cube +v 0.28125000000000006 0.1875 0.24999999999999994 +v 0.34375000000000006 0.1875 0.24999999999999992 +v 0.28125000000000006 0.125 0.24999999999999994 +v 0.34375000000000006 0.125 0.24999999999999992 +v 0.34375000000000006 0.1875 0.18749999999999992 +v 0.28125000000000006 0.1875 0.18749999999999994 +v 0.34375000000000006 0.125 0.18749999999999992 +v 0.28125000000000006 0.125 0.18749999999999994 +vt 0.03125 0.34375 +vt 0.0625 0.34375 +vt 0.0625 0.3125 +vt 0.03125 0.3125 +vt 0 0.34375 +vt 0.03125 0.34375 +vt 0.03125 0.3125 +vt 0 0.3125 +vt 0.09375 0.34375 +vt 0.125 0.34375 +vt 0.125 0.3125 +vt 0.09375 0.3125 +vt 0.0625 0.34375 +vt 0.09375 0.34375 +vt 0.09375 0.3125 +vt 0.0625 0.3125 +vt 0.0625 0.34375 +vt 0.03125 0.34375 +vt 0.03125 0.375 +vt 0.0625 0.375 +vt 0.09375 0.375 +vt 0.0625 0.375 +vt 0.0625 0.34375 +vt 0.09375 0.34375 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_4482b2e6-b18b-58ba-e2d5-1b9c58643c8e +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o cube +v 0.28124999999999994 0.1875 -0.18750000000000008 +v 0.34374999999999994 0.1875 -0.1875000000000001 +v 0.28124999999999994 0.125 -0.18750000000000008 +v 0.34374999999999994 0.125 -0.1875000000000001 +v 0.34374999999999994 0.1875 -0.2500000000000001 +v 0.28124999999999994 0.1875 -0.2500000000000001 +v 0.34374999999999994 0.125 -0.2500000000000001 +v 0.28124999999999994 0.125 -0.2500000000000001 +vt 0.03125 0.34375 +vt 0.0625 0.34375 +vt 0.0625 0.3125 +vt 0.03125 0.3125 +vt 0 0.34375 +vt 0.03125 0.34375 +vt 0.03125 0.3125 +vt 0 0.3125 +vt 0.09375 0.34375 +vt 0.125 0.34375 +vt 0.125 0.3125 +vt 0.09375 0.3125 +vt 0.0625 0.34375 +vt 0.09375 0.34375 +vt 0.09375 0.3125 +vt 0.0625 0.3125 +vt 0.0625 0.34375 +vt 0.03125 0.34375 +vt 0.03125 0.375 +vt 0.0625 0.375 +vt 0.09375 0.375 +vt 0.0625 0.375 +vt 0.0625 0.34375 +vt 0.09375 0.34375 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_4482b2e6-b18b-58ba-e2d5-1b9c58643c8e +f 28/76/19 31/75/19 29/74/19 26/73/19 +f 27/80/20 28/79/20 26/78/20 25/77/20 +f 32/84/21 27/83/21 25/82/21 30/81/21 +f 31/88/22 32/87/22 30/86/22 29/85/22 +f 30/92/23 25/91/23 26/90/23 29/89/23 +f 31/96/24 28/95/24 27/94/24 32/93/24 \ No newline at end of file diff --git a/src/main/resources/assets/susy/models/armor/gas_tank.mtl b/src/main/resources/assets/susy/models/armor/gas_tank.mtl new file mode 100644 index 000000000..4cbc8fbd4 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/gas_tank.mtl @@ -0,0 +1,4 @@ +# Made in Blockbench 4.11.2 +newmtl m_fb4f6aa1-40ba-6cce-f50b-76ae92a858d9 +map_Kd susy:armor/gas_tank +newmtl none diff --git a/src/main/resources/assets/susy/models/armor/gas_tank.obj b/src/main/resources/assets/susy/models/armor/gas_tank.obj new file mode 100644 index 000000000..76ee574a8 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/gas_tank.obj @@ -0,0 +1,141 @@ +# Made in Blockbench 4.11.2 +mtllib gas_tank.mtl + +o chestplate +v -0.1881249999999999 0.06312499999999999 0.31312500000000004 +v 0.18812500000000007 0.06312499999999999 0.31312499999999993 +v -0.1881249999999999 -0.813125 0.31312500000000004 +v 0.18812500000000007 -0.813125 0.31312499999999993 +v 0.1881249999999999 0.06312499999999999 -0.31312500000000004 +v -0.18812500000000007 0.06312499999999999 -0.31312499999999993 +v 0.1881249999999999 -0.813125 -0.31312500000000004 +v -0.18812500000000007 -0.813125 -0.31312499999999993 +vt 0.125 0.875 +vt 0.375 0.875 +vt 0.375 0.5 +vt 0.125 0.5 +vt 0 0.875 +vt 0.125 0.875 +vt 0.125 0.5 +vt 0 0.5 +vt 0.5 0.875 +vt 0.75 0.875 +vt 0.75 0.5 +vt 0.5 0.5 +vt 0.375 0.875 +vt 0.5 0.875 +vt 0.5 0.5 +vt 0.375 0.5 +vt 0.375 0.875 +vt 0.125 0.875 +vt 0.125 1 +vt 0.375 1 +vt 0.625 1 +vt 0.375 1 +vt 0.375 0.875 +vt 0.625 0.875 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_fb4f6aa1-40ba-6cce-f50b-76ae92a858d9 +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o bb_main +v -0.25 0.0625 -0.062499999999999944 +v -0.125 0.0625 -0.06249999999999997 +v -0.25 -0.625 -0.062499999999999944 +v -0.125 -0.625 -0.06249999999999997 +v -0.12500000000000006 0.0625 -0.18749999999999997 +v -0.25000000000000006 0.0625 -0.18749999999999994 +v -0.12500000000000006 -0.625 -0.18749999999999997 +v -0.25000000000000006 -0.625 -0.18749999999999994 +vt 0.8125 0.34375 +vt 0.875 0.34375 +vt 0.875 0 +vt 0.8125 0 +vt 0.75 0.34375 +vt 0.8125 0.34375 +vt 0.8125 0 +vt 0.75 0 +vt 0.9375 0.34375 +vt 1 0.34375 +vt 1 0 +vt 0.9375 0 +vt 0.875 0.34375 +vt 0.9375 0.34375 +vt 0.9375 0 +vt 0.875 0 +vt 0.875 0.34375 +vt 0.8125 0.34375 +vt 0.8125 0.40625 +vt 0.875 0.40625 +vt 0.9375 0.40625 +vt 0.875 0.40625 +vt 0.875 0.34375 +vt 0.9375 0.34375 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_fb4f6aa1-40ba-6cce-f50b-76ae92a858d9 +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o bb_main +v -0.24999999999999994 0.0625 0.18750000000000006 +v -0.12499999999999996 0.0625 0.18750000000000003 +v -0.24999999999999994 -0.625 0.18750000000000006 +v -0.12499999999999996 -0.625 0.18750000000000003 +v -0.12499999999999999 0.0625 0.06250000000000003 +v -0.25 0.0625 0.06250000000000006 +v -0.12499999999999999 -0.625 0.06250000000000003 +v -0.25 -0.625 0.06250000000000006 +vt 0.8125 0.34375 +vt 0.875 0.34375 +vt 0.875 0 +vt 0.8125 0 +vt 0.75 0.34375 +vt 0.8125 0.34375 +vt 0.8125 0 +vt 0.75 0 +vt 0.9375 0.34375 +vt 1 0.34375 +vt 1 0 +vt 0.9375 0 +vt 0.875 0.34375 +vt 0.9375 0.34375 +vt 0.9375 0 +vt 0.875 0 +vt 0.875 0.34375 +vt 0.8125 0.34375 +vt 0.8125 0.40625 +vt 0.875 0.40625 +vt 0.9375 0.40625 +vt 0.875 0.40625 +vt 0.875 0.34375 +vt 0.9375 0.34375 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_fb4f6aa1-40ba-6cce-f50b-76ae92a858d9 +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 From e478f0e46da72d2ac0438575fbc9d5876dd5f853 Mon Sep 17 00:00:00 2001 From: oliwier509 <53867161+oliwier509@users.noreply.github.com> Date: Mon, 6 Jan 2025 22:54:21 +0100 Subject: [PATCH 41/55] updating the reflective suit the reflective suit now comes with gas tanks attached to it --- .../susy/models/armor/reflective_chest.obj | 94 ++++++++++++++++++- 1 file changed, 93 insertions(+), 1 deletion(-) diff --git a/src/main/resources/assets/susy/models/armor/reflective_chest.obj b/src/main/resources/assets/susy/models/armor/reflective_chest.obj index ab4460359..c7a66eb16 100644 --- a/src/main/resources/assets/susy/models/armor/reflective_chest.obj +++ b/src/main/resources/assets/susy/models/armor/reflective_chest.obj @@ -46,4 +46,96 @@ f 3/8/2 4/7/2 2/6/2 1/5/2 f 8/12/3 3/11/3 1/10/3 6/9/3 f 7/16/4 8/15/4 6/14/4 5/13/4 f 6/20/5 1/19/5 2/18/5 5/17/5 -f 7/24/6 4/23/6 3/22/6 8/21/6 \ No newline at end of file +f 7/24/6 4/23/6 3/22/6 8/21/6 +o bb_main +v -0.24999999999999994 0.0625 0.18750000000000006 +v -0.12499999999999996 0.0625 0.18750000000000003 +v -0.24999999999999994 -0.625 0.18750000000000006 +v -0.12499999999999996 -0.625 0.18750000000000003 +v -0.12499999999999999 0.0625 0.06250000000000003 +v -0.25 0.0625 0.06250000000000006 +v -0.12499999999999999 -0.625 0.06250000000000003 +v -0.25 -0.625 0.06250000000000006 +vt 0.8125 0.34375 +vt 0.875 0.34375 +vt 0.875 0 +vt 0.8125 0 +vt 0.75 0.34375 +vt 0.8125 0.34375 +vt 0.8125 0 +vt 0.75 0 +vt 0.9375 0.34375 +vt 1 0.34375 +vt 1 0 +vt 0.9375 0 +vt 0.875 0.34375 +vt 0.9375 0.34375 +vt 0.9375 0 +vt 0.875 0 +vt 0.875 0.34375 +vt 0.8125 0.34375 +vt 0.8125 0.40625 +vt 0.875 0.40625 +vt 0.9375 0.40625 +vt 0.875 0.40625 +vt 0.875 0.34375 +vt 0.9375 0.34375 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_eb463341-51c5-0cd1-e26e-430dc6c2d2de +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o bb_main +v -0.25 0.0625 -0.062499999999999944 +v -0.125 0.0625 -0.06249999999999997 +v -0.25 -0.625 -0.062499999999999944 +v -0.125 -0.625 -0.06249999999999997 +v -0.12500000000000006 0.0625 -0.18749999999999997 +v -0.25000000000000006 0.0625 -0.18749999999999994 +v -0.12500000000000006 -0.625 -0.18749999999999997 +v -0.25000000000000006 -0.625 -0.18749999999999994 +vt 0.8125 0.34375 +vt 0.875 0.34375 +vt 0.875 0 +vt 0.8125 0 +vt 0.75 0.34375 +vt 0.8125 0.34375 +vt 0.8125 0 +vt 0.75 0 +vt 0.9375 0.34375 +vt 1 0.34375 +vt 1 0 +vt 0.9375 0 +vt 0.875 0.34375 +vt 0.9375 0.34375 +vt 0.9375 0 +vt 0.875 0 +vt 0.875 0.34375 +vt 0.8125 0.34375 +vt 0.8125 0.40625 +vt 0.875 0.40625 +vt 0.9375 0.40625 +vt 0.875 0.40625 +vt 0.875 0.34375 +vt 0.9375 0.34375 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_eb463341-51c5-0cd1-e26e-430dc6c2d2de +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 \ No newline at end of file From 892fce91afca32a4bc736250b4a75bdb646f3926 Mon Sep 17 00:00:00 2001 From: oliwier509 <53867161+oliwier509@users.noreply.github.com> Date: Mon, 6 Jan 2025 22:55:31 +0100 Subject: [PATCH 42/55] updated reflective chestplate texture the reflective chestplate texture now includes the gas tanks --- .../susy/textures/armor/reflective_chest.png | Bin 5299 -> 5746 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/main/resources/assets/susy/textures/armor/reflective_chest.png b/src/main/resources/assets/susy/textures/armor/reflective_chest.png index 3697aa4f6d2a2e2bb18a78b9e8194fdd4bf51666..dc507f4a3f55745ed136034b2fd8729b2663ecbd 100644 GIT binary patch delta 5712 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 U!o{LE00000Ne4wvM6N<$g2DMz8vp Date: Mon, 6 Jan 2025 23:25:09 +0100 Subject: [PATCH 43/55] feat: updated reflective helmet texture title --- .../susy/textures/armor/reflective_head.png | Bin 4396 -> 3943 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/main/resources/assets/susy/textures/armor/reflective_head.png b/src/main/resources/assets/susy/textures/armor/reflective_head.png index bca3cc509e6ada5b756514a81bf7a45f6b425873..a93c70e5ca99cd772888a44f4b040931bef7a066 100644 GIT binary patch delta 3895 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 FV1i(9mGA%n delta 4351 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 From b1630f6eed331784ffbc22a618ab938fb4ce8ff1 Mon Sep 17 00:00:00 2001 From: grema Date: Tue, 7 Jan 2025 00:05:31 +0100 Subject: [PATCH 44/55] feat: lang fix feat: added item textures for env survival armors --- .../models/item/metaitems/asbestos_boots.json | 6 ++++++ .../item/metaitems/asbestos_chestplate.json | 6 ++++++ .../item/metaitems/asbestos_leggings.json | 6 ++++++ .../models/item/metaitems/reflective_boots.json | 6 ++++++ .../item/metaitems/reflective_chestplate.json | 6 ++++++ .../item/metaitems/reflective_leggings.json | 6 ++++++ .../models/item/metaitems/reflective_mask.json | 6 ++++++ .../textures/items/metaitems/asbestos_boots.png | Bin 0 -> 309 bytes .../items/metaitems/asbestos_chestplate.png | Bin 0 -> 379 bytes .../items/metaitems/asbestos_leggings.png | Bin 0 -> 351 bytes .../textures/items/metaitems/asbestos_mask.png | Bin 0 -> 365 bytes .../textures/items/metaitems/gas_mask.png | Bin 378 -> 915 bytes .../textures/items/metaitems/gas_tank.png | Bin 0 -> 736 bytes .../items/metaitems/reflective_boots.png | Bin 0 -> 286 bytes .../items/metaitems/reflective_chestplate.png | Bin 0 -> 302 bytes .../items/metaitems/reflective_leggings.png | Bin 0 -> 369 bytes .../items/metaitems/reflective_mask.png | Bin 0 -> 454 bytes src/main/resources/assets/susy/lang/en_us.lang | 2 +- 18 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 src/main/resources/assets/gregtech/models/item/metaitems/asbestos_boots.json create mode 100644 src/main/resources/assets/gregtech/models/item/metaitems/asbestos_chestplate.json create mode 100644 src/main/resources/assets/gregtech/models/item/metaitems/asbestos_leggings.json create mode 100644 src/main/resources/assets/gregtech/models/item/metaitems/reflective_boots.json create mode 100644 src/main/resources/assets/gregtech/models/item/metaitems/reflective_chestplate.json create mode 100644 src/main/resources/assets/gregtech/models/item/metaitems/reflective_leggings.json create mode 100644 src/main/resources/assets/gregtech/models/item/metaitems/reflective_mask.json create mode 100644 src/main/resources/assets/gregtech/textures/items/metaitems/asbestos_boots.png create mode 100644 src/main/resources/assets/gregtech/textures/items/metaitems/asbestos_chestplate.png create mode 100644 src/main/resources/assets/gregtech/textures/items/metaitems/asbestos_leggings.png create mode 100644 src/main/resources/assets/gregtech/textures/items/metaitems/asbestos_mask.png create mode 100644 src/main/resources/assets/gregtech/textures/items/metaitems/gas_tank.png create mode 100644 src/main/resources/assets/gregtech/textures/items/metaitems/reflective_boots.png create mode 100644 src/main/resources/assets/gregtech/textures/items/metaitems/reflective_chestplate.png create mode 100644 src/main/resources/assets/gregtech/textures/items/metaitems/reflective_leggings.png create mode 100644 src/main/resources/assets/gregtech/textures/items/metaitems/reflective_mask.png diff --git a/src/main/resources/assets/gregtech/models/item/metaitems/asbestos_boots.json b/src/main/resources/assets/gregtech/models/item/metaitems/asbestos_boots.json new file mode 100644 index 000000000..2314057b7 --- /dev/null +++ b/src/main/resources/assets/gregtech/models/item/metaitems/asbestos_boots.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gregtech:items/metaitems/asbestos_boots" + } +} diff --git a/src/main/resources/assets/gregtech/models/item/metaitems/asbestos_chestplate.json b/src/main/resources/assets/gregtech/models/item/metaitems/asbestos_chestplate.json new file mode 100644 index 000000000..af1bbd7fa --- /dev/null +++ b/src/main/resources/assets/gregtech/models/item/metaitems/asbestos_chestplate.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gregtech:items/metaitems/asbestos_chestplate" + } +} diff --git a/src/main/resources/assets/gregtech/models/item/metaitems/asbestos_leggings.json b/src/main/resources/assets/gregtech/models/item/metaitems/asbestos_leggings.json new file mode 100644 index 000000000..64997472a --- /dev/null +++ b/src/main/resources/assets/gregtech/models/item/metaitems/asbestos_leggings.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gregtech:items/metaitems/asbestos_leggings" + } +} diff --git a/src/main/resources/assets/gregtech/models/item/metaitems/reflective_boots.json b/src/main/resources/assets/gregtech/models/item/metaitems/reflective_boots.json new file mode 100644 index 000000000..77b732437 --- /dev/null +++ b/src/main/resources/assets/gregtech/models/item/metaitems/reflective_boots.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gregtech:items/metaitems/reflective_boots" + } +} diff --git a/src/main/resources/assets/gregtech/models/item/metaitems/reflective_chestplate.json b/src/main/resources/assets/gregtech/models/item/metaitems/reflective_chestplate.json new file mode 100644 index 000000000..26521731b --- /dev/null +++ b/src/main/resources/assets/gregtech/models/item/metaitems/reflective_chestplate.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gregtech:items/metaitems/reflective_chestplate" + } +} diff --git a/src/main/resources/assets/gregtech/models/item/metaitems/reflective_leggings.json b/src/main/resources/assets/gregtech/models/item/metaitems/reflective_leggings.json new file mode 100644 index 000000000..fbc505c57 --- /dev/null +++ b/src/main/resources/assets/gregtech/models/item/metaitems/reflective_leggings.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gregtech:items/metaitems/reflective_leggings" + } +} diff --git a/src/main/resources/assets/gregtech/models/item/metaitems/reflective_mask.json b/src/main/resources/assets/gregtech/models/item/metaitems/reflective_mask.json new file mode 100644 index 000000000..561ebf66d --- /dev/null +++ b/src/main/resources/assets/gregtech/models/item/metaitems/reflective_mask.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gregtech:items/metaitems/reflective_mask" + } +} diff --git a/src/main/resources/assets/gregtech/textures/items/metaitems/asbestos_boots.png b/src/main/resources/assets/gregtech/textures/items/metaitems/asbestos_boots.png new file mode 100644 index 0000000000000000000000000000000000000000..1ee28561b5e6e8da18f3c9fb452a8f8148115eae GIT binary patch literal 309 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf_ppLMjr+<>iR020%;F&v)f0GU99SC8*vUCVDKBP6sf9{F!G;v=t|{6dKL4|R zSJ|=8W%7^1200zA0w(8;C6hBEr=`ibAKJg}bw{z^WfQ^Vo-NlVR(mroH0V|oKfzMO z+Zn@=!2ERe3BG%s8>+-Y8#kw1`Rm3IeB<$owQn4}B#+N{uy_42k7W~;_a!s_y!d_M zhnVX>?lP}?!1SJxgFWZktz|o!m5YQ{Zxv&mQ~WbUM04pkwpErQN3UPsmV42DO|3@E yiq(bxExt4PUkUsf(J$5o^c`PnglC$sFM}44%>l$9a4C2)i1Kvxb6Mw<&;$T6=61#a literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/items/metaitems/asbestos_chestplate.png b/src/main/resources/assets/gregtech/textures/items/metaitems/asbestos_chestplate.png new file mode 100644 index 0000000000000000000000000000000000000000..7c1aac79a463523688053a64548efc166d44f2fc GIT binary patch literal 379 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#X#z`!Ws>Eak- z;eRy9kgv%>z$H1=(J3iir+2=>o(BF1>7?9>j;#-+OG;YAFGxxYC8_hau1!;uyu)nG zy?*E3nKy6l-TQe@{d!3$kIP?{y8YUhJ|k7qa;=IdTdzTen3c@8>bC8_@1FkrXL9Bu zi@v>Yt9+l->@1ictvX3{gQ#e8Gu!G+sp||b0xT^4$Cb-fv?3);j2hE+G-<8oR_q#_WWjre+)~gCW$q!si0j$9shYK`VCa+p`?C$43U$uYl z^AEavV9UDKosNMb#?SYAH=Z}n6O|EC)7#IKKU1}Cc7$cwHei_XrABzB`T8+E literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/items/metaitems/asbestos_leggings.png b/src/main/resources/assets/gregtech/textures/items/metaitems/asbestos_leggings.png new file mode 100644 index 0000000000000000000000000000000000000000..16fd6984c3e62afc056e0c98519441a65a75c1ba GIT binary patch literal 351 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfaSXBW zUm9e{*KEMU6RNHi@#54S{}1eO2hW^Qu3&t1=8UjbnA#GqQs>k(#?obbJ^F;yXJ&Dp zEPHqEq@?1%9*5`Ru8NN=>~=icmRqHrG0W|0I-A`mo98v5`=3YJ{E}n7@<7-<{&2vy zYo($mJ_erKxI&jvsrW;7WQF&&X$*|{nX5Ra#4kD_WN7n4Qe%=z;DYMgr)2gm;ODO> z5PoWT?@sC56|ZNVvD&2bI407Xm7{a3(hVtI#ly@DncOXh&V4kAk5Ci3U|yPLSHY^V z+&2J4t%K*o@u_m3|c@o2M~k6rQpdR%G1@)Wt~$(69Dj+h8h3> literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/items/metaitems/asbestos_mask.png b/src/main/resources/assets/gregtech/textures/items/metaitems/asbestos_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..65dcae70eb7b3765b4b7f2e1f0774ae5bd6e23c8 GIT binary patch literal 365 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%Lhh0G|+7AecLM?x916HgDeC-rjCzW>#8Sx@5@`EiJ9Y#6%}2r^%Bi1J(Zj z|34@w$lu@J$jC@tUEM;2L0elpGBVQ3%gbGg!PeGRPEIZ`FwoJ_(b(8nLqh|orL^=N zNT*y$kY6xRJ8r=6MnWbIsFJh5BeIx*f$tCqGm2_>H2?*RJY5_^G=f{tbaOQ*@UR9H zr$t4j=~ut`U%z=)s({OM!*%V7hr{g}0+W_bE#y=9Bpso~%C6|iVc}u1EWo@$@2g?x zt_#PmZQbb0wBgv+YfJ2FmdDs{@%qVqp+9fNp^AOV5B9WdI1{4$U{`K-j=0TF<|DHI XUyFIy|JYy-w4K4z)z4*}Q$iB}EVzqg literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/items/metaitems/gas_mask.png b/src/main/resources/assets/gregtech/textures/items/metaitems/gas_mask.png index 3c8c8f4210d67b08b4e68d18c79824a266ca0759..90304696b45a38a38e83011500fb087084ddc757 100644 GIT binary patch delta 893 zcmV-@1A_ee0+R=jBYy#fX+uL$Nkc;*aB^>EX>4Tx04R}tkv&MmP!xqvQ$;Bi2P=v= zWT;LSL`57+6^me@v=v%)FnQ@8G-*guTpR`0f`dPcRR<(uL!`0A%9F_P-3Q@NH1pKSzq_m zOLZ6FS>AnrR-ckL8Q>F%qf9p};tk^2O-tvzPaI+;Ng+Nbo-pWw#E)E;U4G+SbXee- zAtRHTCk_#d#SWG`n3W8bc!oHvs2b%9S(g>gTb$KOjkWH{Ul`15D`~FN8busSNFWIj zGHNKJ0t*q^HGfh}r06{6;U97QNpi{LDua<@0ad7w96$IU{GP2@n4WTzf-#``#kN1j zfSz5TS-0))W7}??0RCs-N^AS84Pfq*^m4eX0?0+92^4UMao|Hcz<_q=iL77Y0d8kzZr7HXW}-2 z00006VoOIv0RI600RN!9r;`8x010qNS#tmYE+YT{E+YYWr9XB6000McNliru=n4V= zFbD_dU8Dd202y>eSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00B@*L_t(I z%cYY~Yk$H(5XFD1mSAXv6ikIsq)PDv^b_YYjlV-7e%CY4_Bh delta 352 zcmV-m0iXVp2l@h#BYyw^b5ch_0Itp)=>Px$Gf6~2R5(v#WS|f*QmCJSHU_Avsr?7J z?AEPYU<=Us$gak40Z1`SBR@Ys*r1OeKf(=y$-xZ4FhEjL^8dGQ-@x**m*W{G%T8nv z5D)EX>4Tx04R}tkv&MmP!xqvQ$;Bi2P=v=WT;LSL`57+6^me@v=v%)FnQ@8G-*gu zTpR`0f`dPcRR<(uL!`0AxvUWVy2!*FJ|CbU-#5Ybr<1T-hF>opOQBj;1h|XOgAjz4dU5N zOXs{#9AYI&AwDObFzABBk6f2se&bwpSm2ob`7 zkz)Z>sE`~#_#gb9ty!3!a+88Fp!>zPKgNKbU7%UF?eAmTZk_=CXW&X}`>PFL?vwO- zTMHin{oBCBbz777fXf|V_(_)x$&viDghBy$KcjET0Ry){V9lLd>l~*KK!#?ud;=UD z0^>!>UiWx+Z|B_p?P<;L2frC|#b@F+fdBvi24YJ`L;(K){{a7>y{D4^000SaNLh0L z04^f{04^f|c%?sf00007bV*G`2j~g{0Ub4dXCZ9>000?uMObu0Z*6U5Zgc=ca%Ew3 zWn>_CX>@2HM@dakSAh-}0001;Nklb$HHbPuCn#=oe)3k^lez4rN$LW=%~1DgXcg2mk;800000 S(o>TF0000NS%G}50G|-opyt^*D^EvG+mSG7RZz>E$Z6YiSDrfa{(sKOQyP(l8c{_Jo3F-9 z+YVG-aYw)fNb!{f`33(+1`MtT?wkP1a29w(76TO=24TkI`72U@g2|pPjv*Ssy=MdY z8Web#1FU8oDEYpBovc9bzYJls3VGF^+Kil&?sn%rJ{YXf8m#raAx8ZH(~+Tx@Ly+Z=?~RQPF3f98w=x9VvVA$%)?pa<>x}r0`5PEGb9k#IIe^wN Nc)I$ztaD0e0szF-Y104z literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/items/metaitems/reflective_chestplate.png b/src/main/resources/assets/gregtech/textures/items/metaitems/reflective_chestplate.png new file mode 100644 index 0000000000000000000000000000000000000000..c3b6de2a51b9a30b53da68d565d5e68167978676 GIT binary patch literal 302 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}50G|+7vy29fs3MK1!km?--TOA2dH){>IIMy=tO6tEA9U?m$7L1BX%z@m z&Lw?N6G-uu1o;Jn6u|+5>w!BbfHIr~9+AaB1&2YH@p%4<6rfZ||$?`{**?~7rwR%Di#|BI0!=k&ErLOU+2CH!Ct65M=avFe1b89UkgpDy@a znRU6g@l6#!=ku;Vv#O_G>zepdp*P&psj>P*;q=8uw`Mb@umw0QXI7b|<^24r<(8Xu c`(z(8KB!@r literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/items/metaitems/reflective_leggings.png b/src/main/resources/assets/gregtech/textures/items/metaitems/reflective_leggings.png new file mode 100644 index 0000000000000000000000000000000000000000..b589ca602e9659c62e4c857f95d8577017be9d92 GIT binary patch literal 369 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%Lhh0G|-ou=e?39Sc0FCgrR=edhiDyp^Y#)}JU_eKL3DshpLk{5x0u|Np;j z%azD!I~q1$Y1n)rMT0tbG2=Hl}1#NWn8gtYQ1W3hDKx| z(0G^ZbQvHeR}$nG3^W8cV0a@T69-huS>O>_%)r2R7=#&*=dVZs3YK}gIEH8h$DWSl zJ7mDaa^Z%d^|r&)rd_)8f7Xq)lh~dmn^awD`81u?325P(hKXgr4}UBvi)_#DnKkp5-3!9s#%LX&6uzT!m{FHFu=C1ZThhKd7*Q)4$O}oR& iXFk{Bqt)}gHRJ!4i3o8VexV3-0fVQjpUXO@geCx61*5|N literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/items/metaitems/reflective_mask.png b/src/main/resources/assets/gregtech/textures/items/metaitems/reflective_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..08ae8ad2d5b1fd37a305ce41471937acd1f7f220 GIT binary patch literal 454 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%Lfs0X`wFCP7Iifr;K7t8!MJikr1NcGe!Fyna>Z;Gq7E7RlAddHp#nPaEb< zFwEe(|;pr~LU~6kDCnx8UROFIasOB6jZRx4z5(3n_ zza?Y_kTNI<@(TuT6&=ZsF$e(1?vqT^dc>qO_F4j{g0>UwQA*BS$RwXV09hb0NHrVTMo4)^sUX!*i1u4AQ$r zjJKI2DaNi9lzb-5&ze{Mbl)oe;|!+a%O`agS7;_3OjWKBbBK+qd^;<8watWAspZ%A t-sF417^9tgQu&X%Q~loCIH0uwjBTf literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/susy/lang/en_us.lang b/src/main/resources/assets/susy/lang/en_us.lang index 4b3419999..b3844da09 100644 --- a/src/main/resources/assets/susy/lang/en_us.lang +++ b/src/main/resources/assets/susy/lang/en_us.lang @@ -999,5 +999,5 @@ tile.hardened_blocks.kryp7.name=Hardened Kryp 7 tile.hardened_blocks.kryp8.name=Hardened Kryp 8 #Custom Sheets -tile.custom_sheets.darkwhitemetalsheet.name=Dark White Metal Sheet +tile.custom_sheets.darkwhitemetalsheet.name=Darker White Metal Sheet tile.custom_sheets.lightergraymetalsheet.name=Lighter Gray Metal Sheet From 9530f68f8fd34d8ab9315a8e749bf499bdd5a262 Mon Sep 17 00:00:00 2001 From: bruberu <80226372+bruberu@users.noreply.github.com> Date: Mon, 6 Jan 2025 17:32:51 -0600 Subject: [PATCH 45/55] fix: onPlayerTick --- .../SimpleBreathingApparatusModel.java | 40 +++++++++++++++++++ .../supersymmetry/common/EventHandlers.java | 2 +- .../armor/AdvancedBreathingApparatus.java | 2 - .../common/item/armor/BreathingApparatus.java | 40 +++++++++++++++++-- 4 files changed, 78 insertions(+), 6 deletions(-) create mode 100644 src/main/java/supersymmetry/client/renderer/handler/SimpleBreathingApparatusModel.java diff --git a/src/main/java/supersymmetry/client/renderer/handler/SimpleBreathingApparatusModel.java b/src/main/java/supersymmetry/client/renderer/handler/SimpleBreathingApparatusModel.java new file mode 100644 index 000000000..91669277a --- /dev/null +++ b/src/main/java/supersymmetry/client/renderer/handler/SimpleBreathingApparatusModel.java @@ -0,0 +1,40 @@ +package supersymmetry.client.renderer.handler; + +import net.minecraft.client.model.ModelBiped; +import net.minecraft.inventory.EntityEquipmentSlot; +import net.minecraft.util.ResourceLocation; + +import static supersymmetry.api.util.SuSyUtility.susyId; + +public class SimpleBreathingApparatusModel extends ModelBiped { + public SimpleBreathingApparatusModel(String name, EntityEquipmentSlot slot) { + this.textureWidth = 64; + this.textureHeight = 64; + + this.bipedHead.cubeList.clear(); + this.bipedHeadwear.cubeList.clear(); + this.bipedBody.cubeList.clear(); + this.bipedRightArm.cubeList.clear(); + this.bipedLeftArm.cubeList.clear(); + this.bipedLeftLeg.cubeList.clear(); + this.bipedRightLeg.cubeList.clear(); + + addChildren(name, slot); + } + + public void addChildren(String name, EntityEquipmentSlot slot) { + switch (slot) { + case CHEST -> this.bipedBody.addChild(modelForPart(name, "tank")); + case HEAD -> this.bipedHead.addChild(modelForPart(name, "mask")); + } + } + + public ResourceLocation modelLocationFromPart(String armor, String model) { + return susyId("models/armor/" + armor + "_" + model + ".obj"); + } + + public OBJModelRender modelForPart(String armor, String model) { + return new OBJModelRender(this, modelLocationFromPart(armor, model), 17); + } + +} diff --git a/src/main/java/supersymmetry/common/EventHandlers.java b/src/main/java/supersymmetry/common/EventHandlers.java index 5e59ecaa9..27c103b16 100644 --- a/src/main/java/supersymmetry/common/EventHandlers.java +++ b/src/main/java/supersymmetry/common/EventHandlers.java @@ -94,7 +94,7 @@ public static void onWorldTick(TickEvent.WorldTickEvent event) { @SubscribeEvent public static void onPlayerTick(TickEvent.PlayerTickEvent event) { - if (FMLCommonHandler.instance().getMinecraftServerInstance().getTickCounter() % 20 == 0 && event.phase == TickEvent.Phase.START) { + if (event.player.world.getWorldTime() % 20 == 0 && event.phase == TickEvent.Phase.START) { DimensionBreathabilityHandler.tickPlayer(event.player); } } diff --git a/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java b/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java index 6f79fc89c..4d222a6af 100644 --- a/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java +++ b/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java @@ -31,8 +31,6 @@ public class AdvancedBreathingApparatus extends BreathingApparatus implements IT private final String name; private final int tier; private final double relativeAbsorption; - @SideOnly(Side.CLIENT) - private BreathingApparatusModel model; public AdvancedBreathingApparatus(EntityEquipmentSlot slot, double hoursOfLife, String name, int tier, double relativeAbsorption) { super(slot); diff --git a/src/main/java/supersymmetry/common/item/armor/BreathingApparatus.java b/src/main/java/supersymmetry/common/item/armor/BreathingApparatus.java index a534f1fdd..8182b47de 100644 --- a/src/main/java/supersymmetry/common/item/armor/BreathingApparatus.java +++ b/src/main/java/supersymmetry/common/item/armor/BreathingApparatus.java @@ -1,21 +1,35 @@ package supersymmetry.common.item.armor; import gregtech.api.items.metaitem.stats.IItemDurabilityManager; +import net.minecraft.client.model.ModelBiped; import net.minecraft.client.resources.I18n; import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import org.jetbrains.annotations.Nullable; import supersymmetry.api.items.IBreathingArmorLogic; +import supersymmetry.client.renderer.handler.BreathingApparatusModel; +import supersymmetry.client.renderer.handler.ITextureRegistrar; +import supersymmetry.client.renderer.handler.SimpleBreathingApparatusModel; import supersymmetry.common.event.DimensionBreathabilityHandler; import supersymmetry.common.item.SuSyArmorItem; +import java.util.ArrayList; import java.util.List; import static net.minecraft.inventory.EntityEquipmentSlot.CHEST; +import static supersymmetry.api.util.SuSyUtility.susyId; + +public class BreathingApparatus implements IBreathingArmorLogic, IItemDurabilityManager, ITextureRegistrar { + @SideOnly(Side.CLIENT) + protected ModelBiped model; -public class BreathingApparatus implements IBreathingArmorLogic, IItemDurabilityManager { protected final EntityEquipmentSlot SLOT; public BreathingApparatus(EntityEquipmentSlot slot) { @@ -26,12 +40,22 @@ public BreathingApparatus(EntityEquipmentSlot slot) { public EntityEquipmentSlot getEquipmentSlot(ItemStack itemStack) { return SLOT; } - @Override public String getArmorTexture(ItemStack stack, Entity entity, EntityEquipmentSlot slot, String type) { - return "gregtech:textures/armor/gas_mask/not_legs.png"; + return switch (SLOT) { + case HEAD -> "susy:textures/armor/gas_mask.png"; + case CHEST -> "susy:textures/armor/gas_tank.png"; + default -> null; + }; } + @SideOnly(Side.CLIENT) + @Override + public @Nullable ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, EntityEquipmentSlot armorSlot, ModelBiped defaultModel) { + if (model == null) + model = new SimpleBreathingApparatusModel("gas", armorSlot); + return model; + } @Override public boolean mayBreatheWith(ItemStack stack, EntityPlayer player) { if (player.dimension != DimensionBreathabilityHandler.BENEATH_ID) { @@ -105,4 +129,14 @@ void changeOxygen(ItemStack stack, double oxygenChange) { compound.setDouble("oxygen", getOxygen(stack) + oxygenChange); stack.setTagCompound(compound); } + + @Override + public List getTextureLocations() { + List models = new ArrayList<>(); + switch (SLOT) { + case HEAD -> models.add(susyId("armor/gas_mask")); + case CHEST -> models.add(susyId("armor/gas_tank")); + } + return models; + } } From 82ed1dbe4de2e6afb40ac34a581f7287d5247632 Mon Sep 17 00:00:00 2001 From: grema Date: Tue, 7 Jan 2025 11:45:29 +0100 Subject: [PATCH 46/55] feat: fixed gas mask texture --- .../assets/susy/textures/armor/gas_mask.png | Bin 1071 -> 1023 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/main/resources/assets/susy/textures/armor/gas_mask.png b/src/main/resources/assets/susy/textures/armor/gas_mask.png index 0e2d0084329623406c969f526e504ac49bb08b93..ea467df234a48d0966e704e6566d8b967ad4b6d7 100644 GIT binary patch literal 1023 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!7>k44ofy`glX(f`u%tWsIx;Y9 z?C1WI$O@Fx5AX?b)z{NA(APIIG&D9cGBGyR)7910(b3bNPet4`sE9X19r9S5#EAiej_3v$L_W zadLFDv$NCF(*tU=jbnFmaIlDAwy>~padvhDO4-^vByw6tu{b(7*xJ}wT3DEwnVE;N z+Qze6MYC8%u~wmL$&5?QKnpnwJR*x382Ao@Fyrz36)C_7eBtTh7!u+Bc1n8i zAqN46^Gqrtfr7%k0@cn(yJ9znhrHSQ?EinZ%{zHjrwdH-*=Mom;k$3&(&CFwGX&aP z5;0+Q2)-b~@ZWL4rAwD?UF)kpE+E9w*3`1)(LKXgqD%`NILh@H91R4H%;n|?XMHB) z_@kiZafQS~4j^-p;k?I-43cb~$vphaWsta+z42Oe2fL%rnS&RM_!cs)?c7t{DE>#N zxbFnydw=EUSG_f_a zJLub$<-s~NnJsj|{7b1`la{>sawbP_=DV=NmbUq-il&jJ#``zSh>beuu9hAaCd_G= zYGZD}lFZMNm}|RxqvrF^FW0`k(ihdwZuQ`TiNuEcPKo9D{~rX*v$MK)YOYVhC5|bV zIMxMtGrsaae@_2^z_BH!Z=^-^*RS*UHc#I!UjCimNKNuoxUry!zP$IU1tq_yJYM^6 z$%C6FNi0nPHFcG>cdJjQ$lbd?Q%>m`(+P2VyZ!s>>*{}QUlqQV@zuv83J2DhC1<1w zDCBB6tYRtKU~4e*)x%~6uTxu>$*yR8+ZY#ac=aehqgYnAG~-$w{jwiQ3$A`BR9~=k z#m1vf0eMSxmoZgX@I{|t`Sn$L<#%s~`uDsXB2W3Z9^4wqBDiodFd;B_y85}Sb4q9e E0Gx%k&SVlHJMyfmF6^3X7@>y6HRk1^OO+f^@+OOWt);DX|z*sZ?oK z6@gR~gfb&!JmZH&kec-q3iRDmRfT*al+5(bHRK&NZREw1xin!><@z;y-ma^=ol?zQ7-2!ljC;3_Vi zmN2;WAutr)m45`&#FafDss4T#-wAqskBFOltvGB6ZN+oBTo%W1P)gDI&*gGxtpPYX zIwFc9s@1BByFV!gNz5&-t+=IZd3l+7z0UsLUVFhJLZmhIdL4iu2$-6h0^soQu;)W1 z!9^qV(qmm$k!{gp=ZW|L;K*>&x$AJG@jQ>q?-h}NKFjBlR&NVQt+N`|v@bNuG~ zbaqZF$O!&lvwa`#eV!qXmfU`G)K$8)&U@~Eu|pI_ARvH* zjsZl&SXQ--a8>>9b6=dCzAbFO7Pocn>mTmP?td>2+vgw7?{W8^MZz#73_~KVu`G+M zWzl@}oP*lO?YR%W+ULcyAa+1F z+au-5vCWY0`*@z$b397K8o=|sc1s&K9)BfbzX!Bjzt?z_unL7jDnC|!D6D)w-;VLP zq}LjcY96p$*S!?uuIqAga?&*()jVLu#rJK>0qvSTH#;jLf>H_*;rE@Lk*fE-=qiKi z!vAeRJ(-&mId51LXDxarb7q&Zu`#w^z8q Date: Fri, 10 Jan 2025 19:15:44 +0100 Subject: [PATCH 47/55] feat: all remaining env survival textures and models --- .../models/item/metaitems/filtered_tank.json | 6 + .../item/metaitems/rebreather_tank.json | 6 + .../items/metaitems/filtered_tank.png | Bin 0 -> 742 bytes .../items/metaitems/rebreather_tank.png | Bin 0 -> 726 bytes .../susy/models/armor/filtered_chest.mtl | 4 + .../susy/models/armor/filtered_chest.obj | 187 ++++++++++++++++++ .../assets/susy/models/armor/gas_tank.obj | 50 ++--- .../susy/models/armor/rebreather_chest.mtl | 4 + .../susy/models/armor/rebreather_chest.obj | 187 ++++++++++++++++++ .../susy/textures/armor/filtered_chest.png | Bin 0 -> 1324 bytes .../susy/textures/armor/rebreather_chest.png | Bin 0 -> 1351 bytes 11 files changed, 419 insertions(+), 25 deletions(-) create mode 100644 src/main/resources/assets/gregtech/models/item/metaitems/filtered_tank.json create mode 100644 src/main/resources/assets/gregtech/models/item/metaitems/rebreather_tank.json create mode 100644 src/main/resources/assets/gregtech/textures/items/metaitems/filtered_tank.png create mode 100644 src/main/resources/assets/gregtech/textures/items/metaitems/rebreather_tank.png create mode 100644 src/main/resources/assets/susy/models/armor/filtered_chest.mtl create mode 100644 src/main/resources/assets/susy/models/armor/filtered_chest.obj create mode 100644 src/main/resources/assets/susy/models/armor/rebreather_chest.mtl create mode 100644 src/main/resources/assets/susy/models/armor/rebreather_chest.obj create mode 100644 src/main/resources/assets/susy/textures/armor/filtered_chest.png create mode 100644 src/main/resources/assets/susy/textures/armor/rebreather_chest.png diff --git a/src/main/resources/assets/gregtech/models/item/metaitems/filtered_tank.json b/src/main/resources/assets/gregtech/models/item/metaitems/filtered_tank.json new file mode 100644 index 000000000..fe95d00d0 --- /dev/null +++ b/src/main/resources/assets/gregtech/models/item/metaitems/filtered_tank.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gregtech:items/metaitems/filtered_tank" + } +} diff --git a/src/main/resources/assets/gregtech/models/item/metaitems/rebreather_tank.json b/src/main/resources/assets/gregtech/models/item/metaitems/rebreather_tank.json new file mode 100644 index 000000000..fad6e78ad --- /dev/null +++ b/src/main/resources/assets/gregtech/models/item/metaitems/rebreather_tank.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "gregtech:items/metaitems/rebreather_tank" + } +} diff --git a/src/main/resources/assets/gregtech/textures/items/metaitems/filtered_tank.png b/src/main/resources/assets/gregtech/textures/items/metaitems/filtered_tank.png new file mode 100644 index 0000000000000000000000000000000000000000..383844a4603e3fc26ec8a4f861a48ad2cf8edf49 GIT binary patch literal 742 zcmV4Tx04UFukv&MmP!xqvQ$;Bi2P=v=WT;LSL`57+6pLV?v=v%)FnQ@8G-*gu zTpR`0f`dPcRR<1NmzidDMFCB> z&16gxGuc(K=M@3?Foa1A%FHt2sl_xp*4I7VrMipoEc~zf)SSftpGX{KhG`RT5YKMf z2Iqa^5G%?m@j3B?NevP|a$WKGjdQ_efoF!ybaI|JL@XBCSZQNcG&SNG;;^delrLmF zRyl8R*2-1Z?32GRnA2BMT&FdP7?u!60wNStQ9>CuBDCwISV+>j)WJXE`V-_*$W;O( z#{w$QAiI9>KlnXcD?dHuB?Tp*`^9lS#((i|qi@Or1Ghk6&6`{E9H$RJnr5|p0~{Oz z;|0oI@9^&4_PPCe$DJRfAHNxL#nR9eb^rhX32;bRa{vG?A^-p`A_1!6-I4$R0S8G$ zK~y+TV`RVq)YR1eLzxWUzkg?V{P;0ewM4Tx04UFukv&MmP!xqvQ$;Bi2P=v=WT;LSL`57+6pLV?v=v%)FnQ@8G-*gu zTpR`0f`dPcRR<1NmzidDMFCB> z&16gxGuc(K=M@3?Foa1A%FHt2sl_xp*4I7VrMipoEc~zf)SSftpGX{KhG`RT5YKMf z2Iqa^5G%?m@j3B?NevP|a$WKGjdQ_efoF!ybaI|JL@XBCSZQNcG&SNG;;^delrLmF zRyl8R*2-1Z?32GRnA2BMT&FdP7?u!60wNStQ9>CuBDCwISV+>j)WJXE`V-_*$W;O( z#{w$QAiI9>KlnXcD?dHuB?Tp*`^9lS#((i|qi@Or1Ghk6&6`{E9H$RJnr5|p0~{Oz z;|0oI@9^&4_PPCe$DJRfAHNxL#nR9eb^rhX32;bRa{vG?A^-p`A_1!6-I4$R0QX5m zK~y+TrIIlYgD?z5-Hu2M%rJ9>Zk4*T^cuZGZ&CFeJp;!;VgdvkLI@ZscAPXJ2}_@3 zVJG+}c6pz?~nCF?UI}9b6zP86& z#8Z+a;mD+}YfDH4dee|CW=~KQ1$zL~G(poelxviLNqXYt{>ahVwxt;N!Z0LXV)Y=) zvYcIuZSTdd;_w+i@8=bbLnmGVta%(qWj>q&SSL0LyS@ogv-VAu9F~Aj<{BQILjg?o z4UpvT8yJJ6zj4=f(Dyxwxc1~ADSPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1i?u}K~#8N?VC$a z6Hye$FZ4lM3KDSPPFN5k5?`M{rKXJMf4FCIr&6Ytv`owWC5PMT+?l!Ooc}#{rY%j%hoPY%N56E* zuC1xU=BC;#6t-Hj0=-^aUst(YPWReketzEf8oS}*g$thXb@%kBY&NSR;joIw<7#1H zLGSsOrluyaiHu^UE5M;%-sx3R(79S07mby@~d;IJZLX$C*Of9F={?CRoR`3`RI+&R7g zf`9|M47^yN4JuLtis7uoahf7!1%Qi)VR@>cd5X5QdyP0Gh;wqYQ@lSx(>G4VS?WZ2 z3Lry~L5sO&+Fm0LisSAbtKRR2Zvb$|1Vi@Ga^?-&Yur0KtoJlNiiF;?g#@Idvy)AN zg;fhRqHG0-1x*21`y~i4z5x>32B-vqlKz#|fB-4L92*qM873#u0yxZ$q9sdE*5j0Y zzHcZe0DOl<2f}btJnjZb0dR`5O5=p1#WjF~gMH|y`CR3oRaykGt3Sn<0bHhs{t4p84>kw%h=eM$LEGoK&3QX0OS)YvEPe}Z1j}CR?NOv zfW>05SS%Kc#bU8oEEbE!VhIMly}j^LS--mA9{?Qac`V{n|C|kN@5R imo8s!j8&j9QR**lMDQNUlQU%i0000r)Z=A literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/susy/textures/armor/rebreather_chest.png b/src/main/resources/assets/susy/textures/armor/rebreather_chest.png new file mode 100644 index 0000000000000000000000000000000000000000..3d76ce70055643784ac03045d65f93dd256fd863 GIT binary patch literal 1351 zcmV-N1-SZ&P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1l&nPK~#8N?VC$$ zTSpYf=jvrimL21C9~o?nY|*-b6p~fC3nrU>07JTJp#%cnIQjr7q%}CiC0`_D+pHRB zAkm^07#kW$(p6JO@$1D zOh#}0NBQtj)#`Osuhp6@S&g<2kB(HOQqjGdY;SKndb1~dd+S!q_|r2ps$4FsXe6Q% ziGcVFnu7B+IY@`hl1^Z!rtq9jX1;tP%B7UMCcd0J8m3NfnDlRsHZm9apO?8Vl!*nAhCM zlSwADBXk}aAdYB*+hU+a7z2(zjn}sZm>D3opdENo@AbVVPK9nPnRHVf(@@eIAnl_x z_q{~uSY&KWIjeW>G|Vy$<;?w;`8*~!Z}VUJN2xZB9UL5}FS6N|>wn(ZFn2#WYinyf z{>t$&?@wL0ppIx2K!L+Dh@~0)_4X~d!t}+9ESB%!mT%l>3WUyN=}VXRxUl)?QBNK8 zBbUo@wjXN&CaLb20vymi3#e!zkiqaH7LRk=%##lA9HZ2dxwf~rr}o~zciW&MHNXo; z9gfo!Ig#Mv@{3`GVl=9+2ejW{Td zW0_{t=l$>%0C!9*0dNq=^l@? ze2djD4n-rZ?c2k#3JfPo{R_Pg6fcZ>my-Yh002ov JPDHLkV1mqWd(Hp= literal 0 HcmV?d00001 From 36047e35e533211514381d3c5567ded1590a6bc5 Mon Sep 17 00:00:00 2001 From: grema Date: Fri, 10 Jan 2025 19:51:53 +0100 Subject: [PATCH 48/55] feat: update gas mask texture to fit the player model better --- .../assets/susy/models/armor/gas_mask.obj | 64 +++++++++--------- .../assets/susy/textures/armor/gas_mask.png | Bin 1023 -> 1054 bytes 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/src/main/resources/assets/susy/models/armor/gas_mask.obj b/src/main/resources/assets/susy/models/armor/gas_mask.obj index 5801a5d33..207e5dd09 100644 --- a/src/main/resources/assets/susy/models/armor/gas_mask.obj +++ b/src/main/resources/assets/susy/models/armor/gas_mask.obj @@ -2,14 +2,14 @@ mtllib gas_mask.mtl o helmet -v -0.31249999999999994 0.5625 0.31250000000000006 -v 0.31250000000000006 0.5625 0.31249999999999994 -v -0.31249999999999994 -0.0625 0.31250000000000006 -v 0.31250000000000006 -0.0625 0.31249999999999994 -v 0.31249999999999994 0.5625 -0.31250000000000006 -v -0.31250000000000006 0.5625 -0.31249999999999994 -v 0.31249999999999994 -0.0625 -0.31250000000000006 -v -0.31250000000000006 -0.0625 -0.31249999999999994 +v -0.30624999999999997 0.55625 0.3062500000000001 +v 0.3062500000000001 0.55625 0.30624999999999997 +v -0.30624999999999997 -0.05625000000000002 0.3062500000000001 +v 0.3062500000000001 -0.05625000000000002 0.30624999999999997 +v 0.30624999999999997 0.55625 -0.3062500000000001 +v -0.3062500000000001 0.55625 -0.30624999999999997 +v 0.30624999999999997 -0.05625000000000002 -0.3062500000000001 +v -0.3062500000000001 -0.05625000000000002 -0.30624999999999997 vt 0.25 0.75 vt 0.5 0.75 vt 0.5 0.5 @@ -48,14 +48,14 @@ f 7/16/4 8/15/4 6/14/4 5/13/4 f 6/20/5 1/19/5 2/18/5 5/17/5 f 7/24/6 4/23/6 3/22/6 8/21/6 o helmet -v 0.25 0.1875 0.062499999999999944 -v 0.375 0.1875 0.06249999999999992 -v 0.25 0.0625 0.062499999999999944 -v 0.375 0.0625 0.06249999999999992 -v 0.375 0.1875 -0.06250000000000008 -v 0.25 0.1875 -0.06250000000000006 -v 0.375 0.0625 -0.06250000000000008 -v 0.25 0.0625 -0.06250000000000006 +v 0.25 0.125 0.062499999999999944 +v 0.375 0.125 0.06249999999999992 +v 0.25 0 0.062499999999999944 +v 0.375 0 0.06249999999999992 +v 0.375 0.125 -0.06250000000000008 +v 0.25 0.125 -0.06250000000000006 +v 0.375 0 -0.06250000000000008 +v 0.25 0 -0.06250000000000006 vt 0.0625 0.4375 vt 0.125 0.4375 vt 0.125 0.375 @@ -94,14 +94,14 @@ f 15/40/10 16/39/10 14/38/10 13/37/10 f 14/44/11 9/43/11 10/42/11 13/41/11 f 15/48/12 12/47/12 11/46/12 16/45/12 o cube -v 0.28125000000000006 0.1875 0.24999999999999994 -v 0.34375000000000006 0.1875 0.24999999999999992 -v 0.28125000000000006 0.125 0.24999999999999994 -v 0.34375000000000006 0.125 0.24999999999999992 -v 0.34375000000000006 0.1875 0.18749999999999992 -v 0.28125000000000006 0.1875 0.18749999999999994 -v 0.34375000000000006 0.125 0.18749999999999992 -v 0.28125000000000006 0.125 0.18749999999999994 +v 0.28124999999999994 0.125 -0.18750000000000008 +v 0.34374999999999994 0.125 -0.1875000000000001 +v 0.28124999999999994 0.0625 -0.18750000000000008 +v 0.34374999999999994 0.0625 -0.1875000000000001 +v 0.34374999999999994 0.125 -0.2500000000000001 +v 0.28124999999999994 0.125 -0.2500000000000001 +v 0.34374999999999994 0.0625 -0.2500000000000001 +v 0.28124999999999994 0.0625 -0.2500000000000001 vt 0.03125 0.34375 vt 0.0625 0.34375 vt 0.0625 0.3125 @@ -140,14 +140,14 @@ f 23/64/16 24/63/16 22/62/16 21/61/16 f 22/68/17 17/67/17 18/66/17 21/65/17 f 23/72/18 20/71/18 19/70/18 24/69/18 o cube -v 0.28124999999999994 0.1875 -0.18750000000000008 -v 0.34374999999999994 0.1875 -0.1875000000000001 -v 0.28124999999999994 0.125 -0.18750000000000008 -v 0.34374999999999994 0.125 -0.1875000000000001 -v 0.34374999999999994 0.1875 -0.2500000000000001 -v 0.28124999999999994 0.1875 -0.2500000000000001 -v 0.34374999999999994 0.125 -0.2500000000000001 -v 0.28124999999999994 0.125 -0.2500000000000001 +v 0.28125000000000006 0.125 0.24999999999999994 +v 0.34375000000000006 0.125 0.24999999999999992 +v 0.28125000000000006 0.0625 0.24999999999999994 +v 0.34375000000000006 0.0625 0.24999999999999992 +v 0.34375000000000006 0.125 0.18749999999999992 +v 0.28125000000000006 0.125 0.18749999999999994 +v 0.34375000000000006 0.0625 0.18749999999999992 +v 0.28125000000000006 0.0625 0.18749999999999994 vt 0.03125 0.34375 vt 0.0625 0.34375 vt 0.0625 0.3125 diff --git a/src/main/resources/assets/susy/textures/armor/gas_mask.png b/src/main/resources/assets/susy/textures/armor/gas_mask.png index ea467df234a48d0966e704e6566d8b967ad4b6d7..e4fd2fef55f8d2c023dbf1abd2d16ff2707b8acf 100644 GIT binary patch delta 553 zcmV+^0@nTi2c8J90Rn#l2T4RhR9HvtlzUU!KoG!BDv*FEN-?S7p;apsl|E6cw$@ig zMMYZr@U8j&pP{##B?;U?nlSv+;Wx=;Z+G^0WSI#w`(!8>3V@+tC;zNkf^xoKYAmiOD%^juIOTl7#uBQcjKQ5y zDd&s+UjY{C??Zqyi1#5##1yzO;}c7OLsWwcM8+qQlN5R&3Z_!e&2(Csp3qEP*D2W@ zLGWV6$YgWL{OsJzaozAX2!eTI!C1_`S}G_-ornGfuMNW}Ew8MW)7dE=zM*tiNT2~2 zy?yt-^xs+pRb0a$)fL1FK1^hSM z-rYYuK0T?|xRrosTP1ObxH^l}ph3Qiz*${k2hfcdr$ayox&;ygPeB?h!VC~BNjfFS zhA1q(7=Qp;>|WUf+7V~a>T^sz8H9iu@exE|b=nUv1|qP!;R+_OT1n$c7lA!WPox4k roNiBKg4QAH|4aX%1g;N8Z%p$qG*+>_%2U)E00000NkvXXu0mjfF>e4d delta 522 zcmV+l0`>i#2>%DL0Rn#k=t)FDR9HvtlxI`IKoCIB0wfes5fcp%dqc&FU9neG?7imy z{|2+U4JDTll1#ohyy5Ql_GVvl%K%Y4(iAiWKvU2Z0RKUt($dn}){c9}5E2N6f`qi< z-ZAPG0--<%cP;=yFc8F@3kX*Q<{UxzaD?M{7~u%!96_Qnp5uR_Fk(FB9O3;6Fk!t1 zf!2eF2SF^%!O$`ep#rUmynBHc{1SA;JG(HnffaNodX!|6>x~PFD2kZ0h7t7jOR03G zQyv%`>JTM+0}2E{i-x5UX*4}HKEX|jYDfi@V+K{ApVDPYlBDeP%xo^1?pDJ&J#Qr; zHCc5tzp$8HTF!q*CTCVw6A3Y8JU2K5V-EyjZ9TiODd+R)t?kr~T8{@h;LtP}u-`&q zcW?jTP@X>Cs>udYu^H)ppOclQr6CK<|C zGZ7RoA4{sBbo-R!t^TCo*)(DVf>3;Zd41h`%VZwj-fwU`O3JmS9jJlrfnHZJ)x{417HW$d0j(@A zcK9No)$nmAprxp>#X?YSr7flccsLGQ%mn)N8>#n8K!5KI2o&WHwZXMn1QDU500000 MNkvXXu0jG}f=wUh_5c6? From 3c47056ce3601ec27266e7be4e0257c15945e211 Mon Sep 17 00:00:00 2001 From: grema Date: Fri, 10 Jan 2025 20:31:29 +0100 Subject: [PATCH 49/55] feat: minor model and texture fixes fix reflective suit helmet model fix nomex helmet texture --- .../susy/models/armor/reflective_head.mtl | 2 +- .../susy/models/armor/reflective_head.obj | 70 +++++++++--------- .../assets/susy/textures/armor/nomex_head.png | Bin 7095 -> 4987 bytes .../susy/textures/armor/reflective_head.png | Bin 3943 -> 4044 bytes 4 files changed, 36 insertions(+), 36 deletions(-) diff --git a/src/main/resources/assets/susy/models/armor/reflective_head.mtl b/src/main/resources/assets/susy/models/armor/reflective_head.mtl index 52c4c2305..b020fc677 100644 --- a/src/main/resources/assets/susy/models/armor/reflective_head.mtl +++ b/src/main/resources/assets/susy/models/armor/reflective_head.mtl @@ -1,4 +1,4 @@ # Made in Blockbench 4.11.2 -newmtl m_0b49210a-e3e0-55ba-f8b9-fe442d8e7b01 +newmtl m_5c3c02f8-f238-3eb0-5623-00981b48a737 map_Kd susy:armor/reflective_head newmtl none diff --git a/src/main/resources/assets/susy/models/armor/reflective_head.obj b/src/main/resources/assets/susy/models/armor/reflective_head.obj index 8cded184a..55de778dc 100644 --- a/src/main/resources/assets/susy/models/armor/reflective_head.obj +++ b/src/main/resources/assets/susy/models/armor/reflective_head.obj @@ -40,53 +40,53 @@ vn -1 0 2.220446049250313e-16 vn -2.220446049250313e-16 0 -1 vn 0 1 0 vn 0 -1 0 -usemtl m_0b49210a-e3e0-55ba-f8b9-fe442d8e7b01 +usemtl m_5c3c02f8-f238-3eb0-5623-00981b48a737 f 4/4/1 7/3/1 5/2/1 2/1/1 f 3/8/2 4/7/2 2/6/2 1/5/2 f 8/12/3 3/11/3 1/10/3 6/9/3 f 7/16/4 8/15/4 6/14/4 5/13/4 f 6/20/5 1/19/5 2/18/5 5/17/5 f 7/24/6 4/23/6 3/22/6 8/21/6 -o cube -v -0.34374999999999994 0.03125 0.34375000000000006 -v 0.34375000000000006 0.03125 0.34374999999999994 -v -0.34374999999999994 -0.15625 0.34375000000000006 -v 0.34375000000000006 -0.15625 0.34374999999999994 -v 0.3437499999999999 0.03125 -0.3437500000000001 -v -0.3437500000000001 0.03125 -0.3437499999999999 -v 0.3437499999999999 -0.15625 -0.3437500000000001 -v -0.3437500000000001 -0.15625 -0.3437499999999999 -vt 0 0.0625 -vt 0.3125 0.0625 -vt 0.3125 0 -vt 0 0 -vt 0 0.0625 -vt 0.3125 0.0625 -vt 0.3125 0 -vt 0 0 -vt 0 0.0625 -vt 0.3125 0.0625 -vt 0.3125 0 -vt 0 0 -vt 0 0.0625 -vt 0.3125 0.0625 -vt 0.3125 0 -vt 0 0 -vt 0.3125 0.1875 -vt 0 0.1875 -vt 0 0.5 -vt 0.3125 0.5 -vt 0.3125 0.5 -vt 0 0.5 -vt 0 0.1875 -vt 0.3125 0.1875 +o helmet +v 0.25 0.125 0.062499999999999944 +v 0.375 0.125 0.06249999999999992 +v 0.25 0 0.062499999999999944 +v 0.375 0 0.06249999999999992 +v 0.375 0.125 -0.06250000000000008 +v 0.25 0.125 -0.06250000000000006 +v 0.375 0 -0.06250000000000008 +v 0.25 0 -0.06250000000000006 +vt 0.0625 0.4375 +vt 0.125 0.4375 +vt 0.125 0.375 +vt 0.0625 0.375 +vt 0 0.4375 +vt 0.0625 0.4375 +vt 0.0625 0.375 +vt 0 0.375 +vt 0.1875 0.4375 +vt 0.25 0.4375 +vt 0.25 0.375 +vt 0.1875 0.375 +vt 0.125 0.4375 +vt 0.1875 0.4375 +vt 0.1875 0.375 +vt 0.125 0.375 +vt 0.125 0.4375 +vt 0.0625 0.4375 +vt 0.0625 0.5 +vt 0.125 0.5 +vt 0.1875 0.5 +vt 0.125 0.5 +vt 0.125 0.4375 +vt 0.1875 0.4375 vn 1 0 -2.220446049250313e-16 vn 2.220446049250313e-16 0 1 vn -1 0 2.220446049250313e-16 vn -2.220446049250313e-16 0 -1 vn 0 1 0 vn 0 -1 0 -usemtl m_0b49210a-e3e0-55ba-f8b9-fe442d8e7b01 +usemtl m_5c3c02f8-f238-3eb0-5623-00981b48a737 f 12/28/7 15/27/7 13/26/7 10/25/7 f 11/32/8 12/31/8 10/30/8 9/29/8 f 16/36/9 11/35/9 9/34/9 14/33/9 diff --git a/src/main/resources/assets/susy/textures/armor/nomex_head.png b/src/main/resources/assets/susy/textures/armor/nomex_head.png index 23e17c699279e6f8e086a15e53e3e62f66e891f1..946fbf94981c7e5cc769ec2e4d6b75401c051882 100644 GIT binary patch delta 4035 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 bvk5enME<%f+$|et-$Q_*o+-Lc$0_b#?FKx4 literal 7095 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 diff --git a/src/main/resources/assets/susy/textures/armor/reflective_head.png b/src/main/resources/assets/susy/textures/armor/reflective_head.png index a93c70e5ca99cd772888a44f4b040931bef7a066..22b36994e2c9c006f7530648fdfa22c3eef64332 100644 GIT binary patch delta 3997 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 DE$+`3 delta 3895 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 FV1gOUmJI*^ From d7a7b4d61752c8e18f6911b6b3f14d19aa3fcbf6 Mon Sep 17 00:00:00 2001 From: grema Date: Fri, 10 Jan 2025 20:51:38 +0100 Subject: [PATCH 50/55] feat: fixed z-fighting nomex no longer has to be resized in code --- .../susy/models/armor/nomex_left_leg.obj | 58 +++++++++---------- .../susy/models/armor/nomex_right_leg.obj | 16 ++--- 2 files changed, 37 insertions(+), 37 deletions(-) diff --git a/src/main/resources/assets/susy/models/armor/nomex_left_leg.obj b/src/main/resources/assets/susy/models/armor/nomex_left_leg.obj index 6f06f7b53..48beffb05 100644 --- a/src/main/resources/assets/susy/models/armor/nomex_left_leg.obj +++ b/src/main/resources/assets/susy/models/armor/nomex_left_leg.obj @@ -2,48 +2,48 @@ mtllib nomex_left_leg.mtl o leggings_left -v 0.15625 0.15625 -0.16249999999999998 -v -0.15625 0.15625 -0.16250000000000003 -v 0.15625 -0.5625 -0.16249999999999998 -v -0.15625 -0.5625 -0.16250000000000003 -v 0.15624999999999994 0.15625 0.15000000000000008 -v -0.15625000000000006 0.15625 0.14999999999999997 -v 0.15624999999999994 -0.5625 0.15000000000000008 -v -0.15625000000000006 -0.5625 0.14999999999999997 -vt 0.25 0.5625 +v 0.15 0.15000000000000002 -0.15624999999999997 +v -0.15000000000000002 0.15000000000000002 -0.15625000000000003 +v 0.15 -0.55625 -0.15624999999999997 +v -0.15000000000000002 -0.55625 -0.15625000000000003 +v -0.15000000000000008 0.15000000000000002 0.14374999999999993 +v 0.14999999999999994 0.15000000000000002 0.14375000000000004 +v -0.15000000000000008 -0.55625 0.14374999999999993 +v 0.14999999999999994 -0.55625 0.14375000000000004 vt 0.25 0.875 -vt 0.375 0.875 -vt 0.375 0.5625 -vt 0 0.5625 -vt 0 0.875 vt 0.125 0.875 vt 0.125 0.5625 -vt 0.25 1 -vt 0.25 0.875 -vt 0.125 0.875 -vt 0.125 1 +vt 0.25 0.5625 vt 0.375 0.875 -vt 0.375 1 -vt 0.25 1 vt 0.25 0.875 +vt 0.25 0.5625 vt 0.375 0.5625 -vt 0.375 0.875 vt 0.5 0.875 +vt 0.375 0.875 +vt 0.375 0.5625 vt 0.5 0.5625 +vt 0.125 0.875 +vt 0 0.875 +vt 0 0.5625 vt 0.125 0.5625 vt 0.125 0.875 vt 0.25 0.875 -vt 0.25 0.5625 +vt 0.25 1 +vt 0.125 1 +vt 0.25 1 +vt 0.375 1 +vt 0.375 0.875 +vt 0.25 0.875 +vn -1 0 -2.220446049250313e-16 vn 2.220446049250313e-16 0 -1 +vn 1 0 2.220446049250313e-16 vn -2.220446049250313e-16 0 1 vn 0 1 0 vn 0 -1 0 -vn 1 0 2.220446049250313e-16 -vn -1 0 -2.220446049250313e-16 usemtl m_02a51ee3-f5c1-cd12-65bc-c058bc31a5c6 -f 4/1/1 2/2/1 1/3/1 3/4/1 -f 7/5/2 5/6/2 6/7/2 8/8/2 -f 1/9/3 2/10/3 6/11/3 5/12/3 -f 4/13/4 3/14/4 7/15/4 8/16/4 -f 3/17/5 1/18/5 5/19/5 7/20/5 -f 8/21/6 6/22/6 2/23/6 4/24/6 \ No newline at end of file +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 \ No newline at end of file diff --git a/src/main/resources/assets/susy/models/armor/nomex_right_leg.obj b/src/main/resources/assets/susy/models/armor/nomex_right_leg.obj index 1099cf001..091041c99 100644 --- a/src/main/resources/assets/susy/models/armor/nomex_right_leg.obj +++ b/src/main/resources/assets/susy/models/armor/nomex_right_leg.obj @@ -2,14 +2,14 @@ mtllib nomex_right_leg.mtl o leggings_right -v 0.15625000000000006 0.15625 -0.14999999999999997 -v -0.15624999999999994 0.15625 -0.15000000000000008 -v 0.15625000000000006 -0.5625 -0.14999999999999997 -v -0.15624999999999994 -0.5625 -0.15000000000000008 -v -0.15625 0.15625 0.16249999999999998 -v 0.15625 0.15625 0.16250000000000003 -v -0.15625 -0.5625 0.16249999999999998 -v 0.15625 -0.5625 0.16250000000000003 +v 0.15000000000000008 0.15000000000000002 -0.14374999999999993 +v -0.14999999999999994 0.15000000000000002 -0.14375000000000004 +v 0.15000000000000008 -0.55625 -0.14374999999999993 +v -0.14999999999999994 -0.55625 -0.14375000000000004 +v -0.15 0.15000000000000002 0.15624999999999997 +v 0.15000000000000002 0.15000000000000002 0.15625000000000003 +v -0.15 -0.55625 0.15624999999999997 +v 0.15000000000000002 -0.55625 0.15625000000000003 vt 0.125 0.875 vt 0.25 0.875 vt 0.25 0.5625 From 8501a23b86bb4e63cc5a69e68d3f5a6e9a2cf745 Mon Sep 17 00:00:00 2001 From: grema Date: Sat, 11 Jan 2025 13:00:57 +0100 Subject: [PATCH 51/55] feat: updated rebreather and filtered tanks textures/models --- .../susy/models/armor/rebreather_chest.obj | 112 ++++++++++++------ .../susy/textures/armor/filtered_chest.png | Bin 1324 -> 1922 bytes .../susy/textures/armor/rebreather_chest.png | Bin 1351 -> 2101 bytes 3 files changed, 79 insertions(+), 33 deletions(-) diff --git a/src/main/resources/assets/susy/models/armor/rebreather_chest.obj b/src/main/resources/assets/susy/models/armor/rebreather_chest.obj index e3fb53468..92e5d8d08 100644 --- a/src/main/resources/assets/susy/models/armor/rebreather_chest.obj +++ b/src/main/resources/assets/susy/models/armor/rebreather_chest.obj @@ -48,38 +48,38 @@ f 7/16/4 8/15/4 6/14/4 5/13/4 f 6/20/5 1/19/5 2/18/5 5/17/5 f 7/24/6 4/23/6 3/22/6 8/21/6 o cube -v -0.1875 0.0625 0.125 -v -0.1875 0.0625 -0.125 -v -0.1875 -0.1875 0.125 -v -0.1875 -0.1875 -0.125 -v -0.3125 0.0625 -0.125 -v -0.3125 0.0625 0.125 -v -0.3125 -0.1875 -0.125 -v -0.3125 -0.1875 0.125 -vt 0.125 0.125 -vt 0.1875 0.125 -vt 0.1875 0 -vt 0.125 0 -vt 0 0.125 -vt 0.125 0.125 -vt 0.125 0 -vt 0 0 -vt 0.3125 0.125 -vt 0.375 0.125 -vt 0.375 0 -vt 0.3125 0 -vt 0.1875 0.125 -vt 0.3125 0.125 -vt 0.3125 0 -vt 0.1875 0 -vt 0.1875 0.125 -vt 0.125 0.125 -vt 0.125 0.25 -vt 0.1875 0.25 -vt 0.25 0.25 -vt 0.1875 0.25 -vt 0.1875 0.125 -vt 0.25 0.125 +v -0.125 -0.1875 0.046875 +v -0.125 -0.1875 -0.046875 +v -0.125 -0.375 0.046875 +v -0.125 -0.375 -0.046875 +v -0.25 -0.1875 -0.046875 +v -0.25 -0.1875 0.046875 +v -0.25 -0.375 -0.046875 +v -0.25 -0.375 0.046875 +vt 0.59375 0.09375 +vt 0.65625 0.09375 +vt 0.65625 0 +vt 0.59375 0 +vt 0.5625 0.09375 +vt 0.59375 0.09375 +vt 0.59375 0 +vt 0.5625 0 +vt 0.6875 0.09375 +vt 0.75 0.09375 +vt 0.75 0 +vt 0.6875 0 +vt 0.65625 0.09375 +vt 0.6875 0.09375 +vt 0.6875 0 +vt 0.65625 0 +vt 0.65625 0.09375 +vt 0.59375 0.09375 +vt 0.59375 0.125 +vt 0.65625 0.125 +vt 0.71875 0.125 +vt 0.65625 0.125 +vt 0.65625 0.09375 +vt 0.71875 0.09375 vn 0 0 -1 vn 1 0 0 vn 0 0 1 @@ -184,4 +184,50 @@ f 27/80/20 28/79/20 26/78/20 25/77/20 f 32/84/21 27/83/21 25/82/21 30/81/21 f 31/88/22 32/87/22 30/86/22 29/85/22 f 30/92/23 25/91/23 26/90/23 29/89/23 -f 31/96/24 28/95/24 27/94/24 32/93/24 \ No newline at end of file +f 31/96/24 28/95/24 27/94/24 32/93/24 +o cube +v -0.1875 0.0625 0.125 +v -0.1875 0.0625 -0.125 +v -0.1875 -0.1875 0.125 +v -0.1875 -0.1875 -0.125 +v -0.3125 0.0625 -0.125 +v -0.3125 0.0625 0.125 +v -0.3125 -0.1875 -0.125 +v -0.3125 -0.1875 0.125 +vt 0.125 0.125 +vt 0.1875 0.125 +vt 0.1875 0 +vt 0.125 0 +vt 0 0.125 +vt 0.125 0.125 +vt 0.125 0 +vt 0 0 +vt 0.3125 0.125 +vt 0.375 0.125 +vt 0.375 0 +vt 0.3125 0 +vt 0.1875 0.125 +vt 0.3125 0.125 +vt 0.3125 0 +vt 0.1875 0 +vt 0.1875 0.125 +vt 0.125 0.125 +vt 0.125 0.25 +vt 0.1875 0.25 +vt 0.25 0.25 +vt 0.1875 0.25 +vt 0.1875 0.125 +vt 0.25 0.125 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_bed269e0-45da-5958-8060-a9d7dab456cd +f 36/100/25 39/99/25 37/98/25 34/97/25 +f 35/104/26 36/103/26 34/102/26 33/101/26 +f 40/108/27 35/107/27 33/106/27 38/105/27 +f 39/112/28 40/111/28 38/110/28 37/109/28 +f 38/116/29 33/115/29 34/114/29 37/113/29 +f 39/120/30 36/119/30 35/118/30 40/117/30 \ No newline at end of file diff --git a/src/main/resources/assets/susy/textures/armor/filtered_chest.png b/src/main/resources/assets/susy/textures/armor/filtered_chest.png index bded9ff34800277f5963d6661999bea190559313..dfef285b08c1e7b31a4fe85411abdaf3c3cdfd6a 100644 GIT binary patch delta 1870 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 diff --git a/src/main/resources/assets/susy/textures/armor/rebreather_chest.png b/src/main/resources/assets/susy/textures/armor/rebreather_chest.png index 3d76ce70055643784ac03045d65f93dd256fd863..8e9b938ff7c1232b9c0710289afecdc509b6e416 100644 GIT binary patch delta 2038 zcmV3#Kt`HG5q^4kt)(5MC z8nhCqeG9eN&_WT!ylDOa3$}vPiVu0Hr4RL^ASS^+Nkyd6Ds2cF5%U%ml$w~Bm=BXo z&+qI#)4Q`DGy9?0#Qnk9Gk50RJNI|ax#!N;S}Rwsv{e$UT7R`lZ~c$)u`x9>JF8}A zW+IwohPKC^KUWhI6S`IeckkY{^rkO-zISiZ@tCkIOWAgG_3-lLYJ7ZL1q%yRX=$mt zckiA)5(~7q)~;P^gMdg;QIWF^sjI8wiYA)BJp8xbjKcBuuik?;+xPYLrDT9F_U*HA zJ{VL8@<6rlet)Vr>mn`)hr?`u!eCI9kpcSq`;)d0RD?n*nUHlHGT4SBLO~!9(>_(e z0T2)>TXh>iuQYzhEsVs+2gH)w@($%Mn=@|@NmR) zhRFV@7cbQ0)D)A3fLu^Wl4f9xdYoSEy(2(8Pa=^3fbdVh{mHpNwgXv+0D^(Z4LqrQ`ivUrEF(B+dO0A6BETFQB9uK$B%uKiW}?s}xIro<@AGwo9|Q0e7Bz&RQ{3+6 zQUrh$dzHosqV62P#=$Yv({)UVo-p$e-+vxG%3S3p4N*BxP6BawTGoAB4T3E8b99iA z5GkG!kn1qL2~SG|fFK~#!^sn(b^Up7fDqjWKxC!j9H0f@djY*dfUs!ff)ctHnD+*N zpCRJam>dAoIOfU$5+U>600Qg7!X)A@vrF0eGbXDVhJ;!+%T| z9#4R1b1eY0wY5p~$HlQ@$D%kdmesBnS5oS&rAwXX{dmBECp^H# zix)F`rojeCrxWr18%vg0h=7*X)|C4YIm-Mo3zdVk$Ij)2O_$|&N{ot>Q-k3T1#2jH7M`F{k5HI)(K z8`iJ4|GII*!oy64m`QXNkTVZNoCwf*WO!Kpas4{yfZ>r5o(`M?=$QHLFH_`%0p#;L zQ}8$&U$Nf0ecM7b$kfO-tcHdL?iJ6^1lYcI?OImz!^VvpZOQb2xou+c;>Ao9UN>_< zRaF%~;=b?t*r~U-H=}XJZGVixLTAeeUj1#^vITCBgum8!3ysQ{1|M$NV3&tNoczo; zJQprp$as8lr+^Gp2A&CgktfKBM90kmT6j4m{pp@P8ILc}+}s?ulWZ8lllCw&H;eClWZhHOANqCMr-rp!iz*A#A~;8>sDeH32}hW=`L$MHh(r2l>=&OYMd#+ zpY4&xJHKDfoXN-v0i4Y3fsc3XvUic7LOPM)CJ*8Wb@a_^KD0hpOj+xg>j2spg)Dd< zi0K97`BeIZUESS|0sKaRS=a6L%a-^0(Tum75V}3c;o@`xrTA&w=u?GTf)D@qdXoxhyCx`B$x3z1sOa zy`jFIb?>cP?Aa?o?K` z%FL|ucOgbW;BRmIxq^@HY-+N_5WoBI{9M9!5)|?R5H`hxyY9S3OG}Fl(M8`#x819T z?+93^@H7CDmL#rJkZ!wIjn_T`Jd>4snLOOyp0v$3M~-lPS>`fbrd~E)^9WGtKMi?Q UfXst_=Kufz07*qoM6N<$g5uKQ#{d8T delta 1282 zcmV+d1^xQ95XTCTReuEBNklaHtx`7muRk{l% zn|=U8x@w^W0^T_K04bz3IK(AiBxKvH8fYNVq81n%8c5PrQ%CYcvVx?Z|IwV=(Y2-P zsF8dn%@2;}KIY1E{^!h@d-ZVU=jR)$1DQ-lZ~aI4@KDw2b$?Z_)tW6?jkXVuj#Q;m z(Y=~%Z*Mz#vnPCe>sHJ7(=#)wTrR6Y@` zhl1^Z!rtq9jX1;tP%B7UMCcd0J8m3NfnDlRsHZm9apO?8Vl!*nAhCMlSwADBY$)r86b{mgWF=DMHmB)K8@G6 z2ACNjwV)k%QSbG=CQgNJESYpu9n(FoIS?a{uGJp(41})~AY3GeND1VM)nP$`H{qPk4cT6xuA1z1Tu=B>f zv%`8%<0B>XnIfj=%@Rb z)_*!-29Tfb-)CRtAq`nsrXay_L|WE;+zrB69OvvHk&r3A84z^LXd=>*0dNq=^l| z-7<6nj8SDb?Voq=*yt&N&CAGVfW>05SS%Kc#bOB-b8~al?0XVU3YpU?k%^=jZg zZucGV%E}5m`{wm)-XBjU)mEXP%9YP}Ur5CNR*MS@?$^^l&t|!Ou(=s%QMz6QCMTy_ zY*6uy&ezwka|R&tkDol@{$J7!N_(x&zmRhYhhE^v6@32Y@^V8m;n$~6ha&^Tc>xZa zX5#HT(4YoL9rzf!y{_K`_D-;0_zJL)$*_Ga-CoykMm__4i`6d=AM!jd?eFvc-CVBY sH9y|F$Nll^E%3wb+rzO63@1wc3%w2$FN}MalK=n!07*qoM6N<$g5?2lMF0Q* From 89e4f4804aba39df41eb48a66a9707ffb9827fec Mon Sep 17 00:00:00 2001 From: bruberu <80226372+bruberu@users.noreply.github.com> Date: Sat, 11 Jan 2025 18:22:51 -0600 Subject: [PATCH 52/55] fix: getTotalWorldTime --- src/main/java/supersymmetry/common/EventHandlers.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/supersymmetry/common/EventHandlers.java b/src/main/java/supersymmetry/common/EventHandlers.java index 27c103b16..efe7ca443 100644 --- a/src/main/java/supersymmetry/common/EventHandlers.java +++ b/src/main/java/supersymmetry/common/EventHandlers.java @@ -24,6 +24,7 @@ import net.minecraftforge.fml.common.gameevent.PlayerEvent; import net.minecraftforge.fml.common.gameevent.TickEvent; import supersymmetry.Supersymmetry; +import supersymmetry.api.SusyLog; import supersymmetry.common.entities.EntityDropPod; import supersymmetry.common.event.DimensionBreathabilityHandler; import supersymmetry.common.event.MobHordePlayerData; @@ -94,7 +95,7 @@ public static void onWorldTick(TickEvent.WorldTickEvent event) { @SubscribeEvent public static void onPlayerTick(TickEvent.PlayerTickEvent event) { - if (event.player.world.getWorldTime() % 20 == 0 && event.phase == TickEvent.Phase.START) { + if (event.player.world.getTotalWorldTime() % 20 == 0 && event.phase == TickEvent.Phase.START) { DimensionBreathabilityHandler.tickPlayer(event.player); } } From 8bde6d6d80a8e0612714c74c271166e3e9696a79 Mon Sep 17 00:00:00 2001 From: bruberu <80226372+bruberu@users.noreply.github.com> Date: Sat, 11 Jan 2025 18:36:00 -0600 Subject: [PATCH 53/55] fix: oxygen logic --- .../common/item/armor/AdvancedBreathingApparatus.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java b/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java index 4d222a6af..dc391e33b 100644 --- a/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java +++ b/src/main/java/supersymmetry/common/item/armor/AdvancedBreathingApparatus.java @@ -65,11 +65,6 @@ public double tryTick(ItemStack stack, EntityPlayer player) { ItemStack chest = player.getItemStackFromSlot(CHEST); if (chest.getItem() instanceof SuSyArmorItem item) { if (item.getItem(chest).getArmorLogic() instanceof AdvancedBreathingApparatus tank && tank.tier == tier) { - if (tank.getOxygen(chest) <= 0) { - return 0.0625; - } else { - tank.changeOxygen(chest, -1.); - } tank.handleDamage(chest, player); int piecesCount = 0; @@ -88,6 +83,12 @@ public double tryTick(ItemStack stack, EntityPlayer player) { piecesCount++; } } + + if (tank.getOxygen(chest) <= 0) { + return 0.0625; + } else { + tank.changeOxygen(chest, -1.); + } switch (piecesCount) { case 0: return 0.5; From c57af893afcea8adde78db9a50fff21b5a928e27 Mon Sep 17 00:00:00 2001 From: grema Date: Mon, 13 Jan 2025 18:08:35 +0100 Subject: [PATCH 54/55] feat: updated rebreather and filtered tanks textures/models --- .../items/metaitems/asbestos_chestplate.png | Bin 379 -> 263 bytes .../items/metaitems/filtered_tank.png | Bin 742 -> 710 bytes .../items/metaitems/rebreather_tank.png | Bin 726 -> 678 bytes .../items/metaitems/reflective_chestplate.png | Bin 302 -> 302 bytes .../susy/models/armor/filtered_chest.obj | 152 ++++++------ .../susy/models/armor/filtered_left_arm.mtl | 4 + .../susy/models/armor/filtered_left_arm.obj | 49 ++++ .../susy/models/armor/filtered_right_arm.mtl | 4 + .../susy/models/armor/filtered_right_arm.obj | 49 ++++ .../assets/susy/models/armor/gas_tank.mtl | 2 +- .../assets/susy/models/armor/gas_tank.obj | 6 +- .../susy/models/armor/rebreather_chest.obj | 216 +++++++++--------- .../susy/models/armor/rebreather_left_arm.mtl | 4 + .../susy/models/armor/rebreather_left_arm.obj | 49 ++++ .../models/armor/rebreather_right_arm.mtl | 4 + .../models/armor/rebreather_right_arm.obj | 49 ++++ .../susy/textures/armor/filtered_chest.png | Bin 1922 -> 6107 bytes .../assets/susy/textures/armor/gas_tank.png | Bin 975 -> 1549 bytes .../susy/textures/armor/rebreather_chest.png | Bin 2101 -> 4609 bytes .../susy/textures/armor/reflective_chest.png | Bin 5746 -> 5312 bytes 20 files changed, 400 insertions(+), 188 deletions(-) create mode 100644 src/main/resources/assets/susy/models/armor/filtered_left_arm.mtl create mode 100644 src/main/resources/assets/susy/models/armor/filtered_left_arm.obj create mode 100644 src/main/resources/assets/susy/models/armor/filtered_right_arm.mtl create mode 100644 src/main/resources/assets/susy/models/armor/filtered_right_arm.obj create mode 100644 src/main/resources/assets/susy/models/armor/rebreather_left_arm.mtl create mode 100644 src/main/resources/assets/susy/models/armor/rebreather_left_arm.obj create mode 100644 src/main/resources/assets/susy/models/armor/rebreather_right_arm.mtl create mode 100644 src/main/resources/assets/susy/models/armor/rebreather_right_arm.obj diff --git a/src/main/resources/assets/gregtech/textures/items/metaitems/asbestos_chestplate.png b/src/main/resources/assets/gregtech/textures/items/metaitems/asbestos_chestplate.png index 7c1aac79a463523688053a64548efc166d44f2fc..4fc32b722d719b8dce6b14661312439bc0be5cf3 100644 GIT binary patch delta 246 zcmey()Xp?PvYwfNfk8u;KNv_c76-XIF|0c$^AgBmNq6*hWMJ6X&;2Kn708ze@Ck7( zE-p?@O}%#J%*KryU0q!d9Xhmr{d%Be-0i(@fD}hbkYDhB2w=F^yf+dk##!JIS(f+pLVs)=!!rtT@HEcIO%whrJw+SeFPtVVkwdu5;_+H!ORYBOI19 lt8}Rvtee+c`ghxRcHP%3j9piQwgW9>@O1TaS?83{1OQk>T-^Ww delta 363 zcmV-x0hIoS0{a4x8Gi-<001BJ|6u?C00eVFNmK|32nc)#WQYI&0T@X{K~y+T#Zoa2 zfNV`V`?VrMLkpCG(|4_F&wZFq>a;Tv>xgcr~m8xmqC4TY^{CK=oVI}5M5y_wnB zy}k3if3F!DNYnJCM*6;Im}MC`tt3eXjWB2yIvna>({PipQzE4u!z_hOGi9t~mGv~ic zfzLB;6&w;KF24eAnI(RkSUGmK0000EWmrjOO-%qQ00008000000002eQ~~BnLAC1A~SxfAB`dDU9_V0X`wF8c{`RYHDT~4LK`MpLze^y>A1DRnVLN z3>W`1NJ~p|SOxm{_!t`-w@jTYD=S+%d68?+x|)u@jM{cCt3Xbxz=obldCk2*Q?(De zb^$4gk|4j}|JVV;Sz*0bKsB5N9+AZi4E1`73=DdTjO@{W{sTqxJzX3_G=g)_pB8FR z;9w27=;EtY{p)|dRKnI3@7QdL+a-N#pR)6?r?4ik6)l*{-dpa+kjii9BImiFeNN+j zMx(n1J+oFa8U<*veqy~dLt2OTT6ywix99VYJ!d<7@4=3Kp}4%`Ea ziHLk-xNzYDnEmbBHxxY>E|8It0csEdYCZsT`b~z9AMY~o@$q43gaNExi0|!VSbcx< z76T_ICj&n}E7;JitSoq#AOpCm$bohYs2K#F03|tE;PzkB_vp zbanqCV`Jla^X5%jx?|CzMg9H#9UUE9TwLqduLqhDST3juq=ZU>{DS|Z1BOTY_X`1K zISV`@iy0X76hWAgJ^IgopkTVEi(`mJaBY8J5nqD>kF#d;+0L#z|2O4HC4&`HlM~Yl uIrzW3Hs%KZq#%BA-=0~;Uu$A--(q~~$!YP~li?oFP6kg`KbLh*2~7a~{%Ugo delta 311 zcmV-70m%NQ1=a1IIvO0t6dE2pB1LoHQW`OP^$6 zC-^6Jd;$+?ny&1^vMf+lmGj>-e?8pT{8$1(5Ugk-D%tkyKb$w1=b5fM3?-Sqw#R>3 z#8Z+a;mD+}YfDH4dee|CW=~KQ1$zL~G(poelxviLNqXYt{>ahVwxt;N!Z0LXV)Y=) zvYcIuZSTdd;_w+i@8=bbLnmGVta%(qWj>q&SSL0LyS@ogv-VAu9F~Aj<{BQILjg?o z4UpvT8yJJ6zj4=f(Dyxwxc1~ADS;z6j*XKrStp7j_5?xz;0v=PaF!7WCrkhU002ov JPDHLkV1l8xf=~be diff --git a/src/main/resources/assets/gregtech/textures/items/metaitems/reflective_chestplate.png b/src/main/resources/assets/gregtech/textures/items/metaitems/reflective_chestplate.png index c3b6de2a51b9a30b53da68d565d5e68167978676..f1fe9d5d606f28194931f2da03654af1497810b0 100644 GIT binary patch delta 20 ccmZ3-w2o=QOs+!=419+eMK!z{CNAy<07h&E?EnA( delta 20 ccmZ3-w2o=QOs>NW419+fkLRyQnYg$c08VfSDgXcg diff --git a/src/main/resources/assets/susy/models/armor/filtered_chest.obj b/src/main/resources/assets/susy/models/armor/filtered_chest.obj index d2de7fa61..7fdd0dfbf 100644 --- a/src/main/resources/assets/susy/models/armor/filtered_chest.obj +++ b/src/main/resources/assets/susy/models/armor/filtered_chest.obj @@ -2,14 +2,14 @@ mtllib filtered_chest.mtl o chestplate -v -0.1881249999999999 0.03187499999999999 0.31312500000000004 -v 0.18812500000000007 0.03187499999999999 0.31312499999999993 -v -0.1881249999999999 -0.844375 0.31312500000000004 -v 0.18812500000000007 -0.844375 0.31312499999999993 -v 0.1881249999999999 0.03187499999999999 -0.31312500000000004 -v -0.18812500000000007 0.03187499999999999 -0.31312499999999993 -v 0.1881249999999999 -0.844375 -0.31312500000000004 -v -0.18812500000000007 -0.844375 -0.31312499999999993 +v -0.1881249999999999 0.06312499999999999 0.31312500000000004 +v 0.18812500000000007 0.06312499999999999 0.31312499999999993 +v -0.1881249999999999 -0.813125 0.31312500000000004 +v 0.18812500000000007 -0.813125 0.31312499999999993 +v 0.1881249999999999 0.06312499999999999 -0.31312500000000004 +v -0.18812500000000007 0.06312499999999999 -0.31312499999999993 +v 0.1881249999999999 -0.813125 -0.31312500000000004 +v -0.18812500000000007 -0.813125 -0.31312499999999993 vt 0.125 0.875 vt 0.375 0.875 vt 0.375 0.5 @@ -47,61 +47,15 @@ f 8/12/3 3/11/3 1/10/3 6/9/3 f 7/16/4 8/15/4 6/14/4 5/13/4 f 6/20/5 1/19/5 2/18/5 5/17/5 f 7/24/6 4/23/6 3/22/6 8/21/6 -o cube -v -0.1875 0.0625 0.125 -v -0.1875 0.0625 -0.125 -v -0.1875 -0.1875 0.125 -v -0.1875 -0.1875 -0.125 -v -0.3125 0.0625 -0.125 -v -0.3125 0.0625 0.125 -v -0.3125 -0.1875 -0.125 -v -0.3125 -0.1875 0.125 -vt 0.125 0.125 -vt 0.1875 0.125 -vt 0.1875 0 -vt 0.125 0 -vt 0 0.125 -vt 0.125 0.125 -vt 0.125 0 -vt 0 0 -vt 0.3125 0.125 -vt 0.375 0.125 -vt 0.375 0 -vt 0.3125 0 -vt 0.1875 0.125 -vt 0.3125 0.125 -vt 0.3125 0 -vt 0.1875 0 -vt 0.1875 0.125 -vt 0.125 0.125 -vt 0.125 0.25 -vt 0.1875 0.25 -vt 0.25 0.25 -vt 0.1875 0.25 -vt 0.1875 0.125 -vt 0.25 0.125 -vn 0 0 -1 -vn 1 0 0 -vn 0 0 1 -vn -1 0 0 -vn 0 1 0 -vn 0 -1 0 -usemtl m_b59d916d-74e9-76c3-127c-e34d7a1135df -f 12/28/7 15/27/7 13/26/7 10/25/7 -f 11/32/8 12/31/8 10/30/8 9/29/8 -f 16/36/9 11/35/9 9/34/9 14/33/9 -f 15/40/10 16/39/10 14/38/10 13/37/10 -f 14/44/11 9/43/11 10/42/11 13/41/11 -f 15/48/12 12/47/12 11/46/12 16/45/12 o bb_main -v -0.25 0.03125 -0.062499999999999944 -v -0.125 0.03125 -0.06249999999999997 -v -0.25 -0.65625 -0.062499999999999944 -v -0.125 -0.65625 -0.06249999999999997 -v -0.12500000000000006 0.03125 -0.18749999999999997 -v -0.25000000000000006 0.03125 -0.18749999999999994 -v -0.12500000000000006 -0.65625 -0.18749999999999997 -v -0.25000000000000006 -0.65625 -0.18749999999999994 +v -0.25 0.0625 -0.062499999999999944 +v -0.125 0.0625 -0.06249999999999997 +v -0.25 -0.625 -0.062499999999999944 +v -0.125 -0.625 -0.06249999999999997 +v -0.12500000000000006 0.0625 -0.18749999999999997 +v -0.25000000000000006 0.0625 -0.18749999999999994 +v -0.12500000000000006 -0.625 -0.18749999999999997 +v -0.25000000000000006 -0.625 -0.18749999999999994 vt 0.8125 0.34375 vt 0.875 0.34375 vt 0.875 0 @@ -133,21 +87,21 @@ vn -2.220446049250313e-16 0 -1 vn 0 1 0 vn 0 -1 0 usemtl m_b59d916d-74e9-76c3-127c-e34d7a1135df -f 20/52/13 23/51/13 21/50/13 18/49/13 -f 19/56/14 20/55/14 18/54/14 17/53/14 -f 24/60/15 19/59/15 17/58/15 22/57/15 -f 23/64/16 24/63/16 22/62/16 21/61/16 -f 22/68/17 17/67/17 18/66/17 21/65/17 -f 23/72/18 20/71/18 19/70/18 24/69/18 +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 o bb_main -v -0.24999999999999994 0.03125 0.18750000000000006 -v -0.12499999999999996 0.03125 0.18750000000000003 -v -0.24999999999999994 -0.65625 0.18750000000000006 -v -0.12499999999999996 -0.65625 0.18750000000000003 -v -0.12499999999999999 0.03125 0.06250000000000003 -v -0.25 0.03125 0.06250000000000006 -v -0.12499999999999999 -0.65625 0.06250000000000003 -v -0.25 -0.65625 0.06250000000000006 +v -0.24999999999999994 0.0625 0.18750000000000006 +v -0.12499999999999996 0.0625 0.18750000000000003 +v -0.24999999999999994 -0.625 0.18750000000000006 +v -0.12499999999999996 -0.625 0.18750000000000003 +v -0.12499999999999999 0.0625 0.06250000000000003 +v -0.25 0.0625 0.06250000000000006 +v -0.12499999999999999 -0.625 0.06250000000000003 +v -0.25 -0.625 0.06250000000000006 vt 0.8125 0.34375 vt 0.875 0.34375 vt 0.875 0 @@ -179,6 +133,52 @@ vn -2.220446049250313e-16 0 -1 vn 0 1 0 vn 0 -1 0 usemtl m_b59d916d-74e9-76c3-127c-e34d7a1135df +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o cube +v -0.1875 0.09375 0.125 +v -0.1875 0.09375 -0.125 +v -0.1875 -0.15625 0.125 +v -0.1875 -0.15625 -0.125 +v -0.3125 0.09375 -0.125 +v -0.3125 0.09375 0.125 +v -0.3125 -0.15625 -0.125 +v -0.3125 -0.15625 0.125 +vt 0.75 0.53125 +vt 0.8125 0.53125 +vt 0.8125 0.40625 +vt 0.75 0.40625 +vt 0.875 0.65625 +vt 1 0.65625 +vt 1 0.53125 +vt 0.875 0.53125 +vt 0.9375 0.53125 +vt 1 0.53125 +vt 1 0.40625 +vt 0.9375 0.40625 +vt 0.8125 0.53125 +vt 0.9375 0.53125 +vt 0.9375 0.40625 +vt 0.8125 0.40625 +vt 0.8125 0.53125 +vt 0.75 0.53125 +vt 0.75 0.65625 +vt 0.8125 0.65625 +vt 0.875 0.65625 +vt 0.8125 0.65625 +vt 0.8125 0.53125 +vt 0.875 0.53125 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_b59d916d-74e9-76c3-127c-e34d7a1135df f 28/76/19 31/75/19 29/74/19 26/73/19 f 27/80/20 28/79/20 26/78/20 25/77/20 f 32/84/21 27/83/21 25/82/21 30/81/21 diff --git a/src/main/resources/assets/susy/models/armor/filtered_left_arm.mtl b/src/main/resources/assets/susy/models/armor/filtered_left_arm.mtl new file mode 100644 index 000000000..ece44651d --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/filtered_left_arm.mtl @@ -0,0 +1,4 @@ +# Made in Blockbench 4.11.2 +newmtl m_e8ecefa1-bd6c-0ecf-c760-879a39613ede +map_Kd susy:armor/filtered_chest +newmtl none diff --git a/src/main/resources/assets/susy/models/armor/filtered_left_arm.obj b/src/main/resources/assets/susy/models/armor/filtered_left_arm.obj new file mode 100644 index 000000000..dab310d9c --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/filtered_left_arm.obj @@ -0,0 +1,49 @@ +# Made in Blockbench 4.11.2 +mtllib filtered_left_arm.mtl + +o arm_plate_left +v -0.175 0.17500000000000004 0.11250000000000002 +v 0.175 0.17500000000000004 0.11249999999999996 +v -0.175 -0.675 0.11250000000000002 +v 0.175 -0.675 0.11249999999999996 +v 0.17499999999999993 0.17500000000000004 -0.23750000000000004 +v -0.17500000000000004 0.17500000000000004 -0.23750000000000004 +v 0.17499999999999993 -0.675 -0.23750000000000004 +v -0.17500000000000004 -0.675 -0.23750000000000004 +vt 0.25 0.375 +vt 0.125 0.375 +vt 0.125 0 +vt 0.25 0 +vt 0.375 0.375 +vt 0.25 0.375 +vt 0.25 0 +vt 0.375 0 +vt 0.5 0.375 +vt 0.375 0.375 +vt 0.375 0 +vt 0.5 0 +vt 0.125 0.375 +vt 0 0.375 +vt 0 0 +vt 0.125 0 +vt 0.125 0.375 +vt 0.25 0.375 +vt 0.25 0.5 +vt 0.125 0.5 +vt 0.25 0.5 +vt 0.375 0.5 +vt 0.375 0.375 +vt 0.25 0.375 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_e8ecefa1-bd6c-0ecf-c760-879a39613ede +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 diff --git a/src/main/resources/assets/susy/models/armor/filtered_right_arm.mtl b/src/main/resources/assets/susy/models/armor/filtered_right_arm.mtl new file mode 100644 index 000000000..65ea1f5f0 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/filtered_right_arm.mtl @@ -0,0 +1,4 @@ +# Made in Blockbench 4.11.2 +newmtl m_6ff59072-f0e8-26d7-8881-f3993ab2f42f +map_Kd susy:armor/filtered_chest +newmtl none diff --git a/src/main/resources/assets/susy/models/armor/filtered_right_arm.obj b/src/main/resources/assets/susy/models/armor/filtered_right_arm.obj new file mode 100644 index 000000000..4792781af --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/filtered_right_arm.obj @@ -0,0 +1,49 @@ +# Made in Blockbench 4.11.2 +mtllib filtered_right_arm.mtl + +o arm_plate_right +v -0.17499999999999993 0.17500000000000004 0.2375000000000001 +v 0.17500000000000004 0.17500000000000004 0.2375000000000001 +v -0.17499999999999993 -0.675 0.2375000000000001 +v 0.17500000000000004 -0.675 0.2375000000000001 +v 0.175 0.17500000000000004 -0.11249999999999996 +v -0.175 0.17500000000000004 -0.1124999999999999 +v 0.175 -0.675 -0.11249999999999996 +v -0.175 -0.675 -0.1124999999999999 +vt 0.125 0.375 +vt 0.25 0.375 +vt 0.25 0 +vt 0.125 0 +vt 0 0.375 +vt 0.125 0.375 +vt 0.125 0 +vt 0 0 +vt 0.375 0.375 +vt 0.5 0.375 +vt 0.5 0 +vt 0.375 0 +vt 0.25 0.375 +vt 0.375 0.375 +vt 0.375 0 +vt 0.25 0 +vt 0.25 0.375 +vt 0.125 0.375 +vt 0.125 0.5 +vt 0.25 0.5 +vt 0.375 0.5 +vt 0.25 0.5 +vt 0.25 0.375 +vt 0.375 0.375 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_6ff59072-f0e8-26d7-8881-f3993ab2f42f +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 diff --git a/src/main/resources/assets/susy/models/armor/gas_tank.mtl b/src/main/resources/assets/susy/models/armor/gas_tank.mtl index 4cbc8fbd4..950e7d4e8 100644 --- a/src/main/resources/assets/susy/models/armor/gas_tank.mtl +++ b/src/main/resources/assets/susy/models/armor/gas_tank.mtl @@ -1,4 +1,4 @@ # Made in Blockbench 4.11.2 -newmtl m_fb4f6aa1-40ba-6cce-f50b-76ae92a858d9 +newmtl m_798bcd3c-5b9f-f5c2-f5ce-6739c2846357 map_Kd susy:armor/gas_tank newmtl none diff --git a/src/main/resources/assets/susy/models/armor/gas_tank.obj b/src/main/resources/assets/susy/models/armor/gas_tank.obj index 228bbc8ce..79ea7f5e9 100644 --- a/src/main/resources/assets/susy/models/armor/gas_tank.obj +++ b/src/main/resources/assets/susy/models/armor/gas_tank.obj @@ -40,7 +40,7 @@ vn -1 0 2.220446049250313e-16 vn -2.220446049250313e-16 0 -1 vn 0 1 0 vn 0 -1 0 -usemtl m_fb4f6aa1-40ba-6cce-f50b-76ae92a858d9 +usemtl m_798bcd3c-5b9f-f5c2-f5ce-6739c2846357 f 4/4/1 7/3/1 5/2/1 2/1/1 f 3/8/2 4/7/2 2/6/2 1/5/2 f 8/12/3 3/11/3 1/10/3 6/9/3 @@ -86,7 +86,7 @@ vn -1 0 2.220446049250313e-16 vn -2.220446049250313e-16 0 -1 vn 0 1 0 vn 0 -1 0 -usemtl m_fb4f6aa1-40ba-6cce-f50b-76ae92a858d9 +usemtl m_798bcd3c-5b9f-f5c2-f5ce-6739c2846357 f 12/28/7 15/27/7 13/26/7 10/25/7 f 11/32/8 12/31/8 10/30/8 9/29/8 f 16/36/9 11/35/9 9/34/9 14/33/9 @@ -132,7 +132,7 @@ vn -1 0 2.220446049250313e-16 vn -2.220446049250313e-16 0 -1 vn 0 1 0 vn 0 -1 0 -usemtl m_fb4f6aa1-40ba-6cce-f50b-76ae92a858d9 +usemtl m_798bcd3c-5b9f-f5c2-f5ce-6739c2846357 f 20/52/13 23/51/13 21/50/13 18/49/13 f 19/56/14 20/55/14 18/54/14 17/53/14 f 24/60/15 19/59/15 17/58/15 22/57/15 diff --git a/src/main/resources/assets/susy/models/armor/rebreather_chest.obj b/src/main/resources/assets/susy/models/armor/rebreather_chest.obj index 92e5d8d08..9a9af0810 100644 --- a/src/main/resources/assets/susy/models/armor/rebreather_chest.obj +++ b/src/main/resources/assets/susy/models/armor/rebreather_chest.obj @@ -2,14 +2,14 @@ mtllib rebreather_chest.mtl o chestplate -v -0.1881249999999999 0.03187499999999999 0.31312500000000004 -v 0.18812500000000007 0.03187499999999999 0.31312499999999993 -v -0.1881249999999999 -0.844375 0.31312500000000004 -v 0.18812500000000007 -0.844375 0.31312499999999993 -v 0.1881249999999999 0.03187499999999999 -0.31312500000000004 -v -0.18812500000000007 0.03187499999999999 -0.31312499999999993 -v 0.1881249999999999 -0.844375 -0.31312500000000004 -v -0.18812500000000007 -0.844375 -0.31312499999999993 +v -0.1881249999999999 0.06312499999999999 0.31312500000000004 +v 0.18812500000000007 0.06312499999999999 0.31312499999999993 +v -0.1881249999999999 -0.813125 0.31312500000000004 +v 0.18812500000000007 -0.813125 0.31312499999999993 +v 0.1881249999999999 0.06312499999999999 -0.31312500000000004 +v -0.18812500000000007 0.06312499999999999 -0.31312499999999993 +v 0.1881249999999999 -0.813125 -0.31312500000000004 +v -0.18812500000000007 -0.813125 -0.31312499999999993 vt 0.125 0.875 vt 0.375 0.875 vt 0.375 0.5 @@ -47,61 +47,15 @@ f 8/12/3 3/11/3 1/10/3 6/9/3 f 7/16/4 8/15/4 6/14/4 5/13/4 f 6/20/5 1/19/5 2/18/5 5/17/5 f 7/24/6 4/23/6 3/22/6 8/21/6 -o cube -v -0.125 -0.1875 0.046875 -v -0.125 -0.1875 -0.046875 -v -0.125 -0.375 0.046875 -v -0.125 -0.375 -0.046875 -v -0.25 -0.1875 -0.046875 -v -0.25 -0.1875 0.046875 -v -0.25 -0.375 -0.046875 -v -0.25 -0.375 0.046875 -vt 0.59375 0.09375 -vt 0.65625 0.09375 -vt 0.65625 0 -vt 0.59375 0 -vt 0.5625 0.09375 -vt 0.59375 0.09375 -vt 0.59375 0 -vt 0.5625 0 -vt 0.6875 0.09375 -vt 0.75 0.09375 -vt 0.75 0 -vt 0.6875 0 -vt 0.65625 0.09375 -vt 0.6875 0.09375 -vt 0.6875 0 -vt 0.65625 0 -vt 0.65625 0.09375 -vt 0.59375 0.09375 -vt 0.59375 0.125 -vt 0.65625 0.125 -vt 0.71875 0.125 -vt 0.65625 0.125 -vt 0.65625 0.09375 -vt 0.71875 0.09375 -vn 0 0 -1 -vn 1 0 0 -vn 0 0 1 -vn -1 0 0 -vn 0 1 0 -vn 0 -1 0 -usemtl m_bed269e0-45da-5958-8060-a9d7dab456cd -f 12/28/7 15/27/7 13/26/7 10/25/7 -f 11/32/8 12/31/8 10/30/8 9/29/8 -f 16/36/9 11/35/9 9/34/9 14/33/9 -f 15/40/10 16/39/10 14/38/10 13/37/10 -f 14/44/11 9/43/11 10/42/11 13/41/11 -f 15/48/12 12/47/12 11/46/12 16/45/12 o bb_main -v -0.25 0.03125 -0.062499999999999944 -v -0.125 0.03125 -0.06249999999999997 -v -0.25 -0.65625 -0.062499999999999944 -v -0.125 -0.65625 -0.06249999999999997 -v -0.12500000000000006 0.03125 -0.18749999999999997 -v -0.25000000000000006 0.03125 -0.18749999999999994 -v -0.12500000000000006 -0.65625 -0.18749999999999997 -v -0.25000000000000006 -0.65625 -0.18749999999999994 +v -0.25 0.0625 -0.062499999999999944 +v -0.125 0.0625 -0.06249999999999997 +v -0.25 -0.625 -0.062499999999999944 +v -0.125 -0.625 -0.06249999999999997 +v -0.12500000000000006 0.0625 -0.18749999999999997 +v -0.25000000000000006 0.0625 -0.18749999999999994 +v -0.12500000000000006 -0.625 -0.18749999999999997 +v -0.25000000000000006 -0.625 -0.18749999999999994 vt 0.8125 0.34375 vt 0.875 0.34375 vt 0.875 0 @@ -133,21 +87,21 @@ vn -2.220446049250313e-16 0 -1 vn 0 1 0 vn 0 -1 0 usemtl m_bed269e0-45da-5958-8060-a9d7dab456cd -f 20/52/13 23/51/13 21/50/13 18/49/13 -f 19/56/14 20/55/14 18/54/14 17/53/14 -f 24/60/15 19/59/15 17/58/15 22/57/15 -f 23/64/16 24/63/16 22/62/16 21/61/16 -f 22/68/17 17/67/17 18/66/17 21/65/17 -f 23/72/18 20/71/18 19/70/18 24/69/18 +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 o bb_main -v -0.24999999999999994 0.03125 0.18750000000000006 -v -0.12499999999999996 0.03125 0.18750000000000003 -v -0.24999999999999994 -0.65625 0.18750000000000006 -v -0.12499999999999996 -0.65625 0.18750000000000003 -v -0.12499999999999999 0.03125 0.06250000000000003 -v -0.25 0.03125 0.06250000000000006 -v -0.12499999999999999 -0.65625 0.06250000000000003 -v -0.25 -0.65625 0.06250000000000006 +v -0.24999999999999994 0.0625 0.18750000000000006 +v -0.12499999999999996 0.0625 0.18750000000000003 +v -0.24999999999999994 -0.625 0.18750000000000006 +v -0.12499999999999996 -0.625 0.18750000000000003 +v -0.12499999999999999 0.0625 0.06250000000000003 +v -0.25 0.0625 0.06250000000000006 +v -0.12499999999999999 -0.625 0.06250000000000003 +v -0.25 -0.625 0.06250000000000006 vt 0.8125 0.34375 vt 0.875 0.34375 vt 0.875 0 @@ -179,6 +133,52 @@ vn -2.220446049250313e-16 0 -1 vn 0 1 0 vn 0 -1 0 usemtl m_bed269e0-45da-5958-8060-a9d7dab456cd +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o cube +v -0.1875 0.09375 0.125 +v -0.1875 0.09375 -0.125 +v -0.1875 -0.15625 0.125 +v -0.1875 -0.15625 -0.125 +v -0.3125 0.09375 -0.125 +v -0.3125 0.09375 0.125 +v -0.3125 -0.15625 -0.125 +v -0.3125 -0.15625 0.125 +vt 0.75 0.53125 +vt 0.8125 0.53125 +vt 0.8125 0.40625 +vt 0.75 0.40625 +vt 0.875 0.65625 +vt 1 0.65625 +vt 1 0.53125 +vt 0.875 0.53125 +vt 0.9375 0.53125 +vt 1 0.53125 +vt 1 0.40625 +vt 0.9375 0.40625 +vt 0.8125 0.53125 +vt 0.9375 0.53125 +vt 0.9375 0.40625 +vt 0.8125 0.40625 +vt 0.8125 0.53125 +vt 0.75 0.53125 +vt 0.75 0.65625 +vt 0.8125 0.65625 +vt 0.875 0.65625 +vt 0.8125 0.65625 +vt 0.8125 0.53125 +vt 0.875 0.53125 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_bed269e0-45da-5958-8060-a9d7dab456cd f 28/76/19 31/75/19 29/74/19 26/73/19 f 27/80/20 28/79/20 26/78/20 25/77/20 f 32/84/21 27/83/21 25/82/21 30/81/21 @@ -186,38 +186,38 @@ f 31/88/22 32/87/22 30/86/22 29/85/22 f 30/92/23 25/91/23 26/90/23 29/89/23 f 31/96/24 28/95/24 27/94/24 32/93/24 o cube -v -0.1875 0.0625 0.125 -v -0.1875 0.0625 -0.125 -v -0.1875 -0.1875 0.125 -v -0.1875 -0.1875 -0.125 -v -0.3125 0.0625 -0.125 -v -0.3125 0.0625 0.125 -v -0.3125 -0.1875 -0.125 -v -0.3125 -0.1875 0.125 -vt 0.125 0.125 -vt 0.1875 0.125 -vt 0.1875 0 -vt 0.125 0 -vt 0 0.125 -vt 0.125 0.125 -vt 0.125 0 -vt 0 0 -vt 0.3125 0.125 -vt 0.375 0.125 -vt 0.375 0 -vt 0.3125 0 -vt 0.1875 0.125 -vt 0.3125 0.125 -vt 0.3125 0 -vt 0.1875 0 -vt 0.1875 0.125 -vt 0.125 0.125 -vt 0.125 0.25 -vt 0.1875 0.25 -vt 0.25 0.25 -vt 0.1875 0.25 -vt 0.1875 0.125 -vt 0.25 0.125 +v -0.125 -0.15625 0.046875 +v -0.125 -0.15625 -0.046875 +v -0.125 -0.34375 0.046875 +v -0.125 -0.34375 -0.046875 +v -0.25 -0.15625 -0.046875 +v -0.25 -0.15625 0.046875 +v -0.25 -0.34375 -0.046875 +v -0.25 -0.34375 0.046875 +vt 0.59375 0.09375 +vt 0.65625 0.09375 +vt 0.65625 0 +vt 0.59375 0 +vt 0.5625 0.09375 +vt 0.59375 0.09375 +vt 0.59375 0 +vt 0.5625 0 +vt 0.6875 0.09375 +vt 0.75 0.09375 +vt 0.75 0 +vt 0.6875 0 +vt 0.65625 0.09375 +vt 0.6875 0.09375 +vt 0.6875 0 +vt 0.65625 0 +vt 0.65625 0.09375 +vt 0.59375 0.09375 +vt 0.59375 0.125 +vt 0.65625 0.125 +vt 0.71875 0.125 +vt 0.65625 0.125 +vt 0.65625 0.09375 +vt 0.71875 0.09375 vn 0 0 -1 vn 1 0 0 vn 0 0 1 diff --git a/src/main/resources/assets/susy/models/armor/rebreather_left_arm.mtl b/src/main/resources/assets/susy/models/armor/rebreather_left_arm.mtl new file mode 100644 index 000000000..27b4fcfc3 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/rebreather_left_arm.mtl @@ -0,0 +1,4 @@ +# Made in Blockbench 4.11.2 +newmtl m_e8ecefa1-bd6c-0ecf-c760-879a39613ede +map_Kd susy:armor/rebreather_chest +newmtl none diff --git a/src/main/resources/assets/susy/models/armor/rebreather_left_arm.obj b/src/main/resources/assets/susy/models/armor/rebreather_left_arm.obj new file mode 100644 index 000000000..1fcd1822c --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/rebreather_left_arm.obj @@ -0,0 +1,49 @@ +# Made in Blockbench 4.11.2 +mtllib rebreather_left_arm.mtl + +o arm_plate_left +v -0.175 0.17500000000000004 0.11250000000000002 +v 0.175 0.17500000000000004 0.11249999999999996 +v -0.175 -0.675 0.11250000000000002 +v 0.175 -0.675 0.11249999999999996 +v 0.17499999999999993 0.17500000000000004 -0.23750000000000004 +v -0.17500000000000004 0.17500000000000004 -0.23750000000000004 +v 0.17499999999999993 -0.675 -0.23750000000000004 +v -0.17500000000000004 -0.675 -0.23750000000000004 +vt 0.25 0.375 +vt 0.125 0.375 +vt 0.125 0 +vt 0.25 0 +vt 0.375 0.375 +vt 0.25 0.375 +vt 0.25 0 +vt 0.375 0 +vt 0.5 0.375 +vt 0.375 0.375 +vt 0.375 0 +vt 0.5 0 +vt 0.125 0.375 +vt 0 0.375 +vt 0 0 +vt 0.125 0 +vt 0.125 0.375 +vt 0.25 0.375 +vt 0.25 0.5 +vt 0.125 0.5 +vt 0.25 0.5 +vt 0.375 0.5 +vt 0.375 0.375 +vt 0.25 0.375 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_e8ecefa1-bd6c-0ecf-c760-879a39613ede +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 diff --git a/src/main/resources/assets/susy/models/armor/rebreather_right_arm.mtl b/src/main/resources/assets/susy/models/armor/rebreather_right_arm.mtl new file mode 100644 index 000000000..e4e7bde59 --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/rebreather_right_arm.mtl @@ -0,0 +1,4 @@ +# Made in Blockbench 4.11.2 +newmtl m_6ff59072-f0e8-26d7-8881-f3993ab2f42f +map_Kd susy:armor/rebreather_chest +newmtl none diff --git a/src/main/resources/assets/susy/models/armor/rebreather_right_arm.obj b/src/main/resources/assets/susy/models/armor/rebreather_right_arm.obj new file mode 100644 index 000000000..f717847fe --- /dev/null +++ b/src/main/resources/assets/susy/models/armor/rebreather_right_arm.obj @@ -0,0 +1,49 @@ +# Made in Blockbench 4.11.2 +mtllib rebreather_right_arm.mtl + +o arm_plate_right +v -0.17499999999999993 0.17500000000000004 0.2375000000000001 +v 0.17500000000000004 0.17500000000000004 0.2375000000000001 +v -0.17499999999999993 -0.675 0.2375000000000001 +v 0.17500000000000004 -0.675 0.2375000000000001 +v 0.175 0.17500000000000004 -0.11249999999999996 +v -0.175 0.17500000000000004 -0.1124999999999999 +v 0.175 -0.675 -0.11249999999999996 +v -0.175 -0.675 -0.1124999999999999 +vt 0.125 0.375 +vt 0.25 0.375 +vt 0.25 0 +vt 0.125 0 +vt 0 0.375 +vt 0.125 0.375 +vt 0.125 0 +vt 0 0 +vt 0.375 0.375 +vt 0.5 0.375 +vt 0.5 0 +vt 0.375 0 +vt 0.25 0.375 +vt 0.375 0.375 +vt 0.375 0 +vt 0.25 0 +vt 0.25 0.375 +vt 0.125 0.375 +vt 0.125 0.5 +vt 0.25 0.5 +vt 0.375 0.5 +vt 0.25 0.5 +vt 0.25 0.375 +vt 0.375 0.375 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_6ff59072-f0e8-26d7-8881-f3993ab2f42f +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 diff --git a/src/main/resources/assets/susy/textures/armor/filtered_chest.png b/src/main/resources/assets/susy/textures/armor/filtered_chest.png index dfef285b08c1e7b31a4fe85411abdaf3c3cdfd6a..334dd569deace7184713fed5239a11bb64c7c28a 100644 GIT binary patch delta 6088 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 diff --git a/src/main/resources/assets/susy/textures/armor/rebreather_chest.png b/src/main/resources/assets/susy/textures/armor/rebreather_chest.png index 8e9b938ff7c1232b9c0710289afecdc509b6e416..4457b71d9ce75e476972c2d11dd4178d7b289617 100644 GIT binary patch delta 4566 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 UfXst_=Kufz07*qoM6N<$f`nn=n*aa+ diff --git a/src/main/resources/assets/susy/textures/armor/reflective_chest.png b/src/main/resources/assets/susy/textures/armor/reflective_chest.png index dc507f4a3f55745ed136034b2fd8729b2663ecbd..1b1e74c902593a3ecb47d7356d4127eea32861e0 100644 GIT binary patch delta 5275 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 delta 5712 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 Date: Mon, 13 Jan 2025 18:12:13 +0100 Subject: [PATCH 55/55] feat: pushed models/textures for bru-gas-mask rollout also added unused gas tank item texture in case we want to do smth with it in the future --- .../textures/items/metaitems/gas_tank_item.png | Bin 0 -> 682 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/main/resources/assets/gregtech/textures/items/metaitems/gas_tank_item.png diff --git a/src/main/resources/assets/gregtech/textures/items/metaitems/gas_tank_item.png b/src/main/resources/assets/gregtech/textures/items/metaitems/gas_tank_item.png new file mode 100644 index 0000000000000000000000000000000000000000..c5e00a44974a89777ebe54ae6b073443abd5e6a2 GIT binary patch literal 682 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4(FKU~J8Fb`J1#c2+1T%1_J8No8Qr zm{>c}*5h!1NUMLatEMQsc9%uU3O_LyR~c{7?u3O~M59U#DqqT*WO@X}$go~-YPRnV zWfxD6m5pI_{J?(X=0VSku3mfeHMewpJoLDBPWkzVdw(-53`|^gQ-O=ia(6JS6d%8f0DW61L4laKIS@)cpu&L^?ts` zUnWV_Q_)U+p23TzBmFVcW9uHrltet3si-`8mO7tc_ffuS)-$H^Os#0MShGUvDR<;_ z(R0yru6p%ueRncm;!L)7=DN#LKreVGa0(h_X)I>q7QAH|?NMQuIw+km>3MWUcR*H018Q#xJHyX=jZ08=9Mrw7o{ea zq^2m8XO?6rxO@5rgg5eu0~Muvx;TbdoK8+Sz_=~v=BN78({%q!YA_Z*Kc||(plmp6 z^5n^qo<jCM@J#ddWzYh$Ie-`hE(L>p O#^CAd=d#Wzp$PyokPSxw literal 0 HcmV?d00001