pocketmine\block\Block::init PHP Метод

init() публичный статический Метод

public static init ( )
    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::RED_SANDSTONE] = RedSandstone::class;
            self::$list[self::RED_SANDSTONE_STAIRS] = RedSandstoneStairs::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::RED_SANDSTONE_SLAB] = RedSandstoneSlab::class;
            self::$list[self::DOUBLE_RED_SANDSTONE_SLAB] = DoubleRedSandstoneSlab::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::IRON_TRAPDOOR] = IronTrapdoor::class;
            self::$list[self::STONE_BRICKS] = StoneBricks::class;
            self::$list[self::BROWN_MUSHROOM_BLOCK] = BrownMushroomBlock::class;
            self::$list[self::RED_MUSHROOM_BLOCK] = RedMushroomBlock::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::NETHER_WART_BLOCK] = NetherWart::class;
            self::$list[self::ENCHANTING_TABLE] = EnchantingTable::class;
            self::$list[self::BREWING_STAND_BLOCK] = 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::SLIME_BLOCK] = SlimeBlock::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;
            self::$list[self::SKULL_BLOCK] = SkullBlock::class;
            self::$list[self::NETHER_QUARTZ_ORE] = NetherQuartzOre::class;
            self::$list[self::ACTIVATOR_RAIL] = ActivatorRail::class;
            self::$list[self::COCOA_BLOCK] = CocoaBlock::class;
            self::$list[self::DETECTOR_RAIL] = DetectorRail::class;
            self::$list[self::TRIPWIRE] = Tripwire::class;
            self::$list[self::TRIPWIRE_HOOK] = TripwireHook::class;
            self::$list[self::ITEM_FRAME_BLOCK] = ItemFrame::class;
            self::$list[self::DISPENSER] = Dispenser::class;
            self::$list[self::DROPPER] = Dropper::class;
            self::$list[self::POWERED_REPEATER_BLOCK] = PoweredRepeater::class;
            self::$list[self::UNPOWERED_REPEATER_BLOCK] = UnpoweredRepeater::class;
            self::$list[self::CAULDRON_BLOCK] = Cauldron::class;
            self::$list[self::INVISIBLE_BEDROCK] = InvisibleBedrock::class;
            self::$list[self::HOPPER_BLOCK] = Hopper::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;
                            }
                        } elseif ($block instanceof SolidLight) {
                            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);
                    }
                }
            }
        }
    }

Usage Example

Пример #1
0
 public function onRun()
 {
     Block::init();
     Biome::init();
     $manager = new SimpleChunkManager($this->seed);
     $this->saveToThreadStore("generation.level{$this->levelId}.manager", $manager);
     /** @var Generator $generator */
     $generator = $this->generator;
     $generator = new $generator($this->settings);
     $generator->init($manager, new Random($manager->getSeed()));
     $this->saveToThreadStore("generation.level{$this->levelId}.generator", $generator);
 }
All Usage Examples Of pocketmine\block\Block::init