public static function init() { if (self::$list === null) { self::$list = new \SplFixedArray(256); self::$fullList = new \SplFixedArray(4096); self::$light = new \SplFixedArray(256); self::$lightFilter = new \SplFixedArray(256); self::$solid = new \SplFixedArray(256); self::$hardness = new \SplFixedArray(256); self::$transparent = new \SplFixedArray(256); /***************************************************************************************************\ |------------------------------->>>> Location of // is important!! <<<<-----------------------------| | // <-- this level of indentation means that it is not yet in pocketmine | | // <-- This level of indentation means the class is not yet made | |------------------------------->>>> Location of // is important!! <<<<-----------------------------| \***************************************************************************************************/ self::$list[self::AIR] = Air::class; self::$list[self::STONE] = Stone::class; self::$list[self::GRASS] = Grass::class; self::$list[self::DIRT] = Dirt::class; self::$list[self::COBBLESTONE] = Cobblestone::class; self::$list[self::PLANKS] = Planks::class; self::$list[self::SAPLING] = Sapling::class; self::$list[self::BEDROCK] = Bedrock::class; self::$list[self::WATER] = Water::class; self::$list[self::STILL_WATER] = StillWater::class; self::$list[self::LAVA] = Lava::class; self::$list[self::STILL_LAVA] = StillLava::class; self::$list[self::SAND] = Sand::class; self::$list[self::GRAVEL] = Gravel::class; self::$list[self::GOLD_ORE] = GoldOre::class; self::$list[self::IRON_ORE] = IronOre::class; self::$list[self::COAL_ORE] = CoalOre::class; self::$list[self::WOOD] = Wood::class; self::$list[self::LEAVES] = Leaves::class; self::$list[self::SPONGE] = Sponge::class; self::$list[self::GLASS] = Glass::class; self::$list[self::LAPIS_ORE] = LapisOre::class; self::$list[self::LAPIS_BLOCK] = Lapis::class; //self::$list[self::DISPENSER] = Dispenser::class; self::$list[self::SANDSTONE] = Sandstone::class; // self::$list[self::NOTEBLOCK] = Noteblock::class; self::$list[self::BED_BLOCK] = Bed::class; self::$list[self::POWERED_RAIL] = PoweredRail::class; // self::$list[self::DETECTOR_RAIL] = DetectorRail::class; //self::$list[self::STICKY_PISTON] = StickyPiston::class; self::$list[self::COBWEB] = Cobweb::class; self::$list[self::TALL_GRASS] = TallGrass::class; self::$list[self::DEAD_BUSH] = DeadBush::class; //self::$list[self::PISTON] = Piston::class; //self::$list[self::PISTON_HEAD] = PistonHead::class; self::$list[self::WOOL] = Wool::class; //self::$list[self::PISTON_EXTENSION] = PistonExtension::class; self::$list[self::DANDELION] = Dandelion::class; self::$list[self::RED_FLOWER] = Flower::class; self::$list[self::BROWN_MUSHROOM] = BrownMushroom::class; self::$list[self::RED_MUSHROOM] = RedMushroom::class; self::$list[self::GOLD_BLOCK] = Gold::class; self::$list[self::IRON_BLOCK] = Iron::class; self::$list[self::DOUBLE_SLAB] = DoubleSlab::class; self::$list[self::SLAB] = Slab::class; self::$list[self::BRICKS_BLOCK] = Bricks::class; self::$list[self::TNT] = TNT::class; self::$list[self::BOOKSHELF] = Bookshelf::class; self::$list[self::MOSS_STONE] = MossStone::class; self::$list[self::OBSIDIAN] = Obsidian::class; self::$list[self::TORCH] = Torch::class; self::$list[self::FIRE] = Fire::class; self::$list[self::MONSTER_SPAWNER] = MonsterSpawner::class; self::$list[self::WOOD_STAIRS] = WoodStairs::class; self::$list[self::CHEST] = Chest::class; self::$list[self::REDSTONE_WIRE] = RedstoneWire::class; self::$list[self::DIAMOND_ORE] = DiamondOre::class; self::$list[self::DIAMOND_BLOCK] = Diamond::class; self::$list[self::WORKBENCH] = Workbench::class; self::$list[self::WHEAT_BLOCK] = Wheat::class; self::$list[self::FARMLAND] = Farmland::class; self::$list[self::FURNACE] = Furnace::class; self::$list[self::BURNING_FURNACE] = BurningFurnace::class; self::$list[self::SIGN_POST] = SignPost::class; self::$list[self::OAK_DOOR_BLOCK] = OakDoor::class; self::$list[self::LADDER] = Ladder::class; self::$list[self::RAIL] = Rail::class; self::$list[self::COBBLESTONE_STAIRS] = CobblestoneStairs::class; self::$list[self::WALL_SIGN] = WallSign::class; self::$list[self::LEVER] = Lever::class; // self::$list[self::STONE_PRESSURE_PLATE] = StonePressurePlate::class; self::$list[self::IRON_DOOR_BLOCK] = IronDoor::class; self::$list[self::REDSTONE_ORE] = RedstoneOre::class; self::$list[self::GLOWING_REDSTONE_ORE] = GlowingRedstoneOre::class; self::$list[self::UNLIT_REDSTONE_TORCH] = UnlitRedstoneTorch::class; self::$list[self::LIT_REDSTONE_TORCH] = LitRedstoneTorch::class; self::$list[self::STONE_BUTTON] = StoneButton::class; self::$list[self::SNOW_LAYER] = SnowLayer::class; self::$list[self::ICE] = Ice::class; self::$list[self::SNOW_BLOCK] = Snow::class; self::$list[self::CACTUS] = Cactus::class; self::$list[self::CLAY_BLOCK] = Clay::class; self::$list[self::SUGARCANE_BLOCK] = Sugarcane::class; //self::$list[self::JUKEBOX] = JukeBox::class; self::$list[self::FENCE] = Fence::class; self::$list[self::PUMPKIN] = Pumpkin::class; self::$list[self::NETHERRACK] = Netherrack::class; self::$list[self::SOUL_SAND] = SoulSand::class; self::$list[self::GLOWSTONE_BLOCK] = Glowstone::class; self::$list[self::NETHER_PORTAL] = NetherPortal::class; self::$list[self::LIT_PUMPKIN] = LitPumpkin::class; self::$list[self::CAKE_BLOCK] = Cake::class; //self::$list[self::UNPOWERED_REPEATER] = UnpoweredRepeater::class; //self::$list[self::POWERED_REPEATER] = PoweredRepeater::class; //self::$list[self::STAINED_GLASS] = StainedGlass::class; self::$list[self::TRAPDOOR] = Trapdoor::class; //self::$list[self::MONSTER_EGG] = MonsterEgg::class; self::$list[self::STONE_BRICKS] = StoneBricks::class; self::$list[self::RED_MUSHROOM_BLOCK] = RedMushroomBlock::class; self::$list[self::BROWN_MUSHROOM_BLOCK] = BrownMushroomBlock::class; self::$list[self::IRON_BARS] = IronBars::class; self::$list[self::GLASS_PANE] = GlassPane::class; self::$list[self::MELON_BLOCK] = Melon::class; self::$list[self::PUMPKIN_STEM] = PumpkinStem::class; self::$list[self::MELON_STEM] = MelonStem::class; self::$list[self::VINE] = Vine::class; self::$list[self::FENCE_GATE] = FenceGate::class; self::$list[self::BRICK_STAIRS] = BrickStairs::class; self::$list[self::STONE_BRICK_STAIRS] = StoneBrickStairs::class; self::$list[self::MYCELIUM] = Mycelium::class; self::$list[self::WATER_LILY] = WaterLily::class; self::$list[self::NETHER_BRICKS] = NetherBrick::class; self::$list[self::NETHER_BRICK_FENCE] = NetherBrickFence::class; self::$list[self::NETHER_BRICKS_STAIRS] = NetherBrickStairs::class; self::$list[self::NETHER_WART_BLOCK] = NetherWart::class; self::$list[self::ENCHANTING_TABLE] = EnchantingTable::class; self::$list[self::BREWING_STAND_BLOCK] = BrewingStand::class; //self::$list[self::CAULDRON] = Cauldron::class; //self::$list[self::END_PORTAL] = EndPortal::class; self::$list[self::END_PORTAL_FRAME] = EndPortalFrame::class; self::$list[self::END_STONE] = EndStone::class; //self::$list[self::DRAGON_EGG] = DragonEgg::class; self::$list[self::REDSTONE_LAMP] = RedstoneLamp::class; self::$list[self::LIT_REDSTONE_LAMP] = LitRedstoneLamp::class; // self::$list[self::COCOA] = Cocoa::class; self::$list[self::SANDSTONE_STAIRS] = SandstoneStairs::class; self::$list[self::EMERALD_ORE] = EmeraldOre::class; //self::$list[self::ENDERCHEST] = Enderchest::class; self::$list[self::TRIPWIRE_HOOK] = TripwireHook::class; self::$list[self::TRIPWIRE] = Tripwire::class; self::$list[self::EMERALD_BLOCK] = Emerald::class; self::$list[self::SPRUCE_WOOD_STAIRS] = SpruceWoodStairs::class; self::$list[self::BIRCH_WOOD_STAIRS] = BirchWoodStairs::class; self::$list[self::JUNGLE_WOOD_STAIRS] = JungleWoodStairs::class; //self::$list[self::COMMAND_BLOCK] = CommandBlock::class; //self::$list[self::BEACON] = Beacon::class; self::$list[self::STONE_WALL] = StoneWall::class; self::$list[self::FLOWER_POT_BLOCK] = FlowerPot::class; self::$list[self::CARROT_BLOCK] = Carrot::class; self::$list[self::POTATO_BLOCK] = Potato::class; self::$list[self::WOODEN_BUTTON] = WoodenButton::class; self::$list[self::SKULL_BLOCK] = SkullBlock::class; self::$list[self::ANVIL] = Anvil::class; self::$list[self::TRAPPED_CHEST] = TrappedChest::class; // self::$list[self::LIGHT_WEIGHTED_PRESSURE_PLATE] = LightPlate::class; // self::$list[self::HEAVY_WEIGHTED_PRESSURE_PLATE] = HeavyPlate::class; //self::$list[self::UNPOWERED_COMPARATOR] = UnpoweredComparator::class; //self::$list[self::POWERED_COMPARATOR] = PoweredComparator::class; // self::$list[self::DAYLIGHT_DETECTOR] = DaylightDetector::class; self::$list[self::REDSTONE_BLOCK] = RedstoneBlock::class; self::$list[self::QUARTZ_ORE] = QuartzOre::class; //self::$list[self::HOPPER] = Hopper::class; self::$list[self::QUARTZ_BLOCK] = Quartz::class; self::$list[self::QUARTZ_STAIRS] = QuartzStairs::class; self::$list[self::DOUBLE_WOOD_SLAB] = DoubleWoodSlab::class; self::$list[self::WOOD_SLAB] = WoodSlab::class; self::$list[self::STAINED_CLAY] = StainedClay::class; //self::$list[self::STAINED_GLASS_PANE] = StainedGlassPain::class; self::$list[self::LEAVES2] = Leaves2::class; self::$list[self::WOOD2] = Wood2::class; self::$list[self::ACACIA_WOOD_STAIRS] = AcaciaWoodStairs::class; self::$list[self::DARK_OAK_WOOD_STAIRS] = DarkOakWoodStairs::class; //self::$list[self::SLIMEBLOCK] = Slimeblock::class; // self::$list[self::BARRIER] = Barrier::class; self::$list[self::IRON_TRAPDOOR] = IronTrapdoor::class; //self::$list[self::PRISMARINE] = Prismarine::class; //self::$list[self::SEA_LANTERN] = SeaLantern::class; self::$list[self::HAY_BALE] = HayBale::class; self::$list[self::CARPET] = Carpet::class; self::$list[self::HARDENED_CLAY] = HardenedClay::class; self::$list[self::COAL_BLOCK] = Coal::class; self::$list[self::PACKED_ICE] = PackedIce::class; self::$list[self::DOUBLE_PLANT] = DoublePlant::class; //self::$list[self::STANDING_BANNER] = StandingBanner::class; //self::$list[self::WALL_BANNER] = WallBanner::class; //self::$list[self::DAYLIGHT_DETECTOR_INVERTED] = DaylightDetectorInverted::class; //self::$list[self::RED_SANDSTONE] = RedSandstone::class; //self::$list[self::RED_SANDSTONE_STAIRS] = RedSandstoneStairs::class; //self::$list[self::DOUBLE_STONE_SLAB2] = DoubleStoneSlab2::class; //self::$list[self::STONE_SLAB2] = StoneSlab2::class; self::$list[self::FENCE_GATE_SPRUCE] = FenceGateSpruce::class; self::$list[self::FENCE_GATE_BIRCH] = FenceGateBirch::class; self::$list[self::FENCE_GATE_JUNGLE] = FenceGateJungle::class; self::$list[self::FENCE_GATE_DARK_OAK] = FenceGateDarkOak::class; self::$list[self::FENCE_GATE_ACACIA] = FenceGateAcacia::class; self::$list[self::SPRUCE_DOOR_BLOCK] = SpruceDoor::class; self::$list[self::BIRCH_DOOR_BLOCK] = BirchDoor::class; self::$list[self::JUNGLE_DOOR_BLOCK] = JungleDoor::class; self::$list[self::ACACIA_DOOR_BLOCK] = AcaciaDoor::class; self::$list[self::DARK_OAK_DOOR_BLOCK] = DarkOakDoor::class; self::$list[self::GRASS_PATH] = GrassPath::class; self::$list[self::PODZOL] = Podzol::class; self::$list[self::BEETROOT_BLOCK] = Beetroot::class; self::$list[self::STONECUTTER] = Stonecutter::class; self::$list[self::GLOWING_OBSIDIAN] = GlowingObsidian::class; self::$list[self::NETHER_REACTOR] = NetherReactor::class; // self::$list[self::RESERVED] = Reserved::class; foreach (self::$list as $id => $class) { if ($class !== null) { /** @var Block $block */ $block = new $class(); for ($data = 0; $data < 16; ++$data) { self::$fullList[$id << 4 | $data] = new $class($data); } self::$solid[$id] = $block->isSolid(); self::$transparent[$id] = $block->isTransparent(); self::$hardness[$id] = $block->getHardness(); self::$light[$id] = $block->getLightLevel(); self::$power[$id] = $block->getPower(); if ($block->isSolid()) { if ($block->isTransparent()) { if ($block instanceof Liquid or $block instanceof Ice) { self::$lightFilter[$id] = 2; } else { self::$lightFilter[$id] = 1; } } else { self::$lightFilter[$id] = 15; } } else { self::$lightFilter[$id] = 1; } } else { self::$lightFilter[$id] = 1; for ($data = 0; $data < 16; ++$data) { self::$fullList[$id << 4 | $data] = new Block($id, $data); } } } } }
public static function init() { if (self::$list === null) { self::$list = new \SplFixedArray(256); self::$fullList = new \SplFixedArray(4096); self::$light = new \SplFixedArray(256); self::$lightFilter = new \SplFixedArray(256); self::$solid = new \SplFixedArray(256); self::$hardness = new \SplFixedArray(256); self::$transparent = new \SplFixedArray(256); self::$list[self::AIR] = Air::class; self::$list[self::STONE] = Stone::class; self::$list[self::GRASS] = Grass::class; self::$list[self::DIRT] = Dirt::class; self::$list[self::COBBLESTONE] = Cobblestone::class; self::$list[self::PLANKS] = Planks::class; self::$list[self::SAPLING] = Sapling::class; self::$list[self::BEDROCK] = Bedrock::class; self::$list[self::WATER] = Water::class; self::$list[self::STILL_WATER] = StillWater::class; self::$list[self::LAVA] = Lava::class; self::$list[self::STILL_LAVA] = StillLava::class; self::$list[self::SAND] = Sand::class; self::$list[self::GRAVEL] = Gravel::class; self::$list[self::GOLD_ORE] = GoldOre::class; self::$list[self::IRON_ORE] = IronOre::class; self::$list[self::COAL_ORE] = CoalOre::class; self::$list[self::WOOD] = Wood::class; self::$list[self::LEAVES] = Leaves::class; self::$list[self::SPONGE] = Sponge::class; self::$list[self::GLASS] = Glass::class; self::$list[self::LAPIS_ORE] = LapisOre::class; self::$list[self::LAPIS_BLOCK] = Lapis::class; self::$list[self::SANDSTONE] = Sandstone::class; self::$list[self::BED_BLOCK] = Bed::class; self::$list[self::COBWEB] = Cobweb::class; self::$list[self::TALL_GRASS] = TallGrass::class; self::$list[self::DEAD_BUSH] = DeadBush::class; self::$list[self::WOOL] = Wool::class; self::$list[self::DANDELION] = Dandelion::class; self::$list[self::RED_FLOWER] = Flower::class; self::$list[self::BROWN_MUSHROOM] = BrownMushroom::class; self::$list[self::RED_MUSHROOM] = RedMushroom::class; self::$list[self::GOLD_BLOCK] = Gold::class; self::$list[self::IRON_BLOCK] = Iron::class; self::$list[self::DOUBLE_SLAB] = DoubleSlab::class; self::$list[self::SLAB] = Slab::class; self::$list[self::BRICKS_BLOCK] = Bricks::class; self::$list[self::TNT] = TNT::class; self::$list[self::BOOKSHELF] = Bookshelf::class; self::$list[self::MOSS_STONE] = MossStone::class; self::$list[self::OBSIDIAN] = Obsidian::class; self::$list[self::TORCH] = Torch::class; self::$list[self::FIRE] = Fire::class; self::$list[self::MONSTER_SPAWNER] = MonsterSpawner::class; self::$list[self::WOOD_STAIRS] = WoodStairs::class; self::$list[self::CHEST] = Chest::class; self::$list[self::DIAMOND_ORE] = DiamondOre::class; self::$list[self::DIAMOND_BLOCK] = Diamond::class; self::$list[self::WORKBENCH] = Workbench::class; self::$list[self::WHEAT_BLOCK] = Wheat::class; self::$list[self::FARMLAND] = Farmland::class; self::$list[self::FURNACE] = Furnace::class; self::$list[self::BURNING_FURNACE] = BurningFurnace::class; self::$list[self::SIGN_POST] = SignPost::class; self::$list[self::WOOD_DOOR_BLOCK] = WoodDoor::class; self::$list[self::SPRUCE_DOOR_BLOCK] = SpruceDoor::class; self::$list[self::BIRCH_DOOR_BLOCK] = BirchDoor::class; self::$list[self::JUNGLE_DOOR_BLOCK] = JungleDoor::class; self::$list[self::ACACIA_DOOR_BLOCK] = AcaciaDoor::class; self::$list[self::DARK_OAK_DOOR_BLOCK] = DarkOakDoor::class; self::$list[self::LADDER] = Ladder::class; self::$list[self::COBBLESTONE_STAIRS] = CobblestoneStairs::class; self::$list[self::WALL_SIGN] = WallSign::class; self::$list[self::IRON_DOOR_BLOCK] = IronDoor::class; self::$list[self::REDSTONE_ORE] = RedstoneOre::class; self::$list[self::GLOWING_REDSTONE_ORE] = GlowingRedstoneOre::class; self::$list[self::SNOW_LAYER] = SnowLayer::class; self::$list[self::ICE] = Ice::class; self::$list[self::SNOW_BLOCK] = Snow::class; self::$list[self::CACTUS] = Cactus::class; self::$list[self::CLAY_BLOCK] = Clay::class; self::$list[self::SUGARCANE_BLOCK] = Sugarcane::class; self::$list[self::FENCE] = Fence::class; self::$list[self::PUMPKIN] = Pumpkin::class; self::$list[self::NETHERRACK] = Netherrack::class; self::$list[self::SOUL_SAND] = SoulSand::class; self::$list[self::GLOWSTONE_BLOCK] = Glowstone::class; self::$list[self::LIT_PUMPKIN] = LitPumpkin::class; self::$list[self::CAKE_BLOCK] = Cake::class; self::$list[self::TRAPDOOR] = Trapdoor::class; self::$list[self::STONE_BRICKS] = StoneBricks::class; self::$list[self::IRON_BARS] = IronBars::class; self::$list[self::GLASS_PANE] = GlassPane::class; self::$list[self::MELON_BLOCK] = Melon::class; self::$list[self::PUMPKIN_STEM] = PumpkinStem::class; self::$list[self::MELON_STEM] = MelonStem::class; self::$list[self::VINE] = Vine::class; self::$list[self::FENCE_GATE] = FenceGate::class; self::$list[self::BRICK_STAIRS] = BrickStairs::class; self::$list[self::STONE_BRICK_STAIRS] = StoneBrickStairs::class; self::$list[self::MYCELIUM] = Mycelium::class; self::$list[self::WATER_LILY] = WaterLily::class; self::$list[self::NETHER_BRICKS] = NetherBrick::class; self::$list[self::PORTAL] = Portal::class; self::$list[self::NETHER_BRICKS_STAIRS] = NetherBrickStairs::class; self::$list[self::ENCHANTING_TABLE] = EnchantingTable::class; self::$list[self::BREWING_STAND] = BrewingStand::class; self::$list[self::END_PORTAL_FRAME] = EndPortalFrame::class; self::$list[self::END_STONE] = EndStone::class; self::$list[self::SANDSTONE_STAIRS] = SandstoneStairs::class; self::$list[self::EMERALD_ORE] = EmeraldOre::class; self::$list[self::EMERALD_BLOCK] = Emerald::class; self::$list[self::SPRUCE_WOOD_STAIRS] = SpruceWoodStairs::class; self::$list[self::BIRCH_WOOD_STAIRS] = BirchWoodStairs::class; self::$list[self::JUNGLE_WOOD_STAIRS] = JungleWoodStairs::class; self::$list[self::STONE_WALL] = StoneWall::class; self::$list[self::FLOWER_POT_BLOCK] = FlowerPot::class; self::$list[self::CARROT_BLOCK] = Carrot::class; self::$list[self::POTATO_BLOCK] = Potato::class; self::$list[self::ANVIL] = Anvil::class; self::$list[self::TRAPPED_CHEST] = TrappedChest::class; self::$list[self::REDSTONE_BLOCK] = Redstone::class; self::$list[self::QUARTZ_BLOCK] = Quartz::class; self::$list[self::QUARTZ_STAIRS] = QuartzStairs::class; self::$list[self::DOUBLE_WOOD_SLAB] = DoubleWoodSlab::class; self::$list[self::WOOD_SLAB] = WoodSlab::class; self::$list[self::STAINED_CLAY] = StainedClay::class; self::$list[self::LEAVES2] = Leaves2::class; self::$list[self::WOOD2] = Wood2::class; self::$list[self::ACACIA_WOOD_STAIRS] = AcaciaWoodStairs::class; self::$list[self::DARK_OAK_WOOD_STAIRS] = DarkOakWoodStairs::class; self::$list[self::HAY_BALE] = HayBale::class; self::$list[self::CARPET] = Carpet::class; self::$list[self::HARDENED_CLAY] = HardenedClay::class; self::$list[self::COAL_BLOCK] = Coal::class; self::$list[self::PACKED_ICE] = PackedIce::class; self::$list[self::DOUBLE_PLANT] = DoublePlant::class; self::$list[self::FENCE_GATE_SPRUCE] = FenceGateSpruce::class; self::$list[self::FENCE_GATE_BIRCH] = FenceGateBirch::class; self::$list[self::FENCE_GATE_JUNGLE] = FenceGateJungle::class; self::$list[self::FENCE_GATE_DARK_OAK] = FenceGateDarkOak::class; self::$list[self::FENCE_GATE_ACACIA] = FenceGateAcacia::class; self::$list[self::GRASS_PATH] = GrassPath::class; self::$list[self::PODZOL] = Podzol::class; self::$list[self::BEETROOT_BLOCK] = Beetroot::class; self::$list[self::STONECUTTER] = Stonecutter::class; self::$list[self::GLOWING_OBSIDIAN] = GlowingObsidian::class; self::$list[self::NETHER_REACTOR] = NetherReactor::class; self::$list[self::NETHER_BRICK_FENCE] = NetherBrickFence::class; self::$list[self::POWERED_RAIL] = PoweredRail::class; self::$list[self::RAIL] = Rail::class; self::$list[self::WOODEN_PRESSURE_PLATE] = WoodenPressurePlate::class; self::$list[self::STONE_PRESSURE_PLATE] = StonePressurePlate::class; self::$list[self::LIGHT_WEIGHTED_PRESSURE_PLATE] = LightWeightedPressurePlate::class; self::$list[self::HEAVY_WEIGHTED_PRESSURE_PLATE] = HeavyWeightedPressurePlate::class; self::$list[self::REDSTONE_WIRE] = RedstoneWire::class; self::$list[self::ACTIVE_REDSTONE_LAMP] = ActiveRedstoneLamp::class; self::$list[self::INACTIVE_REDSTONE_LAMP] = InactiveRedstoneLamp::class; self::$list[self::REDSTONE_TORCH] = RedstoneTorch::class; self::$list[self::UNLIT_REDSTONE_TORCH] = UnlitRedstoneTorch::class; self::$list[self::WOODEN_BUTTON] = WoodenButton::class; self::$list[self::STONE_BUTTON] = StoneButton::class; self::$list[self::LEVER] = Lever::class; self::$list[self::DAYLIGHT_SENSOR] = DaylightDetector::class; self::$list[self::DAYLIGHT_SENSOR_INVERTED] = DaylightDetectorInverted::class; self::$list[self::NOTEBLOCK] = Noteblock::class; foreach (self::$list as $id => $class) { if ($class !== null) { /** @var Block $block */ $block = new $class(); for ($data = 0; $data < 16; ++$data) { self::$fullList[$id << 4 | $data] = new $class($data); } self::$solid[$id] = $block->isSolid(); self::$transparent[$id] = $block->isTransparent(); self::$hardness[$id] = $block->getHardness(); self::$light[$id] = $block->getLightLevel(); if ($block->isSolid()) { if ($block->isTransparent()) { if ($block instanceof Liquid or $block instanceof Ice) { self::$lightFilter[$id] = 2; } else { self::$lightFilter[$id] = 1; } } else { self::$lightFilter[$id] = 15; } } else { self::$lightFilter[$id] = 1; } } else { self::$lightFilter[$id] = 1; for ($data = 0; $data < 16; ++$data) { self::$fullList[$id << 4 | $data] = new Block($id, $data); } } } } }
public static function init() { if (count(self::$list) === 0) { self::$list = [self::AIR => Air::class, self::STONE => Stone::class, self::GRASS => Grass::class, self::DIRT => Dirt::class, self::COBBLESTONE => Cobblestone::class, self::PLANKS => Planks::class, self::SAPLING => Sapling::class, self::BEDROCK => Bedrock::class, self::WATER => Water::class, self::STILL_WATER => StillWater::class, self::LAVA => Lava::class, self::STILL_LAVA => StillLava::class, self::SAND => Sand::class, self::GRAVEL => Gravel::class, self::GOLD_ORE => GoldOre::class, self::IRON_ORE => IronOre::class, self::COAL_ORE => CoalOre::class, self::WOOD => Wood::class, self::LEAVES => Leaves::class, self::SPONGE => Sponge::class, self::GLASS => Glass::class, self::LAPIS_ORE => LapisOre::class, self::LAPIS_BLOCK => Lapis::class, self::SANDSTONE => Sandstone::class, self::BED_BLOCK => Bed::class, self::COBWEB => Cobweb::class, self::TALL_GRASS => TallGrass::class, self::DEAD_BUSH => DeadBush::class, self::WOOL => Wool::class, self::DANDELION => Dandelion::class, self::POPPY => CyanFlower::class, self::BROWN_MUSHROOM => BrownMushroom::class, self::RED_MUSHROOM => RedMushroom::class, self::GOLD_BLOCK => Gold::class, self::IRON_BLOCK => Iron::class, self::DOUBLE_SLAB => DoubleSlab::class, self::SLAB => Slab::class, self::BRICKS_BLOCK => Bricks::class, self::TNT => TNT::class, self::BOOKSHELF => Bookshelf::class, self::MOSS_STONE => MossStone::class, self::OBSIDIAN => Obsidian::class, self::TORCH => Torch::class, self::FIRE => Fire::class, self::MONSTER_SPAWNER => MonsterSpawner::class, self::WOOD_STAIRS => WoodStairs::class, self::CHEST => Chest::class, self::DIAMOND_ORE => DiamondOre::class, self::DIAMOND_BLOCK => Diamond::class, self::WORKBENCH => Workbench::class, self::WHEAT_BLOCK => Wheat::class, self::FARMLAND => Farmland::class, self::FURNACE => Furnace::class, self::BURNING_FURNACE => BurningFurnace::class, self::SIGN_POST => SignPost::class, self::WOOD_DOOR_BLOCK => WoodDoor::class, self::LADDER => Ladder::class, self::COBBLESTONE_STAIRS => CobblestoneStairs::class, self::WALL_SIGN => WallSign::class, self::IRON_DOOR_BLOCK => IronDoor::class, self::REDSTONE_ORE => RedstoneOre::class, self::GLOWING_REDSTONE_ORE => GlowingRedstoneOre::class, self::SNOW_LAYER => SnowLayer::class, self::ICE => Ice::class, self::SNOW_BLOCK => Snow::class, self::CACTUS => Cactus::class, self::CLAY_BLOCK => Clay::class, self::SUGARCANE_BLOCK => Sugarcane::class, self::FENCE => Fence::class, self::PUMPKIN => Pumpkin::class, self::NETHERRACK => Netherrack::class, self::SOUL_SAND => SoulSand::class, self::GLOWSTONE_BLOCK => Glowstone::class, self::LIT_PUMPKIN => LitPumpkin::class, self::CAKE_BLOCK => Cake::class, self::TRAPDOOR => Trapdoor::class, self::STONE_BRICKS => StoneBricks::class, self::IRON_BARS => IronBars::class, self::GLASS_PANE => GlassPane::class, self::MELON_BLOCK => Melon::class, self::PUMPKIN_STEM => PumpkinStem::class, self::MELON_STEM => MelonStem::class, self::FENCE_GATE => FenceGate::class, self::BRICK_STAIRS => BrickStairs::class, self::STONE_BRICK_STAIRS => StoneBrickStairs::class, self::MYCELIUM => Mycelium::class, self::NETHER_BRICKS => NetherBrick::class, self::NETHER_BRICKS_STAIRS => NetherBrickStairs::class, self::END_PORTAL => EndPortal::class, self::END_STONE => EndStone::class, self::SANDSTONE_STAIRS => SandstoneStairs::class, self::EMERALD_ORE => EmeraldOre::class, self::EMERALD_BLOCK => Emerald::class, self::SPRUCE_WOOD_STAIRS => SpruceWoodStairs::class, self::BIRCH_WOOD_STAIRS => BirchWoodStairs::class, self::JUNGLE_WOOD_STAIRS => JungleWoodStairs::class, self::STONE_WALL => StoneWall::class, self::CARROT_BLOCK => Carrot::class, self::POTATO_BLOCK => Potato::class, self::QUARTZ_BLOCK => Quartz::class, self::QUARTZ_STAIRS => QuartzStairs::class, self::DOUBLE_WOOD_SLAB => DoubleWoodSlab::class, self::WOOD_SLAB => WoodSlab::class, self::STAINED_CLAY => StainedClay::class, self::LEAVES2 => Leaves2::class, self::WOOD2 => Wood2::class, self::ACACIA_WOOD_STAIRS => AcaciaWoodStairs::class, self::DARK_OAK_WOOD_STAIRS => DarkOakWoodStairs::class, self::HAY_BALE => HayBale::class, self::CARPET => Carpet::class, self::HARDENED_CLAY => HardenedClay::class, self::COAL_BLOCK => Coal::class, self::PODZOL => Podzol::class, self::BEETROOT_BLOCK => Beetroot::class, self::STONECUTTER => Stonecutter::class, self::GLOWING_OBSIDIAN => GlowingObsidian::class, self::NETHER_REACTOR => NetherReactor::class]; } }