public override void fall(float f) { var i = (int)Math.ceil(f - 3F); if (i > 0) { attackEntityFrom(null, i); int j = worldObj.getBlockId(MathHelper.floor_double(posX), MathHelper.floor_double(posY - 0.20000000298023224D - yOffset), MathHelper.floor_double(posZ)); if (j > 0) { StepSound stepsound = Block.blocksList[j].stepSound; worldObj.playSoundAtEntity(this, stepsound.func_737_c(), stepsound.func_738_a() * 0.5F, stepsound.func_739_b() * 0.75F); } } }
public Block(int i, Material material) { stepSound = soundPowderFootstep; blockParticleGravity = 1.0F; slipperiness = 0.6F; if (blocksList[i] != null) { throw new IllegalArgumentException( (new StringBuilder()).append("Slot ").append(i).append(" is already occupied by ").append( blocksList[i]).append(" when adding ").append(this).toString()); } else { blockMaterial = material; blocksList[i] = this; blockID = i; setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); opaqueCubeLookup[i] = isOpaqueCube(); lightOpacity[i] = isOpaqueCube() ? 255 : 0; field_537_s[i] = !material.getCanBlockGrass(); isBlockContainer[i] = false; return; } }
public void moveEntity(double d, double d1, double d2) { if (noClip) { boundingBox.offset(d, d1, d2); posX = (boundingBox.minX + boundingBox.maxX) / 2D; posY = (boundingBox.minY + yOffset) - ySize; posZ = (boundingBox.minZ + boundingBox.maxZ) / 2D; return; } double d3 = posX; double d4 = posZ; double d5 = d; double d6 = d1; double d7 = d2; AxisAlignedBB axisalignedbb = boundingBox.copy(); bool flag = onGround && isSneaking(); if (flag) { double d8 = 0.050000000000000003D; for (; d != 0.0D && worldObj.getCollidingBoundingBoxes(this, boundingBox.getOffsetBoundingBox(d, -1D, 0.0D)).size() == 0; d5 = d) { if (d < d8 && d >= -d8) { d = 0.0D; continue; } if (d > 0.0D) { d -= d8; } else { d += d8; } } for (; d2 != 0.0D && worldObj.getCollidingBoundingBoxes(this, boundingBox.getOffsetBoundingBox(0.0D, -1D, d2)).size() == 0; d7 = d2) { if (d2 < d8 && d2 >= -d8) { d2 = 0.0D; continue; } if (d2 > 0.0D) { d2 -= d8; } else { d2 += d8; } } } List list = worldObj.getCollidingBoundingBoxes(this, boundingBox.addCoord(d, d1, d2)); for (int i = 0; i < list.size(); i++) { d1 = ((AxisAlignedBB)list.get(i)).calculateYOffset(boundingBox, d1); } boundingBox.offset(0.0D, d1, 0.0D); if (!field_9077_F && d6 != d1) { d = d1 = d2 = 0.0D; } bool flag1 = onGround || d6 != d1 && d6 < 0.0D; for (int j = 0; j < list.size(); j++) { d = ((AxisAlignedBB)list.get(j)).calculateXOffset(boundingBox, d); } boundingBox.offset(d, 0.0D, 0.0D); if (!field_9077_F && d5 != d) { d = d1 = d2 = 0.0D; } for (int k = 0; k < list.size(); k++) { d2 = ((AxisAlignedBB)list.get(k)).calculateZOffset(boundingBox, d2); } boundingBox.offset(0.0D, 0.0D, d2); if (!field_9077_F && d7 != d2) { d = d1 = d2 = 0.0D; } if (stepHeight > 0.0F && flag1 && ySize < 0.05F && (d5 != d || d7 != d2)) { double d9 = d; double d11 = d1; double d13 = d2; d = d5; d1 = stepHeight; d2 = d7; AxisAlignedBB axisalignedbb1 = boundingBox.copy(); boundingBox.setBB(axisalignedbb); List list1 = worldObj.getCollidingBoundingBoxes(this, boundingBox.addCoord(d, d1, d2)); for (int j2 = 0; j2 < list1.size(); j2++) { d1 = ((AxisAlignedBB)list1.get(j2)).calculateYOffset(boundingBox, d1); } boundingBox.offset(0.0D, d1, 0.0D); if (!field_9077_F && d6 != d1) { d = d1 = d2 = 0.0D; } for (int k2 = 0; k2 < list1.size(); k2++) { d = ((AxisAlignedBB)list1.get(k2)).calculateXOffset(boundingBox, d); } boundingBox.offset(d, 0.0D, 0.0D); if (!field_9077_F && d5 != d) { d = d1 = d2 = 0.0D; } for (int l2 = 0; l2 < list1.size(); l2++) { d2 = ((AxisAlignedBB)list1.get(l2)).calculateZOffset(boundingBox, d2); } boundingBox.offset(0.0D, 0.0D, d2); if (!field_9077_F && d7 != d2) { d = d1 = d2 = 0.0D; } if (d9 * d9 + d13 * d13 >= d * d + d2 * d2) { d = d9; d1 = d11; d2 = d13; boundingBox.setBB(axisalignedbb1); } else { ySize += (float)0.5D; } } posX = (boundingBox.minX + boundingBox.maxX) / 2D; posY = (boundingBox.minY + yOffset) - ySize; posZ = (boundingBox.minZ + boundingBox.maxZ) / 2D; isCollidedHorizontally = d5 != d || d7 != d2; isCollidedVertically = d6 != d1; onGround = d6 != d1 && d6 < 0.0D; isCollided = isCollidedHorizontally || isCollidedVertically; updateFallState(d1, onGround); if (d5 != d) { motionX = 0.0D; } if (d6 != d1) { motionY = 0.0D; } if (d7 != d2) { motionZ = 0.0D; } double d10 = posX - d3; double d12 = posZ - d4; if (entityWalks && !flag) { distanceWalkedModified += (float)(MathHelper.sqrt_double(d10 * d10 + d12 * d12) * 0.59999999999999998D); int l = MathHelper.floor_double(posX); int j1 = MathHelper.floor_double(posY - 0.20000000298023224D - yOffset); int l1 = MathHelper.floor_double(posZ); int i3 = worldObj.getBlockId(l, j1, l1); if (distanceWalkedModified > nextStepDistance && i3 > 0) { nextStepDistance++; StepSound stepsound = Block.blocksList[i3].stepSound; if (worldObj.getBlockId(l, j1 + 1, l1) == Block.snow.blockID) { stepsound = Block.snow.stepSound; worldObj.playSoundAtEntity(this, stepsound.func_737_c(), stepsound.func_738_a() * 0.15F, stepsound.func_739_b()); } else if (!Block.blocksList[i3].blockMaterial.getIsLiquid()) { worldObj.playSoundAtEntity(this, stepsound.func_737_c(), stepsound.func_738_a() * 0.15F, stepsound.func_739_b()); } Block.blocksList[i3].onEntityWalking(worldObj, l, j1, l1, this); } } int i1 = MathHelper.floor_double(boundingBox.minX); int k1 = MathHelper.floor_double(boundingBox.minY); int i2 = MathHelper.floor_double(boundingBox.minZ); int j3 = MathHelper.floor_double(boundingBox.maxX); int k3 = MathHelper.floor_double(boundingBox.maxY); int l3 = MathHelper.floor_double(boundingBox.maxZ); if (worldObj.checkChunksExist(i1, k1, i2, j3, k3, l3)) { for (int i4 = i1; i4 <= j3; i4++) { for (int j4 = k1; j4 <= k3; j4++) { for (int k4 = i2; k4 <= l3; k4++) { int l4 = worldObj.getBlockId(i4, j4, k4); if (l4 > 0) { Block.blocksList[l4].onEntityCollidedWithBlock(worldObj, i4, j4, k4, this); } } } } } ySize *= 0.4F; bool flag2 = handleWaterMovement(); if (worldObj.isBoundingBoxBurning(boundingBox)) { dealFireDamage(1); if (!flag2) { fire++; if (fire == 0) { fire = 300; } } } else if (fire <= 0) { fire = -fireResistance; } if (flag2 && fire > 0) { worldObj.playSoundAtEntity(this, "random.fizz", 0.7F, 1.6F + (rand.nextFloat() - rand.nextFloat()) * 0.4F); fire = -fireResistance; } }
public Block setStepSound(StepSound stepsound) { stepSound = stepsound; return(this); }
static Block() { { soundPowderFootstep = new StepSound("stone", 1.0F, 1.0F); soundWoodFootstep = new StepSound("wood", 1.0F, 1.0F); soundGravelFootstep = new StepSound("gravel", 1.0F, 1.0F); soundGrassFootstep = new StepSound("grass", 1.0F, 1.0F); soundStoneFootstep = new StepSound("stone", 1.0F, 1.0F); soundMetalFootstep = new StepSound("stone", 1.0F, 1.5F); soundGlassFootstep = new StepSoundStone("stone", 1.0F, 1.0F); soundClothFootstep = new StepSound("cloth", 1.0F, 1.0F); soundSandFootstep = new StepSoundSand("sand", 1.0F, 1.0F); blocksList = new Block[256]; field_537_s = new bool[256]; stone = (new BlockStone(1, 1)).setHardness(1.5F).setResistance(10F).setStepSound(soundStoneFootstep). setBlockName("stone"); grass = (BlockGrass) (new BlockGrass(2)).setHardness(0.6F).setStepSound(soundGrassFootstep).setBlockName("grass"); dirt = (new BlockDirt(3, 2)).setHardness(0.5F).setStepSound(soundGravelFootstep).setBlockName("dirt"); cobblestone = (new Block(4, 16, Material.rock)).setHardness(2.0F).setResistance(10F).setStepSound( soundStoneFootstep).setBlockName("stonebrick"); planks = (new Block(5, 4, Material.wood)).setHardness(2.0F).setResistance(5F).setStepSound(soundWoodFootstep) .setBlockName("wood"); sapling = (new BlockSapling(6, 15)).setHardness(0.0F).setStepSound(soundGrassFootstep).setBlockName("sapling"); bedrock = (new Block(7, 17, Material.rock)).setHardness(-1F).setResistance(6000000F).setStepSound( soundStoneFootstep).setBlockName("bedrock"); waterStill = (new BlockFlowing(8, Material.water)).setHardness(100F).setLightOpacity(3).setBlockName("water"); waterMoving = (new BlockStationary(9, Material.water)).setHardness(100F).setLightOpacity(3).setBlockName("water"); lavaStill = (new BlockFlowing(10, Material.lava)).setHardness(0.0F).setLightValue(1.0F).setLightOpacity(255). setBlockName("lava"); lavaMoving = (new BlockStationary(11, Material.lava)).setHardness(100F).setLightValue(1.0F).setLightOpacity(255). setBlockName("lava"); sand = (new BlockSand(12, 18)).setHardness(0.5F).setStepSound(soundSandFootstep).setBlockName("sand"); gravel = (new BlockGravel(13, 19)).setHardness(0.6F).setStepSound(soundGravelFootstep).setBlockName("gravel"); oreGold = (new BlockOre(14, 32)).setHardness(3F).setResistance(5F).setStepSound(soundStoneFootstep). setBlockName("oreGold"); oreIron = (new BlockOre(15, 33)).setHardness(3F).setResistance(5F).setStepSound(soundStoneFootstep). setBlockName("oreIron"); oreCoal = (new BlockOre(16, 34)).setHardness(3F).setResistance(5F).setStepSound(soundStoneFootstep). setBlockName("oreCoal"); wood = (new BlockLog(17)).setHardness(2.0F).setStepSound(soundWoodFootstep).setBlockName("log"); leaves = (BlockLeaves) (new BlockLeaves(18, 52)).setHardness(0.2F).setLightOpacity(1).setStepSound(soundGrassFootstep). setBlockName("leaves"); sponge = (new BlockSponge(19)).setHardness(0.6F).setStepSound(soundGrassFootstep).setBlockName("sponge"); glass = (new BlockGlass(20, 49, Material.glass, false)).setHardness(0.3F).setStepSound(soundGlassFootstep). setBlockName("glass"); oreLapis = (new BlockOre(21, 160)).setHardness(3F).setResistance(5F).setStepSound(soundStoneFootstep). setBlockName("oreLapis"); blockLapis = (new Block(22, 144, Material.rock)).setHardness(3F).setResistance(5F).setStepSound( soundStoneFootstep).setBlockName("blockLapis"); dispenser = (new BlockDispenser(23)).setHardness(3.5F).setStepSound(soundStoneFootstep).setBlockName("dispenser"); sandStone = (new BlockSandStone(24)).setStepSound(soundStoneFootstep).setHardness(0.8F).setBlockName("sandStone"); cloth = (new BlockCloth()).setHardness(0.8F).setStepSound(soundClothFootstep).setBlockName("cloth"); plantYellow = (BlockFlower) (new BlockFlower(37, 13)).setHardness(0.0F).setStepSound(soundGrassFootstep).setBlockName("flower"); plantRed = (BlockFlower) (new BlockFlower(38, 12)).setHardness(0.0F).setStepSound(soundGrassFootstep).setBlockName("rose"); mushroomBrown = (BlockFlower) (new BlockMushroom(39, 29)).setHardness(0.0F).setStepSound(soundGrassFootstep).setLightValue(0.125F) .setBlockName("mushroom"); mushroomRed = (BlockFlower) (new BlockMushroom(40, 28)).setHardness(0.0F).setStepSound(soundGrassFootstep).setBlockName( "mushroom"); blockGold = (new BlockOreBlock(41, 23)).setHardness(3F).setResistance(10F).setStepSound(soundMetalFootstep). setBlockName("blockGold"); blockSteel = (new BlockOreBlock(42, 22)).setHardness(5F).setResistance(10F).setStepSound(soundMetalFootstep). setBlockName("blockIron"); stairDouble = (new BlockStep(43, true)).setHardness(2.0F).setResistance(10F).setStepSound(soundStoneFootstep). setBlockName("stoneSlab"); stairSingle = (new BlockStep(44, false)).setHardness(2.0F).setResistance(10F).setStepSound(soundStoneFootstep). setBlockName("stoneSlab"); brick = (new Block(45, 7, Material.rock)).setHardness(2.0F).setResistance(10F).setStepSound( soundStoneFootstep).setBlockName("brick"); tnt = (new BlockTNT(46, 8)).setHardness(0.0F).setStepSound(soundGrassFootstep).setBlockName("tnt"); bookShelf = (new BlockBookshelf(47, 35)).setHardness(1.5F).setStepSound(soundWoodFootstep).setBlockName( "bookshelf"); cobblestoneMossy = (new Block(48, 36, Material.rock)).setHardness(2.0F).setResistance(10F).setStepSound( soundStoneFootstep).setBlockName("stoneMoss"); obsidian = (new BlockObsidian(49, 37)).setHardness(10F).setResistance(2000F).setStepSound(soundStoneFootstep). setBlockName("obsidian"); torchWood = (new BlockTorch(50, 80)).setHardness(0.0F).setLightValue(0.9375F).setStepSound(soundWoodFootstep). setBlockName("torch"); fire = (BlockFire) (new BlockFire(51, 31)).setHardness(0.0F).setLightValue(1.0F).setStepSound(soundWoodFootstep). setBlockName("fire"); mobSpawner = (new BlockMobSpawner(52, 65)).setHardness(5F).setStepSound(soundMetalFootstep).setBlockName( "mobSpawner"); stairCompactPlanks = (new BlockStairs(53, planks)).setBlockName("stairsWood"); crate = (new BlockChest(54)).setHardness(2.5F).setStepSound(soundWoodFootstep).setBlockName("chest"); redstoneWire = (new BlockRedstoneWire(55, 164)).setHardness(0.0F).setStepSound(soundPowderFootstep).setBlockName( "redstoneDust"); oreDiamond = (new BlockOre(56, 50)).setHardness(3F).setResistance(5F).setStepSound(soundStoneFootstep). setBlockName("oreDiamond"); blockDiamond = (new BlockOreBlock(57, 24)).setHardness(5F).setResistance(10F).setStepSound(soundMetalFootstep). setBlockName("blockDiamond"); workbench = (new BlockWorkbench(58)).setHardness(2.5F).setStepSound(soundWoodFootstep).setBlockName("workbench"); crops = (new BlockCrops(59, 88)).setHardness(0.0F).setStepSound(soundGrassFootstep).setBlockName("crops"); tilledField = (new BlockSoil(60)).setHardness(0.6F).setStepSound(soundGravelFootstep).setBlockName("farmland"); stoneOvenIdle = (new BlockFurnace(61, false)).setHardness(3.5F).setStepSound(soundStoneFootstep).setBlockName( "furnace"); stoneOvenActive = (new BlockFurnace(62, true)).setHardness(3.5F).setStepSound(soundStoneFootstep).setLightValue(0.875F) .setBlockName("furnace"); signPost = (new BlockSign(63, typeof(TileEntitySign), true)).setHardness(1.0F).setStepSound(soundWoodFootstep) .setBlockName("sign"); doorWood = (new BlockDoor(64, Material.wood)).setHardness(3F).setStepSound(soundWoodFootstep).setBlockName( "doorWood"); ladder = (new BlockLadder(65, 83)).setHardness(0.4F).setStepSound(soundWoodFootstep).setBlockName("ladder"); minecartTrack = (new BlockMinecartTrack(66, 128)).setHardness(0.7F).setStepSound(soundMetalFootstep).setBlockName( "rail"); stairCompactCobblestone = (new BlockStairs(67, cobblestone)).setBlockName("stairsStone"); signWall = (new BlockSign(68, typeof(TileEntitySign), false)).setHardness(1.0F).setStepSound(soundWoodFootstep) .setBlockName("sign"); lever = (new BlockLever(69, 96)).setHardness(0.5F).setStepSound(soundWoodFootstep).setBlockName("lever"); pressurePlateStone = (new BlockPressurePlate(70, stone.blockIndexInTexture, EnumMobType.mobs)).setHardness(0.5F). setStepSound(soundStoneFootstep).setBlockName("pressurePlate"); doorSteel = (new BlockDoor(71, Material.iron)).setHardness(5F).setStepSound(soundMetalFootstep).setBlockName( "doorIron"); pressurePlatePlanks = (new BlockPressurePlate(72, planks.blockIndexInTexture, EnumMobType.everything)).setHardness(0.5F). setStepSound(soundWoodFootstep).setBlockName("pressurePlate"); oreRedstone = (new BlockRedstoneOre(73, 51, false)).setHardness(3F).setResistance(5F).setStepSound( soundStoneFootstep).setBlockName("oreRedstone"); oreRedstoneGlowing = (new BlockRedstoneOre(74, 51, true)).setLightValue(0.625F).setHardness(3F).setResistance(5F). setStepSound(soundStoneFootstep).setBlockName("oreRedstone"); torchRedstoneIdle = (new BlockRedstoneTorch(75, 115, false)).setHardness(0.0F).setStepSound(soundWoodFootstep). setBlockName("notGate"); torchRedstoneActive = (new BlockRedstoneTorch(76, 99, true)).setHardness(0.0F).setLightValue(0.5F).setStepSound( soundWoodFootstep).setBlockName("notGate"); button = (new BlockButton(77, stone.blockIndexInTexture)).setHardness(0.5F).setStepSound(soundStoneFootstep). setBlockName("button"); snow = (new BlockSnow(78, 66)).setHardness(0.1F).setStepSound(soundClothFootstep).setBlockName("snow"); ice = (new BlockIce(79, 67)).setHardness(0.5F).setLightOpacity(3).setStepSound(soundGlassFootstep). setBlockName("ice"); blockSnow = (new BlockSnowBlock(80, 66)).setHardness(0.2F).setStepSound(soundClothFootstep).setBlockName("snow"); cactus = (new BlockCactus(81, 70)).setHardness(0.4F).setStepSound(soundClothFootstep).setBlockName("cactus"); blockClay = (new BlockClay(82, 72)).setHardness(0.6F).setStepSound(soundGravelFootstep).setBlockName("clay"); reed = (new BlockReed(83, 73)).setHardness(0.0F).setStepSound(soundGrassFootstep).setBlockName("reeds"); jukebox = (new BlockJukeBox(84, 74)).setHardness(2.0F).setResistance(10F).setStepSound(soundStoneFootstep). setBlockName("jukebox"); fence = (new BlockFence(85, 4)).setHardness(2.0F).setResistance(5F).setStepSound(soundWoodFootstep). setBlockName("fence"); pumpkin = (new BlockPumpkin(86, 102, false)).setHardness(1.0F).setStepSound(soundWoodFootstep).setBlockName( "pumpkin"); bloodStone = (new BlockBloodStone(87, 103)).setHardness(0.4F).setStepSound(soundStoneFootstep).setBlockName( "hellrock"); slowSand = (new BlockSlowSand(88, 104)).setHardness(0.5F).setStepSound(soundSandFootstep).setBlockName( "hellsand"); lightStone = (new BlockLightStone(89, 105, Material.glass)).setHardness(0.3F).setStepSound(soundGlassFootstep). setLightValue(1.0F).setBlockName("lightgem"); portal = (BlockPortal) (new BlockPortal(90, 14)).setHardness(-1F).setStepSound(soundGlassFootstep).setLightValue(0.75F). setBlockName("portal"); pumpkinLantern = (new BlockPumpkin(91, 102, true)).setHardness(1.0F).setStepSound(soundWoodFootstep).setLightValue( 1.0F).setBlockName("litpumpkin"); cake = (new BlockCake(92, 121)).setHardness(0.5F).setStepSound(soundClothFootstep).setBlockName("cake"); field_22011_bh = (new BlockRedstoneRepeater(93, false)).setHardness(0.0F).setStepSound(soundWoodFootstep). setBlockName("diode"); field_22010_bi = (new BlockRedstoneRepeater(94, true)).setHardness(0.0F).setLightValue(0.625F).setStepSound( soundWoodFootstep).setBlockName("diode"); musicBlock = (new BlockNote(25)).setHardness(0.8F).setBlockName("musicBlock"); bed = (new BlockBed(26)).setHardness(0.2F).setBlockName("bed"); Item.itemsList[cloth.blockID] = (new ItemCloth(cloth.blockID - 256)).setItemName("cloth"); Item.itemsList[wood.blockID] = (new ItemLog(wood.blockID - 256)).setItemName("log"); Item.itemsList[stairSingle.blockID] = (new ItemSlab(stairSingle.blockID - 256)).setItemName("stoneSlab"); for (int i = 0; i < 256; i++) { if (blocksList[i] != null && Item.itemsList[i] == null) { Item.itemsList[i] = new ItemBlock(i - 256); } } field_537_s[0] = true; } }