From 76ed2c7703ce7cace747c66fbe179f8b5367595b Mon Sep 17 00:00:00 2001 From: huige <61108540+huige233@users.noreply.github.com> Date: Sun, 17 Apr 2022 19:56:40 +0800 Subject: [PATCH] add a new weapon and add new character --- .../huige233/transcend/compat/PsiCompat.java | 34 +++++++++++++++-- .../EnchantmentFLAWLESSEnchantment.java | 2 - .../huige233/transcend/init/ModItems.java | 2 +- .../transcend/items/armor/ArmorBase.java | 26 +++++++++++++ .../transcend/items/tools/ToolSword.java | 33 ++++++++++++++++ .../transcend/lib/TranscendDamageSources.java | 36 +++++++++++------- .../huige233/transcend/util/Reference.java | 2 +- .../transcend/models/item/transcend_axe.json | 2 +- .../transcend/models/item/transcend_hoe.json | 2 +- .../models/item/transcend_pickaxe.json | 2 +- .../models/item/transcend_shovel.json | 2 +- .../models/item/transcend_sword.json | 2 +- .../transcend/textures/items/flawless.png | Bin 2120 -> 167 bytes .../textures/items/flawless_boots.png | Bin 2011 -> 1794 bytes .../textures/items/flawless_chestplate.png | Bin 3181 -> 2109 bytes .../textures/items/flawless_helmet.png | Bin 1940 -> 1722 bytes .../textures/items/flawless_leggings.png | Bin 1976 -> 1728 bytes .../textures/items/transcend_sword.png | Bin 0 -> 274 bytes .../models/armor/flawless_layer_1.png | Bin 3289 -> 1297 bytes .../models/armor/flawless_layer_2.png | Bin 2394 -> 559 bytes src/main/resources/mcmod.info | 2 +- 21 files changed, 120 insertions(+), 27 deletions(-) create mode 100644 src/main/resources/assets/transcend/textures/items/transcend_sword.png diff --git a/src/main/java/huige233/transcend/compat/PsiCompat.java b/src/main/java/huige233/transcend/compat/PsiCompat.java index 6ab789b..86df9ed 100644 --- a/src/main/java/huige233/transcend/compat/PsiCompat.java +++ b/src/main/java/huige233/transcend/compat/PsiCompat.java @@ -1,8 +1,13 @@ package huige233.transcend.compat; +import huige233.transcend.init.ModItems; +import huige233.transcend.lib.TranscendDamageSources; import huige233.transcend.util.ArmorUtils; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.util.EntityDamageSource; +import net.minecraft.util.EnumHand; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import vazkii.psi.api.PsiAPI; @@ -22,15 +27,38 @@ public static void onPlayerAttack(EntityPlayer player, EntityPlayer attacker) { if(cadItem != null && cadItem.getItem() instanceof ICAD) { ICAD cad = (ICAD) cadItem.getItem(); int storedPsi = cad.getStoredPsi(cadItem); -// data.deductPsi(data.getAvailablePsi() + storedPsi, cd, true); + data.deductPsi(data.getAvailablePsi() + storedPsi, 200, true); }else { -// data.deductPsi(data.getAvailablePsi(), cd, true); + data.deductPsi(data.getAvailablePsi(), 200, true); } } - + public boolean hitEntity(ItemStack stack, EntityLivingBase target, EntityLivingBase player) { + if(player.world.isRemote) {return true;} + if(target instanceof EntityPlayer) { + EntityPlayer p = (EntityPlayer) target; + if(ArmorUtils.fullEquipped(p)){ + target.setHealth(target.getHealth()-4); + return true; + } + if(p.getHeldItem(EnumHand.MAIN_HAND)!=null && p.getHeldItem(EnumHand.MAIN_HAND).getItem()== ModItems.TRANSCEND_SWORD&&p.isHandActive()) { + return true; + } + } + EntityPlayer t = (EntityPlayer) target; + PlayerDataHandler.PlayerData data = PlayerDataHandler.get(t); + ItemStack cadItem = PsiAPI.getPlayerCAD(t); + if(cadItem != null && cadItem.getItem() instanceof ICAD) { + ICAD cad = (ICAD) cadItem.getItem(); + int storedPsi = cad.getStoredPsi(cadItem); + data.deductPsi((data.getAvailablePsi() + storedPsi)*10, 2000, true); + }else { + data.deductPsi(data.getAvailablePsi()*10, 2000, true); + } + return true; + } @SubscribeEvent public static void onPsiRegen(RegenPsiEvent event) { diff --git a/src/main/java/huige233/transcend/enchantment/EnchantmentFLAWLESSEnchantment.java b/src/main/java/huige233/transcend/enchantment/EnchantmentFLAWLESSEnchantment.java index bf3ce44..eb3def5 100644 --- a/src/main/java/huige233/transcend/enchantment/EnchantmentFLAWLESSEnchantment.java +++ b/src/main/java/huige233/transcend/enchantment/EnchantmentFLAWLESSEnchantment.java @@ -47,8 +47,6 @@ public static boolean shouldHit(int level, Random rnd){ return false; } } - public static final DamageSource FLAWLESS = (new DamageSource("flawless")).setDamageIsAbsolute().setDamageBypassesArmor().setDamageIsAbsolute().setDamageAllowedInCreativeMode().setMagicDamage().setExplosion(); - public void onUserHurt(EntityLivingBase user, Entity attacker, int level){ diff --git a/src/main/java/huige233/transcend/init/ModItems.java b/src/main/java/huige233/transcend/init/ModItems.java index e7e249c..58bdd73 100644 --- a/src/main/java/huige233/transcend/init/ModItems.java +++ b/src/main/java/huige233/transcend/init/ModItems.java @@ -33,7 +33,7 @@ public class ModItems { public static final Item FLAWLESS_CHESTPLATE = new ArmorBase("flawless_chestplate", ARMOR_MATERIAL_FLAWLESS, 1, EntityEquipmentSlot.CHEST, Main.TranscendTab); public static final Item FLAWLESS_LEGGINGS = new ArmorBase("flawless_leggings", ARMOR_MATERIAL_FLAWLESS, 2, EntityEquipmentSlot.LEGS, Main.TranscendTab); public static final Item FLAWLESS_BOOTS = new ArmorBase("flawless_boots", ARMOR_MATERIAL_FLAWLESS, 2, EntityEquipmentSlot.FEET, Main.TranscendTab); - public static final ToolMaterial transcend_tool = EnumHelper.addToolMaterial("TRANSCEND",99,-1,9999,2147483647.0f,100000); + public static final ToolMaterial transcend_tool = EnumHelper.addToolMaterial("TRANSCEND",99,-1,9999,9999.0f,100000); public static final ItemSword TRANSCEND_SWORD = new ToolSword("transcend_sword",Main.TranscendTab,transcend_tool); public static final ItemAxe TRANSCEND_AXE = new ToolAxe("transcend_axe",Main.TranscendTab,transcend_tool); public static final ItemPickaxe TRANSCEND_PICKAXE = new ToolPickaxe("transcend_pickaxe",Main.TranscendTab,transcend_tool); diff --git a/src/main/java/huige233/transcend/items/armor/ArmorBase.java b/src/main/java/huige233/transcend/items/armor/ArmorBase.java index 2fdd449..0ab20db 100644 --- a/src/main/java/huige233/transcend/items/armor/ArmorBase.java +++ b/src/main/java/huige233/transcend/items/armor/ArmorBase.java @@ -1,5 +1,9 @@ package huige233.transcend.items.armor; +import com.google.common.collect.Collections2; +import com.google.common.collect.HashMultimap; +import com.google.common.collect.Lists; +import com.google.common.collect.Multimap; import huige233.transcend.Main; import huige233.transcend.compat.PsiCompat; import huige233.transcend.init.ModItems; @@ -8,12 +12,16 @@ import huige233.transcend.util.Reference; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.attributes.AttributeModifier; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.MobEffects; import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemArmor; import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.util.NonNullList; import net.minecraft.world.World; @@ -28,6 +36,8 @@ import org.jetbrains.annotations.NotNull; import vazkii.psi.api.PsiAPI; +import java.util.List; + @Mod.EventBusSubscriber(modid = Reference.MOD_ID) public class ArmorBase extends ItemArmor implements IHasModel { public ArmorBase(String name, ArmorMaterial materialIn, int renderIndexIn, EntityEquipmentSlot equipmentSlotIn, CreativeTabs tab) { @@ -107,6 +117,10 @@ public void onArmorTick(@NotNull World world, @NotNull EntityPlayer player, @Not player.capabilities.allowFlying = true; player.addPotionEffect(new PotionEffect(MobEffects.STRENGTH, 300, 14, false, false)); player.addPotionEffect(new PotionEffect(MobEffects.REGENERATION, 300, 14, false, false)); + List effects = Lists.newArrayList(player.getActivePotionEffects()); + for(PotionEffect potion : Collections2.filter(effects,potion -> potion.getPotion().isBadEffect())) { + player.removePotionEffect(potion.getPotion()); + } } else if (this.armorType == EntityEquipmentSlot.LEGS) { player.getFoodStats().addStats(20, 20.0f); player.addPotionEffect(new PotionEffect(MobEffects.SPEED, 300, 2, false, false)); @@ -115,9 +129,21 @@ public void onArmorTick(@NotNull World world, @NotNull EntityPlayer player, @Not player.setFire(0); player.addPotionEffect(new PotionEffect(MobEffects.LUCK, 300, 9, false, false)); player.addPotionEffect(new PotionEffect(MobEffects.HASTE, 300, 44, false, false)); + if(player.isBurning()) { + player.extinguish(); + } + } else if (ArmorUtils.fullEquipped(player)) { + if(!player.world.isRemote) { + Multimap attributes = HashMultimap.create(); + fillModifiers(attributes); + player.getAttributeMap().applyAttributeModifiers(attributes); + } } } + private void fillModifiers(Multimap attributes) { + attributes.put(SharedMonsterAttributes.MAX_HEALTH.getName(), new AttributeModifier( "transcend", 1000, 0).setSaved(false)); + } @SideOnly(Side.CLIENT) public boolean hasEffect(@NotNull ItemStack stack) { diff --git a/src/main/java/huige233/transcend/items/tools/ToolSword.java b/src/main/java/huige233/transcend/items/tools/ToolSword.java index f1df772..e806c1d 100644 --- a/src/main/java/huige233/transcend/items/tools/ToolSword.java +++ b/src/main/java/huige233/transcend/items/tools/ToolSword.java @@ -2,10 +2,22 @@ import huige233.transcend.Main; import huige233.transcend.init.ModItems; +import huige233.transcend.lib.TranscendDamageSources; +import huige233.transcend.util.ArmorUtils; import huige233.transcend.util.IHasModel; +import net.minecraft.client.util.ITooltipFlag; import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; import net.minecraft.item.ItemSword; import net.minecraft.item.ItemTool; +import net.minecraft.util.DamageSource; +import net.minecraft.util.EntityDamageSource; +import net.minecraft.util.EnumHand; +import net.minecraft.world.World; + +import java.util.List; public class ToolSword extends ItemSword implements IHasModel { @@ -20,5 +32,26 @@ public ToolSword(String name, CreativeTabs tab,ToolMaterial material) { public void registerModels() { Main.proxy.registerItemRenderer(this,0,"inventory"); } + + @Override + public boolean hitEntity(ItemStack stack, EntityLivingBase target, EntityLivingBase player) { + if(player.world.isRemote) {return true;} + if(target instanceof EntityPlayer) { + EntityPlayer p = (EntityPlayer) target; + if(ArmorUtils.fullEquipped(p)){ + target.setHealth(target.getHealth()-4); + return true; + } + if(p.getHeldItem(EnumHand.MAIN_HAND) != null && p.getHeldItem(EnumHand.MAIN_HAND).getItem()==ModItems.TRANSCEND_SWORD&&p.isHandActive()) { + return true; + } + } + //target.recentlyHit = 60; + target.setHealth(0); + target.getCombatTracker().trackDamage(new TranscendDamageSources(player),target.getHealth(),target.getMaxHealth()*100); + target.onDeath(new EntityDamageSource("transcend",player)); + return true; + } } + diff --git a/src/main/java/huige233/transcend/lib/TranscendDamageSources.java b/src/main/java/huige233/transcend/lib/TranscendDamageSources.java index 62652c4..8f87ec1 100644 --- a/src/main/java/huige233/transcend/lib/TranscendDamageSources.java +++ b/src/main/java/huige233/transcend/lib/TranscendDamageSources.java @@ -1,22 +1,30 @@ package huige233.transcend.lib; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; import net.minecraft.util.DamageSource; -public class TranscendDamageSources { - public static final DamageSource FLAWLESS = (new DamageSource( "flawless" ) ).setDamageIsAbsolute().setDamageBypassesArmor().setDamageIsAbsolute().setDamageAllowedInCreativeMode().setMagicDamage().setExplosion(); +import net.minecraft.util.EntityDamageSource; +import net.minecraft.util.EnumHand; +import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.TextComponentTranslation; - public static class DamageFLAWLESS extends DamageSource { - public DamageFLAWLESS() - { - super("flawless"); - setDamageAllowedInCreativeMode(); - setDamageBypassesArmor(); - setDamageIsAbsolute(); - setMagicDamage(); - setExplosion(); +public class TranscendDamageSources extends EntityDamageSource{ + public TranscendDamageSources(Entity source) { + super("flawless",source); } + @Override + public ITextComponent getDeathMessage(EntityLivingBase entity) { + ItemStack itemstack = damageSourceEntity instanceof EntityLivingBase ? ((EntityLivingBase) damageSourceEntity).getHeldItem(EnumHand.MAIN_HAND) : null; + String s = "death.attack.transcend"; + int rando = entity.getEntityWorld().rand.nextInt(5); + if(rando != 0) { + s = s+ "." + rando; + } + return new TextComponentTranslation(s,entity.getDisplayName(),itemstack.getDisplayName()); } - public boolean isUnblockable() - { - return(true); + @Override + public boolean isDifficultyScaled() { + return false; } } diff --git a/src/main/java/huige233/transcend/util/Reference.java b/src/main/java/huige233/transcend/util/Reference.java index 168ae4f..3a5df66 100644 --- a/src/main/java/huige233/transcend/util/Reference.java +++ b/src/main/java/huige233/transcend/util/Reference.java @@ -3,7 +3,7 @@ public class Reference { public static final String MOD_ID = "transcend"; public static final String NAME = "Transcend"; - public static final String VERSION = "1.0.2"; + public static final String VERSION = "1.0.3"; public static final String ACCEPTED_VERSIONS = "[1.12.2]"; public static final String CLIENT_PROXY_CLASS = "huige233.transcend.proxy.ClientProxy"; public static final String COMMON_PROXY_CLASS = "huige233.transcend.proxy.CommonProxy"; diff --git a/src/main/resources/assets/transcend/models/item/transcend_axe.json b/src/main/resources/assets/transcend/models/item/transcend_axe.json index dd08177..5928f4d 100644 --- a/src/main/resources/assets/transcend/models/item/transcend_axe.json +++ b/src/main/resources/assets/transcend/models/item/transcend_axe.json @@ -1,6 +1,6 @@ { "parent": "item/handheld", "textures": { - "layer0": "transcend:item/transcend_axe" + "layer0": "transcend:items/transcend_axe" } } \ No newline at end of file diff --git a/src/main/resources/assets/transcend/models/item/transcend_hoe.json b/src/main/resources/assets/transcend/models/item/transcend_hoe.json index 9b83856..485cd09 100644 --- a/src/main/resources/assets/transcend/models/item/transcend_hoe.json +++ b/src/main/resources/assets/transcend/models/item/transcend_hoe.json @@ -1,6 +1,6 @@ { "parent": "item/handheld", "textures": { - "layer0": "transcend:item/transcend_hoe" + "layer0": "transcend:items/transcend_hoe" } } \ No newline at end of file diff --git a/src/main/resources/assets/transcend/models/item/transcend_pickaxe.json b/src/main/resources/assets/transcend/models/item/transcend_pickaxe.json index 2c95cce..c2085d5 100644 --- a/src/main/resources/assets/transcend/models/item/transcend_pickaxe.json +++ b/src/main/resources/assets/transcend/models/item/transcend_pickaxe.json @@ -1,6 +1,6 @@ { "parent": "item/handheld", "textures": { - "layer0": "transcend:item/transcend_pickaxe" + "layer0": "transcend:items/transcend_pickaxe" } } \ No newline at end of file diff --git a/src/main/resources/assets/transcend/models/item/transcend_shovel.json b/src/main/resources/assets/transcend/models/item/transcend_shovel.json index b8ca502..dd1c513 100644 --- a/src/main/resources/assets/transcend/models/item/transcend_shovel.json +++ b/src/main/resources/assets/transcend/models/item/transcend_shovel.json @@ -1,6 +1,6 @@ { "parent": "item/handheld", "textures": { - "layer0": "transcend:item/transcend_shovel" + "layer0": "transcend:items/transcend_shovel" } } \ No newline at end of file diff --git a/src/main/resources/assets/transcend/models/item/transcend_sword.json b/src/main/resources/assets/transcend/models/item/transcend_sword.json index 4993ab4..23added 100644 --- a/src/main/resources/assets/transcend/models/item/transcend_sword.json +++ b/src/main/resources/assets/transcend/models/item/transcend_sword.json @@ -1,6 +1,6 @@ { "parent": "item/handheld", "textures": { - "layer0": "transcend:item/transcend_sword" + "layer0": "transcend:items/transcend_sword" } } \ No newline at end of file diff --git a/src/main/resources/assets/transcend/textures/items/flawless.png b/src/main/resources/assets/transcend/textures/items/flawless.png index 89d99ba5e270dc141126cdf4926779a41ee9b4e0..49ba1889dc32d125c20faa8428710d88008d56a2 100644 GIT binary patch delta 139 zcmV;60CfMz5T^l1>JuzClHbqvV@iwXh@^2+CPQ+P`vvw zrgYTGIXCc20<~6U8W~BEF0vvGBfAn{X2k*`q6aGyzTLshbBMS(Zj`zb$y zsl-T_VU1*igEX3ugO8?coThvh>Yyo@R(4^s%ESk46w=tUbe)1K$(WJ8BesCfvTq!dJ9EBTq(1hSzn4nZRS z5S_V7u44hiOI{5tNF30Vc>NHKAjxw}{48Gx6qEx6qR)ce`gT8tih>1OY;ceczZJN} zjIsb&RF>)F%L;k3fX$tQCYLafzzY->E%ADMGE-u~`gs{RR;LLJ?T09Z7A!?Ih~_%7 zP^%OGD6JuJo+K&MXx3Q5opBxGk3>Znd8#W;;X~ocuP(X%7%g$0iAaZ~#6$N;ZRt#k(s^0h+YXGo{ z6mUwCXE0G&gOX7SdV)T`So8@}P)-`M0oYgtSTLA13McirR_D~37z0e4?gi4skmLZ= zAqk?ZbXX`v-w%Z)Bd`klNU*>&E-Bz;p~Iq=EdYeySAe16FfvxjBL$#gs7^O@-fp#K z1tgc~feUg@dMav9v(j2KP2-eC+b`GQVC+6wVSPNX+bkFijz$y(hIf&qPB0p9&O{41 zuhVll>(Y}rM+2JGn_Z+?&kgRkNqmu70_y&O(;!GZ6o&ZXr|yqPjmhC#N40TCWZ)-#kBqsHbqwU@+n|&~ZkN zq5#K}YT5T!5|bgyFvq2#gR}@N3ynM?+Fv{j%d3aNg7IoK009e4i^Ig@u`Gx72i*XY zKBP(ptjm&13905(v*bLQSxC_INa32RgNF9J(I=Q!D3W7xR+HEOL)BA_k9rG

pyoPd&Vz}PK~Pao|?DqrM=THGo9M^oL$JPzwNlx z-gmv7b0yC>x2q|lwDj-l#?p&@9iw;sWz=qb`iocgZE6}fA@=B(g;i8VzSo^*UxM_Tiq zZd2@^Kg^rR$6e|93@?b!ESb2nre^oA+BMTKuJ2Hw+KqOXH#ASEIXWf#nJTivwq|wh z$)eeJ*vjdNx8pn8I@eZ(syk^)8(#) zm|1H-$`iLHjkjDM#XG-$re@O&?V*h#7=@l(o4iM*7b>><1l_RR(NPKeT@5Sjq zMc(92#7#XvbAx+D>|tB|<)zz~uTJ=U|Is7emFq#9Wu%Xub`AgP;DtFx? diff --git a/src/main/resources/assets/transcend/textures/items/flawless_boots.png b/src/main/resources/assets/transcend/textures/items/flawless_boots.png index 4d569de6c544446bc252cf9b595660260ee39772..d4aad57ece9817c0f150daedac26a06f25f857c1 100644 GIT binary patch delta 776 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 delta 866 zcmdnRJB5FOCF945Rz2!wdIq}51_nk7=9YSfW+ujF2098x21W+@21fdZ#<~WERtDx) zMn)UowlOjqPA*|m!2Oi7_4x4_re$|XO!G&eP`#M8xADKRBK zDb*?^KRGkSsvsl3B)>Q#zre}>Xq-iod9tpdr9rZ8vbl+Yu7z>3nQoG?v4Le$T9S!T zni0%2|Dw$F%*jug#Z@emQx%syrh#&sGT-QbxK4Cc1`5fwG&$K*LZ$BRn%NCBM8_Q%T=W!KNrB z%_=7osx>jWBr_kVxj3DTjM>WY62)|sGG2y2b@1?WhlXYb+4!`GqKIeV&d?CSOnz?IU?vHrz zu2y3ygMqIzgNwrjfx?9=#af->N19Emi)z^Gp(tzqmq@nT+fKwD4fML0bvh(J+?`Qy?m#FQ0IrRuOH)f9^JI&qEOIE6UX}63+lIWHEwckZ;$(V zAb~6BnOgak^1r*KzJ{Cl@;>b7xO~Ca>H61&J4#~9Kirf2`v3o-8{GRC8pB%u*u7ZB P!Tolh)@S~P;rTCS&3D7Mrxj|l97Rtk*t|83J$5@QH4HPuOGxJjN z%ZoK9Uu2D|zaw_nfq{WBz|+Ms#G-fUo1lTOa`l(RE!GsIDTwc#ulKCoQZKRG^>E{X?vCTJq zWO`>UQtMc>qDY4QdTI1g@jT8cLH?eT{%G*EAHFX=CG}^eh0F$>*OT_$RXDwAx6bK* zS9sK|J09Qot+um|p~B$UhP!#vt*^iSGGhFY)1%12v}8*9p>6BeZkT3~sH9MlTj1+!<&vLVnwy$e;^|_ml$esAlxmfdpPZRu zRgjTil3$#WUtpD#nw(;kXqc*NYHn$%YiMDTrfZpIWT~5)lxmP{WR_}bY+?>G&A%u! zJu`3eGiEX6lvHDr)Km*2U1Q6XG+o0K6EodJW5Xm}BU8iFq{JlCGy{{#@+{#_M5s$u zQYbEQEi17q&q&R)RRV^Qk*)#IW3b@Z!D6gosGt#^nU|7ZUaYC4Z>L~Wl#*tZlL^(A zm|T*X57b$lST;F=Mc##|@WEpxFx1T^?`AQOMYa`cS8_&TUV3VZt&;xaZ!B^3>mq~f z85kIIJzX3_EP9tt-k2xsDA2Zl=H1P;DvA?5ly0)Rb}bNDzQmNe6pB1ADc|j!c=E>*8P<7uX=QeQ|G!%^L-KY@o+bh{hZF~>Qbo3tZ7#_dHVe8{J#v$ zetmZJn~m30etlLIyFTmblONm++r8hiZwa)p*XfiCT66vD&zf_Wk4v7M;`r=0Ba=;b zoucWLxA#w1O?h7!S9?6f;*R`R=DfT#4!RLsWqF7282_lfJ#+cyX_HSLVUwH1 yktX0I(D1P$N9#e!RqfM3ax8!RbN)*IXK*_<`OLP=d#Wzp$Pz*nMS<; diff --git a/src/main/resources/assets/transcend/textures/items/transcend_sword.png b/src/main/resources/assets/transcend/textures/items/transcend_sword.png new file mode 100644 index 0000000000000000000000000000000000000000..0b3f9a786d18eaa1d21bcf9920a03ea88612d404 GIT binary patch literal 274 zcmV+t0qy>YP)Px#%t=H+R5*>L&oK&wFc1aM?_z7A7YNvVqqUYJ>!S#IGNqd4c%1CBVxm=^FC?z-+iCZhlFIF4eiy@rWMh)7cK zEi`9sg9v2Htxpr4T|$#`_nXbE$5h YCp$vV2*`79mH+?%07*qoM6N<$f)1^1_5c6? literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/transcend/textures/models/armor/flawless_layer_1.png b/src/main/resources/assets/transcend/textures/models/armor/flawless_layer_1.png index fa834f32def1312996b16a0aac6f4218f055f86f..4900e684fac4c6fc026c2440fd841bbbe114a003 100644 GIT binary patch delta 1278 zcmVmz{m=jP_p#Kc6_flooe z#l=P1-Q7*AtE)NoS$}M7>~n+w0%m7tpMkSH@WaEysk*xQa}YoW#Cv&pc~*X@(Y2Hq z;|2x>vNi~jo`0U6_d^U&m6eql43}|JT&i@|gJ32b@efJt0 z8}of0VlGE(Yis)U?OPt}dDIgnL4dp-IsX3sK0Q4>Wwi$eC>h}R`1n}}=jZ41^C*yH ziL0xtd>kGgrjwJCoF+X-f;4J=?_XYCrqk2YJgy`}6n_C0X7OidXK7<&BQI`!eLZ^y z0Bvn;slB~Di=Ye;UJwUBTU%RcdwV+*WDW$dFi$~{F?7WH2pkz1DGdUEVfme%owT{R znT5{c$H&LBn~ML!nxL@!1&})*92}&dKYwO|=)ls_QWnba5Ji-^-6x{J(~Lq5c~g;F zTwKf+XMY)S4isYk4~bn}T{*^q1AcmXI?n-Qc$RxpQ&X9Q{{H@~4R1~Wzz!}Rpa~XH z`>%6!cXy{kGI$1Xgisho=pX?2I7-3;UiDB2@LgR6_)T7A`Z0W$6~Vzav%!>RA+D=8Ot7zTtl1 z_oMJakn^IXSszm8D|HbdWGwKXN7kC2w>Hu(mI}dPbnTPx;ciP-h&G*tqjYvCz>Eul_MQ?v2yo6zihr_ai2&@|HHuzeV-ko3$-Zj z9Gj|f{r&s*{EvvCp`qvTMG>)JF}A!cic*IQa_iU%3l)xcocH$j=AI$gm#2YeO@Cr0 zW+Ma~VqV8+{=yhH4v~5gUQv{85m*}*diDU$ZN+UgE>u`c3%o@eYnRCLs1gz3-5_9P zWhH|EPE0CXfuF5VHUygR3Ke#X@lQ_xJO2=Rr`o^h*s3 zAmW@QS^Tv|Du|CgL}QDR!(&en`*LaQ2(ugjfCK@Q**TA(`mYh-7hw@rFWGiC;x^Js oD0zq>H+3%rE5?VrzxQ_kFO8;b<8s6NQvd(}07*qoM6N<$g8!abWdHyG literal 3289 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 YK^F9iOb^|m>Hq)$07*qoM6N<$f|bbrKL7v# literal 2394 zcmbVO4OA568eXqLqIr|V2rt*B(bG+Ac4l^#{TWyhc8Ohbfp8N9!#g`O%Z|G{v&;4H^EnSe+WYyV}kP% z?U>zfX5E~%LS$!FWI5;x4{c=Nlxa|MkOTxiR;Hk!&&x|>&;$?gl3=V%qcAi8kv%3j zRWS(V+jAhZAhM87jUhCKX&}8(jq9|84toO9U>Xd?G$>9W7*1k(Qlo)F7YwY4jEl^* zJQ=bDzD%%Nmi;7(1_A+ffKUr!F^U_FMukJ8K>z}g%6XXzBD^$dh{3{2w8;5oPT(Ph zk#Y*9vIz!C2VL;_!?e5<3KIwz8l?OvuErFX27nA5#`#M{?|^ZJMp-ZGV|iHuSUimN zy9HU0+`=zVhnIh30EE_V58Jq_7N0L{LXy+VfE%HJ+!ZZ3%Ka>w%SuA2NVDl>K;|UH z8$W3lSxOc}hah-|5|uL~8PWhxpvUt#o)H4llsh)C7D{GKFvyw)!L$fYIB-3wO(ZeR zRLnqP*dWv{Fr2IW=THMlB$C=6LqW+fluZ35n4w9RAo?iaFz2I+S=7%L!%#Skq*?F^ zA}|cp5qHkp%;p?XaB*I+AmwJHLAG?W4mav_h(?VM$hF%^8!yQePqQ|Q2?oJYa~wlz z^)AeyV=#o(GaAH2YYD{27>o#JB#cf5H_(I;7#heJX%XmBr394ygQtNJXu$Dk^_{;rWS+P{bm)Sza(Cw%6?t?y`^$c)6b>sSfw^J!`Vv@z2CJr(Ef|bZOoCHd|u}mzmdOpVPOH_{?F_qw&0`0bZ;-xim-HY{>;^G`IM?T>4J z;7Hfe%D&2u8|U?XRePcfJm0lgTmLYF(C&Xv)q4LJ4B4+W51%m_J9^D^)zKc8bH%cbxtkub zo>~{T&s3;=r+X`$_o-MhHuKruwA0?%)uq$x-=BNvrT4~ub}DH?o3}9e)~V!c*Uf+H zANJzcwGHE?TNnQ_VrRmhPt}G;Gd9jW*!XVbm)t1- z2YRRLXlzvkv@sC8c}zNz+!xiH9iQ$hyPlO${MPconF*Ws;hjB!mYG`|hS+NBHp8L$ zCq@}p4)5HX{kBTp{p=qno^0NG-gKnp3Vr*#jGXEh+m__7_OMx1y5@2B6`kLlr}gZJ zjOaMq*7WAF3eQJVS67>-G_|+KG{020*)Z&_&QIK4|JS{#UzIQV*S?!)`U@_P^px&6 z*xlMua^ZN~s@3S}W8LNDU-28ZY_UzOZ_n7ZXAxSp=G@IM=k|SZSiSU{$ddS(g`S6( zZ;Z#2_WE1VT~}gr4!N+AujFouUl>z!?b>5h%+m=yn~Dl!Z&gh%sD5o#6}cj_J>~zO zXa4)dyw-WA_uT%ZX{upXLv!6?>>+PtTx7}i3qH%j88MX%fk!0Oy!zDD1Dkv0E%Vne zS+e8r#LIKs30ouAB-Nh(GR<|lyOW_WKhoXhi+efYp{V$>p2gccKFiYm^Tc6jL3(M! z;a$(%Xe2&rS$Jd>xwGuRxvdi`Z%v~<_I@z_L3aPeWkp?GSKpRv?oVk5#)#3eYimo; zPUpqzjR!B}$4*IH>0DNV?%(DVXVqEGAg|QdM!QE8uIW8_Mz`V5+dd!jIN6mltr!PPE^!Nu4)-)U+L46a~oAlqr{-q0M(>IjAA6t5sWoz1BYrY4}n0qq- diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index 81cdd81..e902080 100644 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -3,7 +3,7 @@ "modid": "transcend", "name": "transcend", "description": "Tconstruct, an accessory, offers supermodel metal", - "version": "1.0.2", + "version": "1.0.3", "mcversion": "1.12.2", "url": "", "updateUrl": "",