From 3eee7bfe5877f057653110543e27cc305d9c807d Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 16 Aug 2021 10:14:09 +0200 Subject: [PATCH] X3962: Mistake Edition v1v1v1v1v1v1v1v1v1v1v1v1v1v1v1v1v1v1v1v1 --- .../java/com/hbm/handler/WeaponAbility.java | 5 ++- .../java/com/hbm/inventory/AnvilRecipes.java | 2 +- src/main/java/com/hbm/items/ModItems.java | 3 ++ .../java/com/hbm/items/armor/ItemModV1.java | 30 +++++++++++++ .../java/com/hbm/main/ModEventHandler.java | 41 ++++++++++++++++++ .../java/com/hbm/util/EntityDamageUtil.java | 28 ++++++++++++ src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + .../assets/hbm/textures/items/v1.png | Bin 0 -> 340 bytes 9 files changed, 109 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/hbm/items/armor/ItemModV1.java create mode 100644 src/main/resources/assets/hbm/textures/items/v1.png diff --git a/src/main/java/com/hbm/handler/WeaponAbility.java b/src/main/java/com/hbm/handler/WeaponAbility.java index 84b9dc00c..19361c3e3 100644 --- a/src/main/java/com/hbm/handler/WeaponAbility.java +++ b/src/main/java/com/hbm/handler/WeaponAbility.java @@ -7,6 +7,9 @@ import com.hbm.packet.PacketDispatcher; import com.hbm.potion.HbmPotion; import com.hbm.util.ContaminationUtil; import com.hbm.util.WeightedRandomObject; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; + import com.hbm.util.ContaminationUtil.ContaminationType; import com.hbm.util.ContaminationUtil.HazardType; @@ -213,7 +216,7 @@ public abstract class WeaponAbility { data.setDouble("motion", 0.1D); data.setString("mode", "blockdust"); data.setInteger("block", Block.getIdFromBlock(Blocks.redstone_block)); - PacketDispatcher.wrapper.sendTo(new AuxParticlePacketNT(data, living.posX, living.posY + living.height * 0.5, living.posZ), (EntityPlayerMP)player); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, living.posX, living.posY + living.height * 0.5, living.posZ), new TargetPoint(living.dimension, living.posX, living.posY, living.posZ, 50)); } world.playSoundEffect(living.posX, living.posY + living.height * 0.5, living.posZ, "hbm:weapon.chainsaw", 0.5F, 1.0F); diff --git a/src/main/java/com/hbm/inventory/AnvilRecipes.java b/src/main/java/com/hbm/inventory/AnvilRecipes.java index ea1fe1957..1d2a9d8ca 100644 --- a/src/main/java/com/hbm/inventory/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/AnvilRecipes.java @@ -149,7 +149,7 @@ public class AnvilRecipes { }, new AnvilOutput(new ItemStack(ModBlocks.machine_difurnace_off))).setTier(1)); - int ukModifier = 100; + int ukModifier = 1; constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { new OreDictStack("blockGlassColorless", 4 * ukModifier), diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 3174cbc19..a80fb811b 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -2115,6 +2115,7 @@ public class ModItems { public static Item injector_5htp; public static Item injector_knife; public static Item medal_liquidator; + public static Item v1; public static Item hazmat_helmet; public static Item hazmat_plate; @@ -3182,6 +3183,7 @@ public class ModItems { injector_5htp = new ItemModAuto().setUnlocalizedName("injector_5htp").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":injector_5htp"); injector_knife = new ItemModKnife().setUnlocalizedName("injector_knife").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":injector_knife"); medal_liquidator = new ItemModMedal().setUnlocalizedName("medal_liquidator").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":medal_liquidator"); + v1 = new ItemModV1().setUnlocalizedName("v1").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":v1"); can_empty = new Item().setUnlocalizedName("can_empty").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":can_empty"); can_smart = new ItemEnergy().setUnlocalizedName("can_smart").setContainerItem(ModItems.can_empty).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":can_smart"); @@ -7265,6 +7267,7 @@ public class ModItems { GameRegistry.registerItem(coin_worm, coin_worm.getUnlocalizedName()); GameRegistry.registerItem(coin_ufo, coin_ufo.getUnlocalizedName()); GameRegistry.registerItem(medal_liquidator, medal_liquidator.getUnlocalizedName()); + GameRegistry.registerItem(v1, v1.getUnlocalizedName()); //Chaos GameRegistry.registerItem(chocolate_milk, chocolate_milk.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/armor/ItemModV1.java b/src/main/java/com/hbm/items/armor/ItemModV1.java new file mode 100644 index 000000000..738c71ccf --- /dev/null +++ b/src/main/java/com/hbm/items/armor/ItemModV1.java @@ -0,0 +1,30 @@ +package com.hbm.items.armor; + +import java.util.List; + +import com.hbm.handler.ArmorModHandler; +import com.hbm.items.ModItems; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; + +public class ItemModV1 extends ItemArmorMod { + + public ItemModV1() { + super(ArmorModHandler.extra, false, true, false, false); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + + list.add(EnumChatFormatting.RED + "BLOOD IS FUEL"); + list.add(""); + super.addInformation(stack, player, list, bool); + } + + @Override + public void addDesc(List list, ItemStack stack, ItemStack armor) { + list.add(EnumChatFormatting.RED + " " + stack.getDisplayName() + " (BLOOD IS FUEL)"); + } +} diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 28903cf63..dbe2f8f2e 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -45,6 +45,7 @@ import com.hbm.items.weapon.ItemGunBase; import com.hbm.lib.Library; import com.hbm.lib.ModDamageSource; import com.hbm.lib.RefStrings; +import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.PlayerInformPacket; import com.hbm.potion.HbmPotion; @@ -52,6 +53,7 @@ import com.hbm.saveddata.AuxSavedData; import com.hbm.util.ArmorUtil; import com.hbm.util.ContaminationUtil; import com.hbm.util.EnchantmentUtil; +import com.hbm.util.EntityDamageUtil; import com.hbm.world.generator.TimedGenerator; import cpw.mods.fml.common.eventhandler.EventPriority; @@ -61,8 +63,10 @@ import cpw.mods.fml.common.gameevent.TickEvent; import cpw.mods.fml.common.gameevent.TickEvent.ClientTickEvent; import cpw.mods.fml.common.gameevent.TickEvent.Phase; import cpw.mods.fml.common.gameevent.TickEvent.WorldTickEvent; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.ReflectionHelper; import cpw.mods.fml.relauncher.Side; +import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.EnchantmentHelper; @@ -283,6 +287,24 @@ public class ModEventHandler { @SubscribeEvent(priority = EventPriority.LOWEST) public void onEntityDeathLast(LivingDeathEvent event) { + EntityLivingBase entity = event.entityLiving; + + if(EntityDamageUtil.wasAttackedByV1(event.source)) { + + NBTTagCompound vdat = new NBTTagCompound(); + vdat.setString("type", "giblets"); + vdat.setInteger("ent", entity.getEntityId()); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(vdat, entity.posX, entity.posY + entity.height * 0.5, entity.posZ), new TargetPoint(entity.dimension, entity.posX, entity.posY + entity.height * 0.5, entity.posZ, 150)); + + entity.worldObj.playSoundEffect(entity.posX, entity.posY, entity.posZ, "mob.zombie.woodbreak", 2.0F, 0.95F + entity.worldObj.rand.nextFloat() * 0.2F); + + EntityPlayer attacker = (EntityPlayer) ((EntityDamageSource)event.source).getEntity(); + + if(attacker.getDistanceSqToEntity(entity) < 5) { + attacker.heal(entity.prevHealth * 2F); + } + } + if(event.entityLiving instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer) event.entityLiving; @@ -702,6 +724,24 @@ public class ModEventHandler { if(HbmLivingProps.getContagion(e) > 0 && event.ammount < 100) event.ammount *= 2F; + /// V1 /// + if(EntityDamageUtil.wasAttackedByV1(event.source)) { + EntityPlayer attacker = (EntityPlayer) ((EntityDamageSource)event.source).getEntity(); + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "vanillaburst"); + data.setInteger("count", (int)Math.min(e.getMaxHealth() / 2F, 250)); + data.setDouble("motion", 0.1D); + data.setString("mode", "blockdust"); + data.setInteger("block", Block.getIdFromBlock(Blocks.redstone_block)); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, e.posX, e.posY + e.height * 0.5, e.posZ), new TargetPoint(e.dimension, e.posX, e.posY, e.posZ, 50)); + + if(attacker.getDistanceSqToEntity(e) < 3) { + attacker.heal(event.ammount * 0.5F); + } + } + + /// ARMOR MODS /// for(int i = 1; i < 5; i++) { ItemStack armor = e.getEquipmentInSlot(i); @@ -717,6 +757,7 @@ public class ModEventHandler { } } + /// FSB ARMOR /// if(e instanceof EntityPlayer && ((EntityPlayer)e).inventory.armorInventory[2] != null && ((EntityPlayer)e).inventory.armorInventory[2].getItem() instanceof ArmorFSB) ((ArmorFSB)((EntityPlayer)e).inventory.armorInventory[2].getItem()).handleHurt(event); } diff --git a/src/main/java/com/hbm/util/EntityDamageUtil.java b/src/main/java/com/hbm/util/EntityDamageUtil.java index 9894191c5..f7cb5d36e 100644 --- a/src/main/java/com/hbm/util/EntityDamageUtil.java +++ b/src/main/java/com/hbm/util/EntityDamageUtil.java @@ -2,10 +2,16 @@ package com.hbm.util; import java.lang.reflect.Field; +import com.hbm.handler.ArmorModHandler; +import com.hbm.items.ModItems; + import cpw.mods.fml.relauncher.ReflectionHelper; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; import net.minecraft.util.DamageSource; +import net.minecraft.util.EntityDamageSource; public class EntityDamageUtil { @@ -36,4 +42,26 @@ public class EntityDamageUtil { return 0F; } } + + public static boolean wasAttackedByV1(DamageSource source) { + + if(source instanceof EntityDamageSource) { + Entity attacker = ((EntityDamageSource) source).getEntity(); + + if(attacker instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer) attacker; + ItemStack chestplate = player.inventory.armorInventory[2]; + + if(chestplate != null && ArmorModHandler.hasMods(chestplate)) { + ItemStack[] mods = ArmorModHandler.pryMods(chestplate); + + if(mods[ArmorModHandler.extra] != null && mods[ArmorModHandler.extra].getItem() == ModItems.v1) { + return true; + } + } + } + } + + return false; + } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index c9e0d9ba4..d5fb6211c 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -2454,6 +2454,7 @@ item.upgrade_speed_1.name=Geschwindigkeitsupgrade Mk.I item.upgrade_speed_2.name=Geschwindigkeitsupgrade Mk.II item.upgrade_speed_3.name=Geschwindigkeitsupgrade Mk.III item.upgrade_template.name=Maschinenupgrade-Vorlage +item.v1.name=V1 item.wand_d.name=Debug-Zauberstab item.wand_k.name=Konstruktions-Zauberstab item.wand_s.name=Struktur-Zauberstab diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 785960f17..3f4bb49ef 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -2520,6 +2520,7 @@ item.upgrade_speed_1.name=Speed Upgrade Mk.I item.upgrade_speed_2.name=Speed Upgrade Mk.II item.upgrade_speed_3.name=Speed Upgrade Mk.III item.upgrade_template.name=Machine Upgrade Template +item.v1.name=V1 item.wand_d.name=Debug Wand item.wand_k.name=Construction Wand item.wand_s.name=Structure Wand diff --git a/src/main/resources/assets/hbm/textures/items/v1.png b/src/main/resources/assets/hbm/textures/items/v1.png new file mode 100644 index 0000000000000000000000000000000000000000..ce08260209f418828d2c5c426456e60b2bf567e4 GIT binary patch literal 340 zcmV-a0jvIrP)92`0n#4*j%;^byKyE!xz+?<7g zPW}^a(naZ1vnmK0DHuw&Qo42Q(d8T@M}D=AF23pReZTL0zwZwIVWclTKT-hGmq##+ zas}}DFw{kT==qVFE!KcRqb2~DzCQhGQcZ{-G2E;=v@e$QM-hidC(IUdXM{>R&F!j7 z`)Ucm{pmrWc{87|nNKoYwa`_9L}c170B?6q9X+*y;&N}y^YuOe{ZXVVrtM`Ga zgkLC6>>>bqC}GkgPcK~tHme;o$^0000zV> literal 0 HcmV?d00001