808 lines
35 KiB
Java
808 lines
35 KiB
Java
package net.minecraft.server;
|
|
|
|
import java.util.Iterator;
|
|
import java.util.List;
|
|
import java.util.Random;
|
|
|
|
public class Block {
|
|
|
|
public static final RegistryMaterials REGISTRY = new RegistryBlocks("air");
|
|
private CreativeModeTab creativeTab;
|
|
protected String d;
|
|
public static final StepSound e = new StepSound("stone", 1.0F, 1.0F);
|
|
public static final StepSound f = new StepSound("wood", 1.0F, 1.0F);
|
|
public static final StepSound g = new StepSound("gravel", 1.0F, 1.0F);
|
|
public static final StepSound h = new StepSound("grass", 1.0F, 1.0F);
|
|
public static final StepSound i = new StepSound("stone", 1.0F, 1.0F);
|
|
public static final StepSound j = new StepSound("stone", 1.0F, 1.5F);
|
|
public static final StepSound k = new StepSoundStone("stone", 1.0F, 1.0F);
|
|
public static final StepSound l = new StepSound("cloth", 1.0F, 1.0F);
|
|
public static final StepSound m = new StepSound("sand", 1.0F, 1.0F);
|
|
public static final StepSound n = new StepSound("snow", 1.0F, 1.0F);
|
|
public static final StepSound o = new StepSoundLadder("ladder", 1.0F, 1.0F);
|
|
public static final StepSound p = new StepSoundAnvil("anvil", 0.3F, 1.0F);
|
|
protected boolean q;
|
|
protected int r;
|
|
protected boolean s;
|
|
protected int t;
|
|
protected boolean u;
|
|
protected float strength;
|
|
protected float durability;
|
|
protected boolean x = true;
|
|
protected boolean y = true;
|
|
protected boolean z;
|
|
protected boolean isTileEntity;
|
|
protected double minX;
|
|
protected double minY;
|
|
protected double minZ;
|
|
protected double maxX;
|
|
protected double maxY;
|
|
protected double maxZ;
|
|
public StepSound stepSound;
|
|
public float I;
|
|
protected final Material material;
|
|
public float frictionFactor;
|
|
private String name;
|
|
|
|
public static int b(Block block) {
|
|
return REGISTRY.b(block);
|
|
}
|
|
|
|
public static Block e(int i) {
|
|
return (Block) REGISTRY.a(i);
|
|
}
|
|
|
|
public static Block a(Item item) {
|
|
return e(Item.b(item));
|
|
}
|
|
|
|
public static Block b(String s) {
|
|
if (REGISTRY.b(s)) {
|
|
return (Block) REGISTRY.a(s);
|
|
} else {
|
|
try {
|
|
return (Block) REGISTRY.a(Integer.parseInt(s));
|
|
} catch (NumberFormatException numberformatexception) {
|
|
return null;
|
|
}
|
|
}
|
|
}
|
|
|
|
public boolean j() {
|
|
return this.q;
|
|
}
|
|
|
|
public int k() {
|
|
return this.r;
|
|
}
|
|
|
|
public int m() {
|
|
return this.t;
|
|
}
|
|
|
|
public boolean n() {
|
|
return this.u;
|
|
}
|
|
|
|
public Material getMaterial() {
|
|
return this.material;
|
|
}
|
|
|
|
public MaterialMapColor f(int i) {
|
|
return this.getMaterial().r();
|
|
}
|
|
|
|
public static void p() {
|
|
REGISTRY.a(0, "air", (new BlockAir()).c("air"));
|
|
REGISTRY.a(1, "stone", (new BlockStone()).c(1.5F).b(10.0F).a(i).c("stone").d("stone"));
|
|
REGISTRY.a(2, "grass", (new BlockGrass()).c(0.6F).a(h).c("grass").d("grass"));
|
|
REGISTRY.a(3, "dirt", (new BlockDirt()).c(0.5F).a(g).c("dirt").d("dirt"));
|
|
Block block = (new Block(Material.STONE)).c(2.0F).b(10.0F).a(i).c("stonebrick").a(CreativeModeTab.b).d("cobblestone");
|
|
|
|
REGISTRY.a(4, "cobblestone", block);
|
|
Block block1 = (new BlockWood()).c(2.0F).b(5.0F).a(f).c("wood").d("planks");
|
|
|
|
REGISTRY.a(5, "planks", block1);
|
|
REGISTRY.a(6, "sapling", (new BlockSapling()).c(0.0F).a(h).c("sapling").d("sapling"));
|
|
REGISTRY.a(7, "bedrock", (new Block(Material.STONE)).s().b(6000000.0F).a(i).c("bedrock").H().a(CreativeModeTab.b).d("bedrock"));
|
|
REGISTRY.a(8, "flowing_water", (new BlockFlowing(Material.WATER)).c(100.0F).g(3).c("water").H().d("water_flow"));
|
|
REGISTRY.a(9, "water", (new BlockStationary(Material.WATER)).c(100.0F).g(3).c("water").H().d("water_still"));
|
|
REGISTRY.a(10, "flowing_lava", (new BlockFlowing(Material.LAVA)).c(100.0F).a(1.0F).c("lava").H().d("lava_flow"));
|
|
REGISTRY.a(11, "lava", (new BlockStationary(Material.LAVA)).c(100.0F).a(1.0F).c("lava").H().d("lava_still"));
|
|
REGISTRY.a(12, "sand", (new BlockSand()).c(0.5F).a(m).c("sand").d("sand"));
|
|
REGISTRY.a(13, "gravel", (new BlockGravel()).c(0.6F).a(g).c("gravel").d("gravel"));
|
|
REGISTRY.a(14, "gold_ore", (new BlockOre()).c(3.0F).b(5.0F).a(i).c("oreGold").d("gold_ore"));
|
|
REGISTRY.a(15, "iron_ore", (new BlockOre()).c(3.0F).b(5.0F).a(i).c("oreIron").d("iron_ore"));
|
|
REGISTRY.a(16, "coal_ore", (new BlockOre()).c(3.0F).b(5.0F).a(i).c("oreCoal").d("coal_ore"));
|
|
REGISTRY.a(17, "log", (new BlockLog1()).c("log").d("log"));
|
|
REGISTRY.a(18, "leaves", (new BlockLeaves1()).c("leaves").d("leaves"));
|
|
REGISTRY.a(19, "sponge", (new BlockSponge()).c(0.6F).a(h).c("sponge").d("sponge"));
|
|
REGISTRY.a(20, "glass", (new BlockGlass(Material.SHATTERABLE, false)).c(0.3F).a(k).c("glass").d("glass"));
|
|
REGISTRY.a(21, "lapis_ore", (new BlockOre()).c(3.0F).b(5.0F).a(i).c("oreLapis").d("lapis_ore"));
|
|
REGISTRY.a(22, "lapis_block", (new BlockOreBlock(MaterialMapColor.H)).c(3.0F).b(5.0F).a(i).c("blockLapis").a(CreativeModeTab.b).d("lapis_block"));
|
|
REGISTRY.a(23, "dispenser", (new BlockDispenser()).c(3.5F).a(i).c("dispenser").d("dispenser"));
|
|
Block block2 = (new BlockSandStone()).a(i).c(0.8F).c("sandStone").d("sandstone");
|
|
|
|
REGISTRY.a(24, "sandstone", block2);
|
|
REGISTRY.a(25, "noteblock", (new BlockNote()).c(0.8F).c("musicBlock").d("noteblock"));
|
|
REGISTRY.a(26, "bed", (new BlockBed()).c(0.2F).c("bed").H().d("bed"));
|
|
REGISTRY.a(27, "golden_rail", (new BlockPoweredRail()).c(0.7F).a(j).c("goldenRail").d("rail_golden"));
|
|
REGISTRY.a(28, "detector_rail", (new BlockMinecartDetector()).c(0.7F).a(j).c("detectorRail").d("rail_detector"));
|
|
REGISTRY.a(29, "sticky_piston", (new BlockPiston(true)).c("pistonStickyBase"));
|
|
REGISTRY.a(30, "web", (new BlockWeb()).g(1).c(4.0F).c("web").d("web"));
|
|
REGISTRY.a(31, "tallgrass", (new BlockLongGrass()).c(0.0F).a(h).c("tallgrass"));
|
|
REGISTRY.a(32, "deadbush", (new BlockDeadBush()).c(0.0F).a(h).c("deadbush").d("deadbush"));
|
|
REGISTRY.a(33, "piston", (new BlockPiston(false)).c("pistonBase"));
|
|
REGISTRY.a(34, "piston_head", new BlockPistonExtension());
|
|
REGISTRY.a(35, "wool", (new BlockCloth(Material.CLOTH)).c(0.8F).a(l).c("cloth").d("wool_colored"));
|
|
REGISTRY.a(36, "piston_extension", new BlockPistonMoving());
|
|
REGISTRY.a(37, "yellow_flower", (new BlockFlowers(0)).c(0.0F).a(h).c("flower1").d("flower_dandelion"));
|
|
REGISTRY.a(38, "red_flower", (new BlockFlowers(1)).c(0.0F).a(h).c("flower2").d("flower_rose"));
|
|
REGISTRY.a(39, "brown_mushroom", (new BlockMushroom()).c(0.0F).a(h).a(0.125F).c("mushroom").d("mushroom_brown"));
|
|
REGISTRY.a(40, "red_mushroom", (new BlockMushroom()).c(0.0F).a(h).c("mushroom").d("mushroom_red"));
|
|
REGISTRY.a(41, "gold_block", (new BlockOreBlock(MaterialMapColor.F)).c(3.0F).b(10.0F).a(j).c("blockGold").d("gold_block"));
|
|
REGISTRY.a(42, "iron_block", (new BlockOreBlock(MaterialMapColor.h)).c(5.0F).b(10.0F).a(j).c("blockIron").d("iron_block"));
|
|
REGISTRY.a(43, "double_stone_slab", (new BlockStep(true)).c(2.0F).b(10.0F).a(i).c("stoneSlab"));
|
|
REGISTRY.a(44, "stone_slab", (new BlockStep(false)).c(2.0F).b(10.0F).a(i).c("stoneSlab"));
|
|
Block block3 = (new Block(Material.STONE)).c(2.0F).b(10.0F).a(i).c("brick").a(CreativeModeTab.b).d("brick");
|
|
|
|
REGISTRY.a(45, "brick_block", block3);
|
|
REGISTRY.a(46, "tnt", (new BlockTNT()).c(0.0F).a(h).c("tnt").d("tnt"));
|
|
REGISTRY.a(47, "bookshelf", (new BlockBookshelf()).c(1.5F).a(f).c("bookshelf").d("bookshelf"));
|
|
REGISTRY.a(48, "mossy_cobblestone", (new Block(Material.STONE)).c(2.0F).b(10.0F).a(i).c("stoneMoss").a(CreativeModeTab.b).d("cobblestone_mossy"));
|
|
REGISTRY.a(49, "obsidian", (new BlockObsidian()).c(50.0F).b(2000.0F).a(i).c("obsidian").d("obsidian"));
|
|
REGISTRY.a(50, "torch", (new BlockTorch()).c(0.0F).a(0.9375F).a(f).c("torch").d("torch_on"));
|
|
REGISTRY.a(51, "fire", (new BlockFire()).c(0.0F).a(1.0F).a(f).c("fire").H().d("fire"));
|
|
REGISTRY.a(52, "mob_spawner", (new BlockMobSpawner()).c(5.0F).a(j).c("mobSpawner").H().d("mob_spawner"));
|
|
REGISTRY.a(53, "oak_stairs", (new BlockStairs(block1, 0)).c("stairsWood"));
|
|
REGISTRY.a(54, "chest", (new BlockChest(0)).c(2.5F).a(f).c("chest"));
|
|
REGISTRY.a(55, "redstone_wire", (new BlockRedstoneWire()).c(0.0F).a(e).c("redstoneDust").H().d("redstone_dust"));
|
|
REGISTRY.a(56, "diamond_ore", (new BlockOre()).c(3.0F).b(5.0F).a(i).c("oreDiamond").d("diamond_ore"));
|
|
REGISTRY.a(57, "diamond_block", (new BlockOreBlock(MaterialMapColor.G)).c(5.0F).b(10.0F).a(j).c("blockDiamond").d("diamond_block"));
|
|
REGISTRY.a(58, "crafting_table", (new BlockWorkbench()).c(2.5F).a(f).c("workbench").d("crafting_table"));
|
|
REGISTRY.a(59, "wheat", (new BlockCrops()).c("crops").d("wheat"));
|
|
Block block4 = (new BlockSoil()).c(0.6F).a(g).c("farmland").d("farmland");
|
|
|
|
REGISTRY.a(60, "farmland", block4);
|
|
REGISTRY.a(61, "furnace", (new BlockFurnace(false)).c(3.5F).a(i).c("furnace").a(CreativeModeTab.c));
|
|
REGISTRY.a(62, "lit_furnace", (new BlockFurnace(true)).c(3.5F).a(i).a(0.875F).c("furnace"));
|
|
REGISTRY.a(63, "standing_sign", (new BlockSign(TileEntitySign.class, true)).c(1.0F).a(f).c("sign").H());
|
|
REGISTRY.a(64, "wooden_door", (new BlockDoor(Material.WOOD)).c(3.0F).a(f).c("doorWood").H().d("door_wood"));
|
|
REGISTRY.a(65, "ladder", (new BlockLadder()).c(0.4F).a(o).c("ladder").d("ladder"));
|
|
REGISTRY.a(66, "rail", (new BlockMinecartTrack()).c(0.7F).a(j).c("rail").d("rail_normal"));
|
|
REGISTRY.a(67, "stone_stairs", (new BlockStairs(block, 0)).c("stairsStone"));
|
|
REGISTRY.a(68, "wall_sign", (new BlockSign(TileEntitySign.class, false)).c(1.0F).a(f).c("sign").H());
|
|
REGISTRY.a(69, "lever", (new BlockLever()).c(0.5F).a(f).c("lever").d("lever"));
|
|
REGISTRY.a(70, "stone_pressure_plate", (new BlockPressurePlateBinary("stone", Material.STONE, EnumMobType.MOBS)).c(0.5F).a(i).c("pressurePlate"));
|
|
REGISTRY.a(71, "iron_door", (new BlockDoor(Material.ORE)).c(5.0F).a(j).c("doorIron").H().d("door_iron"));
|
|
REGISTRY.a(72, "wooden_pressure_plate", (new BlockPressurePlateBinary("planks_oak", Material.WOOD, EnumMobType.EVERYTHING)).c(0.5F).a(f).c("pressurePlate"));
|
|
REGISTRY.a(73, "redstone_ore", (new BlockRedstoneOre(false)).c(3.0F).b(5.0F).a(i).c("oreRedstone").a(CreativeModeTab.b).d("redstone_ore"));
|
|
REGISTRY.a(74, "lit_redstone_ore", (new BlockRedstoneOre(true)).a(0.625F).c(3.0F).b(5.0F).a(i).c("oreRedstone").d("redstone_ore"));
|
|
REGISTRY.a(75, "unlit_redstone_torch", (new BlockRedstoneTorch(false)).c(0.0F).a(f).c("notGate").d("redstone_torch_off"));
|
|
REGISTRY.a(76, "redstone_torch", (new BlockRedstoneTorch(true)).c(0.0F).a(0.5F).a(f).c("notGate").a(CreativeModeTab.d).d("redstone_torch_on"));
|
|
REGISTRY.a(77, "stone_button", (new BlockStoneButton()).c(0.5F).a(i).c("button"));
|
|
REGISTRY.a(78, "snow_layer", (new BlockSnow()).c(0.1F).a(n).c("snow").g(0).d("snow"));
|
|
REGISTRY.a(79, "ice", (new BlockIce()).c(0.5F).g(3).a(k).c("ice").d("ice"));
|
|
REGISTRY.a(80, "snow", (new BlockSnowBlock()).c(0.2F).a(n).c("snow").d("snow"));
|
|
REGISTRY.a(81, "cactus", (new BlockCactus()).c(0.4F).a(l).c("cactus").d("cactus"));
|
|
REGISTRY.a(82, "clay", (new BlockClay()).c(0.6F).a(g).c("clay").d("clay"));
|
|
REGISTRY.a(83, "reeds", (new BlockReed()).c(0.0F).a(h).c("reeds").H().d("reeds"));
|
|
REGISTRY.a(84, "jukebox", (new BlockJukeBox()).c(2.0F).b(10.0F).a(i).c("jukebox").d("jukebox"));
|
|
REGISTRY.a(85, "fence", (new BlockFence("planks_oak", Material.WOOD)).c(2.0F).b(5.0F).a(f).c("fence"));
|
|
Block block5 = (new BlockPumpkin(false)).c(1.0F).a(f).c("pumpkin").d("pumpkin");
|
|
|
|
REGISTRY.a(86, "pumpkin", block5);
|
|
REGISTRY.a(87, "netherrack", (new BlockBloodStone()).c(0.4F).a(i).c("hellrock").d("netherrack"));
|
|
REGISTRY.a(88, "soul_sand", (new BlockSlowSand()).c(0.5F).a(m).c("hellsand").d("soul_sand"));
|
|
REGISTRY.a(89, "glowstone", (new BlockLightStone(Material.SHATTERABLE)).c(0.3F).a(k).a(1.0F).c("lightgem").d("glowstone"));
|
|
REGISTRY.a(90, "portal", (new BlockPortal()).c(-1.0F).a(k).a(0.75F).c("portal").d("portal"));
|
|
REGISTRY.a(91, "lit_pumpkin", (new BlockPumpkin(true)).c(1.0F).a(f).a(1.0F).c("litpumpkin").d("pumpkin"));
|
|
REGISTRY.a(92, "cake", (new BlockCake()).c(0.5F).a(l).c("cake").H().d("cake"));
|
|
REGISTRY.a(93, "unpowered_repeater", (new BlockRepeater(false)).c(0.0F).a(f).c("diode").H().d("repeater_off"));
|
|
REGISTRY.a(94, "powered_repeater", (new BlockRepeater(true)).c(0.0F).a(0.625F).a(f).c("diode").H().d("repeater_on"));
|
|
REGISTRY.a(95, "stained_glass", (new BlockStainedGlass(Material.SHATTERABLE)).c(0.3F).a(k).c("stainedGlass").d("glass"));
|
|
REGISTRY.a(96, "trapdoor", (new BlockTrapdoor(Material.WOOD)).c(3.0F).a(f).c("trapdoor").H().d("trapdoor"));
|
|
REGISTRY.a(97, "monster_egg", (new BlockMonsterEggs()).c(0.75F).c("monsterStoneEgg"));
|
|
Block block6 = (new BlockSmoothBrick()).c(1.5F).b(10.0F).a(i).c("stonebricksmooth").d("stonebrick");
|
|
|
|
REGISTRY.a(98, "stonebrick", block6);
|
|
REGISTRY.a(99, "brown_mushroom_block", (new BlockHugeMushroom(Material.WOOD, 0)).c(0.2F).a(f).c("mushroom").d("mushroom_block"));
|
|
REGISTRY.a(100, "red_mushroom_block", (new BlockHugeMushroom(Material.WOOD, 1)).c(0.2F).a(f).c("mushroom").d("mushroom_block"));
|
|
REGISTRY.a(101, "iron_bars", (new BlockThin("iron_bars", "iron_bars", Material.ORE, true)).c(5.0F).b(10.0F).a(j).c("fenceIron"));
|
|
REGISTRY.a(102, "glass_pane", (new BlockThin("glass", "glass_pane_top", Material.SHATTERABLE, false)).c(0.3F).a(k).c("thinGlass"));
|
|
Block block7 = (new BlockMelon()).c(1.0F).a(f).c("melon").d("melon");
|
|
|
|
REGISTRY.a(103, "melon_block", block7);
|
|
REGISTRY.a(104, "pumpkin_stem", (new BlockStem(block5)).c(0.0F).a(f).c("pumpkinStem").d("pumpkin_stem"));
|
|
REGISTRY.a(105, "melon_stem", (new BlockStem(block7)).c(0.0F).a(f).c("pumpkinStem").d("melon_stem"));
|
|
REGISTRY.a(106, "vine", (new BlockVine()).c(0.2F).a(h).c("vine").d("vine"));
|
|
REGISTRY.a(107, "fence_gate", (new BlockFenceGate()).c(2.0F).b(5.0F).a(f).c("fenceGate"));
|
|
REGISTRY.a(108, "brick_stairs", (new BlockStairs(block3, 0)).c("stairsBrick"));
|
|
REGISTRY.a(109, "stone_brick_stairs", (new BlockStairs(block6, 0)).c("stairsStoneBrickSmooth"));
|
|
REGISTRY.a(110, "mycelium", (new BlockMycel()).c(0.6F).a(h).c("mycel").d("mycelium"));
|
|
REGISTRY.a(111, "waterlily", (new BlockWaterLily()).c(0.0F).a(h).c("waterlily").d("waterlily"));
|
|
Block block8 = (new Block(Material.STONE)).c(2.0F).b(10.0F).a(i).c("netherBrick").a(CreativeModeTab.b).d("nether_brick");
|
|
|
|
REGISTRY.a(112, "nether_brick", block8);
|
|
REGISTRY.a(113, "nether_brick_fence", (new BlockFence("nether_brick", Material.STONE)).c(2.0F).b(10.0F).a(i).c("netherFence"));
|
|
REGISTRY.a(114, "nether_brick_stairs", (new BlockStairs(block8, 0)).c("stairsNetherBrick"));
|
|
REGISTRY.a(115, "nether_wart", (new BlockNetherWart()).c("netherStalk").d("nether_wart"));
|
|
REGISTRY.a(116, "enchanting_table", (new BlockEnchantmentTable()).c(5.0F).b(2000.0F).c("enchantmentTable").d("enchanting_table"));
|
|
REGISTRY.a(117, "brewing_stand", (new BlockBrewingStand()).c(0.5F).a(0.125F).c("brewingStand").d("brewing_stand"));
|
|
REGISTRY.a(118, "cauldron", (new BlockCauldron()).c(2.0F).c("cauldron").d("cauldron"));
|
|
REGISTRY.a(119, "end_portal", (new BlockEnderPortal(Material.PORTAL)).c(-1.0F).b(6000000.0F));
|
|
REGISTRY.a(120, "end_portal_frame", (new BlockEnderPortalFrame()).a(k).a(0.125F).c(-1.0F).c("endPortalFrame").b(6000000.0F).a(CreativeModeTab.c).d("endframe"));
|
|
REGISTRY.a(121, "end_stone", (new Block(Material.STONE)).c(3.0F).b(15.0F).a(i).c("whiteStone").a(CreativeModeTab.b).d("end_stone"));
|
|
REGISTRY.a(122, "dragon_egg", (new BlockDragonEgg()).c(3.0F).b(15.0F).a(i).a(0.125F).c("dragonEgg").d("dragon_egg"));
|
|
REGISTRY.a(123, "redstone_lamp", (new BlockRedstoneLamp(false)).c(0.3F).a(k).c("redstoneLight").a(CreativeModeTab.d).d("redstone_lamp_off"));
|
|
REGISTRY.a(124, "lit_redstone_lamp", (new BlockRedstoneLamp(true)).c(0.3F).a(k).c("redstoneLight").d("redstone_lamp_on"));
|
|
REGISTRY.a(125, "double_wooden_slab", (new BlockWoodStep(true)).c(2.0F).b(5.0F).a(f).c("woodSlab"));
|
|
REGISTRY.a(126, "wooden_slab", (new BlockWoodStep(false)).c(2.0F).b(5.0F).a(f).c("woodSlab"));
|
|
REGISTRY.a(127, "cocoa", (new BlockCocoa()).c(0.2F).b(5.0F).a(f).c("cocoa").d("cocoa"));
|
|
REGISTRY.a(128, "sandstone_stairs", (new BlockStairs(block2, 0)).c("stairsSandStone"));
|
|
REGISTRY.a(129, "emerald_ore", (new BlockOre()).c(3.0F).b(5.0F).a(i).c("oreEmerald").d("emerald_ore"));
|
|
REGISTRY.a(130, "ender_chest", (new BlockEnderChest()).c(22.5F).b(1000.0F).a(i).c("enderChest").a(0.5F));
|
|
REGISTRY.a(131, "tripwire_hook", (new BlockTripwireHook()).c("tripWireSource").d("trip_wire_source"));
|
|
REGISTRY.a(132, "tripwire", (new BlockTripwire()).c("tripWire").d("trip_wire"));
|
|
REGISTRY.a(133, "emerald_block", (new BlockOreBlock(MaterialMapColor.I)).c(5.0F).b(10.0F).a(j).c("blockEmerald").d("emerald_block"));
|
|
REGISTRY.a(134, "spruce_stairs", (new BlockStairs(block1, 1)).c("stairsWoodSpruce"));
|
|
REGISTRY.a(135, "birch_stairs", (new BlockStairs(block1, 2)).c("stairsWoodBirch"));
|
|
REGISTRY.a(136, "jungle_stairs", (new BlockStairs(block1, 3)).c("stairsWoodJungle"));
|
|
REGISTRY.a(137, "command_block", (new BlockCommand()).s().b(6000000.0F).c("commandBlock").d("command_block"));
|
|
REGISTRY.a(138, "beacon", (new BlockBeacon()).c("beacon").a(1.0F).d("beacon"));
|
|
REGISTRY.a(139, "cobblestone_wall", (new BlockCobbleWall(block)).c("cobbleWall"));
|
|
REGISTRY.a(140, "flower_pot", (new BlockFlowerPot()).c(0.0F).a(e).c("flowerPot").d("flower_pot"));
|
|
REGISTRY.a(141, "carrots", (new BlockCarrots()).c("carrots").d("carrots"));
|
|
REGISTRY.a(142, "potatoes", (new BlockPotatoes()).c("potatoes").d("potatoes"));
|
|
REGISTRY.a(143, "wooden_button", (new BlockWoodButton()).c(0.5F).a(f).c("button"));
|
|
REGISTRY.a(144, "skull", (new BlockSkull()).c(1.0F).a(i).c("skull").d("skull"));
|
|
REGISTRY.a(145, "anvil", (new BlockAnvil()).c(5.0F).a(p).b(2000.0F).c("anvil"));
|
|
REGISTRY.a(146, "trapped_chest", (new BlockChest(1)).c(2.5F).a(f).c("chestTrap"));
|
|
REGISTRY.a(147, "light_weighted_pressure_plate", (new BlockPressurePlateWeighted("gold_block", Material.ORE, 15)).c(0.5F).a(f).c("weightedPlate_light"));
|
|
REGISTRY.a(148, "heavy_weighted_pressure_plate", (new BlockPressurePlateWeighted("iron_block", Material.ORE, 150)).c(0.5F).a(f).c("weightedPlate_heavy"));
|
|
REGISTRY.a(149, "unpowered_comparator", (new BlockRedstoneComparator(false)).c(0.0F).a(f).c("comparator").H().d("comparator_off"));
|
|
REGISTRY.a(150, "powered_comparator", (new BlockRedstoneComparator(true)).c(0.0F).a(0.625F).a(f).c("comparator").H().d("comparator_on"));
|
|
REGISTRY.a(151, "daylight_detector", (new BlockDaylightDetector()).c(0.2F).a(f).c("daylightDetector").d("daylight_detector"));
|
|
REGISTRY.a(152, "redstone_block", (new BlockRedstone(MaterialMapColor.f)).c(5.0F).b(10.0F).a(j).c("blockRedstone").d("redstone_block"));
|
|
REGISTRY.a(153, "quartz_ore", (new BlockOre()).c(3.0F).b(5.0F).a(i).c("netherquartz").d("quartz_ore"));
|
|
REGISTRY.a(154, "hopper", (new BlockHopper()).c(3.0F).b(8.0F).a(f).c("hopper").d("hopper"));
|
|
Block block9 = (new BlockQuartz()).a(i).c(0.8F).c("quartzBlock").d("quartz_block");
|
|
|
|
REGISTRY.a(155, "quartz_block", block9);
|
|
REGISTRY.a(156, "quartz_stairs", (new BlockStairs(block9, 0)).c("stairsQuartz"));
|
|
REGISTRY.a(157, "activator_rail", (new BlockPoweredRail()).c(0.7F).a(j).c("activatorRail").d("rail_activator"));
|
|
REGISTRY.a(158, "dropper", (new BlockDropper()).c(3.5F).a(i).c("dropper").d("dropper"));
|
|
REGISTRY.a(159, "stained_hardened_clay", (new BlockCloth(Material.STONE)).c(1.25F).b(7.0F).a(i).c("clayHardenedStained").d("hardened_clay_stained"));
|
|
REGISTRY.a(160, "stained_glass_pane", (new BlockStainedGlassPane()).c(0.3F).a(k).c("thinStainedGlass").d("glass"));
|
|
REGISTRY.a(161, "leaves2", (new BlockLeaves2()).c("leaves").d("leaves"));
|
|
REGISTRY.a(162, "log2", (new BlockLog2()).c("log").d("log"));
|
|
REGISTRY.a(163, "acacia_stairs", (new BlockStairs(block1, 4)).c("stairsWoodAcacia"));
|
|
REGISTRY.a(164, "dark_oak_stairs", (new BlockStairs(block1, 5)).c("stairsWoodDarkOak"));
|
|
REGISTRY.a(170, "hay_block", (new BlockHay()).c(0.5F).a(h).c("hayBlock").a(CreativeModeTab.b).d("hay_block"));
|
|
REGISTRY.a(171, "carpet", (new BlockCarpet()).c(0.1F).a(l).c("woolCarpet").g(0));
|
|
REGISTRY.a(172, "hardened_clay", (new BlockHardenedClay()).c(1.25F).b(7.0F).a(i).c("clayHardened").d("hardened_clay"));
|
|
REGISTRY.a(173, "coal_block", (new Block(Material.STONE)).c(5.0F).b(10.0F).a(i).c("blockCoal").a(CreativeModeTab.b).d("coal_block"));
|
|
REGISTRY.a(174, "packed_ice", (new BlockPackedIce()).c(0.5F).a(k).c("icePacked").d("ice_packed"));
|
|
REGISTRY.a(175, "double_plant", new BlockTallPlant());
|
|
Iterator iterator = REGISTRY.iterator();
|
|
|
|
while (iterator.hasNext()) {
|
|
Block block10 = (Block) iterator.next();
|
|
|
|
if (block10.material == Material.AIR) {
|
|
block10.u = false;
|
|
} else {
|
|
boolean flag = false;
|
|
boolean flag1 = block10.b() == 10;
|
|
boolean flag2 = block10 instanceof BlockStepAbstract;
|
|
boolean flag3 = block10 == block4;
|
|
boolean flag4 = block10.s;
|
|
boolean flag5 = block10.r == 0;
|
|
|
|
if (flag1 || flag2 || flag3 || flag4 || flag5) {
|
|
flag = true;
|
|
}
|
|
|
|
block10.u = flag;
|
|
}
|
|
}
|
|
}
|
|
|
|
protected Block(Material material) {
|
|
this.stepSound = e;
|
|
this.I = 1.0F;
|
|
this.frictionFactor = 0.6F;
|
|
this.material = material;
|
|
this.a(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
|
|
this.q = this.c();
|
|
this.r = this.c() ? 255 : 0;
|
|
this.s = !material.blocksLight();
|
|
}
|
|
|
|
protected Block a(StepSound stepsound) {
|
|
this.stepSound = stepsound;
|
|
return this;
|
|
}
|
|
|
|
protected Block g(int i) {
|
|
this.r = i;
|
|
return this;
|
|
}
|
|
|
|
protected Block a(float f) {
|
|
this.t = (int) (15.0F * f);
|
|
return this;
|
|
}
|
|
|
|
protected Block b(float f) {
|
|
this.durability = f * 3.0F;
|
|
return this;
|
|
}
|
|
|
|
public boolean r() {
|
|
return this.material.k() && this.d() && !this.isPowerSource();
|
|
}
|
|
|
|
public boolean d() {
|
|
return true;
|
|
}
|
|
|
|
public boolean b(IBlockAccess iblockaccess, int i, int j, int k) {
|
|
return !this.material.isSolid();
|
|
}
|
|
|
|
public int b() {
|
|
return 0;
|
|
}
|
|
|
|
protected Block c(float f) {
|
|
this.strength = f;
|
|
if (this.durability < f * 5.0F) {
|
|
this.durability = f * 5.0F;
|
|
}
|
|
|
|
return this;
|
|
}
|
|
|
|
protected Block s() {
|
|
this.c(-1.0F);
|
|
return this;
|
|
}
|
|
|
|
public float f(World world, int i, int j, int k) {
|
|
return this.strength;
|
|
}
|
|
|
|
protected Block a(boolean flag) {
|
|
this.z = flag;
|
|
return this;
|
|
}
|
|
|
|
public boolean isTicking() {
|
|
return this.z;
|
|
}
|
|
|
|
public boolean isTileEntity() {
|
|
return this.isTileEntity;
|
|
}
|
|
|
|
protected final void a(float f, float f1, float f2, float f3, float f4, float f5) {
|
|
this.minX = (double) f;
|
|
this.minY = (double) f1;
|
|
this.minZ = (double) f2;
|
|
this.maxX = (double) f3;
|
|
this.maxY = (double) f4;
|
|
this.maxZ = (double) f5;
|
|
}
|
|
|
|
public boolean d(IBlockAccess iblockaccess, int i, int j, int k, int l) {
|
|
return iblockaccess.getType(i, j, k).getMaterial().isBuildable();
|
|
}
|
|
|
|
public void a(World world, int i, int j, int k, AxisAlignedBB axisalignedbb, List list, Entity entity) {
|
|
AxisAlignedBB axisalignedbb1 = this.a(world, i, j, k);
|
|
|
|
if (axisalignedbb1 != null && axisalignedbb.b(axisalignedbb1)) {
|
|
list.add(axisalignedbb1);
|
|
}
|
|
}
|
|
|
|
public AxisAlignedBB a(World world, int i, int j, int k) {
|
|
return AxisAlignedBB.a((double) i + this.minX, (double) j + this.minY, (double) k + this.minZ, (double) i + this.maxX, (double) j + this.maxY, (double) k + this.maxZ);
|
|
}
|
|
|
|
public boolean c() {
|
|
return true;
|
|
}
|
|
|
|
public boolean a(int i, boolean flag) {
|
|
return this.v();
|
|
}
|
|
|
|
public boolean v() {
|
|
return true;
|
|
}
|
|
|
|
public void a(World world, int i, int j, int k, Random random) {}
|
|
|
|
public void postBreak(World world, int i, int j, int k, int l) {}
|
|
|
|
public void doPhysics(World world, int i, int j, int k, Block block) {}
|
|
|
|
public int a(World world) {
|
|
return 10;
|
|
}
|
|
|
|
public void onPlace(World world, int i, int j, int k) {}
|
|
|
|
public void remove(World world, int i, int j, int k, Block block, int l) {}
|
|
|
|
public int a(Random random) {
|
|
return 1;
|
|
}
|
|
|
|
public Item getDropType(int i, Random random, int j) {
|
|
return Item.getItemOf(this);
|
|
}
|
|
|
|
public float getDamage(EntityHuman entityhuman, World world, int i, int j, int k) {
|
|
float f = this.f(world, i, j, k);
|
|
|
|
return f < 0.0F ? 0.0F : (!entityhuman.a(this) ? entityhuman.a(this, false) / f / 100.0F : entityhuman.a(this, true) / f / 30.0F);
|
|
}
|
|
|
|
public final void b(World world, int i, int j, int k, int l, int i1) {
|
|
this.dropNaturally(world, i, j, k, l, 1.0F, i1);
|
|
}
|
|
|
|
public void dropNaturally(World world, int i, int j, int k, int l, float f, int i1) {
|
|
if (!world.isStatic) {
|
|
int j1 = this.getDropCount(i1, world.random);
|
|
|
|
for (int k1 = 0; k1 < j1; ++k1) {
|
|
// CraftBukkit - <= to < to allow for plugins to completely disable block drops from explosions
|
|
if (world.random.nextFloat() < f) {
|
|
Item item = this.getDropType(l, world.random, i1);
|
|
|
|
if (item != null) {
|
|
this.a(world, i, j, k, new ItemStack(item, 1, this.getDropData(l)));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
protected void a(World world, int i, int j, int k, ItemStack itemstack) {
|
|
if (!world.isStatic && world.getGameRules().getBoolean("doTileDrops")) {
|
|
float f = 0.7F;
|
|
double d0 = (double) (world.random.nextFloat() * f) + (double) (1.0F - f) * 0.5D;
|
|
double d1 = (double) (world.random.nextFloat() * f) + (double) (1.0F - f) * 0.5D;
|
|
double d2 = (double) (world.random.nextFloat() * f) + (double) (1.0F - f) * 0.5D;
|
|
EntityItem entityitem = new EntityItem(world, (double) i + d0, (double) j + d1, (double) k + d2, itemstack);
|
|
|
|
entityitem.pickupDelay = 10;
|
|
world.addEntity(entityitem);
|
|
}
|
|
}
|
|
|
|
protected void dropExperience(World world, int i, int j, int k, int l) {
|
|
if (!world.isStatic) {
|
|
while (l > 0) {
|
|
int i1 = EntityExperienceOrb.getOrbValue(l);
|
|
|
|
l -= i1;
|
|
world.addEntity(new EntityExperienceOrb(world, (double) i + 0.5D, (double) j + 0.5D, (double) k + 0.5D, i1));
|
|
}
|
|
}
|
|
}
|
|
|
|
public int getDropData(int i) {
|
|
return 0;
|
|
}
|
|
|
|
public float a(Entity entity) {
|
|
return this.durability / 5.0F;
|
|
}
|
|
|
|
public MovingObjectPosition a(World world, int i, int j, int k, Vec3D vec3d, Vec3D vec3d1) {
|
|
this.updateShape(world, i, j, k);
|
|
vec3d = vec3d.add((double) (-i), (double) (-j), (double) (-k));
|
|
vec3d1 = vec3d1.add((double) (-i), (double) (-j), (double) (-k));
|
|
Vec3D vec3d2 = vec3d.b(vec3d1, this.minX);
|
|
Vec3D vec3d3 = vec3d.b(vec3d1, this.maxX);
|
|
Vec3D vec3d4 = vec3d.c(vec3d1, this.minY);
|
|
Vec3D vec3d5 = vec3d.c(vec3d1, this.maxY);
|
|
Vec3D vec3d6 = vec3d.d(vec3d1, this.minZ);
|
|
Vec3D vec3d7 = vec3d.d(vec3d1, this.maxZ);
|
|
|
|
if (!this.a(vec3d2)) {
|
|
vec3d2 = null;
|
|
}
|
|
|
|
if (!this.a(vec3d3)) {
|
|
vec3d3 = null;
|
|
}
|
|
|
|
if (!this.b(vec3d4)) {
|
|
vec3d4 = null;
|
|
}
|
|
|
|
if (!this.b(vec3d5)) {
|
|
vec3d5 = null;
|
|
}
|
|
|
|
if (!this.c(vec3d6)) {
|
|
vec3d6 = null;
|
|
}
|
|
|
|
if (!this.c(vec3d7)) {
|
|
vec3d7 = null;
|
|
}
|
|
|
|
Vec3D vec3d8 = null;
|
|
|
|
if (vec3d2 != null && (vec3d8 == null || vec3d.distanceSquared(vec3d2) < vec3d.distanceSquared(vec3d8))) {
|
|
vec3d8 = vec3d2;
|
|
}
|
|
|
|
if (vec3d3 != null && (vec3d8 == null || vec3d.distanceSquared(vec3d3) < vec3d.distanceSquared(vec3d8))) {
|
|
vec3d8 = vec3d3;
|
|
}
|
|
|
|
if (vec3d4 != null && (vec3d8 == null || vec3d.distanceSquared(vec3d4) < vec3d.distanceSquared(vec3d8))) {
|
|
vec3d8 = vec3d4;
|
|
}
|
|
|
|
if (vec3d5 != null && (vec3d8 == null || vec3d.distanceSquared(vec3d5) < vec3d.distanceSquared(vec3d8))) {
|
|
vec3d8 = vec3d5;
|
|
}
|
|
|
|
if (vec3d6 != null && (vec3d8 == null || vec3d.distanceSquared(vec3d6) < vec3d.distanceSquared(vec3d8))) {
|
|
vec3d8 = vec3d6;
|
|
}
|
|
|
|
if (vec3d7 != null && (vec3d8 == null || vec3d.distanceSquared(vec3d7) < vec3d.distanceSquared(vec3d8))) {
|
|
vec3d8 = vec3d7;
|
|
}
|
|
|
|
if (vec3d8 == null) {
|
|
return null;
|
|
} else {
|
|
byte b0 = -1;
|
|
|
|
if (vec3d8 == vec3d2) {
|
|
b0 = 4;
|
|
}
|
|
|
|
if (vec3d8 == vec3d3) {
|
|
b0 = 5;
|
|
}
|
|
|
|
if (vec3d8 == vec3d4) {
|
|
b0 = 0;
|
|
}
|
|
|
|
if (vec3d8 == vec3d5) {
|
|
b0 = 1;
|
|
}
|
|
|
|
if (vec3d8 == vec3d6) {
|
|
b0 = 2;
|
|
}
|
|
|
|
if (vec3d8 == vec3d7) {
|
|
b0 = 3;
|
|
}
|
|
|
|
return new MovingObjectPosition(i, j, k, b0, vec3d8.add((double) i, (double) j, (double) k));
|
|
}
|
|
}
|
|
|
|
private boolean a(Vec3D vec3d) {
|
|
return vec3d == null ? false : vec3d.b >= this.minY && vec3d.b <= this.maxY && vec3d.c >= this.minZ && vec3d.c <= this.maxZ;
|
|
}
|
|
|
|
private boolean b(Vec3D vec3d) {
|
|
return vec3d == null ? false : vec3d.a >= this.minX && vec3d.a <= this.maxX && vec3d.c >= this.minZ && vec3d.c <= this.maxZ;
|
|
}
|
|
|
|
private boolean c(Vec3D vec3d) {
|
|
return vec3d == null ? false : vec3d.a >= this.minX && vec3d.a <= this.maxX && vec3d.b >= this.minY && vec3d.b <= this.maxY;
|
|
}
|
|
|
|
public void wasExploded(World world, int i, int j, int k, Explosion explosion) {}
|
|
|
|
public boolean canPlace(World world, int i, int j, int k, int l, ItemStack itemstack) {
|
|
return this.canPlace(world, i, j, k, l);
|
|
}
|
|
|
|
public boolean canPlace(World world, int i, int j, int k, int l) {
|
|
return this.canPlace(world, i, j, k);
|
|
}
|
|
|
|
public boolean canPlace(World world, int i, int j, int k) {
|
|
return world.getType(i, j, k).material.isReplaceable();
|
|
}
|
|
|
|
public boolean interact(World world, int i, int j, int k, EntityHuman entityhuman, int l, float f, float f1, float f2) {
|
|
return false;
|
|
}
|
|
|
|
public void b(World world, int i, int j, int k, Entity entity) {}
|
|
|
|
public int getPlacedData(World world, int i, int j, int k, int l, float f, float f1, float f2, int i1) {
|
|
return i1;
|
|
}
|
|
|
|
public void attack(World world, int i, int j, int k, EntityHuman entityhuman) {}
|
|
|
|
public void a(World world, int i, int j, int k, Entity entity, Vec3D vec3d) {}
|
|
|
|
public void updateShape(IBlockAccess iblockaccess, int i, int j, int k) {}
|
|
|
|
public final double x() {
|
|
return this.minX;
|
|
}
|
|
|
|
public final double y() {
|
|
return this.maxX;
|
|
}
|
|
|
|
public final double z() {
|
|
return this.minY;
|
|
}
|
|
|
|
public final double A() {
|
|
return this.maxY;
|
|
}
|
|
|
|
public final double B() {
|
|
return this.minZ;
|
|
}
|
|
|
|
public final double C() {
|
|
return this.maxZ;
|
|
}
|
|
|
|
public int b(IBlockAccess iblockaccess, int i, int j, int k, int l) {
|
|
return 0;
|
|
}
|
|
|
|
public boolean isPowerSource() {
|
|
return false;
|
|
}
|
|
|
|
public void a(World world, int i, int j, int k, Entity entity) {}
|
|
|
|
public int c(IBlockAccess iblockaccess, int i, int j, int k, int l) {
|
|
return 0;
|
|
}
|
|
|
|
public void g() {}
|
|
|
|
public void a(World world, EntityHuman entityhuman, int i, int j, int k, int l) {
|
|
entityhuman.a(StatisticList.MINE_BLOCK_COUNT[b(this)], 1);
|
|
entityhuman.a(0.025F);
|
|
if (this.E() && EnchantmentManager.hasSilkTouchEnchantment(entityhuman)) {
|
|
ItemStack itemstack = this.j(l);
|
|
|
|
if (itemstack != null) {
|
|
this.a(world, i, j, k, itemstack);
|
|
}
|
|
} else {
|
|
int i1 = EnchantmentManager.getBonusBlockLootEnchantmentLevel(entityhuman);
|
|
|
|
this.b(world, i, j, k, l, i1);
|
|
}
|
|
}
|
|
|
|
protected boolean E() {
|
|
return this.d() && !this.isTileEntity;
|
|
}
|
|
|
|
protected ItemStack j(int i) {
|
|
int j = 0;
|
|
Item item = Item.getItemOf(this);
|
|
|
|
if (item != null && item.n()) {
|
|
j = i;
|
|
}
|
|
|
|
return new ItemStack(item, 1, j);
|
|
}
|
|
|
|
public int getDropCount(int i, Random random) {
|
|
return this.a(random);
|
|
}
|
|
|
|
public boolean j(World world, int i, int j, int k) {
|
|
return true;
|
|
}
|
|
|
|
public void postPlace(World world, int i, int j, int k, EntityLiving entityliving, ItemStack itemstack) {}
|
|
|
|
public void postPlace(World world, int i, int j, int k, int l) {}
|
|
|
|
public Block c(String s) {
|
|
this.name = s;
|
|
return this;
|
|
}
|
|
|
|
public String getName() {
|
|
return LocaleI18n.get(this.a() + ".name");
|
|
}
|
|
|
|
public String a() {
|
|
return "tile." + this.name;
|
|
}
|
|
|
|
public boolean a(World world, int i, int j, int k, int l, int i1) {
|
|
return false;
|
|
}
|
|
|
|
public boolean G() {
|
|
return this.y;
|
|
}
|
|
|
|
protected Block H() {
|
|
this.y = false;
|
|
return this;
|
|
}
|
|
|
|
public int h() {
|
|
return this.material.getPushReaction();
|
|
}
|
|
|
|
public void a(World world, int i, int j, int k, Entity entity, float f) {}
|
|
|
|
public int getDropData(World world, int i, int j, int k) {
|
|
return this.getDropData(world.getData(i, j, k));
|
|
}
|
|
|
|
public Block a(CreativeModeTab creativemodetab) {
|
|
this.creativeTab = creativemodetab;
|
|
return this;
|
|
}
|
|
|
|
public void a(World world, int i, int j, int k, int l, EntityHuman entityhuman) {}
|
|
|
|
public void f(World world, int i, int j, int k, int l) {}
|
|
|
|
public void l(World world, int i, int j, int k) {}
|
|
|
|
public boolean L() {
|
|
return true;
|
|
}
|
|
|
|
public boolean a(Explosion explosion) {
|
|
return true;
|
|
}
|
|
|
|
public boolean c(Block block) {
|
|
return this == block;
|
|
}
|
|
|
|
public static boolean a(Block block, Block block1) {
|
|
return block != null && block1 != null ? (block == block1 ? true : block.c(block1)) : false;
|
|
}
|
|
|
|
public boolean M() {
|
|
return false;
|
|
}
|
|
|
|
public int g(World world, int i, int j, int k, int l) {
|
|
return 0;
|
|
}
|
|
|
|
protected Block d(String s) {
|
|
this.d = s;
|
|
return this;
|
|
}
|
|
|
|
// CraftBukkit start
|
|
public int getExpDrop(World world, int data, int enchantmentLevel) {
|
|
return 0;
|
|
}
|
|
// CraftBukkit end
|
|
}
|