From f9f1e1c73e088015ceb79872fb75403814338dc3 Mon Sep 17 00:00:00 2001 From: Boblet Date: Thu, 27 Mar 2025 16:02:35 +0100 Subject: [PATCH] go go gadget: replace uterus with 30lb bowling ball --- changelog | 5 +- src/main/java/com/hbm/blocks/ModBlocks.java | 3 + .../blocks/generic/BlockSkeletonHolder.java | 114 ++++++ .../java/com/hbm/crafting/WeaponRecipes.java | 2 +- .../java/com/hbm/entity/EntityMappings.java | 6 - .../entity/mob/siege/EntitySiegeSkeleton.java | 181 ---------- .../hbm/entity/mob/siege/EntitySiegeUFO.java | 144 -------- .../entity/mob/siege/EntitySiegeZombie.java | 156 --------- .../java/com/hbm/inventory/material/Mats.java | 2 +- .../inventory/recipes/AssemblerRecipes.java | 29 +- .../inventory/recipes/PedestalRecipes.java | 13 + src/main/java/com/hbm/items/ItemEnums.java | 2 +- src/main/java/com/hbm/items/ModItems.java | 24 -- src/main/java/com/hbm/main/ClientProxy.java | 7 +- .../java/com/hbm/main/CraftingManager.java | 8 - src/main/java/com/hbm/main/MainRegistry.java | 7 + .../java/com/hbm/main/ResourceManager.java | 6 + .../hbm/render/entity/mob/RenderGhost.java | 4 +- .../entity/mob/RenderSiegeSkeleton.java | 40 --- .../hbm/render/entity/mob/RenderSiegeUFO.java | 55 --- .../render/entity/mob/RenderSiegeZombie.java | 39 --- .../hbm/render/model/ModelSiegeZombie.java | 35 -- .../render/tileentity/RenderPedestalTile.java | 4 - .../tileentity/RenderSkeletonHolder.java | 72 ++++ .../java/com/hbm/tileentity/TileMappings.java | 2 + src/main/resources/assets/hbm/lang/de_DE.lang | 2 + src/main/resources/assets/hbm/lang/en_US.lang | 2 + .../hbm/models/blocks/skeleton_holder.obj | 330 ++++++++++++++++++ .../hbm/textures/blocks/dungeon_spawner.png | Bin 0 -> 714 bytes .../assets/hbm/textures/entity/siege_buff.png | Bin 1669 -> 0 bytes .../assets/hbm/textures/entity/siege_clay.png | Bin 2285 -> 0 bytes .../assets/hbm/textures/entity/siege_desh.png | Bin 492 -> 0 bytes .../assets/hbm/textures/entity/siege_dnt.png | Bin 540 -> 0 bytes .../hbm/textures/entity/siege_drill_buff.png | Bin 906 -> 0 bytes .../hbm/textures/entity/siege_drill_clay.png | Bin 925 -> 0 bytes .../hbm/textures/entity/siege_drill_desh.png | Bin 912 -> 0 bytes .../hbm/textures/entity/siege_drill_dnt.png | Bin 926 -> 0 bytes .../hbm/textures/entity/siege_drill_gold.png | Bin 910 -> 0 bytes .../hbm/textures/entity/siege_drill_iron.png | Bin 886 -> 0 bytes .../textures/entity/siege_drill_schrab.png | Bin 925 -> 0 bytes .../textures/entity/siege_drill_silver.png | Bin 890 -> 0 bytes .../hbm/textures/entity/siege_drill_stone.png | Bin 920 -> 0 bytes .../assets/hbm/textures/entity/siege_gold.png | Bin 512 -> 0 bytes .../assets/hbm/textures/entity/siege_iron.png | Bin 488 -> 0 bytes .../hbm/textures/entity/siege_schrab.png | Bin 477 -> 0 bytes .../hbm/textures/entity/siege_silver.png | Bin 481 -> 0 bytes .../hbm/textures/entity/siege_stone.png | Bin 1588 -> 0 bytes .../hbm/textures/entity/ufo_siege_buff.png | Bin 413 -> 0 bytes .../hbm/textures/entity/ufo_siege_clay.png | Bin 471 -> 0 bytes .../hbm/textures/entity/ufo_siege_desh.png | Bin 449 -> 0 bytes .../hbm/textures/entity/ufo_siege_dnt.png | Bin 482 -> 0 bytes .../hbm/textures/entity/ufo_siege_gold.png | Bin 468 -> 0 bytes .../hbm/textures/entity/ufo_siege_iron.png | Bin 443 -> 0 bytes .../hbm/textures/entity/ufo_siege_schrab.png | Bin 451 -> 0 bytes .../hbm/textures/entity/ufo_siege_silver.png | Bin 441 -> 0 bytes .../hbm/textures/entity/ufo_siege_stone.png | Bin 439 -> 0 bytes .../textures/items/item_secret.aberrator.png | Bin 0 -> 602 bytes 57 files changed, 573 insertions(+), 721 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/generic/BlockSkeletonHolder.java delete mode 100644 src/main/java/com/hbm/entity/mob/siege/EntitySiegeSkeleton.java delete mode 100644 src/main/java/com/hbm/entity/mob/siege/EntitySiegeUFO.java delete mode 100644 src/main/java/com/hbm/entity/mob/siege/EntitySiegeZombie.java delete mode 100644 src/main/java/com/hbm/render/entity/mob/RenderSiegeSkeleton.java delete mode 100644 src/main/java/com/hbm/render/entity/mob/RenderSiegeUFO.java delete mode 100644 src/main/java/com/hbm/render/entity/mob/RenderSiegeZombie.java delete mode 100644 src/main/java/com/hbm/render/model/ModelSiegeZombie.java create mode 100644 src/main/java/com/hbm/render/tileentity/RenderSkeletonHolder.java create mode 100644 src/main/resources/assets/hbm/models/blocks/skeleton_holder.obj create mode 100644 src/main/resources/assets/hbm/textures/blocks/dungeon_spawner.png delete mode 100644 src/main/resources/assets/hbm/textures/entity/siege_buff.png delete mode 100644 src/main/resources/assets/hbm/textures/entity/siege_clay.png delete mode 100644 src/main/resources/assets/hbm/textures/entity/siege_desh.png delete mode 100644 src/main/resources/assets/hbm/textures/entity/siege_dnt.png delete mode 100644 src/main/resources/assets/hbm/textures/entity/siege_drill_buff.png delete mode 100644 src/main/resources/assets/hbm/textures/entity/siege_drill_clay.png delete mode 100644 src/main/resources/assets/hbm/textures/entity/siege_drill_desh.png delete mode 100644 src/main/resources/assets/hbm/textures/entity/siege_drill_dnt.png delete mode 100644 src/main/resources/assets/hbm/textures/entity/siege_drill_gold.png delete mode 100644 src/main/resources/assets/hbm/textures/entity/siege_drill_iron.png delete mode 100644 src/main/resources/assets/hbm/textures/entity/siege_drill_schrab.png delete mode 100644 src/main/resources/assets/hbm/textures/entity/siege_drill_silver.png delete mode 100644 src/main/resources/assets/hbm/textures/entity/siege_drill_stone.png delete mode 100644 src/main/resources/assets/hbm/textures/entity/siege_gold.png delete mode 100644 src/main/resources/assets/hbm/textures/entity/siege_iron.png delete mode 100644 src/main/resources/assets/hbm/textures/entity/siege_schrab.png delete mode 100644 src/main/resources/assets/hbm/textures/entity/siege_silver.png delete mode 100644 src/main/resources/assets/hbm/textures/entity/siege_stone.png delete mode 100644 src/main/resources/assets/hbm/textures/entity/ufo_siege_buff.png delete mode 100644 src/main/resources/assets/hbm/textures/entity/ufo_siege_clay.png delete mode 100644 src/main/resources/assets/hbm/textures/entity/ufo_siege_desh.png delete mode 100644 src/main/resources/assets/hbm/textures/entity/ufo_siege_dnt.png delete mode 100644 src/main/resources/assets/hbm/textures/entity/ufo_siege_gold.png delete mode 100644 src/main/resources/assets/hbm/textures/entity/ufo_siege_iron.png delete mode 100644 src/main/resources/assets/hbm/textures/entity/ufo_siege_schrab.png delete mode 100644 src/main/resources/assets/hbm/textures/entity/ufo_siege_silver.png delete mode 100644 src/main/resources/assets/hbm/textures/entity/ufo_siege_stone.png create mode 100644 src/main/resources/assets/hbm/textures/items/item_secret.aberrator.png diff --git a/changelog b/changelog index 7cde1fc3f..46fa9943d 100644 --- a/changelog +++ b/changelog @@ -5,6 +5,9 @@ * Removed flat magnets * Taint should now also affect non-solid blocks that are full cubes * Reduced the AoE size of 7.62mm, .50 BMG and 10 gauge explosive projectiles +* Removed the old gun mechanism items, turrets now use the new cast parts +* A secret weapon and its variant have become craftable ## Fixed -* Fixed taint destroying bedrock \ No newline at end of file +* Fixed taint destroying bedrock +* Fixed ferrouranium plate not being castable \ No newline at end of file diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 8ea4d1a27..d86f1dd15 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -275,6 +275,7 @@ public class ModBlocks { public static Block part_emitter; public static Block deco_loot; public static Block pedestal; + public static Block skeleton_holder; public static Block bobblehead; public static Block snowglobe; public static Block plushie; @@ -1464,6 +1465,7 @@ public class ModBlocks { part_emitter = new PartEmitter().setBlockName("part_emitter").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(20.0F).setBlockTextureName(RefStrings.MODID + ":part_top"); deco_loot = new BlockLoot().setBlockName("deco_loot").setCreativeTab(null).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); pedestal = new BlockPedestal().setBlockName("pedestal").setCreativeTab(null).setHardness(2.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":pedestal_top"); + skeleton_holder = new BlockSkeletonHolder().setBlockName("skeleton_holder").setCreativeTab(null).setHardness(2.0F).setResistance(10.0F).setBlockTextureName("soul_sand"); bobblehead = new BlockBobble().setBlockName("bobblehead").setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":block_steel"); snowglobe = new BlockSnowglobe().setBlockName("snowglobe").setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":glass_boron"); plushie = new BlockPlushie().setBlockName("plushie").setStepSound(Block.soundTypeCloth).setResistance(50_0000.0F).setCreativeTab(MainRegistry.blockTab).setHardness(0.0F).setResistance(0.0F).setBlockTextureName(RefStrings.MODID + ":block_fiberglass_side"); @@ -2608,6 +2610,7 @@ public class ModBlocks { GameRegistry.registerBlock(part_emitter, ItemBlockBase.class, part_emitter.getUnlocalizedName()); GameRegistry.registerBlock(deco_loot, deco_loot.getUnlocalizedName()); GameRegistry.registerBlock(pedestal, pedestal.getUnlocalizedName()); + register(skeleton_holder); GameRegistry.registerBlock(bobblehead, ItemBlockMeta.class, bobblehead.getUnlocalizedName()); GameRegistry.registerBlock(snowglobe, ItemBlockMeta.class, snowglobe.getUnlocalizedName()); GameRegistry.registerBlock(plushie, ItemBlockBase.class, plushie.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockSkeletonHolder.java b/src/main/java/com/hbm/blocks/generic/BlockSkeletonHolder.java new file mode 100644 index 000000000..e64243534 --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/BlockSkeletonHolder.java @@ -0,0 +1,114 @@ +package com.hbm.blocks.generic; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.Packet; +import net.minecraft.network.play.server.S35PacketUpdateTileEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +public class BlockSkeletonHolder extends BlockContainer { + + public BlockSkeletonHolder() { + super(Material.rock); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntitySkeletonHolder(); + } + + @Override public int getRenderType() { return -1; } + @Override public boolean isOpaqueCube() { return false; } + @Override public boolean renderAsNormalBlock() { return false; } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { + int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; + if(i == 0) world.setBlockMetadataWithNotify(x, y, z, 5, 2); + if(i == 1) world.setBlockMetadataWithNotify(x, y, z, 3, 2); + if(i == 2) world.setBlockMetadataWithNotify(x, y, z, 4, 2); + if(i == 3) world.setBlockMetadataWithNotify(x, y, z, 2, 2); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(world.isRemote) return true; + if(player.isSneaking()) return false; + + TileEntitySkeletonHolder pedestal = (TileEntitySkeletonHolder) world.getTileEntity(x, y, z); + + if(pedestal.item == null && player.getHeldItem() != null) { + pedestal.item = player.getHeldItem().copy(); + player.inventory.mainInventory[player.inventory.currentItem] = null; + pedestal.markDirty(); + world.markBlockForUpdate(x, y, z); + return true; + } else if(pedestal.item != null && player.getHeldItem() == null) { + player.inventory.mainInventory[player.inventory.currentItem] = pedestal.item.copy(); + pedestal.item = null; + pedestal.markDirty(); + world.markBlockForUpdate(x, y, z); + return true; + } + + return false; + } + + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + + if(!world.isRemote) { + TileEntitySkeletonHolder entity = (TileEntitySkeletonHolder) world.getTileEntity(x, y, z); + if(entity != null && entity.item != null) { + EntityItem item = new EntityItem(world, x + 0.5, y, z + 0.5, entity.item.copy()); + world.spawnEntityInWorld(item); + } + } + + super.breakBlock(world, x, y, z, block, meta); + } + + public static class TileEntitySkeletonHolder extends TileEntity { + + public ItemStack item; + + @Override public boolean canUpdate() { return false; } + + @Override + public Packet getDescriptionPacket() { + NBTTagCompound nbt = new NBTTagCompound(); + this.writeToNBT(nbt); + return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbt); + } + + @Override + public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { + this.readFromNBT(pkt.func_148857_g()); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.item = ItemStack.loadItemStackFromNBT(nbt.getCompoundTag("item")); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + if(this.item != null) { + NBTTagCompound stack = new NBTTagCompound(); + this.item.writeToNBT(stack); + nbt.setTag("item", stack); + } + } + } +} diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index 49c31e360..959d5eabc 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -187,7 +187,7 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_5, 1), new Object[] { "P", "C", "S", 'P', ANY_RUBBER.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID), 'S', ModBlocks.steel_scaffold }); //Turrets - CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.turret_sentry, 1), new Object[] { "PPL", " MD", " SC", 'P', STEEL.plate(), 'M', ModItems.motor, 'L', ModItems.mechanism_rifle_1, 'S', ModBlocks.steel_scaffold, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'D', ModItems.crt_display }); + CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.turret_sentry, 1), new Object[] { "PPL", " MD", " SC", 'P', STEEL.plate(), 'M', ModItems.motor, 'L', GUNMETAL.mechanism(), 'S', ModBlocks.steel_scaffold, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'D', ModItems.crt_display }); //Guns CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_b92), new Object[] { "DDD", "SSC", " R", 'D', ModItems.plate_dineutronium, 'S', STAR.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID), 'R', ModItems.gun_lasrifle }); diff --git a/src/main/java/com/hbm/entity/EntityMappings.java b/src/main/java/com/hbm/entity/EntityMappings.java index 9d0437c72..8a4cd26e1 100644 --- a/src/main/java/com/hbm/entity/EntityMappings.java +++ b/src/main/java/com/hbm/entity/EntityMappings.java @@ -17,7 +17,6 @@ import com.hbm.entity.missile.EntityMissileTier4.*; import com.hbm.entity.mob.*; import com.hbm.entity.mob.botprime.*; import com.hbm.entity.mob.glyphid.*; -import com.hbm.entity.mob.siege.*; import com.hbm.entity.particle.*; import com.hbm.entity.projectile.*; import com.hbm.entity.train.EntityRailCarBase.BoundingBoxDummyEntity; @@ -198,7 +197,6 @@ public class EntityMappings { addEntity(EntityNukeTorex.class, "entity_effect_torex", 250, false); addEntity(EntityArtilleryShell.class, "entity_artillery_shell", 1000); addEntity(EntityArtilleryRocket.class, "entity_himars", 1000); - addEntity(EntitySiegeTunneler.class, "entity_meme_tunneler", 1000); addEntity(EntityCog.class, "entity_stray_cog", 1000); addEntity(EntitySawblade.class, "entity_stray_saw", 1000); addEntity(EntityChemical.class, "entity_chemthrower_splash", 1000); @@ -237,10 +235,6 @@ public class EntityMappings { addMob(EntityFBI.class, "entity_ntm_fbi", 0x008000, 0x404040); addMob(EntityFBIDrone.class, "entity_ntm_fbi_drone", 0x008000, 0x404040); addMob(EntityRADBeast.class, "entity_ntm_radiation_blaze", 0x303030, 0x008000); - addMob(EntitySiegeZombie.class, "entity_meme_zombie", 0x303030, 0x008000); - addMob(EntitySiegeSkeleton.class, "entity_meme_skeleton", 0x303030, 0x000080); - addMob(EntitySiegeUFO.class, "entity_meme_ufo", 0x303030, 0x800000); - addMob(EntitySiegeCraft.class, "entity_meme_craft", 0x303030, 0x808000); addMob(EntityGlyphid.class, "entity_glyphid", 0x724A21, 0xD2BB72); addMob(EntityGlyphidBrawler.class, "entity_glyphid_brawler", 0x273038, 0xD2BB72); addMob(EntityGlyphidBehemoth.class, "entity_glyphid_behemoth", 0x267F00, 0xD2BB72); diff --git a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeSkeleton.java b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeSkeleton.java deleted file mode 100644 index 46e685a52..000000000 --- a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeSkeleton.java +++ /dev/null @@ -1,181 +0,0 @@ -package com.hbm.entity.mob.siege; - -import com.hbm.entity.projectile.EntitySiegeLaser; -import com.hbm.items.ModItems; - -import api.hbm.entity.IRadiationImmune; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.IEntityLivingData; -import net.minecraft.entity.IRangedAttackMob; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.EntityAIArrowAttack; -import net.minecraft.entity.ai.EntityAIHurtByTarget; -import net.minecraft.entity.ai.EntityAILookIdle; -import net.minecraft.entity.ai.EntityAINearestAttackableTarget; -import net.minecraft.entity.ai.EntityAISwimming; -import net.minecraft.entity.ai.EntityAIWander; -import net.minecraft.entity.ai.EntityAIWatchClosest; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.monster.EntityMob; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EntityDamageSource; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -public class EntitySiegeSkeleton extends EntityMob implements IRangedAttackMob, IRadiationImmune { - - public EntitySiegeSkeleton(World world) { - super(world); - this.tasks.addTask(1, new EntityAISwimming(this)); - this.tasks.addTask(2, new EntityAIArrowAttack(this, 1.0D, 20, 60, 15.0F)); - this.tasks.addTask(3, new EntityAIWander(this, 1.0D)); - this.tasks.addTask(5, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); - this.tasks.addTask(5, new EntityAILookIdle(this)); - this.targetTasks.addTask(1, new EntityAIHurtByTarget(this, false)); - this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 0, true)); - } - - @Override - public boolean attackEntityFrom(DamageSource source, float damage) { - - if(this.isEntityInvulnerable()) - return false; - - SiegeTier tier = this.getTier(); - - if(tier.fireProof && source.isFireDamage()) { - this.extinguish(); - return false; - } - - if(tier.noFall && source == DamageSource.fall) - return false; - - //noFF can't be harmed by other mobs - if(tier.noFriendlyFire && source instanceof EntityDamageSource && !(((EntityDamageSource) source).getEntity() instanceof EntityPlayer)) - return false; - - damage -= tier.dt; - - if(damage < 0) { - worldObj.playSoundAtEntity(this, "random.break", 5F, 1.0F + rand.nextFloat() * 0.5F); - return false; - } - - damage *= (1F - tier.dr); - - return super.attackEntityFrom(source, damage); - } - - @Override - protected void entityInit() { - super.entityInit(); - this.getDataWatcher().addObject(12, (int) 0); - } - - @Override - protected void applyEntityAttributes() { - super.applyEntityAttributes(); - this.getEntityAttribute(SharedMonsterAttributes.followRange).setBaseValue(40.0D); - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.23D); - this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(3.0D); - } - - public void setTier(SiegeTier tier) { - this.getDataWatcher().updateObject(12, tier.id); - - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).applyModifier(new AttributeModifier("Tier Speed Mod", tier.speedMod, 1)); - this.getEntityAttribute(SharedMonsterAttributes.attackDamage).applyModifier(new AttributeModifier("Tier Damage Mod", tier.damageMod, 1)); - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(tier.health); - this.setHealth(this.getMaxHealth()); - } - - public SiegeTier getTier() { - SiegeTier tier = SiegeTier.tiers[this.getDataWatcher().getWatchableObjectInt(12)]; - return tier != null ? tier : SiegeTier.CLAY; - } - - @Override - protected void addRandomArmor() { - super.addRandomArmor(); - this.setCurrentItemOrArmor(0, new ItemStack(ModItems.detonator_laser)); - } - - @Override - public void writeEntityToNBT(NBTTagCompound nbt) { - super.writeEntityToNBT(nbt); - nbt.setInteger("siegeTier", this.getTier().id); - } - - @Override - public void readEntityFromNBT(NBTTagCompound nbt) { - super.readEntityFromNBT(nbt); - this.setTier(SiegeTier.tiers[nbt.getInteger("siegeTier")]); - } - - @Override - public IEntityLivingData onSpawnWithEgg(IEntityLivingData data) { - this.setTier(SiegeTier.tiers[rand.nextInt(SiegeTier.getLength())]); - this.addRandomArmor(); - return super.onSpawnWithEgg(data); - } - - @Override - public void attackEntityWithRangedAttack(EntityLivingBase target, float f) { - - double x = posX; - double y = posY + this.getEyeHeight(); - double z = posZ; - - Vec3 vec = Vec3.createVectorHelper(target.posX - x, target.posY + target.getYOffset() + target.height * 0.5 - y, target.posZ - z).normalize(); - - SiegeTier tier = this.getTier(); - - for(int i = 0; i < 3; i++) { - EntitySiegeLaser laser = new EntitySiegeLaser(worldObj, this); - laser.setPosition(x, y, z); - laser.setThrowableHeading(vec.xCoord, vec.yCoord, vec.zCoord, 1F, i == 1 ? 0.15F : 5F); - laser.setColor(0x808000); - laser.setDamage(tier.damageMod); - laser.setExplosive(tier.laserExplosive); - laser.setBreakChance(tier.laserBreak); - if(tier.laserIncendiary) laser.setIncendiary(); - worldObj.spawnEntityInWorld(laser); - } - - this.playSound("hbm:weapon.ballsLaser", 2.0F, 0.9F + rand.nextFloat() * 0.2F); - } - - @Override - protected boolean isAIEnabled() { - return true; - } - - @Override - protected String getLivingSound() { - return "hbm:entity.siegeIdle"; - } - - @Override - protected String getHurtSound() { - return "hbm:entity.siegeHurt"; - } - - @Override - protected String getDeathSound() { - return "hbm:entity.siegeDeath"; - } - - @Override - protected void dropFewItems(boolean byPlayer, int fortune) { - - if(byPlayer) { - for(ItemStack drop : this.getTier().dropItem) { - this.entityDropItem(drop.copy(), 0F); - } - } - } -} diff --git a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeUFO.java b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeUFO.java deleted file mode 100644 index 12551252a..000000000 --- a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeUFO.java +++ /dev/null @@ -1,144 +0,0 @@ -package com.hbm.entity.mob.siege; - -import com.hbm.entity.mob.EntityUFOBase; -import com.hbm.entity.projectile.EntitySiegeLaser; -import api.hbm.entity.IRadiationImmune; -import net.minecraft.entity.IEntityLivingData; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EntityDamageSource; -import net.minecraft.util.Vec3; -import net.minecraft.world.World; - -public class EntitySiegeUFO extends EntityUFOBase implements IRadiationImmune { - - private int attackCooldown; - - public EntitySiegeUFO(World world) { - super(world); - this.setSize(1.5F, 1F); - } - - @Override - protected void entityInit() { - super.entityInit(); - this.getDataWatcher().addObject(12, (int) 0); - } - - public void setTier(SiegeTier tier) { - this.getDataWatcher().updateObject(12, tier.id); - - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(tier.speedMod); - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(tier.health * 0.25); - this.setHealth(this.getMaxHealth()); - } - - public SiegeTier getTier() { - SiegeTier tier = SiegeTier.tiers[this.getDataWatcher().getWatchableObjectInt(12)]; - return tier != null ? tier : SiegeTier.CLAY; - } - - @Override - public boolean attackEntityFrom(DamageSource source, float damage) { - - if(this.isEntityInvulnerable()) - return false; - - SiegeTier tier = this.getTier(); - - if(tier.fireProof && source.isFireDamage()) { - this.extinguish(); - return false; - } - - //noFF can't be harmed by other mobs - if(tier.noFriendlyFire && source instanceof EntityDamageSource && !(((EntityDamageSource) source).getEntity() instanceof EntityPlayer)) - return false; - - damage -= tier.dt; - - if(damage < 0) { - worldObj.playSoundAtEntity(this, "random.break", 5F, 1.0F + rand.nextFloat() * 0.5F); - return false; - } - - damage *= (1F - tier.dr); - - return super.attackEntityFrom(source, damage); - } - - @Override - protected void updateEntityActionState() { - super.updateEntityActionState(); - - if(this.courseChangeCooldown > 0) { - this.courseChangeCooldown--; - } - if(this.scanCooldown > 0) { - this.scanCooldown--; - } - - if(!worldObj.isRemote) { - if(this.attackCooldown > 0) { - this.attackCooldown--; - } - - if(this.attackCooldown == 0 && this.target != null) { - this.attackCooldown = 20 + rand.nextInt(5); - - double x = posX; - double y = posY; - double z = posZ; - - Vec3 vec = Vec3.createVectorHelper(target.posX - x, target.posY + target.height * 0.5 - y, target.posZ - z).normalize(); - SiegeTier tier = this.getTier(); - - EntitySiegeLaser laser = new EntitySiegeLaser(worldObj, this); - laser.setPosition(x, y, z); - laser.setThrowableHeading(vec.xCoord, vec.yCoord, vec.zCoord, 1F, 0.15F); - laser.setColor(0x802000); - laser.setDamage(tier.damageMod); - laser.setExplosive(tier.laserExplosive); - laser.setBreakChance(tier.laserBreak); - if(tier.laserIncendiary) laser.setIncendiary(); - worldObj.spawnEntityInWorld(laser); - this.playSound("hbm:weapon.ballsLaser", 2.0F, 1.0F); - } - } - - if(this.courseChangeCooldown > 0) { - approachPosition(this.target == null ? 0.25D : 0.5D + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).getAttributeValue() * 1); - } - } - - @Override - public void writeEntityToNBT(NBTTagCompound nbt) { - super.writeEntityToNBT(nbt); - nbt.setInteger("siegeTier", this.getTier().id); - } - - @Override - public void readEntityFromNBT(NBTTagCompound nbt) { - super.readEntityFromNBT(nbt); - this.setTier(SiegeTier.tiers[nbt.getInteger("siegeTier")]); - } - - @Override - public IEntityLivingData onSpawnWithEgg(IEntityLivingData data) { - this.setTier(SiegeTier.tiers[rand.nextInt(SiegeTier.getLength())]); - return super.onSpawnWithEgg(data); - } - - @Override - protected void dropFewItems(boolean byPlayer, int fortune) { - - if(byPlayer) { - for(ItemStack drop : this.getTier().dropItem) { - this.entityDropItem(drop.copy(), 0F); - } - } - } -} diff --git a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeZombie.java b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeZombie.java deleted file mode 100644 index 82ac62ce8..000000000 --- a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeZombie.java +++ /dev/null @@ -1,156 +0,0 @@ -package com.hbm.entity.mob.siege; - -import api.hbm.entity.IRadiationImmune; -import net.minecraft.entity.IEntityLivingData; -import net.minecraft.entity.SharedMonsterAttributes; -import net.minecraft.entity.ai.EntityAIAttackOnCollide; -import net.minecraft.entity.ai.EntityAIHurtByTarget; -import net.minecraft.entity.ai.EntityAILookIdle; -import net.minecraft.entity.ai.EntityAIMoveTowardsRestriction; -import net.minecraft.entity.ai.EntityAINearestAttackableTarget; -import net.minecraft.entity.ai.EntityAISwimming; -import net.minecraft.entity.ai.EntityAIWander; -import net.minecraft.entity.ai.EntityAIWatchClosest; -import net.minecraft.entity.ai.attributes.AttributeModifier; -import net.minecraft.entity.monster.EntityMob; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.DamageSource; -import net.minecraft.util.EntityDamageSource; -import net.minecraft.world.World; - -public class EntitySiegeZombie extends EntityMob implements IRadiationImmune { - - public EntitySiegeZombie(World world) { - super(world); - this.getNavigator().setBreakDoors(true); - this.tasks.addTask(0, new EntityAISwimming(this)); - this.tasks.addTask(2, new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.0D, false)); - this.tasks.addTask(3, new EntityAIMoveTowardsRestriction(this, 1.0D)); - this.tasks.addTask(4, new EntityAIWander(this, 1.0D)); - this.tasks.addTask(5, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); - this.tasks.addTask(5, new EntityAILookIdle(this)); - this.targetTasks.addTask(1, new EntityAIHurtByTarget(this, true)); - this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 0, true)); - this.setSize(0.6F, 1.8F); - } - - @Override - public boolean attackEntityFrom(DamageSource source, float damage) { - - if(this.isEntityInvulnerable()) - return false; - - SiegeTier tier = this.getTier(); - - if(tier.fireProof && source.isFireDamage()) { - this.extinguish(); - return false; - } - - if(tier.noFall && source == DamageSource.fall) - return false; - - //noFF can't be harmed by other mobs - if(tier.noFriendlyFire && source instanceof EntityDamageSource && !(((EntityDamageSource) source).getEntity() instanceof EntityPlayer)) - return false; - - damage -= tier.dt; - - if(damage < 0) { - worldObj.playSoundAtEntity(this, "random.break", 5F, 1.0F + rand.nextFloat() * 0.5F); - return false; - } - - damage *= (1F - tier.dr); - - return super.attackEntityFrom(source, damage); - } - - @Override - protected void entityInit() { - super.entityInit(); - this.getDataWatcher().addObject(12, (int) 0); - this.getDataWatcher().addObject(13, (byte) 0); - } - - @Override - protected void applyEntityAttributes() { - super.applyEntityAttributes(); - this.getEntityAttribute(SharedMonsterAttributes.followRange).setBaseValue(40.0D); - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.23D); - this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(3.0D); - } - - public void setTier(SiegeTier tier) { - this.getDataWatcher().updateObject(12, tier.id); - - this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).applyModifier(new AttributeModifier("Tier Speed Mod", tier.speedMod, 1)); - this.getEntityAttribute(SharedMonsterAttributes.attackDamage).applyModifier(new AttributeModifier("Tier Damage Mod", tier.damageMod, 1)); - this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(tier.health); - this.setHealth(this.getMaxHealth()); - } - - public SiegeTier getTier() { - SiegeTier tier = SiegeTier.tiers[this.getDataWatcher().getWatchableObjectInt(12)]; - return tier != null ? tier : SiegeTier.CLAY; - } - - @Override - protected boolean isAIEnabled() { - return true; - } - - @Override - protected String getLivingSound() { - return "hbm:entity.siegeIdle"; - } - - @Override - protected String getHurtSound() { - return "hbm:entity.siegeHurt"; - } - - @Override - protected String getDeathSound() { - return "hbm:entity.siegeDeath"; - } - - @Override - protected void dropFewItems(boolean byPlayer, int fortune) { - - if(byPlayer) { - for(ItemStack drop : this.getTier().dropItem) { - this.entityDropItem(drop.copy(), 0F); - } - } - } - - @Override - public void onUpdate() { - - super.onUpdate(); - if(!worldObj.isRemote) { - this.dataWatcher.updateObject(13, (byte)(this.getAttackTarget() != null ? 1 : 0)); - } - } - - @Override - public void writeEntityToNBT(NBTTagCompound nbt) { - super.writeEntityToNBT(nbt); - nbt.setInteger("siegeTier", this.getTier().id); - } - - @Override - public void readEntityFromNBT(NBTTagCompound nbt) { - super.readEntityFromNBT(nbt); - this.setTier(SiegeTier.tiers[nbt.getInteger("siegeTier")]); - } - - @Override - public IEntityLivingData onSpawnWithEgg(IEntityLivingData data) { - this.setTier(SiegeTier.tiers[rand.nextInt(SiegeTier.getLength())]); - return super.onSpawnWithEgg(data); - } -} \ No newline at end of file diff --git a/src/main/java/com/hbm/inventory/material/Mats.java b/src/main/java/com/hbm/inventory/material/Mats.java index 16bc6378b..4a61981ff 100644 --- a/src/main/java/com/hbm/inventory/material/Mats.java +++ b/src/main/java/com/hbm/inventory/material/Mats.java @@ -141,7 +141,7 @@ public class Mats { public static final NTMMaterial MAT_DURA = makeSmeltable(_AS + 3, DURA, 0x183039, 0x030B0B, 0x376373).setAutogen(BOLT, DUST, PLATE, CASTPLATE, PIPE, BLOCK, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER, GRIP).m(); public static final NTMMaterial MAT_DESH = makeSmeltable(_AS + 12, DESH, 0xFF6D6D, 0x720000, 0xF22929).setAutogen(DUST, CASTPLATE, BLOCK, HEAVY_COMPONENT, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, STOCK, GRIP).m(); public static final NTMMaterial MAT_STAR = makeSmeltable(_AS + 5, STAR, 0xCCCCEA, 0x11111A, 0xA5A5D3).setAutogen(DUST, DENSEWIRE, BLOCK).m(); - public static final NTMMaterial MAT_FERRO = makeSmeltable(_AS + 7, FERRO, 0xB7B7C9, 0x101022, 0x6B6B8B).setAutogen(HEAVYBARREL, HEAVYRECEIVER).m(); + public static final NTMMaterial MAT_FERRO = makeSmeltable(_AS + 7, FERRO, 0xB7B7C9, 0x101022, 0x6B6B8B).setAutogen(CASTPLATE, HEAVYBARREL, HEAVYRECEIVER).m(); public static final NTMMaterial MAT_TCALLOY = makeSmeltable(_AS + 6, TCALLOY, 0xD4D6D6, 0x323D3D, 0x9CA6A6).setAutogen(DUST, CASTPLATE, WELDEDPLATE, HEAVY_COMPONENT, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER).m(); public static final NTMMaterial MAT_CDALLOY = makeSmeltable(_AS + 13, CDALLOY, 0xF7DF8F, 0x604308, 0xFBD368).setAutogen(CASTPLATE, WELDEDPLATE, HEAVY_COMPONENT, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER).m(); public static final NTMMaterial MAT_BBRONZE = makeSmeltable(_AS + 16, BBRONZE, 0xE19A69, 0x485353, 0x987D65).setAutogen(CASTPLATE, LIGHTBARREL, LIGHTRECEIVER).m(); diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index e4e576ef2..c9aaeb836 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -625,34 +625,31 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModBlocks.turret_chekhov, 1), new AStack[] { new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 16), - new OreDictStack(DURA.ingot(), 4), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 3), - new ComparableStack(ModItems.mechanism_rifle_2, 1), + new OreDictStack(GUNMETAL.mechanism(), 3), new ComparableStack(ModBlocks.crate_iron, 1), new ComparableStack(ModItems.crt_display, 1) }, 200); makeRecipe(new ComparableStack(ModBlocks.turret_friendly, 1), new AStack[] { new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 16), - new OreDictStack(DURA.ingot(), 4), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC), new OreDictStack(STEEL.pipe(), 3), - new ComparableStack(ModItems.mechanism_rifle_1, 1), + new OreDictStack(GUNMETAL.mechanism(), 1), new ComparableStack(ModBlocks.crate_iron, 1), new ComparableStack(ModItems.crt_display, 1) }, 200); makeRecipe(new ComparableStack(ModBlocks.turret_jeremy, 1), new AStack[] { new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 16), - new OreDictStack(DURA.ingot(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.motor_desh, 1), new OreDictStack(STEEL.shell(), 3), - new ComparableStack(ModItems.mechanism_launcher_2, 1), + new OreDictStack(WEAPONSTEEL.mechanism(), 3), new ComparableStack(ModBlocks.crate_steel, 1), new ComparableStack(ModItems.crt_display, 1) }, 200); @@ -664,42 +661,39 @@ public class AssemblerRecipes extends SerializableRecipe { new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.motor_desh, 1), new OreDictStack(CU.ingot(), 32), - new ComparableStack(ModItems.mechanism_special, 1), + new OreDictStack(BIGMT.mechanism(), 3), new ComparableStack(ModItems.battery_lithium, 1), new ComparableStack(ModItems.crt_display, 1) }, 200); makeRecipe(new ComparableStack(ModBlocks.turret_richard, 1), new AStack[] { new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 16), - new OreDictStack(DURA.ingot(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new OreDictStack(ANY_PLASTIC.ingot(), 2), new OreDictStack(STEEL.shell(), 8), - new ComparableStack(ModItems.mechanism_launcher_2, 1), + new OreDictStack(WEAPONSTEEL.mechanism(), 3), new ComparableStack(ModBlocks.crate_steel, 1), new ComparableStack(ModItems.crt_display, 1) }, 200); makeRecipe(new ComparableStack(ModBlocks.turret_howard, 1), new AStack[] { new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 24), - new OreDictStack(DURA.ingot(), 6), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.motor_desh, 2), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 10), - new ComparableStack(ModItems.mechanism_rifle_2, 2), + new OreDictStack(WEAPONSTEEL.mechanism(), 3), new ComparableStack(ModBlocks.crate_steel, 1), new ComparableStack(ModItems.crt_display, 1) }, 200); makeRecipe(new ComparableStack(ModBlocks.turret_maxwell, 1), new AStack[] { new ComparableStack(ModBlocks.machine_lithium_battery, 1), new OreDictStack(STEEL.ingot(), 24), - new OreDictStack(DURA.ingot(), 6), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 4), - new ComparableStack(ModItems.mechanism_special, 3), + new OreDictStack(BIGMT.mechanism(), 3), new ComparableStack(ModItems.magnetron, 16), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 8), new ComparableStack(ModItems.crt_display, 1) @@ -707,33 +701,30 @@ public class AssemblerRecipes extends SerializableRecipe { makeRecipe(new ComparableStack(ModBlocks.turret_fritz, 1), new AStack[] { new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 16), - new OreDictStack(DURA.ingot(), 4), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 8), - new ComparableStack(ModItems.mechanism_launcher_1, 1), + new OreDictStack(GUNMETAL.mechanism(), 3), new ComparableStack(ModBlocks.barrel_steel, 1), new ComparableStack(ModItems.crt_display, 1) }, 200); makeRecipe(new ComparableStack(ModBlocks.turret_arty, 1), new AStack[] { new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 128), - new OreDictStack(DURA.ingot(), 32), new ComparableStack(ModItems.motor_desh, 5), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 12), - new ComparableStack(ModItems.mechanism_launcher_2, 3), + new OreDictStack(WEAPONSTEEL.mechanism(), 16), new ComparableStack(ModBlocks.machine_radar, 1), new ComparableStack(ModItems.crt_display, 1) }, 200); makeRecipe(new ComparableStack(ModBlocks.turret_himars, 1), new AStack[] { new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 128), - new OreDictStack(DURA.ingot(), 64), new OreDictStack(ANY_PLASTIC.ingot(), 64), new ComparableStack(ModItems.motor_desh, 5), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED), - new ComparableStack(ModItems.mechanism_launcher_2, 5), + new OreDictStack(BIGMT.mechanism(), 8), new ComparableStack(ModBlocks.machine_radar, 1), new ComparableStack(ModItems.crt_display, 1) }, 300); diff --git a/src/main/java/com/hbm/inventory/recipes/PedestalRecipes.java b/src/main/java/com/hbm/inventory/recipes/PedestalRecipes.java index c5d5c95bb..cba9cb424 100644 --- a/src/main/java/com/hbm/inventory/recipes/PedestalRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/PedestalRecipes.java @@ -74,6 +74,15 @@ public class PedestalRecipes extends SerializableRecipe { new ComparableStack(ModItems.item_secret, 4, EnumSecretType.SELENIUM_STEEL), new ComparableStack(ModItems.item_secret, 2, EnumSecretType.CONTROLLER), new ComparableStack(ModItems.item_secret, 4, EnumSecretType.SELENIUM_STEEL)) .extra(PedestalExtraCondition.FULL_MOON)); + recipes.add(new PedestalRecipe(new ItemStack(ModItems.gun_aberrator), + null, new ComparableStack(ModItems.item_secret, 1, EnumSecretType.ABERRATOR), null, + new ComparableStack(ModItems.item_secret, 1, EnumSecretType.ABERRATOR), new OreDictStack(BIGMT.mechanism(), 4), new ComparableStack(ModItems.item_secret, 1, EnumSecretType.ABERRATOR), + null, new ComparableStack(ModItems.item_secret, 1, EnumSecretType.ABERRATOR), null)); + recipes.add(new PedestalRecipe(new ItemStack(ModItems.gun_aberrator_eott), + new ComparableStack(ModItems.item_secret, 1, EnumSecretType.ABERRATOR), new ComparableStack(ModItems.item_secret, 1, EnumSecretType.ABERRATOR), new ComparableStack(ModItems.item_secret, 1, EnumSecretType.ABERRATOR), + new ComparableStack(ModItems.item_secret, 1, EnumSecretType.ABERRATOR), new OreDictStack(BIGMT.mechanism(), 16), new ComparableStack(ModItems.item_secret, 1, EnumSecretType.ABERRATOR), + new ComparableStack(ModItems.item_secret, 1, EnumSecretType.ABERRATOR), new ComparableStack(ModItems.item_secret, 1, EnumSecretType.ABERRATOR), new ComparableStack(ModItems.item_secret, 1, EnumSecretType.ABERRATOR))); + recipes.add(new PedestalRecipe(new ItemStack(ModItems.ammo_secret, 1, EnumAmmoSecret.FOLLY_SM.ordinal()), new OreDictStack(STAR.ingot(), 1), new ComparableStack(ModItems.powder_magic), new OreDictStack(STAR.ingot(), 1), new ComparableStack(ModItems.powder_magic), new ComparableStack(ModBlocks.moon_turf), new ComparableStack(ModItems.powder_magic), @@ -84,6 +93,10 @@ public class PedestalRecipes extends SerializableRecipe { new ComparableStack(ModItems.powder_magic), new ComparableStack(ModItems.ammo_standard, 4, EnumAmmo.NUKE_HIGH), new ComparableStack(ModItems.powder_magic), new OreDictStack(STAR.ingot(), 1), new ComparableStack(ModItems.powder_magic), new OreDictStack(STAR.ingot(), 1)) .extra(PedestalExtraCondition.FULL_MOON)); + recipes.add(new PedestalRecipe(new ItemStack(ModItems.ammo_secret, 5, EnumAmmoSecret.P35_800.ordinal()), + null, null, null, + null, new ComparableStack(ModItems.item_secret, 1, EnumSecretType.ABERRATOR), null, + null, null, null)); } @Override diff --git a/src/main/java/com/hbm/items/ItemEnums.java b/src/main/java/com/hbm/items/ItemEnums.java index 1adbc375b..e832c102a 100644 --- a/src/main/java/com/hbm/items/ItemEnums.java +++ b/src/main/java/com/hbm/items/ItemEnums.java @@ -79,7 +79,7 @@ public class ItemEnums { } public static enum EnumSecretType { - CANISTER, CONTROLLER, SELENIUM_STEEL + CANISTER, CONTROLLER, SELENIUM_STEEL, ABERRATOR } public static enum EnumCasingType { diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index b712e47a4..a7bf99f5f 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -584,14 +584,6 @@ public class ModItems { public static ItemEnumMulti circuit_star_component; public static Item circuit_star; - public static Item mechanism_revolver_1; - public static Item mechanism_revolver_2; - public static Item mechanism_rifle_1; - public static Item mechanism_rifle_2; - public static Item mechanism_launcher_1; - public static Item mechanism_launcher_2; - public static Item mechanism_special; - public static Item assembly_nuke; public static Item casing; @@ -2830,13 +2822,6 @@ public class ModItems { circuit_star_piece = (ItemEnumMulti) new ItemEnumMulti(ScrapType.class, true, true).setUnlocalizedName("circuit_star_piece").setCreativeTab(null); circuit_star_component = (ItemEnumMulti) new ItemCircuitStarComponent().setUnlocalizedName("circuit_star_component").setCreativeTab(null); circuit_star = new ItemCustomLore().setRarity(EnumRarity.uncommon).setUnlocalizedName("circuit_star").setCreativeTab(null).setTextureName(RefStrings.MODID + ":circuit_star"); - mechanism_revolver_1 = new Item().setUnlocalizedName("mechanism_revolver_1").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":mechanism_1"); - mechanism_revolver_2 = new Item().setUnlocalizedName("mechanism_revolver_2").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":mechanism_3"); - mechanism_rifle_1 = new Item().setUnlocalizedName("mechanism_rifle_1").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":mechanism_2"); - mechanism_rifle_2 = new Item().setUnlocalizedName("mechanism_rifle_2").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":mechanism_4"); - mechanism_launcher_1 = new Item().setUnlocalizedName("mechanism_launcher_1").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":mechanism_5"); - mechanism_launcher_2 = new Item().setUnlocalizedName("mechanism_launcher_2").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":mechanism_6"); - mechanism_special = new Item().setUnlocalizedName("mechanism_special").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":mechanism_7"); assembly_nuke = new Item().setUnlocalizedName("assembly_nuke").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_nuke"); casing = new ItemEnumMulti(ItemEnums.EnumCasingType.class, true, true).setUnlocalizedName("casing").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":casing"); @@ -5666,15 +5651,6 @@ public class ModItems { GameRegistry.registerItem(circuit_star_component, circuit_star_component.getUnlocalizedName()); GameRegistry.registerItem(circuit_star, circuit_star.getUnlocalizedName()); - //Gun Mechanisms - GameRegistry.registerItem(mechanism_revolver_1, mechanism_revolver_1.getUnlocalizedName()); - GameRegistry.registerItem(mechanism_revolver_2, mechanism_revolver_2.getUnlocalizedName()); - GameRegistry.registerItem(mechanism_rifle_1, mechanism_rifle_1.getUnlocalizedName()); - GameRegistry.registerItem(mechanism_rifle_2, mechanism_rifle_2.getUnlocalizedName()); - GameRegistry.registerItem(mechanism_launcher_1, mechanism_launcher_1.getUnlocalizedName()); - GameRegistry.registerItem(mechanism_launcher_2, mechanism_launcher_2.getUnlocalizedName()); - GameRegistry.registerItem(mechanism_special, mechanism_special.getUnlocalizedName()); - //Casing GameRegistry.registerItem(casing, casing.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index b726eff94..03a11681f 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -6,7 +6,8 @@ import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; import com.hbm.blocks.generic.BlockPedestal.TileEntityPedestal; import com.hbm.blocks.generic.BlockPlushie.TileEntityPlushie; - import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe; +import com.hbm.blocks.generic.BlockSkeletonHolder.TileEntitySkeletonHolder; +import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe; import com.hbm.blocks.machine.Floodlight.TileEntityFloodlight; import com.hbm.blocks.machine.MachineFan.TileEntityFan; import com.hbm.blocks.machine.PistonInserter.TileEntityPistonInserter; @@ -201,6 +202,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFloodlight.class, new RenderFloodlight()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLoot.class, new RenderLoot()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPedestal.class, new RenderPedestalTile()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySkeletonHolder.class, new RenderSkeletonHolder()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBobble.class, new RenderBobble()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySnowglobe.class, new RenderSnowglobe()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPlushie.class, new RenderPlushie()); @@ -740,10 +742,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityRADBeast.class, new RenderRADBeast()); RenderingRegistry.registerEntityRenderingHandler(EntityBlockSpider.class, new RenderBlockSpider()); RenderingRegistry.registerEntityRenderingHandler(EntityUFO.class, new RenderUFO()); - RenderingRegistry.registerEntityRenderingHandler(EntitySiegeZombie.class, new RenderSiegeZombie()); - RenderingRegistry.registerEntityRenderingHandler(EntitySiegeUFO.class, new RenderSiegeUFO()); RenderingRegistry.registerEntityRenderingHandler(EntitySiegeCraft.class, new RenderSiegeCraft()); - RenderingRegistry.registerEntityRenderingHandler(EntitySiegeSkeleton.class, new RenderSiegeSkeleton()); RenderingRegistry.registerEntityRenderingHandler(EntitySiegeTunneler.class, new RenderSiegeTunneler()); RenderingRegistry.registerEntityRenderingHandler(EntityGhost.class, new RenderGhost()); RenderingRegistry.registerEntityRenderingHandler(EntityGlyphid.class, new RenderGlyphid()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 452d1cbe7..c9c6a1eeb 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -351,14 +351,6 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModItems.stamp_desh_flat, 1), new Object[] { "BDB", "DSD", "BDB", 'B', brick, 'D', DESH.ingot(), 'S', FERRO.ingot() }); } - addRecipeAuto(new ItemStack(ModItems.mechanism_revolver_1, 1), new Object[] { "ICI", "CAC", "ICI", 'I', IRON.plate(), 'C', CU.ingot(), 'A', AL.ingot() }); - addRecipeAuto(new ItemStack(ModItems.mechanism_revolver_2, 1), new Object[] { "ATA", "TDT", "ATA", 'A', ALLOY.plate(), 'T', W.ingot(), 'D', DURA.ingot() }); - addRecipeAuto(new ItemStack(ModItems.mechanism_rifle_1, 1), new Object[] { "ICI", "MAM", "ICI", 'I', IRON.plate(), 'C', CU.ingot(), 'A', AL.ingot(), 'M', ModItems.mechanism_revolver_1 }); - addRecipeAuto(new ItemStack(ModItems.mechanism_rifle_2, 1), new Object[] { "ATA", "MDM", "ATA", 'A', ALLOY.plate(), 'T', W.ingot(), 'D', DURA.ingot(), 'M', ModItems.mechanism_revolver_2 }); - addRecipeAuto(new ItemStack(ModItems.mechanism_launcher_1, 1), new Object[] { "TTT", "SSS", "BBI", 'T', TI.plate(), 'S', STEEL.ingot(), 'B', W.bolt(), 'I', MINGRADE.ingot() }); - addRecipeAuto(new ItemStack(ModItems.mechanism_launcher_2, 1), new Object[] { "TTT", "SSS", "BBI", 'T', ALLOY.plate(), 'S', ANY_PLASTIC.ingot(), 'B', W.bolt(), 'I', DESH.ingot() }); - addRecipeAuto(new ItemStack(ModItems.mechanism_special, 1), new Object[] { "PCI", "ISS", "PCI", 'P', ModItems.plate_desh, 'C', ModItems.coil_advanced_alloy, 'I', STAR.ingot(), 'S', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); - addRecipeAuto(new ItemStack(ModBlocks.watz_pump, 1), new Object[] { "MPM", "PCP", "PSP", 'M', ModItems.motor_desh, 'P', ANY_RESISTANTALLOY.plateCast(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID), 'S', ModItems.pipes_steel }); addRecipeAuto(new ItemStack(ModBlocks.reinforced_stone, 4), new Object[] { "FBF", "BFB", "FBF", 'F', Blocks.cobblestone, 'B', Blocks.stone }); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 8f7f53640..35e7e03e3 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1666,6 +1666,13 @@ public class MainRegistry { ignoreMappings.add("hbm:item.bobmazon_tools"); ignoreMappings.add("hbm:item.missile_carrier"); ignoreMappings.add("hbm:item.magnet_circular"); + ignoreMappings.add("hbm:item.mechanism_revolver_1"); + ignoreMappings.add("hbm:item.mechanism_revolver_2"); + ignoreMappings.add("hbm:item.mechanism_rifle_1"); + ignoreMappings.add("hbm:item.mechanism_rifle_2"); + ignoreMappings.add("hbm:item.mechanism_launcher_1"); + ignoreMappings.add("hbm:item.mechanism_launcher_2"); + ignoreMappings.add("hbm:item.mechanism_special"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 6f56ba605..51f55b29f 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -349,6 +349,9 @@ public class ResourceManager { public static IModelCustomNamed silo_hatch_large = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/doors/silo_hatch_large.obj")).asVBO(); + //Skeleton + public static final IModelCustom skeleton_holder = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/skeleton_holder.obj"),false).asVBO(); + //Lights public static final IModelCustom lantern = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/trinkets/lantern.obj")); public static final IModelCustom cage_lamp = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/lights/cage_lamp.obj")); @@ -760,6 +763,9 @@ public class ResourceManager { public static final ResourceLocation transition_seal_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/transition_seal.png"); public static final ResourceLocation fire_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/doors/fire_door.png"); + //Skeleton + public static final ResourceLocation skeleton_holder_tex = new ResourceLocation(RefStrings.MODID, "textures/particle/skeleton.png"); + //Lantern public static final ResourceLocation lantern_tex = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/lantern.png"); public static final ResourceLocation lantern_rusty_tex = new ResourceLocation(RefStrings.MODID, "textures/models/trinkets/lantern_rusty.png"); diff --git a/src/main/java/com/hbm/render/entity/mob/RenderGhost.java b/src/main/java/com/hbm/render/entity/mob/RenderGhost.java index 98c1484a9..812107d0c 100644 --- a/src/main/java/com/hbm/render/entity/mob/RenderGhost.java +++ b/src/main/java/com/hbm/render/entity/mob/RenderGhost.java @@ -4,8 +4,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.entity.mob.EntityGhost; import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelSiegeZombie; +import net.minecraft.client.model.ModelBiped; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.entity.RenderBiped; import net.minecraft.entity.Entity; @@ -15,7 +15,7 @@ import net.minecraft.util.ResourceLocation; public class RenderGhost extends RenderBiped { public RenderGhost() { - super(new ModelSiegeZombie(0.0F), 0.5F, 1.0F); + super(new ModelBiped(0.0F), 0.5F, 1.0F); } @Override diff --git a/src/main/java/com/hbm/render/entity/mob/RenderSiegeSkeleton.java b/src/main/java/com/hbm/render/entity/mob/RenderSiegeSkeleton.java deleted file mode 100644 index 932e739ec..000000000 --- a/src/main/java/com/hbm/render/entity/mob/RenderSiegeSkeleton.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.hbm.render.entity.mob; - -import com.hbm.entity.mob.siege.EntitySiegeSkeleton; -import com.hbm.entity.mob.siege.SiegeTier; -import com.hbm.lib.RefStrings; - -import net.minecraft.client.model.ModelSkeleton; -import net.minecraft.client.renderer.entity.RenderBiped; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.util.ResourceLocation; - -public class RenderSiegeSkeleton extends RenderBiped { - - public RenderSiegeSkeleton() { - super(new ModelSkeleton() { - - @Override - public void setLivingAnimations(EntityLivingBase entity, float f0, float f1, float f2) { - this.aimedBow = true; - } - }, 0.5F); - } - - @Override - protected ResourceLocation getEntityTexture(EntityLiving entity) { - return this.getEntityTexture((EntitySiegeSkeleton) entity); - } - - @Override - protected ResourceLocation getEntityTexture(Entity entity) { - return this.getEntityTexture((EntitySiegeSkeleton) entity); - } - - protected ResourceLocation getEntityTexture(EntitySiegeSkeleton entity) { - SiegeTier tier = entity.getTier(); - return new ResourceLocation(RefStrings.MODID + ":textures/entity/siege_" + tier.name + ".png"); - } -} diff --git a/src/main/java/com/hbm/render/entity/mob/RenderSiegeUFO.java b/src/main/java/com/hbm/render/entity/mob/RenderSiegeUFO.java deleted file mode 100644 index ad9ad0793..000000000 --- a/src/main/java/com/hbm/render/entity/mob/RenderSiegeUFO.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.hbm.render.entity.mob; - -import org.lwjgl.opengl.GL11; - -import com.hbm.entity.mob.siege.EntitySiegeUFO; -import com.hbm.entity.mob.siege.SiegeTier; -import com.hbm.lib.RefStrings; -import com.hbm.main.ResourceManager; - -import net.minecraft.client.renderer.entity.Render; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; - -public class RenderSiegeUFO extends Render { - - @Override - public void doRender(Entity entity, double x, double y, double z, float f0, float f1) { - - GL11.glPushMatrix(); - GL11.glTranslated(x, y + 0.25, z); - - EntitySiegeUFO ufo = (EntitySiegeUFO) entity; - - this.bindTexture(getEntityTexture(entity)); - - double rot = (entity.ticksExisted + f1) * 5 % 360D; - GL11.glRotated(rot, 0, 1, 0); - - - if(!ufo.isEntityAlive()) { - float tilt = ufo.deathTime + f1; - GL11.glRotatef(tilt * 5, 1, 0, 1); - } else if(entity.hurtResistantTime > 0) { - GL11.glRotated(Math.sin(System.currentTimeMillis() * 0.01D) * (entity.hurtResistantTime - f1), 1, 0, 0); - } - - GL11.glShadeModel(GL11.GL_SMOOTH); - GL11.glDisable(GL11.GL_CULL_FACE); - ResourceManager.mini_ufo.renderAll(); - GL11.glEnable(GL11.GL_CULL_FACE); - GL11.glShadeModel(GL11.GL_FLAT); - - GL11.glPopMatrix(); - } - - @Override - protected ResourceLocation getEntityTexture(Entity entity) { - return this.getEntityTexture((EntitySiegeUFO) entity); - } - - protected ResourceLocation getEntityTexture(EntitySiegeUFO entity) { - SiegeTier tier = entity.getTier(); - return new ResourceLocation(RefStrings.MODID + ":textures/entity/ufo_siege_" + tier.name + ".png"); - } -} diff --git a/src/main/java/com/hbm/render/entity/mob/RenderSiegeZombie.java b/src/main/java/com/hbm/render/entity/mob/RenderSiegeZombie.java deleted file mode 100644 index 679d0a9d7..000000000 --- a/src/main/java/com/hbm/render/entity/mob/RenderSiegeZombie.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.hbm.render.entity.mob; - -import com.hbm.entity.mob.siege.EntitySiegeZombie; -import com.hbm.entity.mob.siege.SiegeTier; -import com.hbm.lib.RefStrings; -import com.hbm.render.model.ModelSiegeZombie; - -import net.minecraft.client.renderer.entity.RenderBiped; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLiving; -import net.minecraft.util.ResourceLocation; - -public class RenderSiegeZombie extends RenderBiped { - - public RenderSiegeZombie() { - super(new ModelSiegeZombie(0.0F), 0.5F, 1.0F); - } - - @Override - protected ResourceLocation getEntityTexture(EntityLiving entity) { - return this.getEntityTexture((EntitySiegeZombie) entity); - } - - @Override - protected ResourceLocation getEntityTexture(Entity entity) { - return this.getEntityTexture((EntitySiegeZombie) entity); - } - - protected ResourceLocation getEntityTexture(EntitySiegeZombie entity) { - SiegeTier tier = entity.getTier(); - return new ResourceLocation(RefStrings.MODID + ":textures/entity/siege_" + tier.name + ".png"); - } - - @Override - protected void func_82421_b() { - this.field_82423_g = new ModelSiegeZombie(1.0F); //armor slots 1, 2, 4 - this.field_82425_h = new ModelSiegeZombie(0.5F); //armor slot 3 - } -} diff --git a/src/main/java/com/hbm/render/model/ModelSiegeZombie.java b/src/main/java/com/hbm/render/model/ModelSiegeZombie.java deleted file mode 100644 index 76bd7c883..000000000 --- a/src/main/java/com/hbm/render/model/ModelSiegeZombie.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.hbm.render.model; - -import com.hbm.entity.mob.siege.EntitySiegeZombie; - -import net.minecraft.client.model.ModelBiped; -import net.minecraft.entity.Entity; -import net.minecraft.util.MathHelper; - -public class ModelSiegeZombie extends ModelBiped { - - public ModelSiegeZombie(float p_i1168_1_) { - super(p_i1168_1_, 0.0F, 64, 32); - } - - public void setRotationAngles(float p_78087_1_, float p_78087_2_, float p_78087_3_, float p_78087_4_, float p_78087_5_, float p_78087_6_, Entity entity) { - super.setRotationAngles(p_78087_1_, p_78087_2_, p_78087_3_, p_78087_4_, p_78087_5_, p_78087_6_, entity); - - if(entity instanceof EntitySiegeZombie && ((EntitySiegeZombie)entity).getDataWatcher().getWatchableObjectByte(13) != 0) { - float f6 = MathHelper.sin(this.onGround * (float) Math.PI); - float f7 = MathHelper.sin((1.0F - (1.0F - this.onGround) * (1.0F - this.onGround)) * (float) Math.PI); - this.bipedRightArm.rotateAngleZ = 0.0F; - this.bipedLeftArm.rotateAngleZ = 0.0F; - this.bipedRightArm.rotateAngleY = -(0.1F - f6 * 0.6F); - this.bipedLeftArm.rotateAngleY = 0.1F - f6 * 0.6F; - this.bipedRightArm.rotateAngleX = -((float) Math.PI / 2F); - this.bipedLeftArm.rotateAngleX = -((float) Math.PI / 2F); - this.bipedRightArm.rotateAngleX -= f6 * 1.2F - f7 * 0.4F; - this.bipedLeftArm.rotateAngleX -= f6 * 1.2F - f7 * 0.4F; - this.bipedRightArm.rotateAngleZ += MathHelper.cos(p_78087_3_ * 0.09F) * 0.05F + 0.05F; - this.bipedLeftArm.rotateAngleZ -= MathHelper.cos(p_78087_3_ * 0.09F) * 0.05F + 0.05F; - this.bipedRightArm.rotateAngleX += MathHelper.sin(p_78087_3_ * 0.067F) * 0.05F; - this.bipedLeftArm.rotateAngleX -= MathHelper.sin(p_78087_3_ * 0.067F) * 0.05F; - } - } -} diff --git a/src/main/java/com/hbm/render/tileentity/RenderPedestalTile.java b/src/main/java/com/hbm/render/tileentity/RenderPedestalTile.java index 6f39d7389..76c606e18 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderPedestalTile.java +++ b/src/main/java/com/hbm/render/tileentity/RenderPedestalTile.java @@ -37,10 +37,6 @@ public class RenderPedestalTile extends TileEntitySpecialRenderer { if(!(stack.getItemSpriteNumber() == 0 && stack.getItem() instanceof ItemBlock && RenderBlocks.renderItemIn3d(Block.getBlockFromItem(stack.getItem()).getRenderType()))) { GL11.glTranslated(0, 0.125, 0); GL11.glRotatef(player.prevRotationYaw + (player.rotationYaw - player.prevRotationYaw) * interp + 180, 0.0F, -1.0F, 0.0F); - - if(!RenderManager.instance.options.fancyGraphics) { - GL11.glRotatef(180F, 0.0F, 1.0F, 0.0F); - } GL11.glTranslated(0, Math.sin((player.ticksExisted + interp) * 0.1) * 0.0625, 0); } else { diff --git a/src/main/java/com/hbm/render/tileentity/RenderSkeletonHolder.java b/src/main/java/com/hbm/render/tileentity/RenderSkeletonHolder.java new file mode 100644 index 000000000..c40bf33c4 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderSkeletonHolder.java @@ -0,0 +1,72 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.generic.BlockSkeletonHolder.TileEntitySkeletonHolder; +import com.hbm.items.weapon.sedna.ItemGunBaseNT; +import com.hbm.main.ResourceManager; + +import net.minecraft.block.Block; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.entity.RenderItem; +import net.minecraft.client.renderer.entity.RenderManager; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; + +public class RenderSkeletonHolder extends TileEntitySpecialRenderer { + + @Override + public void renderTileEntityAt(TileEntity te, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + + switch(te.getBlockMetadata()) { + case 2: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(0, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(90, 0F, 1F, 0F); break; + } + + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + RenderHelper.enableStandardItemLighting(); + + bindTexture(ResourceManager.skeleton_holder_tex); + ResourceManager.skeleton_holder.renderPart("Holder1"); + + TileEntitySkeletonHolder pedestal = (TileEntitySkeletonHolder) te; + + if(pedestal.item != null) { + + EntityPlayer player = Minecraft.getMinecraft().thePlayer; + ItemStack stack = pedestal.item.copy(); + + GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); + + if(stack.getItem() instanceof ItemGunBaseNT) { + GL11.glRotatef(-90F, 0.0F, 1.0F, 0.0F); + } + + if(!(stack.getItemSpriteNumber() == 0 && stack.getItem() instanceof ItemBlock && RenderBlocks.renderItemIn3d(Block.getBlockFromItem(stack.getItem()).getRenderType()))) { + GL11.glScaled(1.5, 1.5, 1.5); + } + + GL11.glTranslated(0, 0.125, 0); + + EntityItem dummy = new EntityItem(te.getWorldObj(), 0, 0, 0, stack); + dummy.hoverStart = 0.0F; + + RenderItem.renderInFrame = true; + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); + RenderItem.renderInFrame = false; + } + + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index d383cdd29..16b57c2ec 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -14,6 +14,7 @@ import com.hbm.blocks.generic.BlockGlyphidSpawner.TileEntityGlpyhidSpawner; import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; import com.hbm.blocks.generic.BlockPedestal.TileEntityPedestal; import com.hbm.blocks.generic.BlockPlushie.TileEntityPlushie; +import com.hbm.blocks.generic.BlockSkeletonHolder.TileEntitySkeletonHolder; import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe; import com.hbm.blocks.generic.BlockSupplyCrate.TileEntitySupplyCrate; import com.hbm.blocks.generic.BlockWandJigsaw.TileEntityWandJigsaw; @@ -212,6 +213,7 @@ public class TileMappings { put(TileEntityLoot.class, "tileentity_ntm_loot"); put(TileEntityPedestal.class, "tileentity_ntm_pedestal"); + put(TileEntitySkeletonHolder.class, "tileentity_ntm_skeleton"); put(TileEntityBobble.class, "tileentity_ntm_bobblehead"); put(TileEntitySnowglobe.class, "tileentity_ntm_snowglobe"); put(TileEntityPlushie.class, "tileentity_ntm_plushie"); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 401f3fcaa..9d6a1ae4b 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -2447,6 +2447,7 @@ item.insert_polonium.name=Poloniumeinlage item.insert_steel.name=Schwere Stahleinlage item.insert_xsapi.name=XSAPI-Einlage item.insert_yharonite.name=Yharoniteinlage +item.item_secret.aberrator.name=Aberrator-Teil item.item_secret.canister.name=Komposit SB-26 item.item_secret.controller.name=Proprietäre Steuereinheit item.item_secret.selenium_steel.name=Selen-Stahl @@ -4889,6 +4890,7 @@ tile.sellafield_slaked.name=Gelöschtes Sellafit tile.semtex.name=Semtex tile.silo_hatch.name=Siloluke tile.silo_hatch_large.name=Große Siloluke +tile.skeleton_holder.name=Oh, ich glaub' der ist tot tile.sliding_blast_door.name=Sprengtür tile.solar_mirror.name=Heliostatspiegel tile.soyuz_capsule.name=Landekapsel diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index c8df9b7ef..25e9ef98a 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -3270,6 +3270,7 @@ item.insert_polonium.name=Polonium Insert item.insert_steel.name=Heavy Steel Insert item.insert_xsapi.name=XSAPI Insert item.insert_yharonite.name=Yharonite Insert +item.item_secret.aberrator.name=Aberrator Part item.item_secret.canister.name=Composition SB-26 item.item_secret.controller.name=Proprietary Control Unit item.item_secret.selenium_steel.name=Selenium Steel @@ -6034,6 +6035,7 @@ tile.sellafield_slaked.name=Slaked Sellafite tile.semtex.name=Semtex tile.silo_hatch.name=Silo Hatch tile.silo_hatch_large.name=Large Silo Hatch +tile.skeleton_holder.name=Oh, that's a dead guy tile.sliding_blast_door.name=Sliding Blast Door tile.solar_mirror.name=Heliostat Mirror tile.soyuz_capsule.name=Cargo Landing Capsule diff --git a/src/main/resources/assets/hbm/models/blocks/skeleton_holder.obj b/src/main/resources/assets/hbm/models/blocks/skeleton_holder.obj new file mode 100644 index 000000000..8b874c6c3 --- /dev/null +++ b/src/main/resources/assets/hbm/models/blocks/skeleton_holder.obj @@ -0,0 +1,330 @@ +# Blender v2.79 (sub 0) OBJ File: 'skeleton_holder.blend' +# www.blender.org +o Holder1 +v -0.007506 0.185094 0.287769 +v -0.369728 0.834613 0.384826 +v -0.039858 0.185094 0.167028 +v -0.402080 0.834613 0.264085 +v 0.097059 0.247594 0.259751 +v -0.265163 0.897113 0.356808 +v 0.064706 0.247594 0.139010 +v -0.297516 0.897113 0.236067 +v 0.365620 0.000000 -0.258745 +v -0.358824 0.000000 -0.064630 +v 0.333268 0.000000 -0.379485 +v -0.391176 0.000000 -0.185371 +v 0.365620 0.125000 -0.258745 +v -0.358824 0.125000 -0.064630 +v 0.333268 0.125000 -0.379485 +v -0.391176 0.125000 -0.185371 +v -0.491581 1.016218 0.267475 +v -0.205884 1.425794 0.242480 +v -0.535159 1.016218 -0.230622 +v -0.249462 1.425794 -0.255617 +v -0.083563 0.729430 0.231779 +v 0.202134 1.139006 0.206783 +v -0.127141 0.729430 -0.266319 +v 0.158556 1.139006 -0.291314 +v -0.491581 1.016218 0.267475 +v -0.205884 1.425794 0.242480 +v -0.535159 1.016218 -0.230622 +v -0.249462 1.425794 -0.255617 +v -0.083563 0.729430 0.231779 +v 0.202134 1.139006 0.206783 +v -0.127141 0.729430 -0.266319 +v 0.158556 1.139006 -0.291314 +v -0.250476 0.114105 0.250000 +v -0.185109 0.861251 0.250000 +v -0.250476 0.114105 -0.250000 +v -0.185109 0.861251 -0.250000 +v -0.499524 0.135894 0.250000 +v -0.434158 0.883040 0.250000 +v -0.499524 0.135894 -0.250000 +v -0.434158 0.883040 -0.250000 +v -0.250476 0.114105 0.250000 +v -0.185109 0.861251 0.250000 +v -0.250476 0.114105 -0.250000 +v -0.185109 0.861251 -0.250000 +v -0.499524 0.135894 0.250000 +v -0.434158 0.883040 0.250000 +v -0.499524 0.135894 -0.250000 +v -0.434158 0.883040 -0.250000 +v 0.333268 -0.000000 0.379485 +v -0.391176 0.000000 0.185371 +v 0.365620 -0.000000 0.258745 +v -0.358824 0.000000 0.064630 +v 0.333268 0.125000 0.379485 +v -0.391176 0.125000 0.185371 +v 0.365620 0.125000 0.258745 +v -0.358824 0.125000 0.064630 +v -0.039858 0.185094 -0.167028 +v -0.402080 0.834613 -0.264085 +v -0.007506 0.185094 -0.287769 +v -0.369728 0.834613 -0.384826 +v 0.064706 0.247594 -0.139010 +v -0.297516 0.897113 -0.236067 +v 0.097059 0.247594 -0.259751 +v -0.265163 0.897113 -0.356808 +vt 0.125000 0.437500 +vt 0.093750 0.062500 +vt 0.125000 0.062500 +vt 0.093750 0.437500 +vt 0.062500 0.062500 +vt 0.062500 0.437500 +vt 0.031250 0.062500 +vt -0.000000 0.437500 +vt 0.000000 0.062500 +vt 0.062500 0.500000 +vt 0.093750 0.437500 +vt 0.093750 0.500000 +vt 0.062500 0.500000 +vt 0.031250 0.437500 +vt 0.125000 0.062500 +vt 0.093750 0.437500 +vt 0.093750 0.062500 +vt 0.062500 0.062500 +vt 0.062500 0.437500 +vt 0.031250 0.062500 +vt 0.031250 0.437500 +vt 0.000000 0.062500 +vt 0.062500 0.437500 +vt 0.093750 0.500000 +vt 0.062500 0.500000 +vt 0.062500 0.500000 +vt 0.500000 0.500000 +vt 0.375000 0.750000 +vt 0.375000 0.500000 +vt 0.250000 0.500000 +vt 0.250000 0.750000 +vt 0.125000 0.500000 +vt 0.125000 0.750000 +vt -0.000000 0.500000 +vt 0.250000 0.750000 +vt 0.375000 1.000000 +vt 0.250000 1.000000 +vt 0.250000 1.000000 +vt 0.500000 0.500000 +vt 0.375000 0.750000 +vt 0.500000 0.750000 +vt 0.250000 0.500000 +vt 0.375000 0.500000 +vt 0.125000 0.500000 +vt 0.250000 0.750000 +vt -0.000000 0.500000 +vt 0.125000 0.750000 +vt 0.375000 1.000000 +vt 0.250000 0.750000 +vt 0.250000 1.000000 +vt 0.250000 1.000000 +vt 0.312500 0.000000 +vt 0.437500 0.375000 +vt 0.437500 0.000000 +vt 0.500000 0.000000 +vt 0.437500 0.375000 +vt 0.437500 0.000000 +vt 0.625000 0.000000 +vt 0.500000 0.375000 +vt 0.312500 0.000000 +vt 0.250000 0.375000 +vt 0.250000 0.000000 +vt 0.437500 0.500000 +vt 0.562500 0.375000 +vt 0.562500 0.500000 +vt 0.437500 0.500000 +vt 0.312500 0.375000 +vt 0.437500 0.375000 +vt 0.312500 0.000000 +vt 0.437500 0.000000 +vt 0.437500 0.375000 +vt 0.500000 0.000000 +vt 0.437500 0.000000 +vt 0.500000 0.375000 +vt 0.625000 0.000000 +vt 0.250000 0.375000 +vt 0.312500 0.000000 +vt 0.250000 0.000000 +vt 0.562500 0.375000 +vt 0.437500 0.500000 +vt 0.562500 0.500000 +vt 0.437500 0.500000 +vt 0.312500 0.375000 +vt 0.312500 0.500000 +vt 0.125000 0.437500 +vt 0.093750 0.062500 +vt 0.125000 0.062500 +vt 0.093750 0.437500 +vt 0.062500 0.062500 +vt 0.062500 0.437500 +vt 0.031250 0.062500 +vt -0.000000 0.437500 +vt 0.000000 0.062500 +vt 0.062500 0.500000 +vt 0.093750 0.437500 +vt 0.093750 0.500000 +vt 0.062500 0.500000 +vt 0.031250 0.437500 +vt 0.125000 0.437500 +vt 0.093750 0.062500 +vt 0.125000 0.062500 +vt 0.062500 0.437500 +vt 0.062500 0.062500 +vt 0.031250 0.062500 +vt 0.031250 0.437500 +vt 0.000000 0.062500 +vt 0.062500 0.500000 +vt 0.093750 0.437500 +vt 0.093750 0.500000 +vt 0.062500 0.500000 +vt 0.062500 0.437500 +vt 0.031250 0.500000 +vt 0.125000 0.437500 +vt -0.000000 0.437500 +vt 0.093750 0.437500 +vt 0.031250 0.500000 +vt 0.500000 0.750000 +vt -0.000000 0.750000 +vt 0.375000 0.750000 +vt 0.125000 1.000000 +vt -0.000000 0.750000 +vt 0.375000 0.750000 +vt 0.125000 1.000000 +vt 0.312500 0.375000 +vt 0.625000 0.375000 +vt 0.437500 0.375000 +vt 0.312500 0.500000 +vt 0.312500 0.375000 +vt 0.625000 0.375000 +vt 0.437500 0.375000 +vt 0.062500 0.437500 +vt 0.031250 0.500000 +vt 0.093750 0.437500 +vt -0.000000 0.437500 +vt 0.062500 0.437500 +vt 0.031250 0.500000 +vn -0.8365 -0.5000 0.2241 +vn -0.2588 -0.0000 -0.9659 +vn 0.8365 0.5000 -0.2241 +vn 0.2588 0.0000 0.9659 +vn 0.4830 -0.8660 -0.1294 +vn -0.4830 0.8660 0.1294 +vn -0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 -0.0000 +vn 0.9659 0.0000 -0.2588 +vn -0.9659 0.0000 0.2588 +vn -0.8160 0.5736 0.0714 +vn -0.0872 -0.0000 -0.9962 +vn 0.8160 -0.5736 -0.0714 +vn 0.0872 0.0000 0.9962 +vn -0.5714 -0.8192 0.0500 +vn 0.5714 0.8192 -0.0500 +vn 0.9962 -0.0872 0.0000 +vn 0.0000 -0.0000 -1.0000 +vn -0.9962 0.0872 0.0000 +vn -0.0000 0.0000 1.0000 +vn -0.0872 -0.9962 0.0000 +vn 0.0872 0.9962 0.0000 +vn 0.2588 0.0000 -0.9659 +vn -0.2588 0.0000 0.9659 +vn 0.9659 0.0000 0.2588 +vn -0.9659 0.0000 -0.2588 +vn -0.8365 -0.5000 -0.2241 +vn 0.8365 0.5000 0.2241 +vn 0.4830 -0.8660 0.1294 +vn -0.4830 0.8660 -0.1294 +s off +f 2/1/1 3/2/1 1/3/1 +f 4/4/2 7/5/2 3/2/2 +f 8/6/3 5/7/3 7/5/3 +f 5/7/4 2/8/4 1/9/4 +f 3/10/5 5/11/5 1/12/5 +f 4/13/6 6/14/6 8/6/6 +f 9/15/7 12/16/7 11/17/7 +f 12/16/2 15/18/2 11/17/2 +f 16/19/8 13/20/8 15/18/8 +f 14/21/4 9/22/4 13/20/4 +f 15/23/9 9/24/9 11/25/9 +f 12/26/10 14/21/10 16/19/10 +f 17/27/11 20/28/11 19/29/11 +f 20/28/12 23/30/12 19/29/12 +f 24/31/13 21/32/13 23/30/13 +f 22/33/14 17/34/14 21/32/14 +f 23/35/15 17/36/15 19/37/15 +f 20/38/16 22/33/16 24/31/16 +f 25/39/13 28/40/13 26/41/13 +f 31/42/14 28/40/14 27/43/14 +f 29/44/11 32/45/11 31/42/11 +f 25/46/12 30/47/12 29/44/12 +f 25/48/16 31/49/16 27/50/16 +f 30/47/15 28/51/15 32/45/15 +f 35/52/17 34/53/17 33/54/17 +f 39/55/18 36/56/18 35/57/18 +f 37/58/19 40/59/19 39/55/19 +f 33/60/20 38/61/20 37/62/20 +f 33/63/21 39/64/21 35/65/21 +f 40/66/22 34/67/22 36/56/22 +f 42/68/19 43/69/19 41/70/19 +f 44/71/20 47/72/20 43/73/20 +f 48/74/17 45/75/17 47/72/17 +f 46/76/18 41/77/18 45/78/18 +f 47/79/22 41/80/22 43/81/22 +f 48/82/21 42/83/21 46/84/21 +f 50/85/7 51/86/7 49/87/7 +f 52/88/23 55/89/23 51/86/23 +f 56/90/8 53/91/8 55/89/8 +f 53/91/24 50/92/24 49/93/24 +f 51/94/25 53/95/25 49/96/25 +f 52/97/26 54/98/26 56/90/26 +f 58/99/27 59/100/27 57/101/27 +f 59/100/23 64/102/23 63/103/23 +f 64/102/28 61/104/28 63/103/28 +f 62/105/24 57/106/24 61/104/24 +f 59/107/29 61/108/29 57/109/29 +f 60/110/30 62/105/30 64/102/30 +f 2/1/1 4/4/1 3/2/1 +f 4/4/2 8/6/2 7/5/2 +f 8/6/3 6/14/3 5/7/3 +f 5/7/4 6/14/4 2/8/4 +f 3/10/5 7/111/5 5/11/5 +f 4/13/6 2/112/6 6/14/6 +f 9/15/7 10/113/7 12/16/7 +f 12/16/2 16/19/2 15/18/2 +f 16/19/8 14/21/8 13/20/8 +f 14/21/4 10/114/4 9/22/4 +f 15/23/9 13/115/9 9/24/9 +f 12/26/10 10/116/10 14/21/10 +f 17/27/11 18/117/11 20/28/11 +f 20/28/12 24/31/12 23/30/12 +f 24/31/13 22/33/13 21/32/13 +f 22/33/14 18/118/14 17/34/14 +f 23/35/15 21/119/15 17/36/15 +f 20/38/16 18/120/16 22/33/16 +f 25/39/13 27/43/13 28/40/13 +f 31/42/14 32/45/14 28/40/14 +f 29/44/11 30/47/11 32/45/11 +f 25/46/12 26/121/12 30/47/12 +f 25/48/16 29/122/16 31/49/16 +f 30/47/15 26/123/15 28/51/15 +f 35/52/17 36/124/17 34/53/17 +f 39/55/18 40/59/18 36/56/18 +f 37/58/19 38/125/19 40/59/19 +f 33/60/20 34/67/20 38/61/20 +f 33/63/21 37/126/21 39/64/21 +f 40/66/22 38/127/22 34/67/22 +f 42/68/19 44/128/19 43/69/19 +f 44/71/20 48/74/20 47/72/20 +f 48/74/17 46/129/17 45/75/17 +f 46/76/18 42/83/18 41/77/18 +f 47/79/22 45/130/22 41/80/22 +f 48/82/21 44/71/21 42/83/21 +f 50/85/7 52/88/7 51/86/7 +f 52/88/23 56/90/23 55/89/23 +f 56/90/8 54/98/8 53/91/8 +f 53/91/24 54/98/24 50/92/24 +f 51/94/25 55/131/25 53/95/25 +f 52/97/26 50/132/26 54/98/26 +f 58/99/27 60/133/27 59/100/27 +f 59/100/23 60/133/23 64/102/23 +f 64/102/28 62/105/28 61/104/28 +f 62/105/24 58/134/24 57/106/24 +f 59/107/29 63/135/29 61/108/29 +f 60/110/30 58/136/30 62/105/30 diff --git a/src/main/resources/assets/hbm/textures/blocks/dungeon_spawner.png b/src/main/resources/assets/hbm/textures/blocks/dungeon_spawner.png new file mode 100644 index 0000000000000000000000000000000000000000..66c1990fc7dba704f3db66eb219fb67ea98f6bf1 GIT binary patch literal 714 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 Hu0mjf#&KdD diff --git a/src/main/resources/assets/hbm/textures/entity/siege_desh.png b/src/main/resources/assets/hbm/textures/entity/siege_desh.png deleted file mode 100644 index 21e5cea377403e3bcd4b625bb6b9d2ecbe4cda13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 492 zcmVcwgpl57DKAwQv-ai-+ zkI17Kb`$VWDjslhg02!6m6~%-Fe)|QyAGblympH_F6|ROeg`zUcL0Yfc0h{=ts`c1 zTr<2~;NEqw-;=d45~X*?G`2Pb+u-ss?gz%=21LFko)D}LsBu+O;MIW1+9Zcp>*@ml z{83=8D{!iv`~JY^D^lL45Osk8@zkDwPkv$})N8$If_GtSej)-MN}XB^_vDv+7Rcco z-J0fVT#}!wIh-c!J`R__WG(bs!_ye=bE)70R7wEAFA1S%Qe?RiqARd$<&aYMu)bJv zS2$J%N9fY(G#G0op+tOEIh0t)R>$H)+nm#f9vTwY`M_JPOq8UT>zIm)sGV=TH(IQa}nLT3PlMPxuzS7_?WI9@UayFi}jKhHu4 zq*>9MSI4^T(qL?Z-N&dOXtR@2k}dHVLF#}dp6VD3a)1zGl)_u;=>xzY2Bx|K#o9yv z5A?C``&At=cD)X#E+C~mYR&KCpR*9+oKM=|P?+kUQveuaM@@!4{*As1giwxZO;a`Q z;-AVn6eoCJhhsnp0nRzfvK*XuC0t;k0RVo3V48D9kUv8D33RD!V`??s)f2Xr!5qBQ zyA8TJsA5Pen;bLAYMZ?&%_)B9zU6cOWaWTf0BpKHRu>o>G=1If{?0n zDeG!K7d9>%Pm!5ALz`-uvJV}IWc%>kD}f diff --git a/src/main/resources/assets/hbm/textures/entity/siege_drill_buff.png b/src/main/resources/assets/hbm/textures/entity/siege_drill_buff.png deleted file mode 100644 index bf5c5145ce6ab82e25ed65dc107f35d25476c926..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 906 zcmV;519kj~P)HLy(l?p1OuhjvMQQ`NCTe4yVqX4coGdI zU_8u0a}kA}dg!U(Mf?ZSBDe~IRHU&IFD)27C3?weO|7sV%C6aUlgy88W@nQREac6; zS!Uk6`R>eQHS|CTaX5L(z~1>_ zoqA&jA3lCYI+KaAZ6hJY(|H#{h~swJw(ZCoHA?g-9%9bry(yp?!T|_&I;aUQ{cPEq z5lIHr8#@4i%a_h$zuRT9Ws?$pKu`l%ZP`Sw0qIPJ$(D_90BWz^VJfZT*wJa&wvAtV zf0%692nXQC>Zazrxaaf=8mldnNTz`G_B|ZO;kIQWEP?<~xOfg%ubAAnOj05n8@KM} zRs)~D?0V&_woKf;0CNy}>nvO=z?{p2*OrN=0fZ2ZcRQ@I22gi8u85vZ=($|ZSI}%W z5iA>YPqx1(k-P;|M!RtTgwj)B>)B7SDPWvE5>;E2L|>eK-27=sR0i-c34rVd z$VOkYANos90&n{LVH0*wvj4)5+kI}*p?j|uRXHwJT@Na&?EU@ZOmM{LVNo0u*|_BMHfKI0)yA4ti{!GqQVpY)r zfL8~SkUbL(=rw3ZG)ZrcNIsPv6{SiwbkX+o@dIuh3Y`LmVT4{X>DT#T_lBW_2GDen zHwdv0087Vsf)M)v95#`QV5w4dW@qxKt#9De=`&#cEh1<P-KNCGWxSKqyL0H zk_;$Ss*cF3NG6(TnvTd`;QGy5zOwJ%zH*O#ZG8hTpRfL>0kpy8(GMjwfTm--;u-rh g!QSomVJwCJ0;Z~-nb^GC0{{R307*qoM6N<$f}^OOOaK4? diff --git a/src/main/resources/assets/hbm/textures/entity/siege_drill_clay.png b/src/main/resources/assets/hbm/textures/entity/siege_drill_clay.png deleted file mode 100644 index a62854104041739f69f4ac84aaf456b25bc0294b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 925 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 diff --git a/src/main/resources/assets/hbm/textures/entity/siege_drill_iron.png b/src/main/resources/assets/hbm/textures/entity/siege_drill_iron.png deleted file mode 100644 index 72ac3298e2eedfbb758825115740c4f145972245..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 886 zcmV-+1Bv{JP)a8+iJ};I?H_5ZT!HWv{gh+f# zz;HN3qtO6>;C&xi^Jhi*2ms=HnPrum3jsvfdmz&5^#HJkoJ@byG^y*ln(MlO&2rD! z2(T;*mSr(jEQ|iE7gpi$!HqZ08^UzKK;(A!-n2&3`{~fOgO5}ijjZfmUi_8muxEFkwSW>ifTdx)3!%)P35K`Zcd-=y2N@@W2XAtsO01T{@{~! zn(Y&OIR1=$p^#1Z>r6T)#+_|EOMO+2y7tV7FSu zM!nA5K;8UV7&!&#P+QvH|67n)E_L&FT{rZ7pZLBX*{KiwN9qXJt5lHOCz#~VLh38A zje7k&;|!?wr@hYF`#?$pBC%o2xNiQe7{3pYWtsrh4N#3mcUY#fy0ary-=gcQsjSY= zOVziMTT9jF`{_HuF=GwOVp?W(^Ot4deH!l{Ms)KB&d&ra^#F47xYBP!j%_60sxNV2o3*cvuS*NB3gM;xbjoLvTa*+ z8Cfb-5}S$z0HQiD38QDK0da%1M<;3J$mCPmapA6P4&Ai*Z=MP3 z(9kJh+xE~)C8L7B=-x#bp#dxbiY7t(1n>kVk_7D&aM@%og6_&@I6LQ{b$p1Mw@Tps zSw_%An2vy9g)%!lncknB8~;C1WHJKWmCaCQDN+e>94C}H3)r`p2g<&G>j?LL>-Z3@ z#;gA{fHk=y`eB3yummP5p4z_?j32izV=Mdz1Le)6RyDl_00000NkvXXu0mjf!R@RY diff --git a/src/main/resources/assets/hbm/textures/entity/siege_drill_silver.png b/src/main/resources/assets/hbm/textures/entity/siege_drill_silver.png deleted file mode 100644 index 8584831caa0ae4df044ab192fd4967ea096ab621..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 890 zcmV-=1BLvFP)!24owLzjgwzBCL4Y6#FdB`} z?RK|b$h3d6+2jD=dET164Pgz~hHd_$q$Z#!^FK~_*G2C>kdXk{d1jlxD21;BbU7x# zbO%i1h&+O9rr+;twRghe;!tstHMQyW{c%5F$2gm^n3Y-E{B>DdLCO9xVw*qkzY6p` zPk5hD`8`3~2$LY2fT$F1G#WTNJBvOyH#e!D*=&YhuV8a^H809zu=JUDfJ{U#&HMvlUi;4pPsyeU_qvxmraYOWu z?$eVamse$X1*LRj(dPTUvJP!bK-wKPIp@=Y55H4QLLoFDD|i{7O<11*nZQ(%V0{Aa zn%omWDdnwJiv!>)$9eZ>8wWoEHa-P()V^M?V>}*%QmS<9`@ZsTtB}hGpp+UJzIi}g z*X25Efz@iYcFy;G<-0!~kAcKiJs_^`Dz!i%G(aRU)k4VnJ;C^L`z}i1e>OJSk4f9z QFaQ7m07*qoM6N<$f)QSsMF0Q* diff --git a/src/main/resources/assets/hbm/textures/entity/siege_drill_stone.png b/src/main/resources/assets/hbm/textures/entity/siege_drill_stone.png deleted file mode 100644 index 4cd317e2d4820b0e272b685756101b1f2b99e72a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 920 zcmV;J184k+P)jGMQlI;d7;uQvm3LkJsrR z9OC_l&nT8kS+;E<6j*`}a9!6Af*y~@nKf#W=vlnP+*k{zfNF3jARcsF69STK(VCIT z2IOC>5>G~5a3?7hWGQOAYz=P(|R@$=Uo zDqA$%3AnejulcVY`%yuowMCN26!6}>gYWyywn(@|5CCe|uHe>9li3zYf#+Zo)ZPDh zfKOk(hUK)jNP@EfbrPa=?%b}y+*kvvEs{_JT-ViDkHac!0CCW=!h1KNS1OgMg5hw8 zcv;$SqWyWvWED^utfWd>Swq45kW1&*@wP7EGQ1(GB1w zzK@w_$4NX5b~>FY+qUi0hREhmO6mx(Z5xi`5Wh^6e^M`#>~a$mVB0nf!=P%MO#Y;# zUWl|>EdYSyIEXKoviVz<<$Io|d7c;Ab6<#*5nvbw)jX5UpOn-QU>F9~uoLYc^g3zp z11Sk08Im&llcM}SfR{W0q8lI@<&VSNZWjO$EPqif%L0&oZKelntEyD1Rj&Gad~Fqd zzR&Li7K}bCi)opa&7YSkaiIOjh;07AzcT?zJ%HmoLD>kBK%0PYD_pD9u)4Y$KBLhn z@i{s=!q(Q7RQ>^$WzAd?lQ{Dtr~!a!noPsL-|s75Ut_JjES&i%pqI;K(QOb)J_3%9 zk43jZDBPdP1xlz~*+-=UIwGqM4@Y^PC0l-hVJv_T&3E=HBmgck%k=&VL#} unp_tBP(lMp0%H|V>F)%i$L-VD3jYO1lfacUp@uU60000-@25IhpPv}SmUKR{*1@Ps_UZ=rXSCt$`@e1NAgFq0}B z8B*a0Mbe!BSt#~aXmp^{>Td6l2MC%x80w;jI7^_bN&o=h$0~$r>!C&#@nYKn+jtUS z+X35ncmn*TAE=9d4L_`5F#-D{@`>}(70lw90!%y}o_W3HXn&Rt5NUqJ}Khel7Tvh3B-Hyh6)z8M8M{g!ldRK1l(Q zqjTC!K1Zqd3cNi=90n~BWEWOBcTZr%VR(ulB7#4FDEa@<;W2vv0000P)Nkloc4Z| zV=UJYZZ0TbfQSnbfiVW0a{vGkj+yrr8`KbgtqHWoF9EFyw8qyb;Bod3i0BF)&2Tya zTI(x#G{bKTAmUPU0z_QKaRh7aRxSRxwNLo^3Q)BxfI}A*fQW#I$#Kt!c7bsmx8KgW zw~zJ5&*u}AQd?|qNVdWCWBg>~;)tlrmdN^m9#^#lQ4Mg;6*;_KS04c2O@X?C;?jQTZ`cte#K{j8qP5|8)WymgrBcD zoF<$;4!3}F4vaBit&KjH3NApW2>|#{Lh6|mRc?gB6N1Z@V#Le7-Hm$~@biBR)A?~F~1=n;hbf_jjWd zfRwJmZhWxq4AC~YEoQ&KlpSb|x5OI))d4;3Y7T-NV3f*Jc%AM(0Kk!fv95rzcJ2Fv zfUd}T-vg}+Xnk+ZU*I2E2=RG7HNmHF)<0SRhT-01Sm0m&S)hV)bZQ!_af*L?&Otb# z{5aeIMyYjy(-eG8CS2$=004hMh&`jC%8k%r2ewp>F|`m*x;s0ZD1$3_$vq9GT1mu_ zkW`L27L(N}`&gQz{IIQMS&|&!1R$mRTXlilp!x3^#^?d~muS`n{BokEEYDMUvUcs}+0*4}p1osoCockoOz+reu5Fx=|Le$it TR0^uO00000NkvXXu0mjfzsu5^ diff --git a/src/main/resources/assets/hbm/textures/entity/siege_silver.png b/src/main/resources/assets/hbm/textures/entity/siege_silver.png deleted file mode 100644 index 1be7bb6fa9dcf3d237ce742e22f0f6228e8aab4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 481 zcmV<70UrK|P)-s3=I2v5jcTY!HaU0oFF+0`(+m?5Kt+y?R=GIEMrI} zqY4BNkw-+Z)&esF06@Gh!5E{&pn>=qO<**>2^dXaG(J87kF$S(h*$6!hSLdHmgNc_ z!|-hZBJw>qAR@1|2It(fTEg{cpYZV&pn6w;gefY(7z4(b?0RM-r-0V_`J0)6h<4Y* zbsRezvSV<2nD7BhafmqONECg*jHlXyqy{i^lf#?!^Z@`~6j+)Hl4|$Tk|vyf9UcK@ z25T)i=aScJ1s7n_1OWUcA$P47UA_p#C$N=rPN}ulyK)atxYPz$=+f?Ourx|?L{e5c zM=WQnOYylfm-JzKmUUf=8n8=1$@h<%0`L? z&pr1!f1D!&FJHb~lu9L9tropr4*<{eXt&!qjsrjt1Tl_b7?`FB!0Xqqb6Im-C-PYX zN~ID2g+c+_wsBpTVzG#6ngl_BVHmLu3w+=IJ1f3oWE#M>Z9aegOc;hJrLZhZpSWQd z08Azm{cbj!X`}rM$TWabiej;dQc7>q^E{MNdQ7cW)1M8)U^1CtS=N$Q+(cv=AP55H z^Es7D1>3gu`%0yvHws{yrgr;MsYDP2OWJS~k!b+KFqqHh`U(U=faiG}A0J~`7Ov|8 zP%IWTXFi|*y%k?EG7SK5=guAdEM8Er*ZK103-|Be2QIEkE|+7mSP%q(9=E^0f7NTg zQml0aPESwu>5B)1VTff}F)f(QX8QS`i2|KYXCY$cx-PX^4d3^*!UJq=Z7pd)p-{jy zO_Wkv>?V`R62H^wES@}hLbu!1{09#n=+D=kC**;cc*(QG_{n6#`T03v80zml&jZk> zpT!Tukm+=)CmoN+G5&QT4?iJD?jQXfi5hYZBt;h2zbRQ_9)7x~oXmJU*3VM$ znWo9v*;yrXjEP6GWspL2M4i0ir}`w4=m5e4h~ezV!+ z;NUjis@+ZR2?!tyXKT#Km=8ohU{5(SCw#Hrh|{eSfX=*|IDxz`{R0J*C-f z{#N?E?(Qy!hli9^!F3 znz2PsLLx*OU#dr?RBAsV%CA%^05N{GTGjlt`OnVIXf~VF>vaIaFx32BueY`!=GUp` zqm9n!{k1HMqoX4|PVQy9-Hy5Rty{NHO2u-2IkBUoBN~kc8yg#X{^4*Ky9Srduax5C z}XX!K0c;iuhZ>zW7om9ZAPOJySuwf z{4fl090$`hWBmljad`3K1@GU#r(7;C@np@H^&>9JOq0lUI-P}BPV)ZfBwxRNWpi_r z!C(-xu(&5I|1lznc8HVX*5%*5dza14O}$ycXf#^MZ#J8lrpcp6k5-CcuG8r(WV31Y zytrSo&`IK^@-w5rI{kp;q{(_djsNZ2HvsLvS$xrw`FyS;!k^49>(4^|{QNv7PSt94 zsh;Lyd!C_jm01LRlvtyT+&8%$h0SwN*}!_%ivvopacK7Rc8OZ9wO mKjA9*gTX+5_b2mThW`NH$JF-?)4TZmu6b*Y@$d>XGZ$gp4}BQ{!}E#p1b~p`RTt;zxK?&U9`{aQ)1CK215>k#}-?!I58hlaOkP8 zk6!sc@yZ2|D9{-<%@ZZ~q!ic~lQuDx{oOfj&;L1W9gYnWEFFbuX^Jh+Tuhc;SrZO) z16Yj!NTI-o@QQh7H|^)0eEsZfwwPSAot2+X{WO0j{XDnV=vx~wycs-Q{an^LB{Ts5 D($uz! diff --git a/src/main/resources/assets/hbm/textures/entity/ufo_siege_clay.png b/src/main/resources/assets/hbm/textures/entity/ufo_siege_clay.png deleted file mode 100644 index f9736160b73ca5fd503d6a1f6bbc0906be7c2a4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 471 zcmeAS@N?(olHy`uVBq!ia0vp^2|%pN!3HD)jM6X;vUIcV-%Hc{9u|k zP5s7=OhF6%^4-~Dn|o9~mrDNQX-q8pZkE1gYrMySsO+F;u5)z1@!u#BVUT2XSmyEf z(CrM7yT);=g=J#zWX_KeGHvjg#vqq>Zn9t4>>eoxH^vDk#Tuq9eClDx`uEu1-}hGO zUYF8!OyOZDdEdON-1gGv*Q^W{&mTBf)$L_y*rc=987Oj#`GgM3h4mgQyk^DU-6Q3Y zrr7XK>gn%0?w{-Dn};udd{FrH(>EvY%#-E+k`=}NbwdB2$N!GLJ69IZ&LAW6j{j(; z>=kFbPyN5M`4tv3oT#|2qY$u><9xrq=jTuJ7qd+WWJuX_Tv=hy@AeEkyUEX<+Pm|D z)M+pnW%?fyy!Lg*jN9>GkqYJ&%eH=hdh3Gsc17DK%Kzo%O&fZcKx!ozG)`~Y+gEUI z>+7js{_Fz#6KE_bP(H-(nCG*n{*1@@)!TU`%zN|Ws?z>S^Bj7W$MiZq4j5Amp00i_ I>zopr0P1qd5&!@I diff --git a/src/main/resources/assets/hbm/textures/entity/ufo_siege_desh.png b/src/main/resources/assets/hbm/textures/entity/ufo_siege_desh.png deleted file mode 100644 index ae7851cec912acb3b7578915d15d899fb2c552b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 449 zcmeAS@N?(olHy`uVBq!ia0vp^2|%pN!3HD)L&YSWoH@npA`j*mtA18G&-|P5oh++^8{>pbum2zJmfo~|T)4C4 zW%XO(@I`DBRtgJ8Vh*c8+~TDD%QOCc z|NKmL#@>zln4WFUO|KGn3iAJX!v6jJJzL&}usa>NTxEOxx82I+HBaV$zb*%IUgx?< zhDV{NK5V@$diM1H7AdfpTtCB+^0z$liXw2aK!%hO9@XEg8B;_UW@a$Na$M}s4wk>W z?8}t?KlL?N7>u|YdYBZF84g5Q%ee0Sez;0?@4j_x6M))8KwflX{3E(;b?BEMzpB{U kj02zRFVdQ&MBb@0Fc(cLI3~& diff --git a/src/main/resources/assets/hbm/textures/entity/ufo_siege_dnt.png b/src/main/resources/assets/hbm/textures/entity/ufo_siege_dnt.png deleted file mode 100644 index 5ddd978cbb1eb2008a3cde0faf6fa4f70eace72e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 482 zcmV<80UiE{P)W7Eh*~t*a|Bg)7Qr)M$p(RGf&<>CLDg)I&bE{Kc*Ama_78TGv%*M>g24e22t`G5PU1IQ=< zG75l<0f4Hi=4S!t+CEI?tL@&;KN=l)!O zQOM;OgTr^571h_2_wLDKRA_0CxODop7{i?6i;6FwmcC_7dBzm6#$%P&toZwTq#V-p z8s15X{@&B^tlmC9@BH@Z|2EExyZ-EHTDhlu=;kH!K25COU;l}HwEm` z?f=GL#MR)lMT%iVamk$2FTV=ro9h2(Gi~T$Qb?A6e{XTT&xG)kQ~bGpny+94`GnQs zn4jOH{?_9B%|+K;prSJ~7#3%V)$TO=dMVe-|L2MSx7~Ra7BigCU@&3>I`(a62FJqK z^-HE-zY4MqXf#N!VgI4jP}ljq-ukPz^IEKUePhp;L%+nEcky~jTBHGEiGjh>)z4*} HQ$iB}5G2cb diff --git a/src/main/resources/assets/hbm/textures/entity/ufo_siege_iron.png b/src/main/resources/assets/hbm/textures/entity/ufo_siege_iron.png deleted file mode 100644 index 52c1584b5a7faef3ac5594c6bf52430dabbddac1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 443 zcmeAS@N?(olHy`uVBq!ia0vp^2|%pN!3HD)FpQXR3ak(*Ni4Ki}KiqGcH_eE-{=*bNc41I6{q@t z?komLRtL2z8>UOU>$@($3^CD%in%dP(5wdzXOUU22WQ%mvv4FO#tN3!2SRL diff --git a/src/main/resources/assets/hbm/textures/entity/ufo_siege_schrab.png b/src/main/resources/assets/hbm/textures/entity/ufo_siege_schrab.png deleted file mode 100644 index 5fc11f60a3bc055528dea229b227d3fb353c14f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 451 zcmeAS@N?(olHy`uVBq!ia0vp^2|%pN!3HD)Z0&(J_rY|w?>kBPqGB5^d|(f;Gkn>_P(r_cWHyoF^VCxgK}_TF^c zORrz^GCY}+sJM6EJqCxKi#n6y;;+j&Jkx5pE%q_W^XvK5;p`K3awY6>i@cv7`1k#5 z=4-Ei$FJEPd!Vj<{r0u%tL;9`|5Bd6!HqMPV_n=YhfnsuGx!x2Gn}}=81a^={?JQ5 zJ6ZXk@ikW%Q$!eMvb8r?F07dL{zt`$|27_sS ogQ{X{Uo?Ebd~((FxXAx(TkdhaTHD*`1dJ61Pgg&ebxsLQ0JCbw1ONa4 diff --git a/src/main/resources/assets/hbm/textures/entity/ufo_siege_silver.png b/src/main/resources/assets/hbm/textures/entity/ufo_siege_silver.png deleted file mode 100644 index b35162465ca6b15ddb1a2d64cdb9ef9617fad4c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 441 zcmeAS@N?(olHy`uVBq!ia0vp^2|%pN!3HD)tOF80}+@1@k=}Q9y6IBoL=5ArEAXVX_KX5oVXlzzMCktiG7K{0sHQ)8`E5$ z-Ib_o^H{v`po=rd|4pNsPDn89u;t%n`+DNM zczuQh3AUCAAjW|xX_-m$;;+j&Jkx6^bxjJr^r!A~7Q@Wl40+dATzGFf>;K<9D_{S5 z*uC|A_2q4Eo8Rs2e`P5DGyk`EXz1Ef28YOLo>gbu|J}B`#e718!RVkVcSpG9F%w_U z&!6@$0=uQFP^R4Q*6HUN|FRe)SsmOMCwTr7y2t%99_Vb44u(D751!t-(R;h0?K9>7 z`SPX>JxmIV8G!EHa7|Br(P0Cf*Hgdz*(C+i2@U{B)(_zo+;^gZ9*LLwP_?t=+0yiD b`x!PoxxC%xpWG^7OfY!5`njxgN@xNAniIdp diff --git a/src/main/resources/assets/hbm/textures/items/item_secret.aberrator.png b/src/main/resources/assets/hbm/textures/items/item_secret.aberrator.png new file mode 100644 index 0000000000000000000000000000000000000000..dc8901a93a0ac80b7c95c4c0b36c968dc8b827a2 GIT binary patch literal 602 zcmV-g0;T9!$ZPsDNhXuECMhN1aG3r5{aStW(TL;>Y66LPT!uoSQxPc%^qI;!!OwD;g@pyep%AL-lVhWg`BgaJ!N?%ZzE;`p_mfJc+#{d$AQFklo=!hw z;}humJXA{HfMI7@TFbFvX4tkJQ6~_O$K^@#)sx@c=s8rSa5rwba_mx6L;@LR0(q+i#-60w1Ros2BQ(L?VB`1L+s&%S-6#436Un33Bzr z3fqMW%UhN>{J12$y7w?m({%^62_|2@7RQwX9H;uup5`XLZRHV7RZ4o>7OUwDwrw~3 o7cNAjQK=}3R1~G|{{Jg}1B(6KB0W}}@Bjb+07*qoM6N<$g4G-nzyJUM literal 0 HcmV?d00001