From 53c6c1ab773c50b343d789465e244641520893f2 Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 7 Jan 2024 20:58:31 +0100 Subject: [PATCH] mostly fixes, supply crate changes --- changelog | 14 +- gradle.properties | 2 +- .../hbm/blocks/generic/BlockAmmoCrate.java | 25 +++- .../com/hbm/blocks/generic/BlockCanCrate.java | 120 +++++++++--------- .../com/hbm/blocks/generic/BlockCrate.java | 21 +-- .../blocks/generic/BlockDecoContainer.java | 16 +-- .../com/hbm/blocks/generic/BlockPedestal.java | 7 + .../com/hbm/entity/mob/EntityGlyphid.java | 4 +- .../hbm/entity/projectile/EntityBoxcar.java | 63 ++++----- src/main/java/com/hbm/lib/RefStrings.java | 2 +- src/main/resources/assets/hbm/sounds.json | 1 + .../assets/hbm/sounds/weapon/trainImpact.ogg | Bin 0 -> 30762 bytes .../assets/hbm/textures/items/book_of_2.png | Bin 0 -> 1088 bytes 13 files changed, 144 insertions(+), 131 deletions(-) create mode 100644 src/main/resources/assets/hbm/sounds/weapon/trainImpact.ogg create mode 100644 src/main/resources/assets/hbm/textures/items/book_of_2.png diff --git a/changelog b/changelog index 8aa4089d6..169a6f798 100644 --- a/changelog +++ b/changelog @@ -27,7 +27,8 @@ * Now features proper animations for drawing the weapon, firing and reloading, as well as new sounds * Comes with a new and improved 3D model as well as a cylinder gap flash when firing * Is now part of the red room loot pool - * Durability has been drastically increased + * Durability has been drastically increased (31k instead of 4k) + * The boxcar now has new impact sounds and spawns fewer particles * Powder box recipes now produce 8 boxes from the same amount of ingredients, making cyclotron recipes more affordable * Buffed the radiation-powered engine, all valid fuels now produce 10x more energy per tick * Removed tungsten and HSS bolts as dedicated items, they are now a single bolt item that uses the autogen system @@ -35,11 +36,20 @@ * Bolts Are now 1/8 of an ingot instead of 1/2 which makes some recipes marginally cheaper, as well as making them equal to GregTech bolts * Bolts are oredicted and interchangeable, as well as recycleable in the crucible * The N45 naval mine has been obliterated -* The solar boiler's ray rendering is no longer bound by particle settings, instead it will be disabled when fast graphics are enabaled +* The solar boiler's ray rendering is no longer bound by particle settings, instead it will be disabled when fast graphics are enabled * The solar boiler's internal buffer has been reduced, its steam output is now capped at 10,000mB/t (which should be 20kHE/t or 0.8MHE/s) +* All crates except the jungle dungeon one now drop themselves when mined + * Supply and conserve crates do not need a tool because they are made of wood, the ammo crate requires a pickaxe + * All of those crates are now opened with the crowbar instead in order to be consistent with each other +* Standard gauge rails are now craftable and visible in the transportation tab + * You can now play around with the new rail types in creative mode, as none of the train cars are currently craftable + * Coupling should work, but coupling info is not saved to NBT so links will be lost when leaving the world + * Trains might randomly derail on 5m curves, idk why ## Fixed * Fixed afterburn upgrades not being craftable with bakelite * Fixed bismuth block not being properly oredicted * Powder detectors that are used in the same network as diodes should now be somewhat less wrong * Fixed horrifying gamebreaking issue that would frequently cause crashes, corrupt worlds and bluescreen PCs where the red copper block and the advanced alloy block had inconsistent colors +* Fixed file cabinets not dropping their contents +* Fixed some sides of the pedestal not rendering diff --git a/gradle.properties b/gradle.properties index 5c90623a5..e134592d6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4824 +mod_build_number=4837 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/blocks/generic/BlockAmmoCrate.java b/src/main/java/com/hbm/blocks/generic/BlockAmmoCrate.java index f7612ee69..a2925f119 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockAmmoCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockAmmoCrate.java @@ -12,6 +12,7 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import net.minecraft.world.World; @@ -38,11 +39,31 @@ public class BlockAmmoCrate extends Block { public IIcon getIcon(int side, int metadata) { return side == 0 ? this.iconBottom : (side == 1 ? this.iconTop : this.blockIcon); } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_) { + if(player.getHeldItem() != null && player.getHeldItem().getItem().equals(ModItems.crowbar)) { + if(!world.isRemote) { + dropContents(world, x, y, z); + world.setBlockToAir(x, y, z); + world.playSoundEffect(x, y, z, "hbm:block.crateBreak", 0.5F, 1.0F); + } + return true; + } + return false; + } Random rand = new Random(); - @Override - public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { + public void dropContents(World world, int x, int y, int z) { + ArrayList items = getContents(world, x, y, z); + + for(ItemStack item : items) { + this.dropBlockAsItem(world, x, y, z, item); + } + } + + public ArrayList getContents(World world, int x, int y, int z) { ArrayList ret = new ArrayList(); diff --git a/src/main/java/com/hbm/blocks/generic/BlockCanCrate.java b/src/main/java/com/hbm/blocks/generic/BlockCanCrate.java index f9b27c5a8..67e8c5e9b 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockCanCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockCanCrate.java @@ -11,9 +11,7 @@ import cpw.mods.fml.client.registry.RenderingRegistry; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.util.ChatComponentText; import net.minecraft.world.World; public class BlockCanCrate extends Block { @@ -21,79 +19,77 @@ public class BlockCanCrate extends Block { public BlockCanCrate(Material p_i45394_1_) { super(p_i45394_1_); } - - public static int renderID = RenderingRegistry.getNextAvailableRenderId(); - + + public static int renderID = RenderingRegistry.getNextAvailableRenderId(); + @Override - public int getRenderType(){ + public int getRenderType() { return renderID; } - + @Override public boolean isOpaqueCube() { return false; } - + @Override public boolean renderAsNormalBlock() { return false; } - @Override + @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_) { - - if(world.isRemote) - { - player.addChatMessage(new ChatComponentText("The one crate you are allowed to smash!")); + if(player.getHeldItem() != null && player.getHeldItem().getItem().equals(ModItems.crowbar)) { + if(!world.isRemote) { + dropContents(world, x, y, z); + world.setBlockToAir(x, y, z); + world.playSoundEffect(x, y, z, "hbm:block.crateBreak", 0.5F, 1.0F); + } + return true; } - - return true; - } - - public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { - ArrayList ret = new ArrayList(); - - int count = quantityDropped(metadata, fortune, world.rand); - for(int i = 0; i < count; i++) { - Item item = getItemDropped(metadata, world.rand, fortune); - if(item != null) - ret.add(new ItemStack(item, 1, damageDropped(metadata, world.rand, item))); - } - - return ret; - } - - //pain - public int damageDropped(int meta, Random rand, Item item) { - if(item != ModItems.canned_conserve) - return damageDropped(meta); - else - return Math.abs(rand.nextInt() % EnumFoodType.values().length); - } - - @Override - public Item getItemDropped(int i, Random rand, int j) { - - List items = new ArrayList(); - for(int a = 0; a < EnumFoodType.values().length; a++) - items.add(ModItems.canned_conserve); - items.add(ModItems.can_smart); - items.add(ModItems.can_creature); - items.add(ModItems.can_redbomb); - items.add(ModItems.can_mrsugar); - items.add(ModItems.can_overcharge); - items.add(ModItems.can_luna); - items.add(ModItems.can_breen); - items.add(ModItems.can_bepis); - items.add(ModItems.pudding); - - return items.get(rand.nextInt(items.size())); - } - - @Override - public int quantityDropped(Random rand) { - - return 5 + rand.nextInt(4); - } + return false; + } + Random rand = new Random(); + + public void dropContents(World world, int x, int y, int z) { + ArrayList items = getContents(world, x, y, z); + + for(ItemStack item : items) { + this.dropBlockAsItem(world, x, y, z, item); + } + } + + public ArrayList getContents(World world, int x, int y, int z) { + ArrayList ret = new ArrayList(); + + int count = getContentAmount(world.rand); + for(int i = 0; i < count; i++) { + ret.add(getRandomItem(world.rand)); + } + + return ret; + } + + public ItemStack getRandomItem(Random rand) { + + List items = new ArrayList(); + for(int a = 0; a < EnumFoodType.values().length; a++) + items.add(new ItemStack(ModItems.canned_conserve, 1, a)); + items.add(new ItemStack(ModItems.can_smart)); + items.add(new ItemStack(ModItems.can_creature)); + items.add(new ItemStack(ModItems.can_redbomb)); + items.add(new ItemStack(ModItems.can_mrsugar)); + items.add(new ItemStack(ModItems.can_overcharge)); + items.add(new ItemStack(ModItems.can_luna)); + items.add(new ItemStack(ModItems.can_breen)); + items.add(new ItemStack(ModItems.can_bepis)); + items.add(new ItemStack(ModItems.pudding)); + + return items.get(rand.nextInt(items.size())); + } + + public int getContentAmount(Random rand) { + return 5 + rand.nextInt(4); + } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockCrate.java b/src/main/java/com/hbm/blocks/generic/BlockCrate.java index 7921a0e71..412b7ed2d 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockCrate.java @@ -14,7 +14,6 @@ import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.util.ChatComponentText; import net.minecraft.world.World; public class BlockCrate extends BlockFalling { @@ -29,25 +28,17 @@ public class BlockCrate extends BlockFalling { super(p_i45394_1_); } - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { - return null; - } - @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_) { if(player.getHeldItem() != null && player.getHeldItem().getItem().equals(ModItems.crowbar)) { - dropItems(world, x, y, z); - world.setBlockToAir(x, y, z); - world.playSoundEffect(x, y, z, "hbm:block.crateBreak", 0.5F, 1.0F); - return true; - } else { - if(world.isRemote) { - player.addChatMessage(new ChatComponentText("I'll need a crate opening device to get the loot, smashing the whole thing won't work...")); + if(!world.isRemote) { + dropItems(world, x, y, z); + world.setBlockToAir(x, y, z); + world.playSoundEffect(x, y, z, "hbm:block.crateBreak", 0.5F, 1.0F); } + return true; } - - return true; + return false; } public void setDrops() { diff --git a/src/main/java/com/hbm/blocks/generic/BlockDecoContainer.java b/src/main/java/com/hbm/blocks/generic/BlockDecoContainer.java index d98221129..ac7a1cdb5 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockDecoContainer.java +++ b/src/main/java/com/hbm/blocks/generic/BlockDecoContainer.java @@ -58,9 +58,9 @@ public class BlockDecoContainer extends BlockDecoModel implements ITileEntityPro } else { TileEntity entity = world.getTileEntity(x, y, z); if(entity instanceof TileEntityLockableBase) { //annoying accommodations for the filing cabinet, but whatever, could potentially be useful - if(player.getHeldItem() != null && (player.getHeldItem().getItem() instanceof ItemLock || player.getHeldItem().getItem() == ModItems.key_kit)) + if(player.getHeldItem() != null && (player.getHeldItem().getItem() instanceof ItemLock || player.getHeldItem().getItem() == ModItems.key_kit)) { return false; - else if(!player.isSneaking() && ((TileEntityLockableBase) entity).canAccess(player)) { + } else if(!player.isSneaking() && ((TileEntityLockableBase) entity).canAccess(player)) { FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); return true; } @@ -99,13 +99,13 @@ public class BlockDecoContainer extends BlockDecoModel implements ITileEntityPro if(itemstack.hasTagCompound()) { entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); - - float f3 = 0.05F; - entityitem.motionX = (float) rand.nextGaussian() * f3; - entityitem.motionY = (float) rand.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float) rand.nextGaussian() * f3; - world.spawnEntityInWorld(entityitem); } + + float f3 = 0.05F; + entityitem.motionX = (float) rand.nextGaussian() * f3; + entityitem.motionY = (float) rand.nextGaussian() * f3 + 0.2F; + entityitem.motionZ = (float) rand.nextGaussian() * f3; + world.spawnEntityInWorld(entityitem); } } diff --git a/src/main/java/com/hbm/blocks/generic/BlockPedestal.java b/src/main/java/com/hbm/blocks/generic/BlockPedestal.java index 2930323f7..9f4ace30b 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockPedestal.java +++ b/src/main/java/com/hbm/blocks/generic/BlockPedestal.java @@ -18,6 +18,7 @@ import net.minecraft.network.Packet; import net.minecraft.network.play.server.S35PacketUpdateTileEntity; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; public class BlockPedestal extends BlockContainer { @@ -62,6 +63,12 @@ public class BlockPedestal extends BlockContainer { public boolean renderAsNormalBlock() { return false; } + + @Override + @SideOnly(Side.CLIENT) + public boolean shouldSideBeRendered(IBlockAccess world, int x, int y, int z, int side) { + return true; + } @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { diff --git a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java index ba5d41f5e..dfe3c6376 100644 --- a/src/main/java/com/hbm/entity/mob/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/EntityGlyphid.java @@ -107,9 +107,9 @@ public class EntityGlyphid extends EntityMob { @Override protected void entityInit() { super.entityInit(); - this.dataWatcher.addObject(DW_WALL, new Byte((byte) 0)); //wall climbing + this.dataWatcher.addObject(DW_WALL, new Byte((byte) 0)); //wall climbing this.dataWatcher.addObject(DW_ARMOR, new Byte((byte) 0b11111)); //armor - this.dataWatcher.addObject(DW_SUBTYPE, new Byte((byte) 0)); //subtype (i.e. normal, infected, etc) + this.dataWatcher.addObject(DW_SUBTYPE, new Byte((byte) 0)); //subtype (i.e. normal, infected, etc) } @Override diff --git a/src/main/java/com/hbm/entity/projectile/EntityBoxcar.java b/src/main/java/com/hbm/entity/projectile/EntityBoxcar.java index 74a4f9a47..8871bd430 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityBoxcar.java +++ b/src/main/java/com/hbm/entity/projectile/EntityBoxcar.java @@ -32,49 +32,36 @@ public class EntityBoxcar extends EntityThrowable { this.lastTickPosZ = this.prevPosZ = posZ; this.setPosition(posX + this.motionX, posY + this.motionY, posZ + this.motionZ); - /*this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ;*/ - this.motionY -= 0.03; if(motionY < -1.5) motionY = -1.5; - - if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air) - { - this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "hbm:entity.oldExplosion", 10000.0F, 0.5F + this.rand.nextFloat() * 0.1F); - this.setDead(); - ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 3); - ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 2.5); - ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 2); - ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 1.5); - ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 1); - - List list = (List)worldObj.getEntitiesWithinAABBExcludingEntity(null, - AxisAlignedBB.getBoundingBox(posX - 2, posY - 2, posZ - 2, posX + 2, posY + 2, posZ + 2)); - - for(Entity e : list) { - e.attackEntityFrom(ModDamageSource.boxcar, 1000); - } - - if(!worldObj.isRemote) - worldObj.setBlock((int)(this.posX - 0.5), (int)(this.posY + 0.5), (int)(this.posZ - 0.5), ModBlocks.boxcar); - } - } + + if(this.worldObj.getBlock((int) this.posX, (int) this.posY, (int) this.posZ) != Blocks.air) { + this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "hbm:weapon.trainImpact", 100.0F, 1.0F); + this.setDead(); + ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 3); + ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 2.5); + ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 2); + //ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 1.5); + //ExplosionLarge.spawnShock(worldObj, posX, posY + 1, posZ, 24, 1); + + List list = (List) worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(posX - 2, posY - 2, posZ - 2, posX + 2, posY + 2, posZ + 2)); + + for(Entity e : list) { + e.attackEntityFrom(ModDamageSource.boxcar, 1000); + } + + if(!worldObj.isRemote) + worldObj.setBlock((int) (this.posX - 0.5), (int) (this.posY + 0.5), (int) (this.posZ - 0.5), ModBlocks.boxcar); + } + } @Override - protected void onImpact(MovingObjectPosition p_70184_1_) { - - } + protected void onImpact(MovingObjectPosition p_70184_1_) { } - @Override + @Override @SideOnly(Side.CLIENT) - public boolean isInRangeToRenderDist(double distance) - { - return distance < 25000; - } + public boolean isInRangeToRenderDist(double distance) { + return distance < 25000; + } } diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 12297eb61..a5cbbc5ea 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4824)"; + public static final String VERSION = "1.0.27 BETA (4837)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/resources/assets/hbm/sounds.json b/src/main/resources/assets/hbm/sounds.json index adc21ea33..b7038f609 100644 --- a/src/main/resources/assets/hbm/sounds.json +++ b/src/main/resources/assets/hbm/sounds.json @@ -202,6 +202,7 @@ "weapon.glReload": {"category": "player", "sounds": [{"name": "weapon/glReload", "stream": false}]}, "weapon.glShoot": {"category": "player", "sounds": [{"name": "weapon/glShoot", "stream": false}]}, "weapon.44Shoot": {"category": "player", "sounds": [{"name": "weapon/44Shoot", "stream": false}]}, + "weapon.trainImpact": {"category": "player", "sounds": [{"name": "weapon/trainImpact", "stream": false}]}, "weapon.dFlash": {"category": "player", "sounds": [{"name": "weapon/dFlash", "stream": false}]}, diff --git a/src/main/resources/assets/hbm/sounds/weapon/trainImpact.ogg b/src/main/resources/assets/hbm/sounds/weapon/trainImpact.ogg new file mode 100644 index 0000000000000000000000000000000000000000..22b179fda9ec4755c62a0c699903cf88535516ce GIT binary patch literal 30762 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