From a99dc0a4646b858d2125933542de66fe672ffd05 Mon Sep 17 00:00:00 2001 From: Toshayo Date: Thu, 22 Jun 2023 19:05:10 +0200 Subject: [PATCH] Grenade with cats --- changelog | 1 + .../java/com/hbm/crafting/WeaponRecipes.java | 5 +- .../java/com/hbm/entity/EntityMappings.java | 1 + .../hbm/entity/grenade/EntityGrenadeCats.java | 50 ++++++++++++++++++ src/main/java/com/hbm/items/ModItems.java | 5 +- .../com/hbm/items/weapon/ItemGrenade.java | 47 ++-------------- src/main/java/com/hbm/main/ClientProxy.java | 1 + src/main/java/com/hbm/main/MainRegistry.java | 5 ++ src/main/resources/assets/hbm/lang/en_US.lang | 1 + src/main/resources/assets/hbm/lang/fr_FR.lang | 1 + src/main/resources/assets/hbm/lang/ru_RU.lang | 1 + .../hbm/textures/items/grenade_cats.png | Bin 0 -> 764 bytes 12 files changed, 73 insertions(+), 45 deletions(-) create mode 100644 src/main/java/com/hbm/entity/grenade/EntityGrenadeCats.java create mode 100644 src/main/resources/assets/hbm/textures/items/grenade_cats.png diff --git a/changelog b/changelog index 4a0ce878b..333b11e25 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,4 @@ ## Added * Sliding Blast Door from 1.12.2 * Night Vision Goggles armor upgrade +* Grenade of Cats \ No newline at end of file diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index a85f8ca36..86ea190d8 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -2,6 +2,7 @@ package com.hbm.crafting; import com.hbm.blocks.ModBlocks; import com.hbm.inventory.OreDictManager; +import com.hbm.inventory.RecipesCommon; import com.hbm.inventory.fluid.Fluids; import static com.hbm.inventory.OreDictManager.*; @@ -16,6 +17,7 @@ import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraftforge.oredict.OreDictionary; /** * For guns, ammo and the like @@ -345,7 +347,8 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenade_pink_cloud), new Object[] { " S ", "ECE", " E ", 'S', ModItems.powder_spark_mix, 'E', ModItems.powder_magic, 'C', ModItems.grenade_cloud }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.nuclear_waste_pearl), new Object[] { "WWW", "WFW", "WWW", 'W', ModItems.nuclear_waste_tiny, 'F', ModBlocks.block_fallout }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.grenade_kyiv), new Object[] { ModItems.canister_napalm, ModItems.bottle2_empty, ModItems.rag }); - + CraftingManager.addRecipeAuto(new ItemStack(ModItems.grenate_cats), "FFF", "FGF", "FFF", 'F', new ItemStack(Items.fish, 1, OreDictionary.WILDCARD_VALUE), 'G', ModItems.grenade_smart); + //Sticks of explosives CraftingManager.addRecipeAuto(new ItemStack(ModItems.stick_dynamite, 4), new Object[] { " S ", "PDP", "PDP", 'S', ModItems.safety_fuse, 'P', Items.paper, 'D', ModItems.ball_dynamite }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.stick_dynamite_fishing, 1), new Object[] { ModItems.stick_dynamite, ModItems.stick_dynamite, ModItems.stick_dynamite, Items.paper, ANY_TAR.any() }); diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index b41ab7eb7..8659a7426 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -142,6 +142,7 @@ public class EntityMappings { addEntity(EntityGrenadeMIRV.class, "entity_grenade_mirv", 250); addEntity(EntityGrenadeBreach.class, "entity_grenade_breach", 250); addEntity(EntityGrenadeBurst.class, "entity_grenade_burst", 250); + addEntity(EntityGrenadeCats.class, "entity_grenade_cats", 250); addEntity(EntityBurningFOEQ.class, "entity_burning_foeq", 1000); addEntity(EntityGrenadeIFGeneric.class, "entity_grenade_ironshod", 250); addEntity(EntityGrenadeIFHE.class, "entity_grenade_ironshod_he", 250); diff --git a/src/main/java/com/hbm/entity/grenade/EntityGrenadeCats.java b/src/main/java/com/hbm/entity/grenade/EntityGrenadeCats.java new file mode 100644 index 000000000..0f9c21275 --- /dev/null +++ b/src/main/java/com/hbm/entity/grenade/EntityGrenadeCats.java @@ -0,0 +1,50 @@ +package com.hbm.entity.grenade; + +import com.hbm.items.ModItems; +import com.hbm.items.weapon.ItemGrenade; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.passive.EntityOcelot; +import net.minecraft.world.World; + +public class EntityGrenadeCats extends EntityGrenadeBouncyBase { + + public EntityGrenadeCats(World world) { + super(world); + } + + public EntityGrenadeCats(World world, EntityLivingBase living) { + super(world, living); + } + + public EntityGrenadeCats(World world, double posX, double posY, double posZ) { + super(world, posX, posY, posZ); + } + + @Override + public void explode() { + if (!this.worldObj.isRemote) { + this.setDead(); + + for(int i = 0; i < 5; i++) { + EntityOcelot cat = new EntityOcelot(worldObj); + cat.setPosition(posX, posY, posZ); + cat.motionX = rand.nextGaussian() * 0.1D; + cat.motionY = -0.25D; + cat.motionZ = rand.nextGaussian() * 0.1D; + + worldObj.spawnEntityInWorld(cat); + cat.onSpawnWithEgg(null); + } + } + } + + @Override + protected int getMaxTimer() { + return ItemGrenade.getFuseTicks(ModItems.grenate_cats); + } + + @Override + protected double getBounceMod() { + return 0.25D; + } +} diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 800eb555b..625a3f947 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1673,7 +1673,8 @@ public class ModItems { public static Item grenade_mirv; public static Item grenade_breach; public static Item grenade_burst; - + public static Item grenate_cats; + public static Item nuclear_waste_pearl; public static Item weaponized_starblaster_cell; @@ -4289,6 +4290,7 @@ public class ModItems { grenade_mirv = new ItemGrenade(1).setUnlocalizedName("grenade_mirv").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_mirv"); grenade_breach = new ItemGrenade(-1).setUnlocalizedName("grenade_breach").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_breach"); grenade_burst = new ItemGrenade(1).setUnlocalizedName("grenade_burst").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_burst"); + grenate_cats = new ItemGrenade(1).setUnlocalizedName("grenate_cats").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":grenade_cats"); nuclear_waste_pearl = new ItemGrenade(-1).setUnlocalizedName("nuclear_waste_pearl").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":nuclear_waste_pearl"); weaponized_starblaster_cell = new WeaponizedCell().setUnlocalizedName("weaponized_starblaster_cell").setMaxStackSize(1).setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_b92_ammo_weaponized"); @@ -7338,6 +7340,7 @@ public class ModItems { GameRegistry.registerItem(grenade_if_spark, grenade_if_spark.getUnlocalizedName()); GameRegistry.registerItem(grenade_if_hopwire, grenade_if_hopwire.getUnlocalizedName()); GameRegistry.registerItem(grenade_if_null, grenade_if_null.getUnlocalizedName()); + GameRegistry.registerItem(grenate_cats, grenate_cats.getUnlocalizedName()); GameRegistry.registerItem(nuclear_waste_pearl, nuclear_waste_pearl.getUnlocalizedName()); GameRegistry.registerItem(ullapool_caber, ullapool_caber.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/weapon/ItemGrenade.java b/src/main/java/com/hbm/items/weapon/ItemGrenade.java index f26ee698e..7451f6a3a 100644 --- a/src/main/java/com/hbm/items/weapon/ItemGrenade.java +++ b/src/main/java/com/hbm/items/weapon/ItemGrenade.java @@ -2,49 +2,7 @@ package com.hbm.items.weapon; import java.util.List; -import com.hbm.entity.grenade.EntityGrenadeASchrab; -import com.hbm.entity.grenade.EntityGrenadeBlackHole; -import com.hbm.entity.grenade.EntityGrenadeBreach; -import com.hbm.entity.grenade.EntityGrenadeBurst; -import com.hbm.entity.grenade.EntityGrenadeCloud; -import com.hbm.entity.grenade.EntityGrenadeCluster; -import com.hbm.entity.grenade.EntityGrenadeDynamite; -import com.hbm.entity.grenade.EntityGrenadeElectric; -import com.hbm.entity.grenade.EntityGrenadeFire; -import com.hbm.entity.grenade.EntityGrenadeFlare; -import com.hbm.entity.grenade.EntityGrenadeFrag; -import com.hbm.entity.grenade.EntityGrenadeGas; -import com.hbm.entity.grenade.EntityGrenadeGascan; -import com.hbm.entity.grenade.EntityGrenadeGeneric; -import com.hbm.entity.grenade.EntityGrenadeIFBouncy; -import com.hbm.entity.grenade.EntityGrenadeIFBrimstone; -import com.hbm.entity.grenade.EntityGrenadeIFConcussion; -import com.hbm.entity.grenade.EntityGrenadeIFGeneric; -import com.hbm.entity.grenade.EntityGrenadeIFHE; -import com.hbm.entity.grenade.EntityGrenadeIFHopwire; -import com.hbm.entity.grenade.EntityGrenadeIFImpact; -import com.hbm.entity.grenade.EntityGrenadeIFIncendiary; -import com.hbm.entity.grenade.EntityGrenadeIFMystery; -import com.hbm.entity.grenade.EntityGrenadeIFNull; -import com.hbm.entity.grenade.EntityGrenadeIFSpark; -import com.hbm.entity.grenade.EntityGrenadeIFSticky; -import com.hbm.entity.grenade.EntityGrenadeIFToxic; -import com.hbm.entity.grenade.EntityGrenadeLemon; -import com.hbm.entity.grenade.EntityGrenadeMIRV; -import com.hbm.entity.grenade.EntityGrenadeMk2; -import com.hbm.entity.grenade.EntityGrenadeNuclear; -import com.hbm.entity.grenade.EntityGrenadeNuke; -import com.hbm.entity.grenade.EntityGrenadePC; -import com.hbm.entity.grenade.EntityGrenadePlasma; -import com.hbm.entity.grenade.EntityGrenadePoison; -import com.hbm.entity.grenade.EntityGrenadePulse; -import com.hbm.entity.grenade.EntityGrenadeSchrabidium; -import com.hbm.entity.grenade.EntityGrenadeShrapnel; -import com.hbm.entity.grenade.EntityGrenadeSmart; -import com.hbm.entity.grenade.EntityGrenadeStrong; -import com.hbm.entity.grenade.EntityGrenadeTau; -import com.hbm.entity.grenade.EntityGrenadeZOMG; -import com.hbm.entity.grenade.EntityWastePearl; +import com.hbm.entity.grenade.*; import com.hbm.items.ModItems; import net.minecraft.entity.player.EntityPlayer; @@ -214,6 +172,9 @@ public class ItemGrenade extends Item { if (this == ModItems.stick_dynamite) { p_77659_2_.spawnEntityInWorld(new EntityGrenadeDynamite(p_77659_2_, p_77659_3_)); } + if (this == ModItems.grenate_cats) { + p_77659_2_.spawnEntityInWorld(new EntityGrenadeCats(p_77659_2_, p_77659_3_)); + } } return p_77659_1_; diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index da86b7611..268283654 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -635,6 +635,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeDynamite.class, new RenderSnowball(ModItems.stick_dynamite)); RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeBouncyGeneric.class, new RenderGenericGrenade()); RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeImpactGeneric.class, new RenderGenericGrenade()); + RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeCats.class, new RenderSnowball(ModItems.grenate_cats)); //missiles RenderingRegistry.registerEntityRenderingHandler(EntityTestMissile.class, new RenderTestMissile()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileCustom.class, new RenderMissileCustom()); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 6fc8c873e..43050f065 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -607,6 +607,11 @@ public class MainRegistry { return new EntityGrenadeIFNull(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ()); } }); + BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.grenate_cats, new BehaviorProjectileDispense() { + protected IProjectile getProjectileEntity(World p_82499_1_, IPosition p_82499_2_) { + return new EntityGrenadeCats(p_82499_1_, p_82499_2_.getX(), p_82499_2_.getY(), p_82499_2_.getZ()); + } + }); BlockDispenser.dispenseBehaviorRegistry.putObject(ModItems.nuclear_waste_pearl, new BehaviorProjectileDispense() { protected IProjectile getProjectileEntity(World world, IPosition position) { diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index d73b6edab..9c8cf7515 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -2444,6 +2444,7 @@ item.grenade_aschrab.name=Tossable Antischrabidium Cell item.grenade_black_hole.name=Black Hole Grenade item.grenade_breach.name=Breaching Grenade item.grenade_burst.name=Digger Grenade +item.grenate_cats.name=Grenade of Cats item.grenade_cloud.name=Jar of Cloud item.grenade_cluster.name=Cluster Bomb item.grenade_electric.name=Lightning Bomb diff --git a/src/main/resources/assets/hbm/lang/fr_FR.lang b/src/main/resources/assets/hbm/lang/fr_FR.lang index 2da92f416..9b13a0db9 100644 --- a/src/main/resources/assets/hbm/lang/fr_FR.lang +++ b/src/main/resources/assets/hbm/lang/fr_FR.lang @@ -916,6 +916,7 @@ item.grenade_strong.name=Grenade ameliorée item.grenade_frag.name=Grenade Frag item.grenade_fire.name=Grenade Frag incendiaire item.grenade_shrapnel.name=Grenade à fragmentation +item.grenate_cats.name=Grenade à chats item.grenade_cluster.name=Grenade à fragmentation item.grenade_flare.name=Flare item.grenade_electric.name=Grenade à éclairs diff --git a/src/main/resources/assets/hbm/lang/ru_RU.lang b/src/main/resources/assets/hbm/lang/ru_RU.lang index 1603c36c8..b89294f73 100644 --- a/src/main/resources/assets/hbm/lang/ru_RU.lang +++ b/src/main/resources/assets/hbm/lang/ru_RU.lang @@ -3874,6 +3874,7 @@ item.grenade_strong.name=Усовершенствованная граната item.grenade_frag.name=Осколочная граната item.grenade_fire.name=Огненная осколочная граната item.grenade_shrapnel.name=Граната со шрапнелью +item.grenate_cats.name=Граната с котами item.grenade_cluster.name=Кластерная бомба item.grenade_flare.name=Сигнальная ракета item.grenade_electric.name=Электрограната diff --git a/src/main/resources/assets/hbm/textures/items/grenade_cats.png b/src/main/resources/assets/hbm/textures/items/grenade_cats.png new file mode 100644 index 0000000000000000000000000000000000000000..e800e9e7778c3df2187155880bd36a0f6778ad3b GIT binary patch literal 764 zcmVEX>4Tx04R}tkv&MmKpe$iQ?(*h2aAX}WT;LSL`5C73Pq?8YK2xEOfLO`CJjl7 zi=*ILaPVWX>fqw6tAnc`2!4RLx;QDiNQwVT3N2ziIPS;0dyl(!fKV+m&1xG1G~G56 zv8b3zuZn?Jbf6zSn8LKoEMrcR;%GU(?&0I>U4&<~KKJM7Rx=g@d?N8IGfbO!gLrDw zHaPDShge=#iO-2gO}ZfQBi9v=-#F)77IZPWeL0 zW0mt3XRTOf^?ULc1~dA~GS_JiA%;aPL4pVcWfV|^jR>teDHam6A8p|ubo~;!6mk{7 z$gzMDG{~+W{11M2Yh@?Ky`*3iXn%2>k6|FN3)Cu(^L^|%wG+Vq3|#3Af2j)0e3D*i zXyGHEcN@64ZfMFLaJd5vJQ=bnyON)#kj(<`XY@^JpzjvwTJw6V@8k3VNK#kv8{ps& z7|BugdW&~=Huv`LnRc?`|C%ZKF00006VoOIv00000008+zyMF)x010qNS#tmY z3ljhU3ljkVnw%H_000McNliru=LQxJ86cLGvXlS-0QpHoK~y-)V_+C)z=%yyOib)Q z0|NttmX;P=?7)EoSk*FN)BNhyD@HjvIfiT3t}*=j^^1Xlfq}un!Qnqq2B3pqzkb0n zHbd}wVN;zWgMySW!^X2481yA=8H$!YW?*AuL-7t)7xV=3FtnyRFepd~Gwj;AgMo>` zhCx9}nBmy5V~hk{Ftb|fKNEuu!`(Z#7!*}rF`%>O?|*_~5QYo%C2bjejYSv~RbF9b z6AVOjXQQ)Wu>u1u=mu;&yMcj81mf(C3`a273=H@1yCA*w86z$)q_(bNBq|-?@&W?` u1H+j!XBY_@5I6H4hD{Pd(-;{BB>(_>L}|e9s^v)l0000so literal 0 HcmV?d00001