From 9b32f81883e5188f9e230ebb442eb447f49c6000 Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 9 Oct 2021 18:31:49 +0200 Subject: [PATCH] fixed crates losing locks when mined, connected textures for glasses --- src/main/java/com/hbm/blocks/ModBlocks.java | 14 +- .../hbm/blocks/generic/BlockStorageCrate.java | 121 ++++++++++++++---- .../hbm/textures/blocks/glass_ash_ct.png | Bin 0 -> 292 bytes .../hbm/textures/blocks/glass_boron_ct.png | Bin 0 -> 255 bytes .../hbm/textures/blocks/glass_lead_ct.png | Bin 0 -> 284 bytes .../hbm/textures/blocks/glass_polonium_ct.png | Bin 0 -> 299 bytes .../hbm/textures/blocks/glass_quartz.png | Bin 145 -> 183 bytes .../hbm/textures/blocks/glass_quartz_ct.png | Bin 0 -> 235 bytes .../textures/blocks/glass_trinitite_ct.png | Bin 0 -> 308 bytes .../hbm/textures/blocks/glass_uranium_ct.png | Bin 0 -> 308 bytes 10 files changed, 105 insertions(+), 30 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/blocks/glass_ash_ct.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/glass_boron_ct.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/glass_lead_ct.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/glass_polonium_ct.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/glass_quartz_ct.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/glass_trinitite_ct.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/glass_uranium_ct.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 707ab55bf..fcb289f23 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1569,13 +1569,13 @@ public class ModBlocks { sand_quartz = new BlockFalling(Material.sand).setBlockName("sand_quartz").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.machineTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":sand_quartz"); sand_gold = new BlockGoldSand(Material.sand).setBlockName("sand_gold").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.machineTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":sand_gold"); sand_gold198 = new BlockGoldSand(Material.sand).setBlockName("sand_gold198").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.machineTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":sand_gold"); - glass_boron = new BlockNTMGlass(0, RefStrings.MODID + ":glass_boron", Material.glass).setBlockName("glass_boron").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.machineTab).setHardness(0.3F); - glass_lead = new BlockNTMGlass(0, RefStrings.MODID + ":glass_lead", Material.glass).setBlockName("glass_lead").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.machineTab).setHardness(0.3F); - glass_uranium = new BlockNTMGlass(1, RefStrings.MODID + ":glass_uranium", Material.glass).setBlockName("glass_uranium").setLightLevel(5F/15F).setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.machineTab).setHardness(0.3F); - glass_trinitite = new BlockNTMGlass(1, RefStrings.MODID + ":glass_trinitite", Material.glass).setBlockName("glass_trinitite").setLightLevel(5F/15F).setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.machineTab).setHardness(0.3F); - glass_polonium = new BlockNTMGlass(1, RefStrings.MODID + ":glass_polonium", Material.glass).setBlockName("glass_polonium").setLightLevel(5F/15F).setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.machineTab).setHardness(0.3F); - glass_ash = new BlockNTMGlass(1, RefStrings.MODID + ":glass_ash", Material.glass).setBlockName("glass_ash").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.machineTab).setHardness(3F); - glass_quartz = new BlockNTMGlass(0, RefStrings.MODID + ":glass_quartz", Material.packedIce, true).setBlockName("glass_quartz").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGlass).setHardness(1.0F).setResistance(40.0F).setBlockTextureName(RefStrings.MODID + "glass_quartz"); + glass_boron = new BlockNTMGlassCT(0, RefStrings.MODID + ":glass_boron", Material.glass).setBlockName("glass_boron").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.machineTab).setHardness(0.3F); + glass_lead = new BlockNTMGlassCT(0, RefStrings.MODID + ":glass_lead", Material.glass).setBlockName("glass_lead").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.machineTab).setHardness(0.3F); + glass_uranium = new BlockNTMGlassCT(1, RefStrings.MODID + ":glass_uranium", Material.glass).setBlockName("glass_uranium").setLightLevel(5F/15F).setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.machineTab).setHardness(0.3F); + glass_trinitite = new BlockNTMGlassCT(1, RefStrings.MODID + ":glass_trinitite", Material.glass).setBlockName("glass_trinitite").setLightLevel(5F/15F).setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.machineTab).setHardness(0.3F); + glass_polonium = new BlockNTMGlassCT(1, RefStrings.MODID + ":glass_polonium", Material.glass).setBlockName("glass_polonium").setLightLevel(5F/15F).setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.machineTab).setHardness(0.3F); + glass_ash = new BlockNTMGlassCT(1, RefStrings.MODID + ":glass_ash", Material.glass).setBlockName("glass_ash").setStepSound(Block.soundTypeGlass).setCreativeTab(MainRegistry.machineTab).setHardness(3F); + glass_quartz = new BlockNTMGlassCT(0, RefStrings.MODID + ":glass_quartz", Material.packedIce, true).setBlockName("glass_quartz").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGlass).setHardness(1.0F).setResistance(40.0F).setBlockTextureName(RefStrings.MODID + "glass_quartz"); mush = new BlockMush(Material.plants).setBlockName("mush").setCreativeTab(MainRegistry.blockTab).setLightLevel(0.5F).setStepSound(Block.soundTypeGrass).setBlockTextureName(RefStrings.MODID + ":mush"); mush_block = new BlockMushHuge(Material.plants).setBlockName("mush_block").setLightLevel(1.0F).setStepSound(Block.soundTypeGrass).setHardness(0.2F).setBlockTextureName(RefStrings.MODID + ":mush_block_skin"); diff --git a/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java b/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java index b2e897abf..16ab8ac96 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java @@ -1,7 +1,5 @@ package com.hbm.blocks.generic; -import java.util.ArrayList; -import java.util.List; import java.util.Random; import com.hbm.blocks.ModBlocks; @@ -36,8 +34,6 @@ import net.minecraft.world.World; public class BlockStorageCrate extends BlockContainer { - private final Random field_149933_a = new Random(); - @SideOnly(Side.CLIENT) private IIcon iconTop; @@ -88,33 +84,51 @@ public class BlockStorageCrate extends BlockContainer { return new TileEntitySafe(); return null; } - + + private static boolean dropInv = true; + @Override - public ArrayList getDrops(World world, int x, int y, int z, int metadata, int fortune) { - ArrayList drops = new ArrayList(); + public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z, boolean willHarvest) { - ItemStack drop = new ItemStack(this); - ISidedInventory inv = (ISidedInventory)world.getTileEntity(x, y, z); - - if(inv != null) { - - drop.stackTagCompound = new NBTTagCompound(); + if(!player.capabilities.isCreativeMode && !world.isRemote && willHarvest) { - for(int i = 0; i < inv.getSizeInventory(); i++) { + ItemStack drop = new ItemStack(this); + ISidedInventory inv = (ISidedInventory)world.getTileEntity(x, y, z); + + NBTTagCompound nbt = new NBTTagCompound(); + + if(inv != null) { - ItemStack stack = inv.getStackInSlot(i); - if(stack == null) - continue; - - NBTTagCompound slot = new NBTTagCompound(); - stack.writeToNBT(slot); - drop.stackTagCompound.setTag("slot" + i, slot); + for(int i = 0; i < inv.getSizeInventory(); i++) { + + ItemStack stack = inv.getStackInSlot(i); + if(stack == null) + continue; + + NBTTagCompound slot = new NBTTagCompound(); + stack.writeToNBT(slot); + nbt.setTag("slot" + i, slot); + } } + + if(inv instanceof TileEntityLockableBase) { + TileEntityLockableBase lockable = (TileEntityLockableBase) inv; + nbt.setInteger("lock", lockable.getPins()); + nbt.setDouble("lockMod", lockable.getMod()); + } + + if(!nbt.hasNoTags()) { + drop.stackTagCompound = nbt; + } + + world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, drop)); } - drops.add(drop); + dropInv = false; + boolean flag = world.setBlockToAir(x, y, z); + dropInv = true; - return drops; + return flag; } @Override @@ -154,6 +168,16 @@ public class BlockStorageCrate extends BlockContainer { for(int i = 0; i < inv.getSizeInventory(); i++) { inv.setInventorySlotContents(i, ItemStack.loadItemStackFromNBT(stack.stackTagCompound.getCompoundTag("slot" + i))); } + + if(inv instanceof TileEntityLockableBase) { + TileEntityLockableBase lockable = (TileEntityLockableBase) inv; + + if(stack.stackTagCompound.hasKey("lock")) { + lockable.setPins(stack.stackTagCompound.getInteger("lock")); + lockable.setMod(stack.stackTagCompound.getDouble("lockMod")); + lockable.lock(); + } + } } if(this != ModBlocks.safe) @@ -174,4 +198,55 @@ public class BlockStorageCrate extends BlockContainer { world.setBlockMetadataWithNotify(x, y, z, 4, 2); } } + + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + + if(dropInv) { + ISidedInventory sided = (ISidedInventory) world.getTileEntity(x, y, z); + Random rand = world.rand; + + if(sided != null) { + for(int i1 = 0; i1 < sided.getSizeInventory(); ++i1) { + ItemStack itemstack = sided.getStackInSlot(i1); + + if(itemstack != null) { + float f = rand.nextFloat() * 0.8F + 0.1F; + float f1 = rand.nextFloat() * 0.8F + 0.1F; + float f2 = rand.nextFloat() * 0.8F + 0.1F; + + while(itemstack.stackSize > 0) { + int j1 = rand.nextInt(21) + 10; + + if(j1 > itemstack.stackSize) { + j1 = itemstack.stackSize; + } + + itemstack.stackSize -= j1; + EntityItem entityitem = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); + + 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); + } + } + } + + world.func_147453_f(x, y, z, block); + } + } + + super.breakBlock(world, x, y, z, block, meta); + } + + @Override + public Item getItemDropped(int i, Random rand, int j) { + return null; + } } diff --git a/src/main/resources/assets/hbm/textures/blocks/glass_ash_ct.png b/src/main/resources/assets/hbm/textures/blocks/glass_ash_ct.png new file mode 100644 index 0000000000000000000000000000000000000000..56aafb8601c1d64885bbd54de5c65fdc49bede22 GIT binary patch literal 292 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzmSQK*5Dp-y;YjHK@^5>(IEF;D zzMZy__pkvE%S#366)F!(>x8zR)LCWQdHn+iQ%F_Y5@8w3)}!WYST2O;#n}XW>2B_@ zX_@fd&gb%%EftI{(!qat-ZJd@-e|eu*nXYU>I|3tR@*Z(Ea-~ok}nu!7ck3QoSEtQo_WpwN&#MmI3*=b o)xc0sOu}Fz{xa>oJkXmAp00i_>zopr08%D&=l}o! literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/glass_boron_ct.png b/src/main/resources/assets/hbm/textures/blocks/glass_boron_ct.png new file mode 100644 index 0000000000000000000000000000000000000000..85cd13795550eb3e772bd0cc9b625369ac9aef56 GIT binary patch literal 255 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzmSQK*5Dp-y;YjHK^0#@qIEF;D zzMXE!*K8oba$Y0g!YAfme;TKM68qn%CThQ6fhXh9AO)e6pn^C?w~rxtVcWmW4d2G$ z$$lU_n^9#A+HYL z;9*h_&is1y^$As58O`6$TN0Ohz}NaM=bEpnQU`c!W@zNP+;93|`Po(=tk7F5{p&=J zCvkuBqvRSRmA1$}XLquGCp_(Cd2D6fNu37HW2MF4OGRXU0DZvV>FVdQ&MBb@0I_^v AZ~y=R literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/glass_lead_ct.png b/src/main/resources/assets/hbm/textures/blocks/glass_lead_ct.png new file mode 100644 index 0000000000000000000000000000000000000000..b3620cffa5782304699e68daccc788fde4d7a290 GIT binary patch literal 284 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzmSQK*5Dp-y;YjHK@-KV3IEF;D zCMPTqkg+KEXTP&bTRZx{ao{TkFUB@zjgNvWf92n=YkAec%zo~Fd4WO7k|RYyUk}R$ zMBen8_;kuEb?E@1R7uHD=Gh$g_f&Sz@&A)AnIY@}LUW$H zYPWt6Q7@M|ZSqR_cMPi!d8S1Bt*i4?%sXS^;Q!&z-Rq5|2O8QLn3<>LSiEXbe8@26 z(z{=VU0)`@Vd%N!cezXHuZlIp;w{RCEEB#OYiIM;NF^*>@ojenr)EWsx+@onS5>1=MY2Co_d*#($aL`DVOlUoq*zd_ukXa29*|BMX`4F2q`?rn^W v?0)$EZnjHiO4zlg%_rZ6%Dz5t&A>4KZvHaes`fgdZy7vY{an^LB{Ts5poMqx literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/glass_quartz.png b/src/main/resources/assets/hbm/textures/blocks/glass_quartz.png index 579de6305215d590bfd386bd6af1ca22b7a0c307..3f0200186d27498d60d29816e05eaf6fc39fbc3a 100644 GIT binary patch delta 139 zcmV;60CfM60k;8=G=FYML_t(Ijir)74uCKS1Utt6e|f#w1hIs*a%n=Dg)AURBL#pY z%{Tu)qAh6Hye60+fYbcQ2^TIEx9fMdAxZn-FxFVX(W6fSd0GHlpxTfn tP{Ec5-EEv5+#MCMLo_LZEAwXV0vpVC(+%=&EC2ui07*qoLQPwlx8O zO2KxPx~Gg_C|vTV~I$c2&TGq2Z+M4aSH|3}XMZKDRDZGL+2^Wzt`yxB|G9Zf-sh{o i|8$%Xj^4PKId%f)_BPqa2PXqv%i!ti=d#Wzp$Pz&@?JUs literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/glass_trinitite_ct.png b/src/main/resources/assets/hbm/textures/blocks/glass_trinitite_ct.png new file mode 100644 index 0000000000000000000000000000000000000000..fef39bd2470eb4b9122b0fa9003c9414c94ff062 GIT binary patch literal 308 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzmSQK*5Dp-y;YjHK@?U$pIEF;D zCa9-07MU?YFLuFH`S~iG%-#$1k@xmL6zmXJBTYmSgd%LGdBO zlS_H>w*|YtOn$@g<aU4D?joX(kI_u{b+NCH3P%n_xbIA%&bCz-e&N0^>bP0l+XkKp9gpn literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/glass_uranium_ct.png b/src/main/resources/assets/hbm/textures/blocks/glass_uranium_ct.png new file mode 100644 index 0000000000000000000000000000000000000000..7376a0e1d37e8759ca9a53f49bf1bfc6034c85aa GIT binary patch literal 308 zcmV-40n7f0P)