mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-04-21 08:17:34 +00:00
Replace all legacy blockID references with BlockIds::
This commit is contained in:
parent
f84d7ad70d
commit
79ef8e0803
@ -26,6 +26,7 @@ namespace pocketmine;
|
||||
use pocketmine\block\Bed;
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockFactory;
|
||||
use pocketmine\block\BlockIds;
|
||||
use pocketmine\block\UnknownBlock;
|
||||
use pocketmine\command\Command;
|
||||
use pocketmine\command\CommandSender;
|
||||
@ -2082,8 +2083,8 @@ class Player extends Human implements CommandSender, ChunkLoader, ChunkListener,
|
||||
}
|
||||
|
||||
$block = $target->getSide($face);
|
||||
if($block->getId() === Block::FIRE){
|
||||
$this->level->setBlock($block, BlockFactory::get(Block::AIR));
|
||||
if($block->getId() === BlockIds::FIRE){
|
||||
$this->level->setBlock($block, BlockFactory::get(BlockIds::AIR));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -163,7 +163,7 @@ class Banner extends Transparent{
|
||||
}
|
||||
|
||||
public function onNearbyBlockChange() : void{
|
||||
if($this->getSide(Facing::opposite($this->facing))->getId() === self::AIR){
|
||||
if($this->getSide(Facing::opposite($this->facing))->getId() === BlockIds::AIR){
|
||||
$this->getLevel()->useBreakOn($this);
|
||||
}
|
||||
}
|
||||
|
@ -314,7 +314,7 @@ class Block extends Position implements BlockIds, Metadatable{
|
||||
if(($t = $this->level->getTile($this)) !== null){
|
||||
$t->onBlockDestroyed();
|
||||
}
|
||||
return $this->getLevel()->setBlock($this, BlockFactory::get(Block::AIR));
|
||||
return $this->getLevel()->setBlock($this, BlockFactory::get(BlockIds::AIR));
|
||||
}
|
||||
|
||||
|
||||
@ -655,7 +655,7 @@ class Block extends Position implements BlockIds, Metadatable{
|
||||
return $this->getLevel()->getBlock(Vector3::getSide($side, $step));
|
||||
}
|
||||
|
||||
return BlockFactory::get(Block::AIR, 0, Position::fromObject(Vector3::getSide($side, $step)));
|
||||
return BlockFactory::get(BlockIds::AIR, 0, Position::fromObject(Vector3::getSide($side, $step)));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -75,328 +75,328 @@ class BlockFactory{
|
||||
self::$diffusesSkyLight = \SplFixedArray::fromArray(array_fill(0, 8192, false));
|
||||
self::$blastResistance = \SplFixedArray::fromArray(array_fill(0, 8192, 0));
|
||||
|
||||
self::register(new ActivatorRail(new BID(Block::ACTIVATOR_RAIL, BaseRail::STRAIGHT_NORTH_SOUTH), "Activator Rail"));
|
||||
self::register(new Air(new BID(Block::AIR), "Air"));
|
||||
self::register(new Anvil(new BID(Block::ANVIL, Anvil::TYPE_NORMAL), "Anvil"));
|
||||
self::register(new Anvil(new BID(Block::ANVIL, Anvil::TYPE_SLIGHTLY_DAMAGED), "Slightly Damaged Anvil"));
|
||||
self::register(new Anvil(new BID(Block::ANVIL, Anvil::TYPE_VERY_DAMAGED), "Very Damaged Anvil"));
|
||||
self::register(new Banner(new BlockIdentifierFlattened(Block::STANDING_BANNER, Block::WALL_BANNER, 0, ItemIds::BANNER, \pocketmine\tile\Banner::class), "Banner"));
|
||||
self::register(new Barrier(new BID(Block::BARRIER), "Barrier"));
|
||||
self::register(new Bed(new BID(Block::BED_BLOCK, 0, ItemIds::BED, \pocketmine\tile\Bed::class), "Bed Block"));
|
||||
self::register(new Bedrock(new BID(Block::BEDROCK), "Bedrock"));
|
||||
self::register(new Beetroot(new BID(Block::BEETROOT_BLOCK), "Beetroot Block"));
|
||||
self::register(new BlueIce(new BID(Block::BLUE_ICE), "Blue Ice"));
|
||||
self::register(new BoneBlock(new BID(Block::BONE_BLOCK), "Bone Block"));
|
||||
self::register(new Bookshelf(new BID(Block::BOOKSHELF), "Bookshelf"));
|
||||
self::register(new BrewingStand(new BID(Block::BREWING_STAND_BLOCK, 0, ItemIds::BREWING_STAND), "Brewing Stand"));
|
||||
self::register(new BrickStairs(new BID(Block::BRICK_STAIRS), "Brick Stairs"));
|
||||
self::register(new Bricks(new BID(Block::BRICK_BLOCK), "Bricks"));
|
||||
self::register(new BrownMushroom(new BID(Block::BROWN_MUSHROOM), "Brown Mushroom"));
|
||||
self::register(new BrownMushroomBlock(new BID(Block::BROWN_MUSHROOM_BLOCK), "Brown Mushroom Block"));
|
||||
self::register(new Cactus(new BID(Block::CACTUS), "Cactus"));
|
||||
self::register(new Cake(new BID(Block::CAKE_BLOCK, 0, ItemIds::CAKE), "Cake"));
|
||||
self::register(new Carrot(new BID(Block::CARROTS), "Carrot Block"));
|
||||
self::register(new Chest(new BID(Block::CHEST, 0, null, \pocketmine\tile\Chest::class), "Chest"));
|
||||
self::register(new Clay(new BID(Block::CLAY_BLOCK), "Clay Block"));
|
||||
self::register(new Coal(new BID(Block::COAL_BLOCK), "Coal Block"));
|
||||
self::register(new CoalOre(new BID(Block::COAL_ORE), "Coal Ore"));
|
||||
self::register(new CoarseDirt(new BID(Block::DIRT, Dirt::COARSE), "Coarse Dirt"));
|
||||
self::register(new Cobblestone(new BID(Block::COBBLESTONE), "Cobblestone"));
|
||||
self::register(new Cobblestone(new BID(Block::MOSSY_COBBLESTONE), "Moss Stone"));
|
||||
self::register(new CobblestoneStairs(new BID(Block::COBBLESTONE_STAIRS), "Cobblestone Stairs"));
|
||||
self::register(new Cobweb(new BID(Block::COBWEB), "Cobweb"));
|
||||
self::register(new CocoaBlock(new BID(Block::COCOA), "Cocoa Block"));
|
||||
self::register(new CraftingTable(new BID(Block::CRAFTING_TABLE), "Crafting Table"));
|
||||
self::register(new Dandelion(new BID(Block::DANDELION), "Dandelion"));
|
||||
self::register(new DaylightSensor(new BlockIdentifierFlattened(Block::DAYLIGHT_DETECTOR, Block::DAYLIGHT_DETECTOR_INVERTED), "Daylight Sensor"));
|
||||
self::register(new DeadBush(new BID(Block::DEADBUSH), "Dead Bush"));
|
||||
self::register(new DetectorRail(new BID(Block::DETECTOR_RAIL), "Detector Rail"));
|
||||
self::register(new Diamond(new BID(Block::DIAMOND_BLOCK), "Diamond Block"));
|
||||
self::register(new DiamondOre(new BID(Block::DIAMOND_ORE), "Diamond Ore"));
|
||||
self::register(new Dirt(new BID(Block::DIRT, Dirt::NORMAL), "Dirt"));
|
||||
self::register(new DoublePlant(new BID(Block::DOUBLE_PLANT, 0), "Sunflower"));
|
||||
self::register(new DoublePlant(new BID(Block::DOUBLE_PLANT, 1), "Lilac"));
|
||||
self::register(new DoublePlant(new BID(Block::DOUBLE_PLANT, 4), "Rose Bush"));
|
||||
self::register(new DoublePlant(new BID(Block::DOUBLE_PLANT, 5), "Peony"));
|
||||
self::register(new DoubleTallGrass(new BID(Block::DOUBLE_PLANT, 2), "Double Tallgrass"));
|
||||
self::register(new DoubleTallGrass(new BID(Block::DOUBLE_PLANT, 3), "Large Fern"));
|
||||
self::register(new DragonEgg(new BID(Block::DRAGON_EGG), "Dragon Egg"));
|
||||
self::register(new Emerald(new BID(Block::EMERALD_BLOCK), "Emerald Block"));
|
||||
self::register(new EmeraldOre(new BID(Block::EMERALD_ORE), "Emerald Ore"));
|
||||
self::register(new EnchantingTable(new BID(Block::ENCHANTING_TABLE, 0, null, \pocketmine\tile\EnchantTable::class), "Enchanting Table"));
|
||||
self::register(new EndPortalFrame(new BID(Block::END_PORTAL_FRAME), "End Portal Frame"));
|
||||
self::register(new EndRod(new BID(Block::END_ROD), "End Rod"));
|
||||
self::register(new EndStone(new BID(Block::END_STONE), "End Stone"));
|
||||
self::register(new EndStoneBricks(new BID(Block::END_BRICKS), "End Stone Bricks"));
|
||||
self::register(new EnderChest(new BID(Block::ENDER_CHEST, 0, null, \pocketmine\tile\EnderChest::class), "Ender Chest"));
|
||||
self::register(new Farmland(new BID(Block::FARMLAND), "Farmland"));
|
||||
self::register(new Fire(new BID(Block::FIRE), "Fire Block"));
|
||||
self::register(new Flower(new BID(Block::RED_FLOWER, Flower::TYPE_ALLIUM), "Allium"));
|
||||
self::register(new Flower(new BID(Block::RED_FLOWER, Flower::TYPE_AZURE_BLUET), "Azure Bluet"));
|
||||
self::register(new Flower(new BID(Block::RED_FLOWER, Flower::TYPE_BLUE_ORCHID), "Blue Orchid"));
|
||||
self::register(new Flower(new BID(Block::RED_FLOWER, Flower::TYPE_CORNFLOWER), "Cornflower"));
|
||||
self::register(new Flower(new BID(Block::RED_FLOWER, Flower::TYPE_LILY_OF_THE_VALLEY), "Lily of the Valley"));
|
||||
self::register(new Flower(new BID(Block::RED_FLOWER, Flower::TYPE_ORANGE_TULIP), "Orange Tulip"));
|
||||
self::register(new Flower(new BID(Block::RED_FLOWER, Flower::TYPE_OXEYE_DAISY), "Oxeye Daisy"));
|
||||
self::register(new Flower(new BID(Block::RED_FLOWER, Flower::TYPE_PINK_TULIP), "Pink Tulip"));
|
||||
self::register(new Flower(new BID(Block::RED_FLOWER, Flower::TYPE_POPPY), "Poppy"));
|
||||
self::register(new Flower(new BID(Block::RED_FLOWER, Flower::TYPE_RED_TULIP), "Red Tulip"));
|
||||
self::register(new Flower(new BID(Block::RED_FLOWER, Flower::TYPE_WHITE_TULIP), "White Tulip"));
|
||||
self::register(new FlowerPot(new BID(Block::FLOWER_POT_BLOCK, 0, ItemIds::FLOWER_POT, \pocketmine\tile\FlowerPot::class), "Flower Pot"));
|
||||
self::register(new FrostedIce(new BID(Block::FROSTED_ICE), "Frosted Ice"));
|
||||
self::register(new Furnace(new BlockIdentifierFlattened(Block::FURNACE, Block::LIT_FURNACE, 0, null, \pocketmine\tile\Furnace::class), "Furnace"));
|
||||
self::register(new Glass(new BID(Block::GLASS), "Glass"));
|
||||
self::register(new GlassPane(new BID(Block::GLASS_PANE), "Glass Pane"));
|
||||
self::register(new GlowingObsidian(new BID(Block::GLOWINGOBSIDIAN), "Glowing Obsidian"));
|
||||
self::register(new Glowstone(new BID(Block::GLOWSTONE), "Glowstone"));
|
||||
self::register(new Gold(new BID(Block::GOLD_BLOCK), "Gold Block"));
|
||||
self::register(new GoldOre(new BID(Block::GOLD_ORE), "Gold Ore"));
|
||||
self::register(new Grass(new BID(Block::GRASS), "Grass"));
|
||||
self::register(new GrassPath(new BID(Block::GRASS_PATH), "Grass Path"));
|
||||
self::register(new Gravel(new BID(Block::GRAVEL), "Gravel"));
|
||||
self::register(new HardenedClay(new BID(Block::HARDENED_CLAY), "Hardened Clay"));
|
||||
self::register(new HardenedGlass(new BID(Block::HARD_GLASS), "Hardened Glass"));
|
||||
self::register(new HardenedGlassPane(new BID(Block::HARD_GLASS_PANE), "Hardened Glass Pane"));
|
||||
self::register(new HayBale(new BID(Block::HAY_BALE), "Hay Bale"));
|
||||
self::register(new Ice(new BID(Block::ICE), "Ice"));
|
||||
self::register(new class(new BID(Block::MONSTER_EGG), "Infested Stone") extends InfestedStone{
|
||||
self::register(new ActivatorRail(new BID(BlockIds::ACTIVATOR_RAIL, BaseRail::STRAIGHT_NORTH_SOUTH), "Activator Rail"));
|
||||
self::register(new Air(new BID(BlockIds::AIR), "Air"));
|
||||
self::register(new Anvil(new BID(BlockIds::ANVIL, Anvil::TYPE_NORMAL), "Anvil"));
|
||||
self::register(new Anvil(new BID(BlockIds::ANVIL, Anvil::TYPE_SLIGHTLY_DAMAGED), "Slightly Damaged Anvil"));
|
||||
self::register(new Anvil(new BID(BlockIds::ANVIL, Anvil::TYPE_VERY_DAMAGED), "Very Damaged Anvil"));
|
||||
self::register(new Banner(new BlockIdentifierFlattened(BlockIds::STANDING_BANNER, BlockIds::WALL_BANNER, 0, ItemIds::BANNER, \pocketmine\tile\Banner::class), "Banner"));
|
||||
self::register(new Barrier(new BID(BlockIds::BARRIER), "Barrier"));
|
||||
self::register(new Bed(new BID(BlockIds::BED_BLOCK, 0, ItemIds::BED, \pocketmine\tile\Bed::class), "Bed Block"));
|
||||
self::register(new Bedrock(new BID(BlockIds::BEDROCK), "Bedrock"));
|
||||
self::register(new Beetroot(new BID(BlockIds::BEETROOT_BLOCK), "Beetroot Block"));
|
||||
self::register(new BlueIce(new BID(BlockIds::BLUE_ICE), "Blue Ice"));
|
||||
self::register(new BoneBlock(new BID(BlockIds::BONE_BLOCK), "Bone Block"));
|
||||
self::register(new Bookshelf(new BID(BlockIds::BOOKSHELF), "Bookshelf"));
|
||||
self::register(new BrewingStand(new BID(BlockIds::BREWING_STAND_BLOCK, 0, ItemIds::BREWING_STAND), "Brewing Stand"));
|
||||
self::register(new BrickStairs(new BID(BlockIds::BRICK_STAIRS), "Brick Stairs"));
|
||||
self::register(new Bricks(new BID(BlockIds::BRICK_BLOCK), "Bricks"));
|
||||
self::register(new BrownMushroom(new BID(BlockIds::BROWN_MUSHROOM), "Brown Mushroom"));
|
||||
self::register(new BrownMushroomBlock(new BID(BlockIds::BROWN_MUSHROOM_BLOCK), "Brown Mushroom Block"));
|
||||
self::register(new Cactus(new BID(BlockIds::CACTUS), "Cactus"));
|
||||
self::register(new Cake(new BID(BlockIds::CAKE_BLOCK, 0, ItemIds::CAKE), "Cake"));
|
||||
self::register(new Carrot(new BID(BlockIds::CARROTS), "Carrot Block"));
|
||||
self::register(new Chest(new BID(BlockIds::CHEST, 0, null, \pocketmine\tile\Chest::class), "Chest"));
|
||||
self::register(new Clay(new BID(BlockIds::CLAY_BLOCK), "Clay Block"));
|
||||
self::register(new Coal(new BID(BlockIds::COAL_BLOCK), "Coal Block"));
|
||||
self::register(new CoalOre(new BID(BlockIds::COAL_ORE), "Coal Ore"));
|
||||
self::register(new CoarseDirt(new BID(BlockIds::DIRT, Dirt::COARSE), "Coarse Dirt"));
|
||||
self::register(new Cobblestone(new BID(BlockIds::COBBLESTONE), "Cobblestone"));
|
||||
self::register(new Cobblestone(new BID(BlockIds::MOSSY_COBBLESTONE), "Moss Stone"));
|
||||
self::register(new CobblestoneStairs(new BID(BlockIds::COBBLESTONE_STAIRS), "Cobblestone Stairs"));
|
||||
self::register(new Cobweb(new BID(BlockIds::COBWEB), "Cobweb"));
|
||||
self::register(new CocoaBlock(new BID(BlockIds::COCOA), "Cocoa Block"));
|
||||
self::register(new CraftingTable(new BID(BlockIds::CRAFTING_TABLE), "Crafting Table"));
|
||||
self::register(new Dandelion(new BID(BlockIds::DANDELION), "Dandelion"));
|
||||
self::register(new DaylightSensor(new BlockIdentifierFlattened(BlockIds::DAYLIGHT_DETECTOR, BlockIds::DAYLIGHT_DETECTOR_INVERTED), "Daylight Sensor"));
|
||||
self::register(new DeadBush(new BID(BlockIds::DEADBUSH), "Dead Bush"));
|
||||
self::register(new DetectorRail(new BID(BlockIds::DETECTOR_RAIL), "Detector Rail"));
|
||||
self::register(new Diamond(new BID(BlockIds::DIAMOND_BLOCK), "Diamond Block"));
|
||||
self::register(new DiamondOre(new BID(BlockIds::DIAMOND_ORE), "Diamond Ore"));
|
||||
self::register(new Dirt(new BID(BlockIds::DIRT, Dirt::NORMAL), "Dirt"));
|
||||
self::register(new DoublePlant(new BID(BlockIds::DOUBLE_PLANT, 0), "Sunflower"));
|
||||
self::register(new DoublePlant(new BID(BlockIds::DOUBLE_PLANT, 1), "Lilac"));
|
||||
self::register(new DoublePlant(new BID(BlockIds::DOUBLE_PLANT, 4), "Rose Bush"));
|
||||
self::register(new DoublePlant(new BID(BlockIds::DOUBLE_PLANT, 5), "Peony"));
|
||||
self::register(new DoubleTallGrass(new BID(BlockIds::DOUBLE_PLANT, 2), "Double Tallgrass"));
|
||||
self::register(new DoubleTallGrass(new BID(BlockIds::DOUBLE_PLANT, 3), "Large Fern"));
|
||||
self::register(new DragonEgg(new BID(BlockIds::DRAGON_EGG), "Dragon Egg"));
|
||||
self::register(new Emerald(new BID(BlockIds::EMERALD_BLOCK), "Emerald Block"));
|
||||
self::register(new EmeraldOre(new BID(BlockIds::EMERALD_ORE), "Emerald Ore"));
|
||||
self::register(new EnchantingTable(new BID(BlockIds::ENCHANTING_TABLE, 0, null, \pocketmine\tile\EnchantTable::class), "Enchanting Table"));
|
||||
self::register(new EndPortalFrame(new BID(BlockIds::END_PORTAL_FRAME), "End Portal Frame"));
|
||||
self::register(new EndRod(new BID(BlockIds::END_ROD), "End Rod"));
|
||||
self::register(new EndStone(new BID(BlockIds::END_STONE), "End Stone"));
|
||||
self::register(new EndStoneBricks(new BID(BlockIds::END_BRICKS), "End Stone Bricks"));
|
||||
self::register(new EnderChest(new BID(BlockIds::ENDER_CHEST, 0, null, \pocketmine\tile\EnderChest::class), "Ender Chest"));
|
||||
self::register(new Farmland(new BID(BlockIds::FARMLAND), "Farmland"));
|
||||
self::register(new Fire(new BID(BlockIds::FIRE), "Fire Block"));
|
||||
self::register(new Flower(new BID(BlockIds::RED_FLOWER, Flower::TYPE_ALLIUM), "Allium"));
|
||||
self::register(new Flower(new BID(BlockIds::RED_FLOWER, Flower::TYPE_AZURE_BLUET), "Azure Bluet"));
|
||||
self::register(new Flower(new BID(BlockIds::RED_FLOWER, Flower::TYPE_BLUE_ORCHID), "Blue Orchid"));
|
||||
self::register(new Flower(new BID(BlockIds::RED_FLOWER, Flower::TYPE_CORNFLOWER), "Cornflower"));
|
||||
self::register(new Flower(new BID(BlockIds::RED_FLOWER, Flower::TYPE_LILY_OF_THE_VALLEY), "Lily of the Valley"));
|
||||
self::register(new Flower(new BID(BlockIds::RED_FLOWER, Flower::TYPE_ORANGE_TULIP), "Orange Tulip"));
|
||||
self::register(new Flower(new BID(BlockIds::RED_FLOWER, Flower::TYPE_OXEYE_DAISY), "Oxeye Daisy"));
|
||||
self::register(new Flower(new BID(BlockIds::RED_FLOWER, Flower::TYPE_PINK_TULIP), "Pink Tulip"));
|
||||
self::register(new Flower(new BID(BlockIds::RED_FLOWER, Flower::TYPE_POPPY), "Poppy"));
|
||||
self::register(new Flower(new BID(BlockIds::RED_FLOWER, Flower::TYPE_RED_TULIP), "Red Tulip"));
|
||||
self::register(new Flower(new BID(BlockIds::RED_FLOWER, Flower::TYPE_WHITE_TULIP), "White Tulip"));
|
||||
self::register(new FlowerPot(new BID(BlockIds::FLOWER_POT_BLOCK, 0, ItemIds::FLOWER_POT, \pocketmine\tile\FlowerPot::class), "Flower Pot"));
|
||||
self::register(new FrostedIce(new BID(BlockIds::FROSTED_ICE), "Frosted Ice"));
|
||||
self::register(new Furnace(new BlockIdentifierFlattened(BlockIds::FURNACE, BlockIds::LIT_FURNACE, 0, null, \pocketmine\tile\Furnace::class), "Furnace"));
|
||||
self::register(new Glass(new BID(BlockIds::GLASS), "Glass"));
|
||||
self::register(new GlassPane(new BID(BlockIds::GLASS_PANE), "Glass Pane"));
|
||||
self::register(new GlowingObsidian(new BID(BlockIds::GLOWINGOBSIDIAN), "Glowing Obsidian"));
|
||||
self::register(new Glowstone(new BID(BlockIds::GLOWSTONE), "Glowstone"));
|
||||
self::register(new Gold(new BID(BlockIds::GOLD_BLOCK), "Gold Block"));
|
||||
self::register(new GoldOre(new BID(BlockIds::GOLD_ORE), "Gold Ore"));
|
||||
self::register(new Grass(new BID(BlockIds::GRASS), "Grass"));
|
||||
self::register(new GrassPath(new BID(BlockIds::GRASS_PATH), "Grass Path"));
|
||||
self::register(new Gravel(new BID(BlockIds::GRAVEL), "Gravel"));
|
||||
self::register(new HardenedClay(new BID(BlockIds::HARDENED_CLAY), "Hardened Clay"));
|
||||
self::register(new HardenedGlass(new BID(BlockIds::HARD_GLASS), "Hardened Glass"));
|
||||
self::register(new HardenedGlassPane(new BID(BlockIds::HARD_GLASS_PANE), "Hardened Glass Pane"));
|
||||
self::register(new HayBale(new BID(BlockIds::HAY_BALE), "Hay Bale"));
|
||||
self::register(new Ice(new BID(BlockIds::ICE), "Ice"));
|
||||
self::register(new class(new BID(BlockIds::MONSTER_EGG), "Infested Stone") extends InfestedStone{
|
||||
public function getSilkTouchDrops(Item $item) : array{
|
||||
return [ItemFactory::get(ItemIds::STONE)];
|
||||
}
|
||||
});
|
||||
self::register(new class(new BID(Block::MONSTER_EGG, 1), "Infested Cobblestone") extends InfestedStone{
|
||||
self::register(new class(new BID(BlockIds::MONSTER_EGG, 1), "Infested Cobblestone") extends InfestedStone{
|
||||
public function getSilkTouchDrops(Item $item) : array{
|
||||
return [ItemFactory::get(ItemIds::COBBLESTONE)];
|
||||
}
|
||||
});
|
||||
self::register(new class(new BID(Block::MONSTER_EGG, 2), "Infested Stone Brick") extends InfestedStone{
|
||||
self::register(new class(new BID(BlockIds::MONSTER_EGG, 2), "Infested Stone Brick") extends InfestedStone{
|
||||
public function getSilkTouchDrops(Item $item) : array{
|
||||
return [ItemFactory::get(ItemIds::STONE_BRICK)];
|
||||
}
|
||||
});
|
||||
self::register(new class(new BID(Block::MONSTER_EGG, 3), "Infested Mossy Stone Brick") extends InfestedStone{
|
||||
self::register(new class(new BID(BlockIds::MONSTER_EGG, 3), "Infested Mossy Stone Brick") extends InfestedStone{
|
||||
public function getSilkTouchDrops(Item $item) : array{
|
||||
return [ItemFactory::get(ItemIds::STONE_BRICK, StoneBricks::MOSSY)];
|
||||
}
|
||||
});
|
||||
self::register(new class(new BID(Block::MONSTER_EGG, 4), "Infested Cracked Stone Brick") extends InfestedStone{
|
||||
self::register(new class(new BID(BlockIds::MONSTER_EGG, 4), "Infested Cracked Stone Brick") extends InfestedStone{
|
||||
public function getSilkTouchDrops(Item $item) : array{
|
||||
return [ItemFactory::get(ItemIds::STONE_BRICK, StoneBricks::CRACKED)];
|
||||
}
|
||||
});
|
||||
self::register(new class(new BID(Block::MONSTER_EGG, 5), "Infested Chiseled Stone Brick") extends InfestedStone{
|
||||
self::register(new class(new BID(BlockIds::MONSTER_EGG, 5), "Infested Chiseled Stone Brick") extends InfestedStone{
|
||||
public function getSilkTouchDrops(Item $item) : array{
|
||||
return [ItemFactory::get(ItemIds::STONE_BRICK, StoneBricks::CHISELED)];
|
||||
}
|
||||
});
|
||||
self::register(new InfoUpdate(new BID(Block::INFO_UPDATE), "update!"));
|
||||
self::register(new InfoUpdate(new BID(Block::INFO_UPDATE2), "ate!upd"));
|
||||
self::register(new InvisibleBedrock(new BID(Block::INVISIBLEBEDROCK), "Invisible Bedrock"));
|
||||
self::register(new Iron(new BID(Block::IRON_BLOCK), "Iron Block"));
|
||||
self::register(new IronBars(new BID(Block::IRON_BARS), "Iron Bars"));
|
||||
self::register(new IronDoor(new BID(Block::IRON_DOOR_BLOCK, 0, ItemIds::IRON_DOOR), "Iron Door"));
|
||||
self::register(new IronOre(new BID(Block::IRON_ORE), "Iron Ore"));
|
||||
self::register(new IronTrapdoor(new BID(Block::IRON_TRAPDOOR), "Iron Trapdoor"));
|
||||
self::register(new ItemFrame(new BID(Block::FRAME_BLOCK, 0, ItemIds::FRAME, \pocketmine\tile\ItemFrame::class), "Item Frame"));
|
||||
self::register(new Ladder(new BID(Block::LADDER), "Ladder"));
|
||||
self::register(new Lapis(new BID(Block::LAPIS_BLOCK), "Lapis Lazuli Block"));
|
||||
self::register(new LapisOre(new BID(Block::LAPIS_ORE), "Lapis Lazuli Ore"));
|
||||
self::register(new Lava(new BlockIdentifierFlattened(Block::FLOWING_LAVA, Block::STILL_LAVA), "Lava"));
|
||||
self::register(new Lever(new BID(Block::LEVER), "Lever"));
|
||||
self::register(new LitPumpkin(new BID(Block::JACK_O_LANTERN), "Jack o'Lantern"));
|
||||
self::register(new Magma(new BID(Block::MAGMA), "Magma Block"));
|
||||
self::register(new Melon(new BID(Block::MELON_BLOCK), "Melon Block"));
|
||||
self::register(new MelonStem(new BID(Block::MELON_STEM, 0, ItemIds::MELON_SEEDS), "Melon Stem"));
|
||||
self::register(new MonsterSpawner(new BID(Block::MOB_SPAWNER), "Monster Spawner"));
|
||||
self::register(new Mycelium(new BID(Block::MYCELIUM), "Mycelium"));
|
||||
self::register(new NetherBrick(new BID(Block::NETHER_BRICK_BLOCK), "Nether Bricks"));
|
||||
self::register(new NetherBrick(new BID(Block::RED_NETHER_BRICK), "Red Nether Bricks"));
|
||||
self::register(new NetherBrickFence(new BID(Block::NETHER_BRICK_FENCE), "Nether Brick Fence"));
|
||||
self::register(new NetherBrickStairs(new BID(Block::NETHER_BRICK_STAIRS), "Nether Brick Stairs"));
|
||||
self::register(new NetherPortal(new BID(Block::PORTAL), "Nether Portal"));
|
||||
self::register(new NetherQuartzOre(new BID(Block::NETHER_QUARTZ_ORE), "Nether Quartz Ore"));
|
||||
self::register(new NetherReactor(new BID(Block::NETHERREACTOR), "Nether Reactor Core"));
|
||||
self::register(new NetherWartBlock(new BID(Block::NETHER_WART_BLOCK), "Nether Wart Block"));
|
||||
self::register(new NetherWartPlant(new BID(Block::NETHER_WART_PLANT, 0, ItemIds::NETHER_WART), "Nether Wart"));
|
||||
self::register(new Netherrack(new BID(Block::NETHERRACK), "Netherrack"));
|
||||
self::register(new NoteBlock(new BID(Block::NOTEBLOCK), "Note Block"));
|
||||
self::register(new Obsidian(new BID(Block::OBSIDIAN), "Obsidian"));
|
||||
self::register(new PackedIce(new BID(Block::PACKED_ICE), "Packed Ice"));
|
||||
self::register(new Podzol(new BID(Block::PODZOL), "Podzol"));
|
||||
self::register(new Potato(new BID(Block::POTATOES), "Potato Block"));
|
||||
self::register(new PoweredRail(new BID(Block::GOLDEN_RAIL, BaseRail::STRAIGHT_NORTH_SOUTH), "Powered Rail"));
|
||||
self::register(new Prismarine(new BID(Block::PRISMARINE, Prismarine::BRICKS), "Prismarine Bricks"));
|
||||
self::register(new Prismarine(new BID(Block::PRISMARINE, Prismarine::DARK), "Dark Prismarine"));
|
||||
self::register(new Prismarine(new BID(Block::PRISMARINE, Prismarine::NORMAL), "Prismarine"));
|
||||
self::register(new Pumpkin(new BID(Block::PUMPKIN), "Pumpkin"));
|
||||
self::register(new PumpkinStem(new BID(Block::PUMPKIN_STEM, 0, ItemIds::PUMPKIN_SEEDS), "Pumpkin Stem"));
|
||||
self::register(new Purpur(new BID(Block::PURPUR_BLOCK), "Purpur Block"));
|
||||
self::register(new class(new BID(Block::PURPUR_BLOCK, 2), "Purpur Pillar") extends Purpur{
|
||||
self::register(new InfoUpdate(new BID(BlockIds::INFO_UPDATE), "update!"));
|
||||
self::register(new InfoUpdate(new BID(BlockIds::INFO_UPDATE2), "ate!upd"));
|
||||
self::register(new InvisibleBedrock(new BID(BlockIds::INVISIBLEBEDROCK), "Invisible Bedrock"));
|
||||
self::register(new Iron(new BID(BlockIds::IRON_BLOCK), "Iron Block"));
|
||||
self::register(new IronBars(new BID(BlockIds::IRON_BARS), "Iron Bars"));
|
||||
self::register(new IronDoor(new BID(BlockIds::IRON_DOOR_BLOCK, 0, ItemIds::IRON_DOOR), "Iron Door"));
|
||||
self::register(new IronOre(new BID(BlockIds::IRON_ORE), "Iron Ore"));
|
||||
self::register(new IronTrapdoor(new BID(BlockIds::IRON_TRAPDOOR), "Iron Trapdoor"));
|
||||
self::register(new ItemFrame(new BID(BlockIds::FRAME_BLOCK, 0, ItemIds::FRAME, \pocketmine\tile\ItemFrame::class), "Item Frame"));
|
||||
self::register(new Ladder(new BID(BlockIds::LADDER), "Ladder"));
|
||||
self::register(new Lapis(new BID(BlockIds::LAPIS_BLOCK), "Lapis Lazuli Block"));
|
||||
self::register(new LapisOre(new BID(BlockIds::LAPIS_ORE), "Lapis Lazuli Ore"));
|
||||
self::register(new Lava(new BlockIdentifierFlattened(BlockIds::FLOWING_LAVA, BlockIds::STILL_LAVA), "Lava"));
|
||||
self::register(new Lever(new BID(BlockIds::LEVER), "Lever"));
|
||||
self::register(new LitPumpkin(new BID(BlockIds::JACK_O_LANTERN), "Jack o'Lantern"));
|
||||
self::register(new Magma(new BID(BlockIds::MAGMA), "Magma Block"));
|
||||
self::register(new Melon(new BID(BlockIds::MELON_BLOCK), "Melon Block"));
|
||||
self::register(new MelonStem(new BID(BlockIds::MELON_STEM, 0, ItemIds::MELON_SEEDS), "Melon Stem"));
|
||||
self::register(new MonsterSpawner(new BID(BlockIds::MOB_SPAWNER), "Monster Spawner"));
|
||||
self::register(new Mycelium(new BID(BlockIds::MYCELIUM), "Mycelium"));
|
||||
self::register(new NetherBrick(new BID(BlockIds::NETHER_BRICK_BLOCK), "Nether Bricks"));
|
||||
self::register(new NetherBrick(new BID(BlockIds::RED_NETHER_BRICK), "Red Nether Bricks"));
|
||||
self::register(new NetherBrickFence(new BID(BlockIds::NETHER_BRICK_FENCE), "Nether Brick Fence"));
|
||||
self::register(new NetherBrickStairs(new BID(BlockIds::NETHER_BRICK_STAIRS), "Nether Brick Stairs"));
|
||||
self::register(new NetherPortal(new BID(BlockIds::PORTAL), "Nether Portal"));
|
||||
self::register(new NetherQuartzOre(new BID(BlockIds::NETHER_QUARTZ_ORE), "Nether Quartz Ore"));
|
||||
self::register(new NetherReactor(new BID(BlockIds::NETHERREACTOR), "Nether Reactor Core"));
|
||||
self::register(new NetherWartBlock(new BID(BlockIds::NETHER_WART_BLOCK), "Nether Wart Block"));
|
||||
self::register(new NetherWartPlant(new BID(BlockIds::NETHER_WART_PLANT, 0, ItemIds::NETHER_WART), "Nether Wart"));
|
||||
self::register(new Netherrack(new BID(BlockIds::NETHERRACK), "Netherrack"));
|
||||
self::register(new NoteBlock(new BID(BlockIds::NOTEBLOCK), "Note Block"));
|
||||
self::register(new Obsidian(new BID(BlockIds::OBSIDIAN), "Obsidian"));
|
||||
self::register(new PackedIce(new BID(BlockIds::PACKED_ICE), "Packed Ice"));
|
||||
self::register(new Podzol(new BID(BlockIds::PODZOL), "Podzol"));
|
||||
self::register(new Potato(new BID(BlockIds::POTATOES), "Potato Block"));
|
||||
self::register(new PoweredRail(new BID(BlockIds::GOLDEN_RAIL, BaseRail::STRAIGHT_NORTH_SOUTH), "Powered Rail"));
|
||||
self::register(new Prismarine(new BID(BlockIds::PRISMARINE, Prismarine::BRICKS), "Prismarine Bricks"));
|
||||
self::register(new Prismarine(new BID(BlockIds::PRISMARINE, Prismarine::DARK), "Dark Prismarine"));
|
||||
self::register(new Prismarine(new BID(BlockIds::PRISMARINE, Prismarine::NORMAL), "Prismarine"));
|
||||
self::register(new Pumpkin(new BID(BlockIds::PUMPKIN), "Pumpkin"));
|
||||
self::register(new PumpkinStem(new BID(BlockIds::PUMPKIN_STEM, 0, ItemIds::PUMPKIN_SEEDS), "Pumpkin Stem"));
|
||||
self::register(new Purpur(new BID(BlockIds::PURPUR_BLOCK), "Purpur Block"));
|
||||
self::register(new class(new BID(BlockIds::PURPUR_BLOCK, 2), "Purpur Pillar") extends Purpur{
|
||||
use PillarRotationTrait;
|
||||
});
|
||||
self::register(new PurpurStairs(new BID(Block::PURPUR_STAIRS), "Purpur Stairs"));
|
||||
self::register(new Quartz(new BID(Block::QUARTZ_BLOCK, Quartz::NORMAL), "Quartz Block"));
|
||||
self::register(new class(new BID(Block::QUARTZ_BLOCK, Quartz::CHISELED), "Chiseled Quartz Block") extends Quartz{
|
||||
self::register(new PurpurStairs(new BID(BlockIds::PURPUR_STAIRS), "Purpur Stairs"));
|
||||
self::register(new Quartz(new BID(BlockIds::QUARTZ_BLOCK, Quartz::NORMAL), "Quartz Block"));
|
||||
self::register(new class(new BID(BlockIds::QUARTZ_BLOCK, Quartz::CHISELED), "Chiseled Quartz Block") extends Quartz{
|
||||
use PillarRotationTrait;
|
||||
});
|
||||
self::register(new class(new BID(Block::QUARTZ_BLOCK, Quartz::PILLAR), "Quartz Pillar") extends Quartz{
|
||||
self::register(new class(new BID(BlockIds::QUARTZ_BLOCK, Quartz::PILLAR), "Quartz Pillar") extends Quartz{
|
||||
use PillarRotationTrait;
|
||||
});
|
||||
self::register(new Quartz(new BID(Block::QUARTZ_BLOCK, Quartz::SMOOTH), "Smooth Quartz Block")); //TODO: this has axis rotation in 1.9, unsure if a bug (https://bugs.mojang.com/browse/MCPE-39074)
|
||||
self::register(new QuartzStairs(new BID(Block::QUARTZ_STAIRS), "Quartz Stairs"));
|
||||
self::register(new Rail(new BID(Block::RAIL), "Rail"));
|
||||
self::register(new RedMushroom(new BID(Block::RED_MUSHROOM), "Red Mushroom"));
|
||||
self::register(new RedMushroomBlock(new BID(Block::RED_MUSHROOM_BLOCK), "Red Mushroom Block"));
|
||||
self::register(new Redstone(new BID(Block::REDSTONE_BLOCK), "Redstone Block"));
|
||||
self::register(new RedstoneComparator(new BlockIdentifierFlattened(Block::UNPOWERED_COMPARATOR, Block::POWERED_COMPARATOR, 0, ItemIds::COMPARATOR, Comparator::class), "Redstone Comparator"));
|
||||
self::register(new RedstoneLamp(new BlockIdentifierFlattened(Block::REDSTONE_LAMP, Block::LIT_REDSTONE_LAMP), "Redstone Lamp"));
|
||||
self::register(new RedstoneOre(new BlockIdentifierFlattened(Block::REDSTONE_ORE, Block::LIT_REDSTONE_ORE), "Redstone Ore"));
|
||||
self::register(new RedstoneRepeater(new BlockIdentifierFlattened(Block::UNPOWERED_REPEATER, Block::POWERED_REPEATER, 0, ItemIds::REPEATER), "Redstone Repeater"));
|
||||
self::register(new RedstoneTorch(new BlockIdentifierFlattened(Block::REDSTONE_TORCH, Block::UNLIT_REDSTONE_TORCH), "Redstone Torch"));
|
||||
self::register(new RedstoneWire(new BID(Block::REDSTONE_WIRE, 0, ItemIds::REDSTONE), "Redstone"));
|
||||
self::register(new Reserved6(new BID(Block::RESERVED6), "reserved6"));
|
||||
self::register(new Sand(new BID(Block::SAND), "Sand"));
|
||||
self::register(new Sand(new BID(Block::SAND, 1), "Red Sand"));
|
||||
self::register(new SandstoneStairs(new BID(Block::RED_SANDSTONE_STAIRS), "Red Sandstone Stairs"));
|
||||
self::register(new SandstoneStairs(new BID(Block::SANDSTONE_STAIRS), "Sandstone Stairs"));
|
||||
self::register(new SeaLantern(new BID(Block::SEALANTERN), "Sea Lantern"));
|
||||
self::register(new SeaPickle(new BID(Block::SEA_PICKLE), "Sea Pickle"));
|
||||
self::register(new Skull(new BID(Block::MOB_HEAD_BLOCK, 0, null, \pocketmine\tile\Skull::class), "Mob Head"));
|
||||
self::register(new SmoothStone(new BID(Block::STONE, Stone::NORMAL), "Stone"));
|
||||
self::register(new Snow(new BID(Block::SNOW), "Snow Block"));
|
||||
self::register(new SnowLayer(new BID(Block::SNOW_LAYER), "Snow Layer"));
|
||||
self::register(new SoulSand(new BID(Block::SOUL_SAND), "Soul Sand"));
|
||||
self::register(new Sponge(new BID(Block::SPONGE), "Sponge"));
|
||||
self::register(new Stone(new BID(Block::STONE, Stone::ANDESITE), "Andesite"));
|
||||
self::register(new Stone(new BID(Block::STONE, Stone::DIORITE), "Diorite"));
|
||||
self::register(new Stone(new BID(Block::STONE, Stone::GRANITE), "Granite"));
|
||||
self::register(new Stone(new BID(Block::STONE, Stone::POLISHED_ANDESITE), "Polished Andesite"));
|
||||
self::register(new Stone(new BID(Block::STONE, Stone::POLISHED_DIORITE), "Polished Diorite"));
|
||||
self::register(new Stone(new BID(Block::STONE, Stone::POLISHED_GRANITE), "Polished Granite"));
|
||||
self::register(new StoneBrickStairs(new BID(Block::STONE_BRICK_STAIRS), "Stone Brick Stairs"));
|
||||
self::register(new StoneBricks(new BID(Block::STONEBRICK, StoneBricks::CHISELED), "Chiseled Stone Bricks"));
|
||||
self::register(new StoneBricks(new BID(Block::STONEBRICK, StoneBricks::CRACKED), "Cracked Stone Bricks"));
|
||||
self::register(new StoneBricks(new BID(Block::STONEBRICK, StoneBricks::MOSSY), "Mossy Stone Bricks"));
|
||||
self::register(new StoneBricks(new BID(Block::STONEBRICK, StoneBricks::NORMAL), "Stone Bricks"));
|
||||
self::register(new StoneButton(new BID(Block::STONE_BUTTON), "Stone Button"));
|
||||
self::register(new StonePressurePlate(new BID(Block::STONE_PRESSURE_PLATE), "Stone Pressure Plate"));
|
||||
self::register(new StoneSlab(new BlockIdentifierFlattened(Block::STONE_SLAB, Block::DOUBLE_STONE_SLAB, 0), "Stone"));
|
||||
self::register(new StoneSlab(new BlockIdentifierFlattened(Block::STONE_SLAB, Block::DOUBLE_STONE_SLAB, 1), "Sandstone"));
|
||||
self::register(new StoneSlab(new BlockIdentifierFlattened(Block::STONE_SLAB, Block::DOUBLE_STONE_SLAB, 2), "Fake Wooden"));
|
||||
self::register(new StoneSlab(new BlockIdentifierFlattened(Block::STONE_SLAB, Block::DOUBLE_STONE_SLAB, 3), "Cobblestone"));
|
||||
self::register(new StoneSlab(new BlockIdentifierFlattened(Block::STONE_SLAB, Block::DOUBLE_STONE_SLAB, 4), "Brick"));
|
||||
self::register(new StoneSlab(new BlockIdentifierFlattened(Block::STONE_SLAB, Block::DOUBLE_STONE_SLAB, 5), "Stone Brick"));
|
||||
self::register(new StoneSlab(new BlockIdentifierFlattened(Block::STONE_SLAB, Block::DOUBLE_STONE_SLAB, 6), "Quartz"));
|
||||
self::register(new StoneSlab(new BlockIdentifierFlattened(Block::STONE_SLAB, Block::DOUBLE_STONE_SLAB, 7), "Nether Brick"));
|
||||
self::register(new StoneSlab(new BlockIdentifierFlattened(Block::STONE_SLAB2, Block::DOUBLE_STONE_SLAB2, 0), "Red Sandstone"));
|
||||
self::register(new StoneSlab(new BlockIdentifierFlattened(Block::STONE_SLAB2, Block::DOUBLE_STONE_SLAB2, 1), "Purpur"));
|
||||
self::register(new StoneSlab(new BlockIdentifierFlattened(Block::STONE_SLAB2, Block::DOUBLE_STONE_SLAB2, 2), "Prismarine"));
|
||||
self::register(new StoneSlab(new BlockIdentifierFlattened(Block::STONE_SLAB2, Block::DOUBLE_STONE_SLAB2, 3), "Dark Prismarine"));
|
||||
self::register(new StoneSlab(new BlockIdentifierFlattened(Block::STONE_SLAB2, Block::DOUBLE_STONE_SLAB2, 4), "Prismarine Bricks"));
|
||||
self::register(new StoneSlab(new BlockIdentifierFlattened(Block::STONE_SLAB2, Block::DOUBLE_STONE_SLAB2, 5), "Mossy Cobblestone"));
|
||||
self::register(new StoneSlab(new BlockIdentifierFlattened(Block::STONE_SLAB2, Block::DOUBLE_STONE_SLAB2, 6), "Smooth Sandstone"));
|
||||
self::register(new StoneSlab(new BlockIdentifierFlattened(Block::STONE_SLAB2, Block::DOUBLE_STONE_SLAB2, 7), "Red Nether Brick"));
|
||||
self::register(new Stonecutter(new BID(Block::STONECUTTER), "Stonecutter"));
|
||||
self::register(new Sugarcane(new BID(Block::REEDS_BLOCK, 0, ItemIds::REEDS), "Sugarcane"));
|
||||
self::register(new TNT(new BID(Block::TNT), "TNT"));
|
||||
self::register(new TallGrass(new BID(Block::TALLGRASS), "Fern"));
|
||||
self::register(new TallGrass(new BID(Block::TALLGRASS, 1), "Tall Grass"));
|
||||
self::register(new TallGrass(new BID(Block::TALLGRASS, 2), "Fern"));
|
||||
self::register(new TallGrass(new BID(Block::TALLGRASS, 3), "Fern"));
|
||||
self::register(new Torch(new BID(Block::COLORED_TORCH_BP), "Blue Torch"));
|
||||
self::register(new Torch(new BID(Block::COLORED_TORCH_BP, 8), "Purple Torch"));
|
||||
self::register(new Torch(new BID(Block::COLORED_TORCH_RG), "Red Torch"));
|
||||
self::register(new Torch(new BID(Block::COLORED_TORCH_RG, 8), "Green Torch"));
|
||||
self::register(new Torch(new BID(Block::TORCH), "Torch"));
|
||||
self::register(new TrappedChest(new BID(Block::TRAPPED_CHEST, 0, null, \pocketmine\tile\Chest::class), "Trapped Chest"));
|
||||
self::register(new Tripwire(new BID(Block::TRIPWIRE, 0, ItemIds::STRING), "Tripwire"));
|
||||
self::register(new TripwireHook(new BID(Block::TRIPWIRE_HOOK), "Tripwire Hook"));
|
||||
self::register(new UnderwaterTorch(new BID(Block::UNDERWATER_TORCH), "Underwater Torch"));
|
||||
self::register(new Vine(new BID(Block::VINE), "Vines"));
|
||||
self::register(new Water(new BlockIdentifierFlattened(Block::FLOWING_WATER, Block::STILL_WATER), "Water"));
|
||||
self::register(new WaterLily(new BID(Block::LILY_PAD), "Lily Pad"));
|
||||
self::register(new WeightedPressurePlateHeavy(new BID(Block::HEAVY_WEIGHTED_PRESSURE_PLATE), "Weighted Pressure Plate Heavy"));
|
||||
self::register(new WeightedPressurePlateLight(new BID(Block::LIGHT_WEIGHTED_PRESSURE_PLATE), "Weighted Pressure Plate Light"));
|
||||
self::register(new Wheat(new BID(Block::WHEAT_BLOCK), "Wheat Block"));
|
||||
self::register(new Quartz(new BID(BlockIds::QUARTZ_BLOCK, Quartz::SMOOTH), "Smooth Quartz Block")); //TODO: this has axis rotation in 1.9, unsure if a bug (https://bugs.mojang.com/browse/MCPE-39074)
|
||||
self::register(new QuartzStairs(new BID(BlockIds::QUARTZ_STAIRS), "Quartz Stairs"));
|
||||
self::register(new Rail(new BID(BlockIds::RAIL), "Rail"));
|
||||
self::register(new RedMushroom(new BID(BlockIds::RED_MUSHROOM), "Red Mushroom"));
|
||||
self::register(new RedMushroomBlock(new BID(BlockIds::RED_MUSHROOM_BLOCK), "Red Mushroom Block"));
|
||||
self::register(new Redstone(new BID(BlockIds::REDSTONE_BLOCK), "Redstone Block"));
|
||||
self::register(new RedstoneComparator(new BlockIdentifierFlattened(BlockIds::UNPOWERED_COMPARATOR, BlockIds::POWERED_COMPARATOR, 0, ItemIds::COMPARATOR, Comparator::class), "Redstone Comparator"));
|
||||
self::register(new RedstoneLamp(new BlockIdentifierFlattened(BlockIds::REDSTONE_LAMP, BlockIds::LIT_REDSTONE_LAMP), "Redstone Lamp"));
|
||||
self::register(new RedstoneOre(new BlockIdentifierFlattened(BlockIds::REDSTONE_ORE, BlockIds::LIT_REDSTONE_ORE), "Redstone Ore"));
|
||||
self::register(new RedstoneRepeater(new BlockIdentifierFlattened(BlockIds::UNPOWERED_REPEATER, BlockIds::POWERED_REPEATER, 0, ItemIds::REPEATER), "Redstone Repeater"));
|
||||
self::register(new RedstoneTorch(new BlockIdentifierFlattened(BlockIds::REDSTONE_TORCH, BlockIds::UNLIT_REDSTONE_TORCH), "Redstone Torch"));
|
||||
self::register(new RedstoneWire(new BID(BlockIds::REDSTONE_WIRE, 0, ItemIds::REDSTONE), "Redstone"));
|
||||
self::register(new Reserved6(new BID(BlockIds::RESERVED6), "reserved6"));
|
||||
self::register(new Sand(new BID(BlockIds::SAND), "Sand"));
|
||||
self::register(new Sand(new BID(BlockIds::SAND, 1), "Red Sand"));
|
||||
self::register(new SandstoneStairs(new BID(BlockIds::RED_SANDSTONE_STAIRS), "Red Sandstone Stairs"));
|
||||
self::register(new SandstoneStairs(new BID(BlockIds::SANDSTONE_STAIRS), "Sandstone Stairs"));
|
||||
self::register(new SeaLantern(new BID(BlockIds::SEALANTERN), "Sea Lantern"));
|
||||
self::register(new SeaPickle(new BID(BlockIds::SEA_PICKLE), "Sea Pickle"));
|
||||
self::register(new Skull(new BID(BlockIds::MOB_HEAD_BLOCK, 0, null, \pocketmine\tile\Skull::class), "Mob Head"));
|
||||
self::register(new SmoothStone(new BID(BlockIds::STONE, Stone::NORMAL), "Stone"));
|
||||
self::register(new Snow(new BID(BlockIds::SNOW), "Snow Block"));
|
||||
self::register(new SnowLayer(new BID(BlockIds::SNOW_LAYER), "Snow Layer"));
|
||||
self::register(new SoulSand(new BID(BlockIds::SOUL_SAND), "Soul Sand"));
|
||||
self::register(new Sponge(new BID(BlockIds::SPONGE), "Sponge"));
|
||||
self::register(new Stone(new BID(BlockIds::STONE, Stone::ANDESITE), "Andesite"));
|
||||
self::register(new Stone(new BID(BlockIds::STONE, Stone::DIORITE), "Diorite"));
|
||||
self::register(new Stone(new BID(BlockIds::STONE, Stone::GRANITE), "Granite"));
|
||||
self::register(new Stone(new BID(BlockIds::STONE, Stone::POLISHED_ANDESITE), "Polished Andesite"));
|
||||
self::register(new Stone(new BID(BlockIds::STONE, Stone::POLISHED_DIORITE), "Polished Diorite"));
|
||||
self::register(new Stone(new BID(BlockIds::STONE, Stone::POLISHED_GRANITE), "Polished Granite"));
|
||||
self::register(new StoneBrickStairs(new BID(BlockIds::STONE_BRICK_STAIRS), "Stone Brick Stairs"));
|
||||
self::register(new StoneBricks(new BID(BlockIds::STONEBRICK, StoneBricks::CHISELED), "Chiseled Stone Bricks"));
|
||||
self::register(new StoneBricks(new BID(BlockIds::STONEBRICK, StoneBricks::CRACKED), "Cracked Stone Bricks"));
|
||||
self::register(new StoneBricks(new BID(BlockIds::STONEBRICK, StoneBricks::MOSSY), "Mossy Stone Bricks"));
|
||||
self::register(new StoneBricks(new BID(BlockIds::STONEBRICK, StoneBricks::NORMAL), "Stone Bricks"));
|
||||
self::register(new StoneButton(new BID(BlockIds::STONE_BUTTON), "Stone Button"));
|
||||
self::register(new StonePressurePlate(new BID(BlockIds::STONE_PRESSURE_PLATE), "Stone Pressure Plate"));
|
||||
self::register(new StoneSlab(new BlockIdentifierFlattened(BlockIds::STONE_SLAB, BlockIds::DOUBLE_STONE_SLAB, 0), "Stone"));
|
||||
self::register(new StoneSlab(new BlockIdentifierFlattened(BlockIds::STONE_SLAB, BlockIds::DOUBLE_STONE_SLAB, 1), "Sandstone"));
|
||||
self::register(new StoneSlab(new BlockIdentifierFlattened(BlockIds::STONE_SLAB, BlockIds::DOUBLE_STONE_SLAB, 2), "Fake Wooden"));
|
||||
self::register(new StoneSlab(new BlockIdentifierFlattened(BlockIds::STONE_SLAB, BlockIds::DOUBLE_STONE_SLAB, 3), "Cobblestone"));
|
||||
self::register(new StoneSlab(new BlockIdentifierFlattened(BlockIds::STONE_SLAB, BlockIds::DOUBLE_STONE_SLAB, 4), "Brick"));
|
||||
self::register(new StoneSlab(new BlockIdentifierFlattened(BlockIds::STONE_SLAB, BlockIds::DOUBLE_STONE_SLAB, 5), "Stone Brick"));
|
||||
self::register(new StoneSlab(new BlockIdentifierFlattened(BlockIds::STONE_SLAB, BlockIds::DOUBLE_STONE_SLAB, 6), "Quartz"));
|
||||
self::register(new StoneSlab(new BlockIdentifierFlattened(BlockIds::STONE_SLAB, BlockIds::DOUBLE_STONE_SLAB, 7), "Nether Brick"));
|
||||
self::register(new StoneSlab(new BlockIdentifierFlattened(BlockIds::STONE_SLAB2, BlockIds::DOUBLE_STONE_SLAB2, 0), "Red Sandstone"));
|
||||
self::register(new StoneSlab(new BlockIdentifierFlattened(BlockIds::STONE_SLAB2, BlockIds::DOUBLE_STONE_SLAB2, 1), "Purpur"));
|
||||
self::register(new StoneSlab(new BlockIdentifierFlattened(BlockIds::STONE_SLAB2, BlockIds::DOUBLE_STONE_SLAB2, 2), "Prismarine"));
|
||||
self::register(new StoneSlab(new BlockIdentifierFlattened(BlockIds::STONE_SLAB2, BlockIds::DOUBLE_STONE_SLAB2, 3), "Dark Prismarine"));
|
||||
self::register(new StoneSlab(new BlockIdentifierFlattened(BlockIds::STONE_SLAB2, BlockIds::DOUBLE_STONE_SLAB2, 4), "Prismarine Bricks"));
|
||||
self::register(new StoneSlab(new BlockIdentifierFlattened(BlockIds::STONE_SLAB2, BlockIds::DOUBLE_STONE_SLAB2, 5), "Mossy Cobblestone"));
|
||||
self::register(new StoneSlab(new BlockIdentifierFlattened(BlockIds::STONE_SLAB2, BlockIds::DOUBLE_STONE_SLAB2, 6), "Smooth Sandstone"));
|
||||
self::register(new StoneSlab(new BlockIdentifierFlattened(BlockIds::STONE_SLAB2, BlockIds::DOUBLE_STONE_SLAB2, 7), "Red Nether Brick"));
|
||||
self::register(new Stonecutter(new BID(BlockIds::STONECUTTER), "Stonecutter"));
|
||||
self::register(new Sugarcane(new BID(BlockIds::REEDS_BLOCK, 0, ItemIds::REEDS), "Sugarcane"));
|
||||
self::register(new TNT(new BID(BlockIds::TNT), "TNT"));
|
||||
self::register(new TallGrass(new BID(BlockIds::TALLGRASS), "Fern"));
|
||||
self::register(new TallGrass(new BID(BlockIds::TALLGRASS, 1), "Tall Grass"));
|
||||
self::register(new TallGrass(new BID(BlockIds::TALLGRASS, 2), "Fern"));
|
||||
self::register(new TallGrass(new BID(BlockIds::TALLGRASS, 3), "Fern"));
|
||||
self::register(new Torch(new BID(BlockIds::COLORED_TORCH_BP), "Blue Torch"));
|
||||
self::register(new Torch(new BID(BlockIds::COLORED_TORCH_BP, 8), "Purple Torch"));
|
||||
self::register(new Torch(new BID(BlockIds::COLORED_TORCH_RG), "Red Torch"));
|
||||
self::register(new Torch(new BID(BlockIds::COLORED_TORCH_RG, 8), "Green Torch"));
|
||||
self::register(new Torch(new BID(BlockIds::TORCH), "Torch"));
|
||||
self::register(new TrappedChest(new BID(BlockIds::TRAPPED_CHEST, 0, null, \pocketmine\tile\Chest::class), "Trapped Chest"));
|
||||
self::register(new Tripwire(new BID(BlockIds::TRIPWIRE, 0, ItemIds::STRING), "Tripwire"));
|
||||
self::register(new TripwireHook(new BID(BlockIds::TRIPWIRE_HOOK), "Tripwire Hook"));
|
||||
self::register(new UnderwaterTorch(new BID(BlockIds::UNDERWATER_TORCH), "Underwater Torch"));
|
||||
self::register(new Vine(new BID(BlockIds::VINE), "Vines"));
|
||||
self::register(new Water(new BlockIdentifierFlattened(BlockIds::FLOWING_WATER, BlockIds::STILL_WATER), "Water"));
|
||||
self::register(new WaterLily(new BID(BlockIds::LILY_PAD), "Lily Pad"));
|
||||
self::register(new WeightedPressurePlateHeavy(new BID(BlockIds::HEAVY_WEIGHTED_PRESSURE_PLATE), "Weighted Pressure Plate Heavy"));
|
||||
self::register(new WeightedPressurePlateLight(new BID(BlockIds::LIGHT_WEIGHTED_PRESSURE_PLATE), "Weighted Pressure Plate Light"));
|
||||
self::register(new Wheat(new BID(BlockIds::WHEAT_BLOCK), "Wheat Block"));
|
||||
|
||||
/** @var int[]|\SplObjectStorage $woodenStairIds */
|
||||
$woodenStairIds = new \SplObjectStorage();
|
||||
$woodenStairIds[TreeType::OAK()] = Block::OAK_STAIRS;
|
||||
$woodenStairIds[TreeType::SPRUCE()] = Block::SPRUCE_STAIRS;
|
||||
$woodenStairIds[TreeType::BIRCH()] = Block::BIRCH_STAIRS;
|
||||
$woodenStairIds[TreeType::JUNGLE()] = Block::JUNGLE_STAIRS;
|
||||
$woodenStairIds[TreeType::ACACIA()] = Block::ACACIA_STAIRS;
|
||||
$woodenStairIds[TreeType::DARK_OAK()] = Block::DARK_OAK_STAIRS;
|
||||
$woodenStairIds[TreeType::OAK()] = BlockIds::OAK_STAIRS;
|
||||
$woodenStairIds[TreeType::SPRUCE()] = BlockIds::SPRUCE_STAIRS;
|
||||
$woodenStairIds[TreeType::BIRCH()] = BlockIds::BIRCH_STAIRS;
|
||||
$woodenStairIds[TreeType::JUNGLE()] = BlockIds::JUNGLE_STAIRS;
|
||||
$woodenStairIds[TreeType::ACACIA()] = BlockIds::ACACIA_STAIRS;
|
||||
$woodenStairIds[TreeType::DARK_OAK()] = BlockIds::DARK_OAK_STAIRS;
|
||||
|
||||
/** @var int[]|\SplObjectStorage $fenceGateIds */
|
||||
$fenceGateIds = new \SplObjectStorage();
|
||||
$fenceGateIds[TreeType::OAK()] = Block::OAK_FENCE_GATE;
|
||||
$fenceGateIds[TreeType::SPRUCE()] = Block::SPRUCE_FENCE_GATE;
|
||||
$fenceGateIds[TreeType::BIRCH()] = Block::BIRCH_FENCE_GATE;
|
||||
$fenceGateIds[TreeType::JUNGLE()] = Block::JUNGLE_FENCE_GATE;
|
||||
$fenceGateIds[TreeType::ACACIA()] = Block::ACACIA_FENCE_GATE;
|
||||
$fenceGateIds[TreeType::DARK_OAK()] = Block::DARK_OAK_FENCE_GATE;
|
||||
$fenceGateIds[TreeType::OAK()] = BlockIds::OAK_FENCE_GATE;
|
||||
$fenceGateIds[TreeType::SPRUCE()] = BlockIds::SPRUCE_FENCE_GATE;
|
||||
$fenceGateIds[TreeType::BIRCH()] = BlockIds::BIRCH_FENCE_GATE;
|
||||
$fenceGateIds[TreeType::JUNGLE()] = BlockIds::JUNGLE_FENCE_GATE;
|
||||
$fenceGateIds[TreeType::ACACIA()] = BlockIds::ACACIA_FENCE_GATE;
|
||||
$fenceGateIds[TreeType::DARK_OAK()] = BlockIds::DARK_OAK_FENCE_GATE;
|
||||
|
||||
/** @var BID[]|\SplObjectStorage $woodenDoorIds */
|
||||
$woodenDoorIds = new \SplObjectStorage();
|
||||
$woodenDoorIds[TreeType::OAK()] = new BID(Block::OAK_DOOR_BLOCK, 0, ItemIds::OAK_DOOR);
|
||||
$woodenDoorIds[TreeType::SPRUCE()] = new BID(Block::SPRUCE_DOOR_BLOCK, 0, ItemIds::SPRUCE_DOOR);
|
||||
$woodenDoorIds[TreeType::BIRCH()] = new BID(Block::BIRCH_DOOR_BLOCK, 0, ItemIds::BIRCH_DOOR);
|
||||
$woodenDoorIds[TreeType::JUNGLE()] = new BID(Block::JUNGLE_DOOR_BLOCK, 0, ItemIds::JUNGLE_DOOR);
|
||||
$woodenDoorIds[TreeType::ACACIA()] = new BID(Block::ACACIA_DOOR_BLOCK, 0, ItemIds::ACACIA_DOOR);
|
||||
$woodenDoorIds[TreeType::DARK_OAK()] = new BID(Block::DARK_OAK_DOOR_BLOCK, 0, ItemIds::DARK_OAK_DOOR);
|
||||
$woodenDoorIds[TreeType::OAK()] = new BID(BlockIds::OAK_DOOR_BLOCK, 0, ItemIds::OAK_DOOR);
|
||||
$woodenDoorIds[TreeType::SPRUCE()] = new BID(BlockIds::SPRUCE_DOOR_BLOCK, 0, ItemIds::SPRUCE_DOOR);
|
||||
$woodenDoorIds[TreeType::BIRCH()] = new BID(BlockIds::BIRCH_DOOR_BLOCK, 0, ItemIds::BIRCH_DOOR);
|
||||
$woodenDoorIds[TreeType::JUNGLE()] = new BID(BlockIds::JUNGLE_DOOR_BLOCK, 0, ItemIds::JUNGLE_DOOR);
|
||||
$woodenDoorIds[TreeType::ACACIA()] = new BID(BlockIds::ACACIA_DOOR_BLOCK, 0, ItemIds::ACACIA_DOOR);
|
||||
$woodenDoorIds[TreeType::DARK_OAK()] = new BID(BlockIds::DARK_OAK_DOOR_BLOCK, 0, ItemIds::DARK_OAK_DOOR);
|
||||
|
||||
/** @var int[]|\SplObjectStorage $woodenPressurePlateIds */
|
||||
$woodenPressurePlateIds = new \SplObjectStorage();
|
||||
$woodenPressurePlateIds[TreeType::OAK()] = Block::WOODEN_PRESSURE_PLATE;
|
||||
$woodenPressurePlateIds[TreeType::SPRUCE()] = Block::SPRUCE_PRESSURE_PLATE;
|
||||
$woodenPressurePlateIds[TreeType::BIRCH()] = Block::BIRCH_PRESSURE_PLATE;
|
||||
$woodenPressurePlateIds[TreeType::JUNGLE()] = Block::JUNGLE_PRESSURE_PLATE;
|
||||
$woodenPressurePlateIds[TreeType::ACACIA()] = Block::ACACIA_PRESSURE_PLATE;
|
||||
$woodenPressurePlateIds[TreeType::DARK_OAK()] = Block::DARK_OAK_PRESSURE_PLATE;
|
||||
$woodenPressurePlateIds[TreeType::OAK()] = BlockIds::WOODEN_PRESSURE_PLATE;
|
||||
$woodenPressurePlateIds[TreeType::SPRUCE()] = BlockIds::SPRUCE_PRESSURE_PLATE;
|
||||
$woodenPressurePlateIds[TreeType::BIRCH()] = BlockIds::BIRCH_PRESSURE_PLATE;
|
||||
$woodenPressurePlateIds[TreeType::JUNGLE()] = BlockIds::JUNGLE_PRESSURE_PLATE;
|
||||
$woodenPressurePlateIds[TreeType::ACACIA()] = BlockIds::ACACIA_PRESSURE_PLATE;
|
||||
$woodenPressurePlateIds[TreeType::DARK_OAK()] = BlockIds::DARK_OAK_PRESSURE_PLATE;
|
||||
|
||||
/** @var int[]|\SplObjectStorage $woodenButtonIds */
|
||||
$woodenButtonIds = new \SplObjectStorage();
|
||||
$woodenButtonIds[TreeType::OAK()] = Block::WOODEN_BUTTON;
|
||||
$woodenButtonIds[TreeType::SPRUCE()] = Block::SPRUCE_BUTTON;
|
||||
$woodenButtonIds[TreeType::BIRCH()] = Block::BIRCH_BUTTON;
|
||||
$woodenButtonIds[TreeType::JUNGLE()] = Block::JUNGLE_BUTTON;
|
||||
$woodenButtonIds[TreeType::ACACIA()] = Block::ACACIA_BUTTON;
|
||||
$woodenButtonIds[TreeType::DARK_OAK()] = Block::DARK_OAK_BUTTON;
|
||||
$woodenButtonIds[TreeType::OAK()] = BlockIds::WOODEN_BUTTON;
|
||||
$woodenButtonIds[TreeType::SPRUCE()] = BlockIds::SPRUCE_BUTTON;
|
||||
$woodenButtonIds[TreeType::BIRCH()] = BlockIds::BIRCH_BUTTON;
|
||||
$woodenButtonIds[TreeType::JUNGLE()] = BlockIds::JUNGLE_BUTTON;
|
||||
$woodenButtonIds[TreeType::ACACIA()] = BlockIds::ACACIA_BUTTON;
|
||||
$woodenButtonIds[TreeType::DARK_OAK()] = BlockIds::DARK_OAK_BUTTON;
|
||||
|
||||
/** @var int[]|\SplObjectStorage $woodenTrapdoorIds */
|
||||
$woodenTrapdoorIds = new \SplObjectStorage();
|
||||
$woodenTrapdoorIds[TreeType::OAK()] = Block::WOODEN_TRAPDOOR;
|
||||
$woodenTrapdoorIds[TreeType::SPRUCE()] = Block::SPRUCE_TRAPDOOR;
|
||||
$woodenTrapdoorIds[TreeType::BIRCH()] = Block::BIRCH_TRAPDOOR;
|
||||
$woodenTrapdoorIds[TreeType::JUNGLE()] = Block::JUNGLE_TRAPDOOR;
|
||||
$woodenTrapdoorIds[TreeType::ACACIA()] = Block::ACACIA_TRAPDOOR;
|
||||
$woodenTrapdoorIds[TreeType::DARK_OAK()] = Block::DARK_OAK_TRAPDOOR;
|
||||
$woodenTrapdoorIds[TreeType::OAK()] = BlockIds::WOODEN_TRAPDOOR;
|
||||
$woodenTrapdoorIds[TreeType::SPRUCE()] = BlockIds::SPRUCE_TRAPDOOR;
|
||||
$woodenTrapdoorIds[TreeType::BIRCH()] = BlockIds::BIRCH_TRAPDOOR;
|
||||
$woodenTrapdoorIds[TreeType::JUNGLE()] = BlockIds::JUNGLE_TRAPDOOR;
|
||||
$woodenTrapdoorIds[TreeType::ACACIA()] = BlockIds::ACACIA_TRAPDOOR;
|
||||
$woodenTrapdoorIds[TreeType::DARK_OAK()] = BlockIds::DARK_OAK_TRAPDOOR;
|
||||
|
||||
/** @var BlockIdentifierFlattened[]|\SplObjectStorage $woodenSignIds */
|
||||
$woodenSignIds = new \SplObjectStorage();
|
||||
$woodenSignIds[TreeType::OAK()] = new BlockIdentifierFlattened(Block::SIGN_POST, Block::WALL_SIGN, 0, ItemIds::SIGN, \pocketmine\tile\Sign::class);
|
||||
$woodenSignIds[TreeType::SPRUCE()] = new BlockIdentifierFlattened(Block::SPRUCE_STANDING_SIGN, Block::SPRUCE_WALL_SIGN, 0, ItemIds::SPRUCE_SIGN, \pocketmine\tile\Sign::class);
|
||||
$woodenSignIds[TreeType::BIRCH()] = new BlockIdentifierFlattened(Block::BIRCH_STANDING_SIGN, Block::BIRCH_WALL_SIGN, 0, ItemIds::BIRCH_SIGN, \pocketmine\tile\Sign::class);
|
||||
$woodenSignIds[TreeType::JUNGLE()] = new BlockIdentifierFlattened(Block::JUNGLE_STANDING_SIGN, Block::JUNGLE_WALL_SIGN, 0, ItemIds::JUNGLE_SIGN, \pocketmine\tile\Sign::class);
|
||||
$woodenSignIds[TreeType::ACACIA()] = new BlockIdentifierFlattened(Block::ACACIA_STANDING_SIGN, Block::ACACIA_WALL_SIGN, 0, ItemIds::ACACIA_SIGN, \pocketmine\tile\Sign::class);
|
||||
$woodenSignIds[TreeType::DARK_OAK()] = new BlockIdentifierFlattened(Block::DARKOAK_STANDING_SIGN, Block::DARKOAK_WALL_SIGN, 0, ItemIds::DARKOAK_SIGN, \pocketmine\tile\Sign::class);
|
||||
$woodenSignIds[TreeType::OAK()] = new BlockIdentifierFlattened(BlockIds::SIGN_POST, BlockIds::WALL_SIGN, 0, ItemIds::SIGN, \pocketmine\tile\Sign::class);
|
||||
$woodenSignIds[TreeType::SPRUCE()] = new BlockIdentifierFlattened(BlockIds::SPRUCE_STANDING_SIGN, BlockIds::SPRUCE_WALL_SIGN, 0, ItemIds::SPRUCE_SIGN, \pocketmine\tile\Sign::class);
|
||||
$woodenSignIds[TreeType::BIRCH()] = new BlockIdentifierFlattened(BlockIds::BIRCH_STANDING_SIGN, BlockIds::BIRCH_WALL_SIGN, 0, ItemIds::BIRCH_SIGN, \pocketmine\tile\Sign::class);
|
||||
$woodenSignIds[TreeType::JUNGLE()] = new BlockIdentifierFlattened(BlockIds::JUNGLE_STANDING_SIGN, BlockIds::JUNGLE_WALL_SIGN, 0, ItemIds::JUNGLE_SIGN, \pocketmine\tile\Sign::class);
|
||||
$woodenSignIds[TreeType::ACACIA()] = new BlockIdentifierFlattened(BlockIds::ACACIA_STANDING_SIGN, BlockIds::ACACIA_WALL_SIGN, 0, ItemIds::ACACIA_SIGN, \pocketmine\tile\Sign::class);
|
||||
$woodenSignIds[TreeType::DARK_OAK()] = new BlockIdentifierFlattened(BlockIds::DARKOAK_STANDING_SIGN, BlockIds::DARKOAK_WALL_SIGN, 0, ItemIds::DARKOAK_SIGN, \pocketmine\tile\Sign::class);
|
||||
|
||||
foreach(TreeType::getAll() as $treeType){
|
||||
$magicNumber = $treeType->getMagicNumber();
|
||||
$name = $treeType->getDisplayName();
|
||||
self::register(new Planks(new BID(Block::PLANKS, $magicNumber), $name . " Planks"));
|
||||
self::register(new Sapling(new BID(Block::SAPLING, $magicNumber), $name . " Sapling", $treeType));
|
||||
self::register(new WoodenFence(new BID(Block::FENCE, $magicNumber), $name . " Fence"));
|
||||
self::register(new WoodenSlab(new BlockIdentifierFlattened(Block::WOODEN_SLAB, Block::DOUBLE_WOODEN_SLAB, $treeType->getMagicNumber()), $treeType->getDisplayName()));
|
||||
self::register(new Planks(new BID(BlockIds::PLANKS, $magicNumber), $name . " Planks"));
|
||||
self::register(new Sapling(new BID(BlockIds::SAPLING, $magicNumber), $name . " Sapling", $treeType));
|
||||
self::register(new WoodenFence(new BID(BlockIds::FENCE, $magicNumber), $name . " Fence"));
|
||||
self::register(new WoodenSlab(new BlockIdentifierFlattened(BlockIds::WOODEN_SLAB, BlockIds::DOUBLE_WOODEN_SLAB, $treeType->getMagicNumber()), $treeType->getDisplayName()));
|
||||
|
||||
//TODO: find a better way to deal with this split
|
||||
self::register(new Leaves(new BID($magicNumber >= 4 ? Block::LEAVES2 : Block::LEAVES, $magicNumber & 0x03), $name . " Leaves", $treeType));
|
||||
self::register(new Log(new BID($magicNumber >= 4 ? Block::LOG2 : Block::LOG, $magicNumber & 0x03), $name . " Log", $treeType));
|
||||
self::register(new Leaves(new BID($magicNumber >= 4 ? BlockIds::LEAVES2 : BlockIds::LEAVES, $magicNumber & 0x03), $name . " Leaves", $treeType));
|
||||
self::register(new Log(new BID($magicNumber >= 4 ? BlockIds::LOG2 : BlockIds::LOG, $magicNumber & 0x03), $name . " Log", $treeType));
|
||||
|
||||
//TODO: the old bug-block needs to be remapped to the new dedicated block
|
||||
self::register(new Wood(new BID($magicNumber >= 4 ? Block::LOG2 : Block::LOG, ($magicNumber & 0x03) | 0b1100), $name . " Wood", $treeType));
|
||||
self::register(new Wood(new BID(Block::WOOD, $magicNumber), $name . " Wood", $treeType));
|
||||
self::register(new Wood(new BID($magicNumber >= 4 ? BlockIds::LOG2 : BlockIds::LOG, ($magicNumber & 0x03) | 0b1100), $name . " Wood", $treeType));
|
||||
self::register(new Wood(new BID(BlockIds::WOOD, $magicNumber), $name . " Wood", $treeType));
|
||||
|
||||
self::register(new FenceGate(new BID($fenceGateIds[$treeType]), $treeType->getDisplayName() . " Fence Gate"));
|
||||
self::register(new WoodenStairs(new BID($woodenStairIds[$treeType]), $treeType->getDisplayName() . " Stairs"));
|
||||
@ -416,40 +416,40 @@ class BlockFactory{
|
||||
Sandstone::SMOOTH => "Smooth "
|
||||
];
|
||||
foreach($sandstoneTypes as $variant => $prefix){
|
||||
self::register(new Sandstone(new BID(Block::SANDSTONE, $variant), $prefix . "Sandstone"));
|
||||
self::register(new Sandstone(new BID(Block::RED_SANDSTONE, $variant), $prefix . "Red Sandstone"));
|
||||
self::register(new Sandstone(new BID(BlockIds::SANDSTONE, $variant), $prefix . "Sandstone"));
|
||||
self::register(new Sandstone(new BID(BlockIds::RED_SANDSTONE, $variant), $prefix . "Red Sandstone"));
|
||||
}
|
||||
|
||||
/** @var int[]|\SplObjectStorage $glazedTerracottaIds */
|
||||
$glazedTerracottaIds = new \SplObjectStorage();
|
||||
$glazedTerracottaIds[DyeColor::WHITE()] = Block::WHITE_GLAZED_TERRACOTTA;
|
||||
$glazedTerracottaIds[DyeColor::ORANGE()] = Block::ORANGE_GLAZED_TERRACOTTA;
|
||||
$glazedTerracottaIds[DyeColor::MAGENTA()] = Block::MAGENTA_GLAZED_TERRACOTTA;
|
||||
$glazedTerracottaIds[DyeColor::LIGHT_BLUE()] = Block::LIGHT_BLUE_GLAZED_TERRACOTTA;
|
||||
$glazedTerracottaIds[DyeColor::YELLOW()] = Block::YELLOW_GLAZED_TERRACOTTA;
|
||||
$glazedTerracottaIds[DyeColor::LIME()] = Block::LIME_GLAZED_TERRACOTTA;
|
||||
$glazedTerracottaIds[DyeColor::PINK()] = Block::PINK_GLAZED_TERRACOTTA;
|
||||
$glazedTerracottaIds[DyeColor::GRAY()] = Block::GRAY_GLAZED_TERRACOTTA;
|
||||
$glazedTerracottaIds[DyeColor::LIGHT_GRAY()] = Block::SILVER_GLAZED_TERRACOTTA;
|
||||
$glazedTerracottaIds[DyeColor::CYAN()] = Block::CYAN_GLAZED_TERRACOTTA;
|
||||
$glazedTerracottaIds[DyeColor::PURPLE()] = Block::PURPLE_GLAZED_TERRACOTTA;
|
||||
$glazedTerracottaIds[DyeColor::BLUE()] = Block::BLUE_GLAZED_TERRACOTTA;
|
||||
$glazedTerracottaIds[DyeColor::BROWN()] = Block::BROWN_GLAZED_TERRACOTTA;
|
||||
$glazedTerracottaIds[DyeColor::GREEN()] = Block::GREEN_GLAZED_TERRACOTTA;
|
||||
$glazedTerracottaIds[DyeColor::RED()] = Block::RED_GLAZED_TERRACOTTA;
|
||||
$glazedTerracottaIds[DyeColor::BLACK()] = Block::BLACK_GLAZED_TERRACOTTA;
|
||||
$glazedTerracottaIds[DyeColor::WHITE()] = BlockIds::WHITE_GLAZED_TERRACOTTA;
|
||||
$glazedTerracottaIds[DyeColor::ORANGE()] = BlockIds::ORANGE_GLAZED_TERRACOTTA;
|
||||
$glazedTerracottaIds[DyeColor::MAGENTA()] = BlockIds::MAGENTA_GLAZED_TERRACOTTA;
|
||||
$glazedTerracottaIds[DyeColor::LIGHT_BLUE()] = BlockIds::LIGHT_BLUE_GLAZED_TERRACOTTA;
|
||||
$glazedTerracottaIds[DyeColor::YELLOW()] = BlockIds::YELLOW_GLAZED_TERRACOTTA;
|
||||
$glazedTerracottaIds[DyeColor::LIME()] = BlockIds::LIME_GLAZED_TERRACOTTA;
|
||||
$glazedTerracottaIds[DyeColor::PINK()] = BlockIds::PINK_GLAZED_TERRACOTTA;
|
||||
$glazedTerracottaIds[DyeColor::GRAY()] = BlockIds::GRAY_GLAZED_TERRACOTTA;
|
||||
$glazedTerracottaIds[DyeColor::LIGHT_GRAY()] = BlockIds::SILVER_GLAZED_TERRACOTTA;
|
||||
$glazedTerracottaIds[DyeColor::CYAN()] = BlockIds::CYAN_GLAZED_TERRACOTTA;
|
||||
$glazedTerracottaIds[DyeColor::PURPLE()] = BlockIds::PURPLE_GLAZED_TERRACOTTA;
|
||||
$glazedTerracottaIds[DyeColor::BLUE()] = BlockIds::BLUE_GLAZED_TERRACOTTA;
|
||||
$glazedTerracottaIds[DyeColor::BROWN()] = BlockIds::BROWN_GLAZED_TERRACOTTA;
|
||||
$glazedTerracottaIds[DyeColor::GREEN()] = BlockIds::GREEN_GLAZED_TERRACOTTA;
|
||||
$glazedTerracottaIds[DyeColor::RED()] = BlockIds::RED_GLAZED_TERRACOTTA;
|
||||
$glazedTerracottaIds[DyeColor::BLACK()] = BlockIds::BLACK_GLAZED_TERRACOTTA;
|
||||
|
||||
foreach(DyeColor::getAll() as $color){
|
||||
self::register(new Carpet(new BID(Block::CARPET, $color->getMagicNumber()), $color->getDisplayName() . " Carpet"));
|
||||
self::register(new Concrete(new BID(Block::CONCRETE, $color->getMagicNumber()), $color->getDisplayName() . " Concrete"));
|
||||
self::register(new ConcretePowder(new BID(Block::CONCRETE_POWDER, $color->getMagicNumber()), $color->getDisplayName() . " Concrete Powder"));
|
||||
self::register(new Glass(new BID(Block::STAINED_GLASS, $color->getMagicNumber()), $color->getDisplayName() . " Stained Glass"));
|
||||
self::register(new GlassPane(new BID(Block::STAINED_GLASS_PANE, $color->getMagicNumber()), $color->getDisplayName() . " Stained Glass Pane"));
|
||||
self::register(new Carpet(new BID(BlockIds::CARPET, $color->getMagicNumber()), $color->getDisplayName() . " Carpet"));
|
||||
self::register(new Concrete(new BID(BlockIds::CONCRETE, $color->getMagicNumber()), $color->getDisplayName() . " Concrete"));
|
||||
self::register(new ConcretePowder(new BID(BlockIds::CONCRETE_POWDER, $color->getMagicNumber()), $color->getDisplayName() . " Concrete Powder"));
|
||||
self::register(new Glass(new BID(BlockIds::STAINED_GLASS, $color->getMagicNumber()), $color->getDisplayName() . " Stained Glass"));
|
||||
self::register(new GlassPane(new BID(BlockIds::STAINED_GLASS_PANE, $color->getMagicNumber()), $color->getDisplayName() . " Stained Glass Pane"));
|
||||
self::register(new GlazedTerracotta(new BID($glazedTerracottaIds[$color]), $color->getDisplayName() . " Glazed Terracotta"));
|
||||
self::register(new HardenedClay(new BID(Block::STAINED_CLAY, $color->getMagicNumber()), $color->getDisplayName() . " Stained Clay"));
|
||||
self::register(new HardenedGlass(new BID(Block::HARD_STAINED_GLASS, $color->getMagicNumber()), "Hardened " . $color->getDisplayName() . " Stained Glass"));
|
||||
self::register(new HardenedGlassPane(new BID(Block::HARD_STAINED_GLASS_PANE, $color->getMagicNumber()), "Hardened " . $color->getDisplayName() . " Stained Glass Pane"));
|
||||
self::register(new Wool(new BID(Block::WOOL, $color->getMagicNumber()), $color->getDisplayName() . " Wool"));
|
||||
self::register(new HardenedClay(new BID(BlockIds::STAINED_CLAY, $color->getMagicNumber()), $color->getDisplayName() . " Stained Clay"));
|
||||
self::register(new HardenedGlass(new BID(BlockIds::HARD_STAINED_GLASS, $color->getMagicNumber()), "Hardened " . $color->getDisplayName() . " Stained Glass"));
|
||||
self::register(new HardenedGlassPane(new BID(BlockIds::HARD_STAINED_GLASS_PANE, $color->getMagicNumber()), "Hardened " . $color->getDisplayName() . " Stained Glass Pane"));
|
||||
self::register(new Wool(new BID(BlockIds::WOOL, $color->getMagicNumber()), $color->getDisplayName() . " Wool"));
|
||||
}
|
||||
|
||||
static $wallTypes = [
|
||||
@ -469,7 +469,7 @@ class BlockFactory{
|
||||
CobblestoneWall::STONE_BRICK_WALL => "Stone Brick"
|
||||
];
|
||||
foreach($wallTypes as $magicNumber => $prefix){
|
||||
self::register(new CobblestoneWall(new BID(Block::COBBLESTONE_WALL, $magicNumber), $prefix . " Wall"));
|
||||
self::register(new CobblestoneWall(new BID(BlockIds::COBBLESTONE_WALL, $magicNumber), $prefix . " Wall"));
|
||||
}
|
||||
|
||||
//TODO: minecraft:andesite_stairs
|
||||
|
@ -71,7 +71,7 @@ class Cactus extends Transparent{
|
||||
|
||||
public function onNearbyBlockChange() : void{
|
||||
$down = $this->getSide(Facing::DOWN);
|
||||
if($down->getId() !== self::SAND and $down->getId() !== self::CACTUS){
|
||||
if($down->getId() !== BlockIds::SAND and $down->getId() !== BlockIds::CACTUS){
|
||||
$this->getLevel()->useBreakOn($this);
|
||||
}else{
|
||||
foreach(Facing::HORIZONTAL as $side){
|
||||
@ -89,12 +89,12 @@ class Cactus extends Transparent{
|
||||
}
|
||||
|
||||
public function onRandomTick() : void{
|
||||
if($this->getSide(Facing::DOWN)->getId() !== self::CACTUS){
|
||||
if($this->getSide(Facing::DOWN)->getId() !== BlockIds::CACTUS){
|
||||
if($this->age === 15){
|
||||
for($y = 1; $y < 3; ++$y){
|
||||
$b = $this->getLevel()->getBlockAt($this->x, $this->y + $y, $this->z);
|
||||
if($b->getId() === self::AIR){
|
||||
$ev = new BlockGrowEvent($b, BlockFactory::get(Block::CACTUS));
|
||||
if($b->getId() === BlockIds::AIR){
|
||||
$ev = new BlockGrowEvent($b, BlockFactory::get(BlockIds::CACTUS));
|
||||
$ev->call();
|
||||
if($ev->isCancelled()){
|
||||
break;
|
||||
@ -115,7 +115,7 @@ class Cactus extends Transparent{
|
||||
|
||||
public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, ?Player $player = null) : bool{
|
||||
$down = $this->getSide(Facing::DOWN);
|
||||
if($down->getId() === self::SAND or $down->getId() === self::CACTUS){
|
||||
if($down->getId() === BlockIds::SAND or $down->getId() === BlockIds::CACTUS){
|
||||
foreach(Facing::HORIZONTAL as $side){
|
||||
if($this->getSide($side)->isSolid()){
|
||||
return false;
|
||||
|
@ -63,7 +63,7 @@ class Cake extends Transparent implements FoodSource{
|
||||
|
||||
public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, ?Player $player = null) : bool{
|
||||
$down = $this->getSide(Facing::DOWN);
|
||||
if($down->getId() !== self::AIR){
|
||||
if($down->getId() !== BlockIds::AIR){
|
||||
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
|
||||
}
|
||||
|
||||
@ -71,8 +71,8 @@ class Cake extends Transparent implements FoodSource{
|
||||
}
|
||||
|
||||
public function onNearbyBlockChange() : void{
|
||||
if($this->getSide(Facing::DOWN)->getId() === self::AIR){ //Replace with common break method
|
||||
$this->getLevel()->setBlock($this, BlockFactory::get(Block::AIR));
|
||||
if($this->getSide(Facing::DOWN)->getId() === BlockIds::AIR){ //Replace with common break method
|
||||
$this->getLevel()->setBlock($this, BlockFactory::get(BlockIds::AIR));
|
||||
}
|
||||
}
|
||||
|
||||
@ -112,7 +112,7 @@ class Cake extends Transparent implements FoodSource{
|
||||
$clone = clone $this;
|
||||
$clone->bites++;
|
||||
if($clone->bites > 6){
|
||||
$clone = BlockFactory::get(Block::AIR);
|
||||
$clone = BlockFactory::get(BlockIds::AIR);
|
||||
}
|
||||
return $clone;
|
||||
}
|
||||
|
@ -45,7 +45,7 @@ class Carpet extends Flowable{
|
||||
|
||||
public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, ?Player $player = null) : bool{
|
||||
$down = $this->getSide(Facing::DOWN);
|
||||
if($down->getId() !== self::AIR){
|
||||
if($down->getId() !== BlockIds::AIR){
|
||||
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
|
||||
}
|
||||
|
||||
@ -53,7 +53,7 @@ class Carpet extends Flowable{
|
||||
}
|
||||
|
||||
public function onNearbyBlockChange() : void{
|
||||
if($this->getSide(Facing::DOWN)->getId() === self::AIR){
|
||||
if($this->getSide(Facing::DOWN)->getId() === BlockIds::AIR){
|
||||
$this->getLevel()->useBreakOn($this);
|
||||
}
|
||||
}
|
||||
|
@ -34,7 +34,7 @@ class CoarseDirt extends Dirt{
|
||||
public function onInteract(Item $item, int $face, Vector3 $clickVector, ?Player $player = null) : bool{
|
||||
if($face === Facing::UP and $item instanceof Hoe){
|
||||
$item->applyDamage(1);
|
||||
$this->getLevel()->setBlock($this, BlockFactory::get(Block::DIRT));
|
||||
$this->getLevel()->setBlock($this, BlockFactory::get(BlockIds::DIRT));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -72,7 +72,7 @@ class CobblestoneWall extends Transparent{
|
||||
}
|
||||
}
|
||||
|
||||
$this->up = $this->getSide(Facing::UP)->getId() !== Block::AIR;
|
||||
$this->up = $this->getSide(Facing::UP)->getId() !== BlockIds::AIR;
|
||||
}
|
||||
|
||||
protected function recalculateBoundingBox() : ?AxisAlignedBB{
|
||||
|
@ -64,7 +64,7 @@ class ConcretePowder extends Solid implements Fallable{
|
||||
continue;
|
||||
}
|
||||
if($this->getSide($i) instanceof Water){
|
||||
return BlockFactory::get(Block::CONCRETE, $this->idInfo->getVariant());
|
||||
return BlockFactory::get(BlockIds::CONCRETE, $this->idInfo->getVariant());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -49,7 +49,7 @@ abstract class Crops extends Flowable{
|
||||
}
|
||||
|
||||
public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, ?Player $player = null) : bool{
|
||||
if($blockReplace->getSide(Facing::DOWN)->getId() === Block::FARMLAND){
|
||||
if($blockReplace->getSide(Facing::DOWN)->getId() === BlockIds::FARMLAND){
|
||||
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
|
||||
}
|
||||
|
||||
@ -80,7 +80,7 @@ abstract class Crops extends Flowable{
|
||||
}
|
||||
|
||||
public function onNearbyBlockChange() : void{
|
||||
if($this->getSide(Facing::DOWN)->getId() !== Block::FARMLAND){
|
||||
if($this->getSide(Facing::DOWN)->getId() !== BlockIds::FARMLAND){
|
||||
$this->getLevel()->useBreakOn($this);
|
||||
}
|
||||
}
|
||||
|
@ -33,7 +33,7 @@ class Dandelion extends Flowable{
|
||||
|
||||
public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, ?Player $player = null) : bool{
|
||||
$down = $this->getSide(Facing::DOWN);
|
||||
if($down->getId() === Block::GRASS or $down->getId() === Block::DIRT or $down->getId() === Block::FARMLAND){
|
||||
if($down->getId() === BlockIds::GRASS or $down->getId() === BlockIds::DIRT or $down->getId() === BlockIds::FARMLAND){
|
||||
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
|
||||
}
|
||||
|
||||
|
@ -44,7 +44,7 @@ class Dirt extends Solid{
|
||||
public function onInteract(Item $item, int $face, Vector3 $clickVector, ?Player $player = null) : bool{
|
||||
if($face === Facing::UP and $item instanceof Hoe){
|
||||
$item->applyDamage(1);
|
||||
$this->getLevel()->setBlock($this, BlockFactory::get(Block::FARMLAND));
|
||||
$this->getLevel()->setBlock($this, BlockFactory::get(BlockIds::FARMLAND));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -98,7 +98,7 @@ abstract class Door extends Transparent{
|
||||
}
|
||||
|
||||
public function onNearbyBlockChange() : void{
|
||||
if($this->getSide(Facing::DOWN)->getId() === self::AIR){ //Replace with common break method
|
||||
if($this->getSide(Facing::DOWN)->getId() === BlockIds::AIR){ //Replace with common break method
|
||||
$this->getLevel()->useBreakOn($this); //this will delete both halves if they exist
|
||||
}
|
||||
}
|
||||
|
@ -49,7 +49,7 @@ class DoublePlant extends Flowable{
|
||||
|
||||
public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, ?Player $player = null) : bool{
|
||||
$id = $blockReplace->getSide(Facing::DOWN)->getId();
|
||||
if(($id === Block::GRASS or $id === Block::DIRT) and $blockReplace->getSide(Facing::UP)->canBeReplaced()){
|
||||
if(($id === BlockIds::GRASS or $id === BlockIds::DIRT) and $blockReplace->getSide(Facing::UP)->canBeReplaced()){
|
||||
$top = clone $this;
|
||||
$top->top = true;
|
||||
|
||||
|
@ -78,7 +78,7 @@ class DragonEgg extends Transparent implements Fallable{
|
||||
if($block instanceof Air){
|
||||
$this->level->addParticle($this, new DragonEggTeleportParticle($this->x - $block->x, $this->y - $block->y, $this->z - $block->z));
|
||||
//TODO: add events
|
||||
$this->level->setBlock($this, BlockFactory::get(Block::AIR));
|
||||
$this->level->setBlock($this, BlockFactory::get(BlockIds::AIR));
|
||||
$this->level->setBlock($block, $this);
|
||||
break;
|
||||
}
|
||||
|
@ -60,7 +60,7 @@ class Farmland extends Transparent{
|
||||
|
||||
public function onNearbyBlockChange() : void{
|
||||
if($this->getSide(Facing::UP)->isSolid()){
|
||||
$this->level->setBlock($this, BlockFactory::get(Block::DIRT));
|
||||
$this->level->setBlock($this, BlockFactory::get(BlockIds::DIRT));
|
||||
}
|
||||
}
|
||||
|
||||
@ -74,7 +74,7 @@ class Farmland extends Transparent{
|
||||
$this->wetness--;
|
||||
$this->level->setBlock($this, $this, false);
|
||||
}else{
|
||||
$this->level->setBlock($this, BlockFactory::get(Block::DIRT));
|
||||
$this->level->setBlock($this, BlockFactory::get(BlockIds::DIRT));
|
||||
}
|
||||
}elseif($this->wetness < 7){
|
||||
$this->wetness = 7;
|
||||
|
@ -88,7 +88,7 @@ class Fire extends Flowable{
|
||||
|
||||
public function onNearbyBlockChange() : void{
|
||||
if(!$this->getSide(Facing::DOWN)->isSolid() and !$this->hasAdjacentFlammableBlocks()){
|
||||
$this->getLevel()->setBlock($this, BlockFactory::get(Block::AIR));
|
||||
$this->getLevel()->setBlock($this, BlockFactory::get(BlockIds::AIR));
|
||||
}else{
|
||||
$this->level->scheduleDelayedBlockUpdate($this, mt_rand(30, 40));
|
||||
}
|
||||
@ -113,12 +113,12 @@ class Fire extends Flowable{
|
||||
if($this->age === 15){
|
||||
if(!$down->isFlammable() and mt_rand(0, 3) === 3){ //1/4 chance to extinguish
|
||||
$canSpread = false;
|
||||
$result = BlockFactory::get(Block::AIR);
|
||||
$result = BlockFactory::get(BlockIds::AIR);
|
||||
}
|
||||
}elseif(!$this->hasAdjacentFlammableBlocks()){
|
||||
$canSpread = false;
|
||||
if(!$down->isSolid() or $this->age > 3){
|
||||
$result = BlockFactory::get(Block::AIR);
|
||||
$result = BlockFactory::get(BlockIds::AIR);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -170,7 +170,7 @@ class Fire extends Flowable{
|
||||
$fire->age = min(15, $fire->age + (mt_rand(0, 4) >> 2));
|
||||
$this->level->setBlock($block, $fire);
|
||||
}else{
|
||||
$this->level->setBlock($block, BlockFactory::get(Block::AIR));
|
||||
$this->level->setBlock($block, BlockFactory::get(BlockIds::AIR));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -43,7 +43,7 @@ class Flower extends Flowable{
|
||||
|
||||
public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, ?Player $player = null) : bool{
|
||||
$down = $this->getSide(Facing::DOWN);
|
||||
if($down->getId() === Block::GRASS or $down->getId() === Block::DIRT or $down->getId() === Block::FARMLAND){
|
||||
if($down->getId() === BlockIds::GRASS or $down->getId() === BlockIds::DIRT or $down->getId() === BlockIds::FARMLAND){
|
||||
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
|
||||
}
|
||||
|
||||
|
@ -60,7 +60,7 @@ class Grass extends Solid{
|
||||
$lightAbove = $this->level->getFullLightAt($this->x, $this->y + 1, $this->z);
|
||||
if($lightAbove < 4 and $this->level->getBlockAt($this->x, $this->y + 1, $this->z)->getLightFilter() >= 2){
|
||||
//grass dies
|
||||
$ev = new BlockSpreadEvent($this, $this, BlockFactory::get(Block::DIRT));
|
||||
$ev = new BlockSpreadEvent($this, $this, BlockFactory::get(BlockIds::DIRT));
|
||||
$ev->call();
|
||||
if(!$ev->isCancelled()){
|
||||
$this->level->setBlock($this, $ev->getNewState(), false);
|
||||
@ -82,7 +82,7 @@ class Grass extends Solid{
|
||||
continue;
|
||||
}
|
||||
|
||||
$ev = new BlockSpreadEvent($b, $this, BlockFactory::get(Block::GRASS));
|
||||
$ev = new BlockSpreadEvent($b, $this, BlockFactory::get(BlockIds::GRASS));
|
||||
$ev->call();
|
||||
if(!$ev->isCancelled()){
|
||||
$this->level->setBlock($b, $ev->getNewState(), false);
|
||||
@ -102,12 +102,12 @@ class Grass extends Solid{
|
||||
return true;
|
||||
}elseif($item instanceof Hoe){
|
||||
$item->applyDamage(1);
|
||||
$this->getLevel()->setBlock($this, BlockFactory::get(Block::FARMLAND));
|
||||
$this->getLevel()->setBlock($this, BlockFactory::get(BlockIds::FARMLAND));
|
||||
|
||||
return true;
|
||||
}elseif($item instanceof Shovel and $this->getSide(Facing::UP)->getId() === Block::AIR){
|
||||
}elseif($item instanceof Shovel and $this->getSide(Facing::UP)->getId() === BlockIds::AIR){
|
||||
$item->applyDamage(1);
|
||||
$this->getLevel()->setBlock($this, BlockFactory::get(Block::GRASS_PATH));
|
||||
$this->getLevel()->setBlock($this, BlockFactory::get(BlockIds::GRASS_PATH));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -44,7 +44,7 @@ class GrassPath extends Transparent{
|
||||
|
||||
public function onNearbyBlockChange() : void{
|
||||
if($this->getSide(Facing::UP)->isSolid()){
|
||||
$this->level->setBlock($this, BlockFactory::get(Block::DIRT));
|
||||
$this->level->setBlock($this, BlockFactory::get(BlockIds::DIRT));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -47,7 +47,7 @@ class Ice extends Transparent{
|
||||
|
||||
public function onBreak(Item $item, ?Player $player = null) : bool{
|
||||
if(($player === null or $player->isSurvival()) and !$item->hasEnchantment(Enchantment::SILK_TOUCH())){
|
||||
return $this->getLevel()->setBlock($this, BlockFactory::get(Block::WATER));
|
||||
return $this->getLevel()->setBlock($this, BlockFactory::get(BlockIds::WATER));
|
||||
}
|
||||
return parent::onBreak($item, $player);
|
||||
}
|
||||
|
@ -67,16 +67,16 @@ class Lava extends Liquid{
|
||||
|
||||
if($colliding !== null){
|
||||
if($this->decay === 0){
|
||||
$this->liquidCollide($colliding, BlockFactory::get(Block::OBSIDIAN));
|
||||
$this->liquidCollide($colliding, BlockFactory::get(BlockIds::OBSIDIAN));
|
||||
}elseif($this->decay <= 4){
|
||||
$this->liquidCollide($colliding, BlockFactory::get(Block::COBBLESTONE));
|
||||
$this->liquidCollide($colliding, BlockFactory::get(BlockIds::COBBLESTONE));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected function flowIntoBlock(Block $block, int $newFlowDecay, bool $falling) : void{
|
||||
if($block instanceof Water){
|
||||
$block->liquidCollide($this, BlockFactory::get(Block::STONE));
|
||||
$block->liquidCollide($this, BlockFactory::get(BlockIds::STONE));
|
||||
}else{
|
||||
parent::flowIntoBlock($block, $newFlowDecay, $falling);
|
||||
}
|
||||
|
@ -289,7 +289,7 @@ abstract class Liquid extends Transparent{
|
||||
|
||||
if($falling !== $this->falling or (!$falling and $newDecay !== $this->decay)){
|
||||
if(!$falling and $newDecay < 0){
|
||||
$this->level->setBlock($this, BlockFactory::get(Block::AIR));
|
||||
$this->level->setBlock($this, BlockFactory::get(BlockIds::AIR));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -26,6 +26,6 @@ namespace pocketmine\block;
|
||||
class MelonStem extends Stem{
|
||||
|
||||
protected function getPlant() : Block{
|
||||
return BlockFactory::get(Block::MELON_BLOCK);
|
||||
return BlockFactory::get(BlockIds::MELON_BLOCK);
|
||||
}
|
||||
}
|
||||
|
@ -55,9 +55,9 @@ class Mycelium extends Solid{
|
||||
$y = mt_rand($this->y - 2, $this->y + 2);
|
||||
$z = mt_rand($this->z - 1, $this->z + 1);
|
||||
$block = $this->getLevel()->getBlockAt($x, $y, $z);
|
||||
if($block->getId() === Block::DIRT){
|
||||
if($block->getId() === BlockIds::DIRT){
|
||||
if($block->getSide(Facing::UP) instanceof Transparent){
|
||||
$ev = new BlockSpreadEvent($block, $this, BlockFactory::get(Block::MYCELIUM));
|
||||
$ev = new BlockSpreadEvent($block, $this, BlockFactory::get(BlockIds::MYCELIUM));
|
||||
$ev->call();
|
||||
if(!$ev->isCancelled()){
|
||||
$this->getLevel()->setBlock($block, $ev->getNewState());
|
||||
|
@ -51,7 +51,7 @@ class NetherWartPlant extends Flowable{
|
||||
|
||||
public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, ?Player $player = null) : bool{
|
||||
$down = $this->getSide(Facing::DOWN);
|
||||
if($down->getId() === Block::SOUL_SAND){
|
||||
if($down->getId() === BlockIds::SOUL_SAND){
|
||||
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
|
||||
}
|
||||
|
||||
@ -59,7 +59,7 @@ class NetherWartPlant extends Flowable{
|
||||
}
|
||||
|
||||
public function onNearbyBlockChange() : void{
|
||||
if($this->getSide(Facing::DOWN)->getId() !== Block::SOUL_SAND){
|
||||
if($this->getSide(Facing::DOWN)->getId() !== BlockIds::SOUL_SAND){
|
||||
$this->getLevel()->useBreakOn($this);
|
||||
}
|
||||
}
|
||||
|
@ -26,6 +26,6 @@ namespace pocketmine\block;
|
||||
class PumpkinStem extends Stem{
|
||||
|
||||
protected function getPlant() : Block{
|
||||
return BlockFactory::get(Block::PUMPKIN);
|
||||
return BlockFactory::get(BlockIds::PUMPKIN);
|
||||
}
|
||||
}
|
||||
|
@ -59,7 +59,7 @@ class Sapling extends Flowable{
|
||||
|
||||
public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, ?Player $player = null) : bool{
|
||||
$down = $this->getSide(Facing::DOWN);
|
||||
if($down->getId() === self::GRASS or $down->getId() === self::DIRT or $down->getId() === self::FARMLAND){
|
||||
if($down->getId() === BlockIds::GRASS or $down->getId() === BlockIds::DIRT or $down->getId() === BlockIds::FARMLAND){
|
||||
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
|
||||
}
|
||||
|
||||
|
@ -126,7 +126,7 @@ class Sign extends Transparent{
|
||||
}
|
||||
|
||||
public function onNearbyBlockChange() : void{
|
||||
if($this->getSide(Facing::opposite($this->facing))->getId() === self::AIR){
|
||||
if($this->getSide(Facing::opposite($this->facing))->getId() === BlockIds::AIR){
|
||||
$this->getLevel()->useBreakOn($this);
|
||||
}
|
||||
}
|
||||
|
@ -96,7 +96,7 @@ class SnowLayer extends Flowable implements Fallable{
|
||||
|
||||
public function onRandomTick() : void{
|
||||
if($this->level->getBlockLightAt($this->x, $this->y, $this->z) >= 12){
|
||||
$this->getLevel()->setBlock($this, BlockFactory::get(Block::AIR), false);
|
||||
$this->getLevel()->setBlock($this, BlockFactory::get(BlockIds::AIR), false);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -53,7 +53,7 @@ abstract class Stem extends Crops{
|
||||
|
||||
$side = $this->getSide(Facing::HORIZONTAL[array_rand(Facing::HORIZONTAL)]);
|
||||
$d = $side->getSide(Facing::DOWN);
|
||||
if($side->getId() === self::AIR and ($d->getId() === self::FARMLAND or $d->getId() === self::GRASS or $d->getId() === self::DIRT)){
|
||||
if($side->getId() === BlockIds::AIR and ($d->getId() === BlockIds::FARMLAND or $d->getId() === BlockIds::GRASS or $d->getId() === BlockIds::DIRT)){
|
||||
$ev = new BlockGrowEvent($side, $grow);
|
||||
$ev->call();
|
||||
if(!$ev->isCancelled()){
|
||||
|
@ -50,11 +50,11 @@ class Sugarcane extends Flowable{
|
||||
|
||||
public function onInteract(Item $item, int $face, Vector3 $clickVector, ?Player $player = null) : bool{
|
||||
if($item instanceof Fertilizer){
|
||||
if($this->getSide(Facing::DOWN)->getId() !== self::SUGARCANE_BLOCK){
|
||||
if($this->getSide(Facing::DOWN)->getId() !== BlockIds::SUGARCANE_BLOCK){
|
||||
for($y = 1; $y < 3; ++$y){
|
||||
$b = $this->getLevel()->getBlockAt($this->x, $this->y + $y, $this->z);
|
||||
if($b->getId() === self::AIR){
|
||||
$ev = new BlockGrowEvent($b, BlockFactory::get(Block::SUGARCANE_BLOCK));
|
||||
if($b->getId() === BlockIds::AIR){
|
||||
$ev = new BlockGrowEvent($b, BlockFactory::get(BlockIds::SUGARCANE_BLOCK));
|
||||
$ev->call();
|
||||
if($ev->isCancelled()){
|
||||
break;
|
||||
@ -78,7 +78,7 @@ class Sugarcane extends Flowable{
|
||||
|
||||
public function onNearbyBlockChange() : void{
|
||||
$down = $this->getSide(Facing::DOWN);
|
||||
if($down->isTransparent() and $down->getId() !== self::SUGARCANE_BLOCK){
|
||||
if($down->isTransparent() and $down->getId() !== BlockIds::SUGARCANE_BLOCK){
|
||||
$this->getLevel()->useBreakOn($this);
|
||||
}
|
||||
}
|
||||
@ -88,12 +88,12 @@ class Sugarcane extends Flowable{
|
||||
}
|
||||
|
||||
public function onRandomTick() : void{
|
||||
if($this->getSide(Facing::DOWN)->getId() !== self::SUGARCANE_BLOCK){
|
||||
if($this->getSide(Facing::DOWN)->getId() !== BlockIds::SUGARCANE_BLOCK){
|
||||
if($this->age === 15){
|
||||
for($y = 1; $y < 3; ++$y){
|
||||
$b = $this->getLevel()->getBlockAt($this->x, $this->y + $y, $this->z);
|
||||
if($b->getId() === self::AIR){
|
||||
$this->getLevel()->setBlock($b, BlockFactory::get(Block::SUGARCANE_BLOCK));
|
||||
if($b->getId() === BlockIds::AIR){
|
||||
$this->getLevel()->setBlock($b, BlockFactory::get(BlockIds::SUGARCANE_BLOCK));
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -108,9 +108,9 @@ class Sugarcane extends Flowable{
|
||||
|
||||
public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, ?Player $player = null) : bool{
|
||||
$down = $this->getSide(Facing::DOWN);
|
||||
if($down->getId() === self::SUGARCANE_BLOCK){
|
||||
if($down->getId() === BlockIds::SUGARCANE_BLOCK){
|
||||
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
|
||||
}elseif($down->getId() === self::GRASS or $down->getId() === self::DIRT or $down->getId() === self::SAND){
|
||||
}elseif($down->getId() === BlockIds::GRASS or $down->getId() === BlockIds::DIRT or $down->getId() === BlockIds::SAND){
|
||||
foreach(Facing::HORIZONTAL as $side){
|
||||
if($down->getSide($side) instanceof Water){
|
||||
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
|
||||
|
@ -90,7 +90,7 @@ class TNT extends Solid{
|
||||
}
|
||||
|
||||
public function ignite(int $fuse = 80) : void{
|
||||
$this->getLevel()->setBlock($this, BlockFactory::get(Block::AIR));
|
||||
$this->getLevel()->setBlock($this, BlockFactory::get(BlockIds::AIR));
|
||||
|
||||
$mot = (new Random())->nextSignedFloat() * M_PI * 2;
|
||||
$nbt = EntityFactory::createBaseNBT($this->add(0.5, 0, 0.5), new Vector3(-sin($mot) * 0.02, 0.2, -cos($mot) * 0.02));
|
||||
|
@ -38,7 +38,7 @@ class TallGrass extends Flowable{
|
||||
|
||||
public function place(Item $item, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector, ?Player $player = null) : bool{
|
||||
$down = $this->getSide(Facing::DOWN)->getId();
|
||||
if($down === self::GRASS or $down === self::DIRT){
|
||||
if($down === BlockIds::GRASS or $down === BlockIds::DIRT){
|
||||
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
|
||||
}
|
||||
|
||||
@ -47,7 +47,7 @@ class TallGrass extends Flowable{
|
||||
|
||||
public function onNearbyBlockChange() : void{
|
||||
if($this->getSide(Facing::DOWN)->isTransparent()){ //Replace with common break method
|
||||
$this->getLevel()->setBlock($this, BlockFactory::get(Block::AIR));
|
||||
$this->getLevel()->setBlock($this, BlockFactory::get(BlockIds::AIR));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -54,7 +54,7 @@ class Torch extends Flowable{
|
||||
$below = $this->getSide(Facing::DOWN);
|
||||
$face = Facing::opposite($this->facing);
|
||||
|
||||
if($this->getSide($face)->isTransparent() and !($face === Facing::DOWN and ($below->getId() === self::FENCE or $below->getId() === self::COBBLESTONE_WALL))){
|
||||
if($this->getSide($face)->isTransparent() and !($face === Facing::DOWN and ($below->getId() === BlockIds::FENCE or $below->getId() === BlockIds::COBBLESTONE_WALL))){
|
||||
$this->getLevel()->useBreakOn($this);
|
||||
}
|
||||
}
|
||||
@ -63,7 +63,7 @@ class Torch extends Flowable{
|
||||
if($blockClicked->canBeReplaced() and !$blockClicked->getSide(Facing::DOWN)->isTransparent()){
|
||||
$this->facing = Facing::UP;
|
||||
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
|
||||
}elseif($face !== Facing::DOWN and (!$blockClicked->isTransparent() or ($face === Facing::UP and ($blockClicked->getId() === self::FENCE or $blockClicked->getId() === self::COBBLESTONE_WALL)))){
|
||||
}elseif($face !== Facing::DOWN and (!$blockClicked->isTransparent() or ($face === Facing::UP and ($blockClicked->getId() === BlockIds::FENCE or $blockClicked->getId() === BlockIds::COBBLESTONE_WALL)))){
|
||||
$this->facing = $face;
|
||||
return parent::place($item, $blockReplace, $blockClicked, $face, $clickVector, $player);
|
||||
}else{
|
||||
|
@ -23,8 +23,8 @@ declare(strict_types=1);
|
||||
|
||||
namespace pocketmine\block\utils;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockFactory;
|
||||
use pocketmine\block\BlockIds;
|
||||
use pocketmine\block\Fire;
|
||||
use pocketmine\block\Liquid;
|
||||
use pocketmine\entity\EntityFactory;
|
||||
@ -48,8 +48,8 @@ trait FallableTrait{
|
||||
public function onNearbyBlockChange() : void{
|
||||
$pos = $this->asPosition();
|
||||
$down = $pos->level->getBlock($pos->getSide(Facing::DOWN));
|
||||
if($down->getId() === Block::AIR or $down instanceof Liquid or $down instanceof Fire){
|
||||
$pos->level->setBlock($pos, BlockFactory::get(Block::AIR));
|
||||
if($down->getId() === BlockIds::AIR or $down instanceof Liquid or $down instanceof Fire){
|
||||
$pos->level->setBlock($pos, BlockFactory::get(BlockIds::AIR));
|
||||
|
||||
$nbt = EntityFactory::createBaseNBT($pos->add(0.5, 0, 0.5));
|
||||
$nbt->setInt("TileID", $this->getId());
|
||||
|
@ -23,8 +23,8 @@ declare(strict_types=1);
|
||||
|
||||
namespace pocketmine\entity\object;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockFactory;
|
||||
use pocketmine\block\BlockIds;
|
||||
use pocketmine\entity\Entity;
|
||||
use pocketmine\event\entity\EntityDamageByEntityEvent;
|
||||
use pocketmine\item\Item;
|
||||
@ -109,7 +109,7 @@ class Painting extends Entity{
|
||||
//non-living entities don't have a way to create drops generically yet
|
||||
$this->level->dropItem($this, ItemFactory::get(Item::PAINTING));
|
||||
}
|
||||
$this->level->addParticle($this->add(0.5, 0.5, 0.5), new DestroyBlockParticle(BlockFactory::get(Block::PLANKS)));
|
||||
$this->level->addParticle($this->add(0.5, 0.5, 0.5), new DestroyBlockParticle(BlockFactory::get(BlockIds::PLANKS)));
|
||||
}
|
||||
|
||||
protected function recalculateBoundingBox() : void{
|
||||
|
@ -24,6 +24,7 @@ declare(strict_types=1);
|
||||
namespace pocketmine\entity\projectile;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockIds;
|
||||
use pocketmine\event\entity\EntityDamageEvent;
|
||||
use pocketmine\event\entity\ProjectileHitEvent;
|
||||
use pocketmine\level\sound\EndermanTeleportSound;
|
||||
@ -36,7 +37,7 @@ class EnderPearl extends Throwable{
|
||||
public const NETWORK_ID = self::ENDER_PEARL;
|
||||
|
||||
protected function calculateInterceptWithBlock(Block $block, Vector3 $start, Vector3 $end) : ?RayTraceResult{
|
||||
if($block->getId() !== Block::AIR and empty($block->getCollisionBoxes())){
|
||||
if($block->getId() !== BlockIds::AIR and empty($block->getCollisionBoxes())){
|
||||
//TODO: remove this once block collision boxes are fixed properly
|
||||
return AxisAlignedBB::one()->offset($block->x, $block->y, $block->z)->calculateIntercept($start, $end);
|
||||
}
|
||||
|
@ -23,8 +23,8 @@ declare(strict_types=1);
|
||||
|
||||
namespace pocketmine\entity\projectile;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockFactory;
|
||||
use pocketmine\block\BlockIds;
|
||||
use pocketmine\entity\effect\EffectInstance;
|
||||
use pocketmine\entity\effect\InstantEffect;
|
||||
use pocketmine\entity\Living;
|
||||
@ -121,12 +121,12 @@ class SplashPotion extends Throwable{
|
||||
}elseif($event instanceof ProjectileHitBlockEvent and $this->getPotionId() === Potion::WATER){
|
||||
$blockIn = $event->getBlockHit()->getSide($event->getRayTraceResult()->getHitFace());
|
||||
|
||||
if($blockIn->getId() === Block::FIRE){
|
||||
$this->level->setBlock($blockIn, BlockFactory::get(Block::AIR));
|
||||
if($blockIn->getId() === BlockIds::FIRE){
|
||||
$this->level->setBlock($blockIn, BlockFactory::get(BlockIds::AIR));
|
||||
}
|
||||
foreach($blockIn->getHorizontalSides() as $horizontalSide){
|
||||
if($horizontalSide->getId() === Block::FIRE){
|
||||
$this->level->setBlock($horizontalSide, BlockFactory::get(Block::AIR));
|
||||
if($horizontalSide->getId() === BlockIds::FIRE){
|
||||
$this->level->setBlock($horizontalSide, BlockFactory::get(BlockIds::AIR));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ declare(strict_types=1);
|
||||
|
||||
namespace pocketmine\event\player;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockIds;
|
||||
use pocketmine\entity\Living;
|
||||
use pocketmine\event\entity\EntityDamageByBlockEvent;
|
||||
use pocketmine\event\entity\EntityDamageByEntityEvent;
|
||||
@ -170,7 +170,7 @@ class PlayerDeathEvent extends EntityDeathEvent{
|
||||
|
||||
case EntityDamageEvent::CAUSE_CONTACT:
|
||||
if($deathCause instanceof EntityDamageByBlockEvent){
|
||||
if($deathCause->getDamager()->getId() === Block::CACTUS){
|
||||
if($deathCause->getDamager()->getId() === BlockIds::CACTUS){
|
||||
$message = "death.attack.cactus";
|
||||
}
|
||||
}
|
||||
|
@ -26,6 +26,7 @@ namespace pocketmine\item;
|
||||
use Ds\Deque;
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockFactory;
|
||||
use pocketmine\block\BlockIds;
|
||||
use pocketmine\block\utils\BannerPattern;
|
||||
use pocketmine\block\utils\DyeColor;
|
||||
use pocketmine\nbt\tag\CompoundTag;
|
||||
@ -53,7 +54,7 @@ class Banner extends Item{
|
||||
}
|
||||
|
||||
public function getBlock() : Block{
|
||||
return BlockFactory::get(Block::STANDING_BANNER);
|
||||
return BlockFactory::get(BlockIds::STANDING_BANNER);
|
||||
}
|
||||
|
||||
public function getMaxStackSize() : int{
|
||||
|
@ -25,6 +25,7 @@ namespace pocketmine\item;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockFactory;
|
||||
use pocketmine\block\BlockIds;
|
||||
use pocketmine\block\utils\DyeColor;
|
||||
|
||||
class Bed extends Item{
|
||||
@ -45,7 +46,7 @@ class Bed extends Item{
|
||||
}
|
||||
|
||||
public function getBlock() : Block{
|
||||
return BlockFactory::get(Block::BED_BLOCK);
|
||||
return BlockFactory::get(BlockIds::BED_BLOCK);
|
||||
}
|
||||
|
||||
public function getMaxStackSize() : int{
|
||||
|
@ -25,6 +25,7 @@ namespace pocketmine\item;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockFactory;
|
||||
use pocketmine\block\BlockIds;
|
||||
|
||||
class BeetrootSeeds extends Item{
|
||||
public function __construct(){
|
||||
@ -32,6 +33,6 @@ class BeetrootSeeds extends Item{
|
||||
}
|
||||
|
||||
public function getBlock() : Block{
|
||||
return BlockFactory::get(Block::BEETROOT_BLOCK);
|
||||
return BlockFactory::get(BlockIds::BEETROOT_BLOCK);
|
||||
}
|
||||
}
|
||||
|
@ -25,6 +25,7 @@ namespace pocketmine\item;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockFactory;
|
||||
use pocketmine\block\BlockIds;
|
||||
use pocketmine\block\Liquid;
|
||||
use pocketmine\event\player\PlayerBucketFillEvent;
|
||||
use pocketmine\math\Vector3;
|
||||
@ -46,7 +47,7 @@ class Bucket extends Item{
|
||||
$ev = new PlayerBucketFillEvent($player, $blockReplace, $face, $this, $resultItem);
|
||||
$ev->call();
|
||||
if(!$ev->isCancelled()){
|
||||
$player->getLevel()->setBlock($blockClicked, BlockFactory::get(Block::AIR));
|
||||
$player->getLevel()->setBlock($blockClicked, BlockFactory::get(BlockIds::AIR));
|
||||
$player->getLevel()->broadcastLevelSoundEvent($blockClicked->add(0.5, 0.5, 0.5), $blockClicked->getBucketFillSound());
|
||||
if($player->isSurvival()){
|
||||
if($stack->getCount() === 0){
|
||||
|
@ -25,6 +25,7 @@ namespace pocketmine\item;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockFactory;
|
||||
use pocketmine\block\BlockIds;
|
||||
|
||||
class Carrot extends Food{
|
||||
public function __construct(){
|
||||
@ -32,7 +33,7 @@ class Carrot extends Food{
|
||||
}
|
||||
|
||||
public function getBlock() : Block{
|
||||
return BlockFactory::get(Block::CARROT_BLOCK);
|
||||
return BlockFactory::get(BlockIds::CARROT_BLOCK);
|
||||
}
|
||||
|
||||
public function getFoodRestore() : int{
|
||||
|
@ -25,10 +25,11 @@ namespace pocketmine\item;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockFactory;
|
||||
use pocketmine\block\BlockIds;
|
||||
|
||||
class CocoaBeans extends Item{
|
||||
|
||||
public function getBlock() : Block{
|
||||
return BlockFactory::get(Block::COCOA);
|
||||
return BlockFactory::get(BlockIds::COCOA);
|
||||
}
|
||||
}
|
||||
|
@ -25,6 +25,7 @@ namespace pocketmine\item;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockFactory;
|
||||
use pocketmine\block\BlockIds;
|
||||
use pocketmine\math\Vector3;
|
||||
use pocketmine\network\mcpe\protocol\LevelSoundEventPacket;
|
||||
use pocketmine\Player;
|
||||
@ -36,10 +37,10 @@ class FlintSteel extends Tool{
|
||||
}
|
||||
|
||||
public function onActivate(Player $player, Block $blockReplace, Block $blockClicked, int $face, Vector3 $clickVector) : ItemUseResult{
|
||||
if($blockReplace->getId() === Block::AIR){
|
||||
if($blockReplace->getId() === BlockIds::AIR){
|
||||
$level = $player->getLevel();
|
||||
assert($level !== null);
|
||||
$level->setBlock($blockReplace, BlockFactory::get(Block::FIRE));
|
||||
$level->setBlock($blockReplace, BlockFactory::get(BlockIds::FIRE));
|
||||
$level->broadcastLevelSoundEvent($blockReplace->add(0.5, 0.5, 0.5), LevelSoundEventPacket::SOUND_IGNITE);
|
||||
|
||||
$this->applyDamage(1);
|
||||
|
@ -28,6 +28,7 @@ namespace pocketmine\item;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockFactory;
|
||||
use pocketmine\block\BlockIds;
|
||||
use pocketmine\block\BlockToolType;
|
||||
use pocketmine\entity\Entity;
|
||||
use pocketmine\item\enchantment\Enchantment;
|
||||
@ -590,7 +591,7 @@ class Item implements ItemIds, \JsonSerializable{
|
||||
* @return Block
|
||||
*/
|
||||
public function getBlock() : Block{
|
||||
return BlockFactory::get(Block::AIR);
|
||||
return BlockFactory::get(BlockIds::AIR);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -23,8 +23,8 @@ declare(strict_types=1);
|
||||
|
||||
namespace pocketmine\item;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockFactory;
|
||||
use pocketmine\block\BlockIds;
|
||||
use pocketmine\block\utils\DyeColor;
|
||||
use pocketmine\block\utils\SkullType;
|
||||
use pocketmine\block\utils\TreeType;
|
||||
@ -156,23 +156,23 @@ class ItemFactory{
|
||||
self::register(new Item(Item::SUGAR, 0, "Sugar"));
|
||||
self::register(new Item(Item::TURTLE_SHELL_PIECE, 0, "Scute"));
|
||||
self::register(new Item(Item::WHEAT, 0, "Wheat"));
|
||||
self::register(new ItemBlock(Block::ACACIA_DOOR_BLOCK, 0, Item::ACACIA_DOOR));
|
||||
self::register(new ItemBlock(Block::BIRCH_DOOR_BLOCK, 0, Item::BIRCH_DOOR));
|
||||
self::register(new ItemBlock(Block::BREWING_STAND_BLOCK, 0, Item::BREWING_STAND));
|
||||
self::register(new ItemBlock(Block::CAKE_BLOCK, 0, Item::CAKE));
|
||||
self::register(new ItemBlock(Block::CAULDRON_BLOCK, 0, Item::CAULDRON));
|
||||
self::register(new ItemBlock(Block::COMPARATOR_BLOCK, 0, Item::COMPARATOR));
|
||||
self::register(new ItemBlock(Block::DARK_OAK_DOOR_BLOCK, 0, Item::DARK_OAK_DOOR));
|
||||
self::register(new ItemBlock(Block::FLOWER_POT_BLOCK, 0, Item::FLOWER_POT));
|
||||
self::register(new ItemBlock(Block::HOPPER_BLOCK, 0, Item::HOPPER));
|
||||
self::register(new ItemBlock(Block::IRON_DOOR_BLOCK, 0, Item::IRON_DOOR));
|
||||
self::register(new ItemBlock(Block::ITEM_FRAME_BLOCK, 0, Item::ITEM_FRAME));
|
||||
self::register(new ItemBlock(Block::JUNGLE_DOOR_BLOCK, 0, Item::JUNGLE_DOOR));
|
||||
self::register(new ItemBlock(Block::NETHER_WART_PLANT, 0, Item::NETHER_WART));
|
||||
self::register(new ItemBlock(Block::OAK_DOOR_BLOCK, 0, Item::OAK_DOOR));
|
||||
self::register(new ItemBlock(Block::REPEATER_BLOCK, 0, Item::REPEATER));
|
||||
self::register(new ItemBlock(Block::SPRUCE_DOOR_BLOCK, 0, Item::SPRUCE_DOOR));
|
||||
self::register(new ItemBlock(Block::SUGARCANE_BLOCK, 0, Item::SUGARCANE));
|
||||
self::register(new ItemBlock(BlockIds::ACACIA_DOOR_BLOCK, 0, Item::ACACIA_DOOR));
|
||||
self::register(new ItemBlock(BlockIds::BIRCH_DOOR_BLOCK, 0, Item::BIRCH_DOOR));
|
||||
self::register(new ItemBlock(BlockIds::BREWING_STAND_BLOCK, 0, Item::BREWING_STAND));
|
||||
self::register(new ItemBlock(BlockIds::CAKE_BLOCK, 0, Item::CAKE));
|
||||
self::register(new ItemBlock(BlockIds::CAULDRON_BLOCK, 0, Item::CAULDRON));
|
||||
self::register(new ItemBlock(BlockIds::COMPARATOR_BLOCK, 0, Item::COMPARATOR));
|
||||
self::register(new ItemBlock(BlockIds::DARK_OAK_DOOR_BLOCK, 0, Item::DARK_OAK_DOOR));
|
||||
self::register(new ItemBlock(BlockIds::FLOWER_POT_BLOCK, 0, Item::FLOWER_POT));
|
||||
self::register(new ItemBlock(BlockIds::HOPPER_BLOCK, 0, Item::HOPPER));
|
||||
self::register(new ItemBlock(BlockIds::IRON_DOOR_BLOCK, 0, Item::IRON_DOOR));
|
||||
self::register(new ItemBlock(BlockIds::ITEM_FRAME_BLOCK, 0, Item::ITEM_FRAME));
|
||||
self::register(new ItemBlock(BlockIds::JUNGLE_DOOR_BLOCK, 0, Item::JUNGLE_DOOR));
|
||||
self::register(new ItemBlock(BlockIds::NETHER_WART_PLANT, 0, Item::NETHER_WART));
|
||||
self::register(new ItemBlock(BlockIds::OAK_DOOR_BLOCK, 0, Item::OAK_DOOR));
|
||||
self::register(new ItemBlock(BlockIds::REPEATER_BLOCK, 0, Item::REPEATER));
|
||||
self::register(new ItemBlock(BlockIds::SPRUCE_DOOR_BLOCK, 0, Item::SPRUCE_DOOR));
|
||||
self::register(new ItemBlock(BlockIds::SUGARCANE_BLOCK, 0, Item::SUGARCANE));
|
||||
self::register(new Leggings(Item::CHAIN_LEGGINGS, 0, "Chainmail Leggings", new ArmorTypeInfo(4, 226)));
|
||||
self::register(new Leggings(Item::DIAMOND_LEGGINGS, 0, "Diamond Leggings", new ArmorTypeInfo(6, 496)));
|
||||
self::register(new Leggings(Item::GOLDEN_LEGGINGS, 0, "Gold Leggings", new ArmorTypeInfo(3, 106)));
|
||||
@ -180,8 +180,8 @@ class ItemFactory{
|
||||
self::register(new Leggings(Item::LEATHER_LEGGINGS, 0, "Leather Pants", new ArmorTypeInfo(2, 76)));
|
||||
//TODO: fix metadata for buckets with still liquid in them
|
||||
//the meta values are intentionally hardcoded because block IDs will change in the future
|
||||
self::register(new LiquidBucket(Item::BUCKET, 8, "Water Bucket", Block::FLOWING_WATER));
|
||||
self::register(new LiquidBucket(Item::BUCKET, 10, "Lava Bucket", Block::FLOWING_LAVA));
|
||||
self::register(new LiquidBucket(Item::BUCKET, 8, "Water Bucket", BlockIds::FLOWING_WATER));
|
||||
self::register(new LiquidBucket(Item::BUCKET, 10, "Lava Bucket", BlockIds::FLOWING_LAVA));
|
||||
self::register(new Melon());
|
||||
self::register(new MelonSeeds());
|
||||
self::register(new MilkBucket(Item::BUCKET, 1, "Milk Bucket"));
|
||||
@ -214,12 +214,12 @@ class ItemFactory{
|
||||
self::register(new Shovel(Item::IRON_SHOVEL, "Iron Shovel", TieredTool::TIER_IRON));
|
||||
self::register(new Shovel(Item::STONE_SHOVEL, "Stone Shovel", TieredTool::TIER_STONE));
|
||||
self::register(new Shovel(Item::WOODEN_SHOVEL, "Wooden Shovel", TieredTool::TIER_WOODEN));
|
||||
self::register(new Sign(Block::STANDING_SIGN, 0, Item::SIGN));
|
||||
self::register(new Sign(Block::SPRUCE_STANDING_SIGN, 0, Item::SPRUCE_SIGN));
|
||||
self::register(new Sign(Block::BIRCH_STANDING_SIGN, 0, Item::BIRCH_SIGN));
|
||||
self::register(new Sign(Block::JUNGLE_STANDING_SIGN, 0, Item::JUNGLE_SIGN));
|
||||
self::register(new Sign(Block::ACACIA_STANDING_SIGN, 0, Item::ACACIA_SIGN));
|
||||
self::register(new Sign(Block::DARKOAK_STANDING_SIGN, 0, Item::DARKOAK_SIGN));
|
||||
self::register(new Sign(BlockIds::STANDING_SIGN, 0, Item::SIGN));
|
||||
self::register(new Sign(BlockIds::SPRUCE_STANDING_SIGN, 0, Item::SPRUCE_SIGN));
|
||||
self::register(new Sign(BlockIds::BIRCH_STANDING_SIGN, 0, Item::BIRCH_SIGN));
|
||||
self::register(new Sign(BlockIds::JUNGLE_STANDING_SIGN, 0, Item::JUNGLE_SIGN));
|
||||
self::register(new Sign(BlockIds::ACACIA_STANDING_SIGN, 0, Item::ACACIA_SIGN));
|
||||
self::register(new Sign(BlockIds::DARKOAK_STANDING_SIGN, 0, Item::DARKOAK_SIGN));
|
||||
self::register(new Snowball());
|
||||
self::register(new SpiderEye());
|
||||
self::register(new Steak());
|
||||
|
@ -25,6 +25,7 @@ namespace pocketmine\item;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockFactory;
|
||||
use pocketmine\block\BlockIds;
|
||||
|
||||
class MelonSeeds extends Item{
|
||||
public function __construct(){
|
||||
@ -32,6 +33,6 @@ class MelonSeeds extends Item{
|
||||
}
|
||||
|
||||
public function getBlock() : Block{
|
||||
return BlockFactory::get(Block::MELON_STEM);
|
||||
return BlockFactory::get(BlockIds::MELON_STEM);
|
||||
}
|
||||
}
|
||||
|
@ -25,6 +25,7 @@ namespace pocketmine\item;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockFactory;
|
||||
use pocketmine\block\BlockIds;
|
||||
|
||||
class Potato extends Food{
|
||||
public function __construct(){
|
||||
@ -32,7 +33,7 @@ class Potato extends Food{
|
||||
}
|
||||
|
||||
public function getBlock() : Block{
|
||||
return BlockFactory::get(Block::POTATO_BLOCK);
|
||||
return BlockFactory::get(BlockIds::POTATO_BLOCK);
|
||||
}
|
||||
|
||||
public function getFoodRestore() : int{
|
||||
|
@ -25,6 +25,7 @@ namespace pocketmine\item;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockFactory;
|
||||
use pocketmine\block\BlockIds;
|
||||
|
||||
class PumpkinSeeds extends Item{
|
||||
public function __construct(){
|
||||
@ -32,6 +33,6 @@ class PumpkinSeeds extends Item{
|
||||
}
|
||||
|
||||
public function getBlock() : Block{
|
||||
return BlockFactory::get(Block::PUMPKIN_STEM);
|
||||
return BlockFactory::get(BlockIds::PUMPKIN_STEM);
|
||||
}
|
||||
}
|
||||
|
@ -25,6 +25,7 @@ namespace pocketmine\item;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockFactory;
|
||||
use pocketmine\block\BlockIds;
|
||||
|
||||
class Redstone extends Item{
|
||||
public function __construct(){
|
||||
@ -32,6 +33,6 @@ class Redstone extends Item{
|
||||
}
|
||||
|
||||
public function getBlock() : Block{
|
||||
return BlockFactory::get(Block::REDSTONE_WIRE);
|
||||
return BlockFactory::get(BlockIds::REDSTONE_WIRE);
|
||||
}
|
||||
}
|
||||
|
@ -25,6 +25,7 @@ namespace pocketmine\item;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockFactory;
|
||||
use pocketmine\block\BlockIds;
|
||||
use pocketmine\block\utils\SkullType;
|
||||
|
||||
class Skull extends Item{
|
||||
@ -38,7 +39,7 @@ class Skull extends Item{
|
||||
}
|
||||
|
||||
public function getBlock() : Block{
|
||||
return BlockFactory::get(Block::SKULL_BLOCK);
|
||||
return BlockFactory::get(BlockIds::SKULL_BLOCK);
|
||||
}
|
||||
|
||||
public function getSkullType() : SkullType{
|
||||
|
@ -25,6 +25,7 @@ namespace pocketmine\item;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockFactory;
|
||||
use pocketmine\block\BlockIds;
|
||||
|
||||
class StringItem extends Item{
|
||||
public function __construct(){
|
||||
@ -32,6 +33,6 @@ class StringItem extends Item{
|
||||
}
|
||||
|
||||
public function getBlock() : Block{
|
||||
return BlockFactory::get(Block::TRIPWIRE);
|
||||
return BlockFactory::get(BlockIds::TRIPWIRE);
|
||||
}
|
||||
}
|
||||
|
@ -25,6 +25,7 @@ namespace pocketmine\item;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockFactory;
|
||||
use pocketmine\block\BlockIds;
|
||||
|
||||
class WheatSeeds extends Item{
|
||||
public function __construct(){
|
||||
@ -32,6 +33,6 @@ class WheatSeeds extends Item{
|
||||
}
|
||||
|
||||
public function getBlock() : Block{
|
||||
return BlockFactory::get(Block::WHEAT_BLOCK);
|
||||
return BlockFactory::get(BlockIds::WHEAT_BLOCK);
|
||||
}
|
||||
}
|
||||
|
@ -25,6 +25,7 @@ namespace pocketmine\level;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockFactory;
|
||||
use pocketmine\block\BlockIds;
|
||||
use pocketmine\block\TNT;
|
||||
use pocketmine\entity\Entity;
|
||||
use pocketmine\event\block\BlockUpdateEvent;
|
||||
@ -199,7 +200,7 @@ class Explosion{
|
||||
|
||||
|
||||
$air = ItemFactory::air();
|
||||
$airBlock = BlockFactory::get(Block::AIR);
|
||||
$airBlock = BlockFactory::get(BlockIds::AIR);
|
||||
|
||||
foreach($this->affectedBlocks as $block){
|
||||
if($block instanceof TNT){
|
||||
|
@ -1803,7 +1803,7 @@ class Level implements ChunkManager, Metadatable{
|
||||
return false;
|
||||
}
|
||||
|
||||
if($blockClicked->getId() === Block::AIR){
|
||||
if($blockClicked->getId() === BlockIds::AIR){
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -25,6 +25,7 @@ namespace pocketmine\level;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockFactory;
|
||||
use pocketmine\block\BlockIds;
|
||||
use pocketmine\level\format\Chunk;
|
||||
use const INT32_MAX;
|
||||
use const INT32_MIN;
|
||||
@ -49,7 +50,7 @@ class SimpleChunkManager implements ChunkManager{
|
||||
if($chunk = $this->getChunk($x >> 4, $z >> 4)){
|
||||
return BlockFactory::fromFullBlock($chunk->getFullBlock($x & 0xf, $y, $z & 0xf));
|
||||
}
|
||||
return BlockFactory::get(Block::AIR);
|
||||
return BlockFactory::get(BlockIds::AIR);
|
||||
}
|
||||
|
||||
public function setBlockAt(int $x, int $y, int $z, Block $block) : bool{
|
||||
|
@ -23,18 +23,18 @@ declare(strict_types=1);
|
||||
|
||||
namespace pocketmine\level\biome;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockFactory;
|
||||
use pocketmine\block\BlockIds;
|
||||
|
||||
abstract class GrassyBiome extends Biome{
|
||||
|
||||
public function __construct(){
|
||||
$this->setGroundCover([
|
||||
BlockFactory::get(Block::GRASS),
|
||||
BlockFactory::get(Block::DIRT),
|
||||
BlockFactory::get(Block::DIRT),
|
||||
BlockFactory::get(Block::DIRT),
|
||||
BlockFactory::get(Block::DIRT)
|
||||
BlockFactory::get(BlockIds::GRASS),
|
||||
BlockFactory::get(BlockIds::DIRT),
|
||||
BlockFactory::get(BlockIds::DIRT),
|
||||
BlockFactory::get(BlockIds::DIRT),
|
||||
BlockFactory::get(BlockIds::DIRT)
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
@ -23,19 +23,19 @@ declare(strict_types=1);
|
||||
|
||||
namespace pocketmine\level\biome;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockFactory;
|
||||
use pocketmine\block\BlockIds;
|
||||
use pocketmine\level\generator\populator\TallGrass;
|
||||
|
||||
class OceanBiome extends Biome{
|
||||
|
||||
public function __construct(){
|
||||
$this->setGroundCover([
|
||||
BlockFactory::get(Block::GRAVEL),
|
||||
BlockFactory::get(Block::GRAVEL),
|
||||
BlockFactory::get(Block::GRAVEL),
|
||||
BlockFactory::get(Block::GRAVEL),
|
||||
BlockFactory::get(Block::GRAVEL)
|
||||
BlockFactory::get(BlockIds::GRAVEL),
|
||||
BlockFactory::get(BlockIds::GRAVEL),
|
||||
BlockFactory::get(BlockIds::GRAVEL),
|
||||
BlockFactory::get(BlockIds::GRAVEL),
|
||||
BlockFactory::get(BlockIds::GRAVEL)
|
||||
]);
|
||||
|
||||
$tallGrass = new TallGrass();
|
||||
|
@ -23,19 +23,19 @@ declare(strict_types=1);
|
||||
|
||||
namespace pocketmine\level\biome;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockFactory;
|
||||
use pocketmine\block\BlockIds;
|
||||
use pocketmine\level\generator\populator\TallGrass;
|
||||
|
||||
class RiverBiome extends Biome{
|
||||
|
||||
public function __construct(){
|
||||
$this->setGroundCover([
|
||||
BlockFactory::get(Block::DIRT),
|
||||
BlockFactory::get(Block::DIRT),
|
||||
BlockFactory::get(Block::DIRT),
|
||||
BlockFactory::get(Block::DIRT),
|
||||
BlockFactory::get(Block::DIRT)
|
||||
BlockFactory::get(BlockIds::DIRT),
|
||||
BlockFactory::get(BlockIds::DIRT),
|
||||
BlockFactory::get(BlockIds::DIRT),
|
||||
BlockFactory::get(BlockIds::DIRT),
|
||||
BlockFactory::get(BlockIds::DIRT)
|
||||
]);
|
||||
|
||||
$tallGrass = new TallGrass();
|
||||
|
@ -23,18 +23,18 @@ declare(strict_types=1);
|
||||
|
||||
namespace pocketmine\level\biome;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockFactory;
|
||||
use pocketmine\block\BlockIds;
|
||||
|
||||
abstract class SandyBiome extends Biome{
|
||||
|
||||
public function __construct(){
|
||||
$this->setGroundCover([
|
||||
BlockFactory::get(Block::SAND),
|
||||
BlockFactory::get(Block::SAND),
|
||||
BlockFactory::get(Block::SANDSTONE),
|
||||
BlockFactory::get(Block::SANDSTONE),
|
||||
BlockFactory::get(Block::SANDSTONE)
|
||||
BlockFactory::get(BlockIds::SAND),
|
||||
BlockFactory::get(BlockIds::SAND),
|
||||
BlockFactory::get(BlockIds::SANDSTONE),
|
||||
BlockFactory::get(BlockIds::SANDSTONE),
|
||||
BlockFactory::get(BlockIds::SANDSTONE)
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
@ -23,18 +23,18 @@ declare(strict_types=1);
|
||||
|
||||
namespace pocketmine\level\biome;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockFactory;
|
||||
use pocketmine\block\BlockIds;
|
||||
|
||||
abstract class SnowyBiome extends Biome{
|
||||
|
||||
public function __construct(){
|
||||
$this->setGroundCover([
|
||||
BlockFactory::get(Block::SNOW_LAYER),
|
||||
BlockFactory::get(Block::GRASS),
|
||||
BlockFactory::get(Block::DIRT),
|
||||
BlockFactory::get(Block::DIRT),
|
||||
BlockFactory::get(Block::DIRT)
|
||||
BlockFactory::get(BlockIds::SNOW_LAYER),
|
||||
BlockFactory::get(BlockIds::GRASS),
|
||||
BlockFactory::get(BlockIds::DIRT),
|
||||
BlockFactory::get(BlockIds::DIRT),
|
||||
BlockFactory::get(BlockIds::DIRT)
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
@ -23,8 +23,8 @@ declare(strict_types=1);
|
||||
|
||||
namespace pocketmine\level\generator;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockFactory;
|
||||
use pocketmine\block\BlockIds;
|
||||
use pocketmine\item\ItemFactory;
|
||||
use pocketmine\level\ChunkManager;
|
||||
use pocketmine\level\format\Chunk;
|
||||
@ -78,14 +78,14 @@ class Flat extends Generator{
|
||||
if(isset($this->options["decoration"])){
|
||||
$ores = new Ore();
|
||||
$ores->setOreTypes([
|
||||
new OreType(BlockFactory::get(Block::COAL_ORE), 20, 16, 0, 128),
|
||||
new OreType(BlockFactory::get(Block::IRON_ORE), 20, 8, 0, 64),
|
||||
new OreType(BlockFactory::get(Block::REDSTONE_ORE), 8, 7, 0, 16),
|
||||
new OreType(BlockFactory::get(Block::LAPIS_ORE), 1, 6, 0, 32),
|
||||
new OreType(BlockFactory::get(Block::GOLD_ORE), 2, 8, 0, 32),
|
||||
new OreType(BlockFactory::get(Block::DIAMOND_ORE), 1, 7, 0, 16),
|
||||
new OreType(BlockFactory::get(Block::DIRT), 20, 32, 0, 128),
|
||||
new OreType(BlockFactory::get(Block::GRAVEL), 10, 16, 0, 128)
|
||||
new OreType(BlockFactory::get(BlockIds::COAL_ORE), 20, 16, 0, 128),
|
||||
new OreType(BlockFactory::get(BlockIds::IRON_ORE), 20, 8, 0, 64),
|
||||
new OreType(BlockFactory::get(BlockIds::REDSTONE_ORE), 8, 7, 0, 16),
|
||||
new OreType(BlockFactory::get(BlockIds::LAPIS_ORE), 1, 6, 0, 32),
|
||||
new OreType(BlockFactory::get(BlockIds::GOLD_ORE), 2, 8, 0, 32),
|
||||
new OreType(BlockFactory::get(BlockIds::DIAMOND_ORE), 1, 7, 0, 16),
|
||||
new OreType(BlockFactory::get(BlockIds::DIRT), 20, 32, 0, 128),
|
||||
new OreType(BlockFactory::get(BlockIds::GRAVEL), 10, 16, 0, 128)
|
||||
]);
|
||||
$this->populators[] = $ores;
|
||||
}
|
||||
|
@ -23,8 +23,8 @@ declare(strict_types=1);
|
||||
|
||||
namespace pocketmine\level\generator\hell;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockFactory;
|
||||
use pocketmine\block\BlockIds;
|
||||
use pocketmine\level\biome\Biome;
|
||||
use pocketmine\level\ChunkManager;
|
||||
use pocketmine\level\generator\Generator;
|
||||
@ -90,9 +90,9 @@ class Nether extends Generator{
|
||||
|
||||
$chunk = $this->level->getChunk($chunkX, $chunkZ);
|
||||
|
||||
$bedrock = BlockFactory::get(Block::BEDROCK)->getFullId();
|
||||
$netherrack = BlockFactory::get(Block::NETHERRACK)->getFullId();
|
||||
$stillLava = BlockFactory::get(Block::STILL_LAVA)->getFullId();
|
||||
$bedrock = BlockFactory::get(BlockIds::BEDROCK)->getFullId();
|
||||
$netherrack = BlockFactory::get(BlockIds::NETHERRACK)->getFullId();
|
||||
$stillLava = BlockFactory::get(BlockIds::STILL_LAVA)->getFullId();
|
||||
|
||||
for($x = 0; $x < 16; ++$x){
|
||||
for($z = 0; $z < 16; ++$z){
|
||||
|
@ -23,8 +23,8 @@ declare(strict_types=1);
|
||||
|
||||
namespace pocketmine\level\generator\normal;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockFactory;
|
||||
use pocketmine\block\BlockIds;
|
||||
use pocketmine\level\biome\Biome;
|
||||
use pocketmine\level\ChunkManager;
|
||||
use pocketmine\level\generator\biome\BiomeSelector;
|
||||
@ -121,14 +121,14 @@ class Normal extends Generator{
|
||||
|
||||
$ores = new Ore();
|
||||
$ores->setOreTypes([
|
||||
new OreType(BlockFactory::get(Block::COAL_ORE), 20, 16, 0, 128),
|
||||
new OreType(BlockFactory::get(Block::IRON_ORE), 20, 8, 0, 64),
|
||||
new OreType(BlockFactory::get(Block::REDSTONE_ORE), 8, 7, 0, 16),
|
||||
new OreType(BlockFactory::get(Block::LAPIS_ORE), 1, 6, 0, 32),
|
||||
new OreType(BlockFactory::get(Block::GOLD_ORE), 2, 8, 0, 32),
|
||||
new OreType(BlockFactory::get(Block::DIAMOND_ORE), 1, 7, 0, 16),
|
||||
new OreType(BlockFactory::get(Block::DIRT), 20, 32, 0, 128),
|
||||
new OreType(BlockFactory::get(Block::GRAVEL), 10, 16, 0, 128)
|
||||
new OreType(BlockFactory::get(BlockIds::COAL_ORE), 20, 16, 0, 128),
|
||||
new OreType(BlockFactory::get(BlockIds::IRON_ORE), 20, 8, 0, 64),
|
||||
new OreType(BlockFactory::get(BlockIds::REDSTONE_ORE), 8, 7, 0, 16),
|
||||
new OreType(BlockFactory::get(BlockIds::LAPIS_ORE), 1, 6, 0, 32),
|
||||
new OreType(BlockFactory::get(BlockIds::GOLD_ORE), 2, 8, 0, 32),
|
||||
new OreType(BlockFactory::get(BlockIds::DIAMOND_ORE), 1, 7, 0, 16),
|
||||
new OreType(BlockFactory::get(BlockIds::DIRT), 20, 32, 0, 128),
|
||||
new OreType(BlockFactory::get(BlockIds::GRAVEL), 10, 16, 0, 128)
|
||||
]);
|
||||
$this->populators[] = $ores;
|
||||
}
|
||||
@ -178,9 +178,9 @@ class Normal extends Generator{
|
||||
|
||||
$biomeCache = [];
|
||||
|
||||
$bedrock = BlockFactory::get(Block::BEDROCK)->getFullId();
|
||||
$stillWater = BlockFactory::get(Block::STILL_WATER)->getFullId();
|
||||
$stone = BlockFactory::get(Block::STONE)->getFullId();
|
||||
$bedrock = BlockFactory::get(BlockIds::BEDROCK)->getFullId();
|
||||
$stillWater = BlockFactory::get(BlockIds::STILL_WATER)->getFullId();
|
||||
$stone = BlockFactory::get(BlockIds::STONE)->getFullId();
|
||||
|
||||
for($x = 0; $x < 16; ++$x){
|
||||
for($z = 0; $z < 16; ++$z){
|
||||
|
@ -23,8 +23,8 @@ declare(strict_types=1);
|
||||
|
||||
namespace pocketmine\level\generator\object;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockFactory;
|
||||
use pocketmine\block\BlockIds;
|
||||
use pocketmine\block\utils\TreeType;
|
||||
use pocketmine\level\ChunkManager;
|
||||
use pocketmine\utils\Random;
|
||||
@ -34,7 +34,7 @@ class BirchTree extends Tree{
|
||||
protected $superBirch = false;
|
||||
|
||||
public function __construct(bool $superBirch = false){
|
||||
parent::__construct(BlockFactory::get(Block::LOG, TreeType::BIRCH()->getMagicNumber()), BlockFactory::get(Block::LEAVES, TreeType::BIRCH()->getMagicNumber()));
|
||||
parent::__construct(BlockFactory::get(BlockIds::LOG, TreeType::BIRCH()->getMagicNumber()), BlockFactory::get(BlockIds::LEAVES, TreeType::BIRCH()->getMagicNumber()));
|
||||
$this->superBirch = $superBirch;
|
||||
}
|
||||
|
||||
|
@ -23,13 +23,13 @@ declare(strict_types=1);
|
||||
|
||||
namespace pocketmine\level\generator\object;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockFactory;
|
||||
use pocketmine\block\BlockIds;
|
||||
use pocketmine\block\utils\TreeType;
|
||||
|
||||
class JungleTree extends Tree{
|
||||
|
||||
public function __construct(){
|
||||
parent::__construct(BlockFactory::get(Block::LOG, TreeType::JUNGLE()->getMagicNumber()), BlockFactory::get(Block::LEAVES, TreeType::JUNGLE()->getMagicNumber()), 8);
|
||||
parent::__construct(BlockFactory::get(BlockIds::LOG, TreeType::JUNGLE()->getMagicNumber()), BlockFactory::get(BlockIds::LEAVES, TreeType::JUNGLE()->getMagicNumber()), 8);
|
||||
}
|
||||
}
|
||||
|
@ -23,8 +23,8 @@ declare(strict_types=1);
|
||||
|
||||
namespace pocketmine\level\generator\object;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockFactory;
|
||||
use pocketmine\block\BlockIds;
|
||||
use pocketmine\block\utils\TreeType;
|
||||
use pocketmine\level\ChunkManager;
|
||||
use pocketmine\utils\Random;
|
||||
@ -32,7 +32,7 @@ use pocketmine\utils\Random;
|
||||
class OakTree extends Tree{
|
||||
|
||||
public function __construct(){
|
||||
parent::__construct(BlockFactory::get(Block::LOG, TreeType::OAK()->getMagicNumber()), BlockFactory::get(Block::LEAVES, TreeType::OAK()->getMagicNumber()));
|
||||
parent::__construct(BlockFactory::get(BlockIds::LOG, TreeType::OAK()->getMagicNumber()), BlockFactory::get(BlockIds::LEAVES, TreeType::OAK()->getMagicNumber()));
|
||||
}
|
||||
|
||||
public function placeObject(ChunkManager $level, int $x, int $y, int $z, Random $random) : void{
|
||||
|
@ -23,7 +23,7 @@ declare(strict_types=1);
|
||||
|
||||
namespace pocketmine\level\generator\object;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockIds;
|
||||
use pocketmine\level\ChunkManager;
|
||||
use pocketmine\math\VectorMath;
|
||||
use pocketmine\utils\Random;
|
||||
@ -46,7 +46,7 @@ class Ore{
|
||||
}
|
||||
|
||||
public function canPlaceObject(ChunkManager $level, int $x, int $y, int $z) : bool{
|
||||
return $level->getBlockAt($x, $y, $z)->getId() === Block::STONE;
|
||||
return $level->getBlockAt($x, $y, $z)->getId() === BlockIds::STONE;
|
||||
}
|
||||
|
||||
public function placeObject(ChunkManager $level, int $x, int $y, int $z) : void{
|
||||
@ -86,7 +86,7 @@ class Ore{
|
||||
$sizeZ = ($z + 0.5 - $seedZ) / $size;
|
||||
$sizeZ *= $sizeZ;
|
||||
|
||||
if(($sizeX + $sizeY + $sizeZ) < 1 and $level->getBlockAt($x, $y, $z)->getId() === Block::STONE){
|
||||
if(($sizeX + $sizeY + $sizeZ) < 1 and $level->getBlockAt($x, $y, $z)->getId() === BlockIds::STONE){
|
||||
$level->setBlockAt($x, $y, $z, $this->type->material);
|
||||
}
|
||||
}
|
||||
|
@ -23,8 +23,8 @@ declare(strict_types=1);
|
||||
|
||||
namespace pocketmine\level\generator\object;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockFactory;
|
||||
use pocketmine\block\BlockIds;
|
||||
use pocketmine\block\utils\TreeType;
|
||||
use pocketmine\level\BlockTransaction;
|
||||
use pocketmine\level\ChunkManager;
|
||||
@ -34,7 +34,7 @@ use function abs;
|
||||
class SpruceTree extends Tree{
|
||||
|
||||
public function __construct(){
|
||||
parent::__construct(BlockFactory::get(Block::LOG, TreeType::SPRUCE()->getMagicNumber()), BlockFactory::get(Block::LEAVES, TreeType::SPRUCE()->getMagicNumber()), 10);
|
||||
parent::__construct(BlockFactory::get(BlockIds::LOG, TreeType::SPRUCE()->getMagicNumber()), BlockFactory::get(BlockIds::LEAVES, TreeType::SPRUCE()->getMagicNumber()), 10);
|
||||
}
|
||||
|
||||
protected function generateChunkHeight(Random $random) : int{
|
||||
|
@ -25,6 +25,7 @@ namespace pocketmine\level\generator\object;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockFactory;
|
||||
use pocketmine\block\BlockIds;
|
||||
use pocketmine\level\ChunkManager;
|
||||
use pocketmine\math\Vector3;
|
||||
use pocketmine\utils\Random;
|
||||
@ -35,9 +36,9 @@ class TallGrass{
|
||||
public static function growGrass(ChunkManager $level, Vector3 $pos, Random $random, int $count = 15, int $radius = 10) : void{
|
||||
/** @var Block[] $arr */
|
||||
$arr = [
|
||||
BlockFactory::get(Block::DANDELION),
|
||||
BlockFactory::get(Block::POPPY),
|
||||
$tallGrass = BlockFactory::get(Block::TALL_GRASS, 1),
|
||||
BlockFactory::get(BlockIds::DANDELION),
|
||||
BlockFactory::get(BlockIds::POPPY),
|
||||
$tallGrass = BlockFactory::get(BlockIds::TALL_GRASS, 1),
|
||||
$tallGrass,
|
||||
$tallGrass,
|
||||
$tallGrass
|
||||
@ -46,7 +47,7 @@ class TallGrass{
|
||||
for($c = 0; $c < $count; ++$c){
|
||||
$x = $random->nextRange($pos->x - $radius, $pos->x + $radius);
|
||||
$z = $random->nextRange($pos->z - $radius, $pos->z + $radius);
|
||||
if($level->getBlockAt($x, $pos->y + 1, $z)->getId() === Block::AIR and $level->getBlockAt($x, $pos->y, $z)->getId() === Block::GRASS){
|
||||
if($level->getBlockAt($x, $pos->y + 1, $z)->getId() === BlockIds::AIR and $level->getBlockAt($x, $pos->y, $z)->getId() === BlockIds::GRASS){
|
||||
$level->setBlockAt($x, $pos->y + 1, $z, $arr[$random->nextRange(0, $arrC)]);
|
||||
}
|
||||
}
|
||||
|
@ -25,6 +25,7 @@ namespace pocketmine\level\generator\object;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockFactory;
|
||||
use pocketmine\block\BlockIds;
|
||||
use pocketmine\block\Leaves;
|
||||
use pocketmine\block\Sapling;
|
||||
use pocketmine\block\utils\TreeType;
|
||||
@ -120,7 +121,7 @@ abstract class Tree{
|
||||
|
||||
protected function placeTrunk(int $x, int $y, int $z, Random $random, int $trunkHeight, BlockTransaction $transaction) : void{
|
||||
// The base dirt block
|
||||
$transaction->addBlockAt($x, $y - 1, $z, BlockFactory::get(Block::DIRT));
|
||||
$transaction->addBlockAt($x, $y - 1, $z, BlockFactory::get(BlockIds::DIRT));
|
||||
|
||||
for($yy = 0; $yy < $trunkHeight; ++$yy){
|
||||
if($this->canOverride($transaction->fetchBlockAt($x, $y + $yy, $z))){
|
||||
|
@ -23,8 +23,8 @@ declare(strict_types=1);
|
||||
|
||||
namespace pocketmine\level\generator\populator;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockFactory;
|
||||
use pocketmine\block\BlockIds;
|
||||
use pocketmine\block\Liquid;
|
||||
use pocketmine\level\biome\Biome;
|
||||
use pocketmine\level\ChunkManager;
|
||||
@ -56,7 +56,7 @@ class GroundCover extends Populator{
|
||||
for($y = $startY; $y > $endY and $y >= 0; --$y){
|
||||
$b = $cover[$startY - $y];
|
||||
$id = BlockFactory::fromFullBlock($chunk->getFullBlock($x, $y, $z));
|
||||
if($id->getId() === Block::AIR and $b->isSolid()){
|
||||
if($id->getId() === BlockIds::AIR and $b->isSolid()){
|
||||
break;
|
||||
}
|
||||
if($b->canBeFlowedInto() and $id instanceof Liquid){
|
||||
|
@ -23,8 +23,8 @@ declare(strict_types=1);
|
||||
|
||||
namespace pocketmine\level\generator\populator;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockFactory;
|
||||
use pocketmine\block\BlockIds;
|
||||
use pocketmine\level\ChunkManager;
|
||||
use pocketmine\utils\Random;
|
||||
|
||||
@ -46,7 +46,7 @@ class TallGrass extends Populator{
|
||||
$this->level = $level;
|
||||
$amount = $random->nextRange(0, $this->randomAmount + 1) + $this->baseAmount;
|
||||
|
||||
$block = BlockFactory::get(Block::TALL_GRASS, 1);
|
||||
$block = BlockFactory::get(BlockIds::TALL_GRASS, 1);
|
||||
for($i = 0; $i < $amount; ++$i){
|
||||
$x = $random->nextRange($chunkX * 16, $chunkX * 16 + 15);
|
||||
$z = $random->nextRange($chunkZ * 16, $chunkZ * 16 + 15);
|
||||
@ -60,13 +60,13 @@ class TallGrass extends Populator{
|
||||
|
||||
private function canTallGrassStay(int $x, int $y, int $z) : bool{
|
||||
$b = $this->level->getBlockAt($x, $y, $z)->getId();
|
||||
return ($b === Block::AIR or $b === Block::SNOW_LAYER) and $this->level->getBlockAt($x, $y - 1, $z)->getId() === Block::GRASS;
|
||||
return ($b === BlockIds::AIR or $b === BlockIds::SNOW_LAYER) and $this->level->getBlockAt($x, $y - 1, $z)->getId() === BlockIds::GRASS;
|
||||
}
|
||||
|
||||
private function getHighestWorkableBlock(int $x, int $z) : int{
|
||||
for($y = 127; $y >= 0; --$y){
|
||||
$b = $this->level->getBlockAt($x, $y, $z)->getId();
|
||||
if($b !== Block::AIR and $b !== Block::LEAVES and $b !== Block::LEAVES2 and $b !== Block::SNOW_LAYER){
|
||||
if($b !== BlockIds::AIR and $b !== BlockIds::LEAVES and $b !== BlockIds::LEAVES2 and $b !== BlockIds::SNOW_LAYER){
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ declare(strict_types=1);
|
||||
|
||||
namespace pocketmine\level\generator\populator;
|
||||
|
||||
use pocketmine\block\Block;
|
||||
use pocketmine\block\BlockIds;
|
||||
use pocketmine\block\utils\TreeType;
|
||||
use pocketmine\level\ChunkManager;
|
||||
use pocketmine\level\generator\object\Tree as ObjectTree;
|
||||
@ -70,9 +70,9 @@ class Tree extends Populator{
|
||||
private function getHighestWorkableBlock(int $x, int $z) : int{
|
||||
for($y = 127; $y > 0; --$y){
|
||||
$b = $this->level->getBlockAt($x, $y, $z)->getId();
|
||||
if($b === Block::DIRT or $b === Block::GRASS){
|
||||
if($b === BlockIds::DIRT or $b === BlockIds::GRASS){
|
||||
break;
|
||||
}elseif($b !== Block::AIR and $b !== Block::SNOW_LAYER){
|
||||
}elseif($b !== BlockIds::AIR and $b !== BlockIds::SNOW_LAYER){
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ class BlockTest extends TestCase{
|
||||
* Test registering a block which would overwrite another block, without forcing it
|
||||
*/
|
||||
public function testAccidentalOverrideBlock() : void{
|
||||
$block = new MyCustomBlock(new BlockIdentifier(Block::COBBLESTONE), "Cobblestone");
|
||||
$block = new MyCustomBlock(new BlockIdentifier(BlockIds::COBBLESTONE), "Cobblestone");
|
||||
$this->expectException(\InvalidArgumentException::class);
|
||||
BlockFactory::register($block);
|
||||
}
|
||||
@ -46,7 +46,7 @@ class BlockTest extends TestCase{
|
||||
* Test registering a block deliberately overwriting another block works as expected
|
||||
*/
|
||||
public function testDeliberateOverrideBlock() : void{
|
||||
$block = new MyCustomBlock(new BlockIdentifier(Block::COBBLESTONE), "Cobblestone");
|
||||
$block = new MyCustomBlock(new BlockIdentifier(BlockIds::COBBLESTONE), "Cobblestone");
|
||||
BlockFactory::register($block, true);
|
||||
self::assertInstanceOf(MyCustomBlock::class, BlockFactory::get($block->getId()));
|
||||
}
|
||||
@ -101,12 +101,12 @@ class BlockTest extends TestCase{
|
||||
*/
|
||||
public function blockGetProvider() : array{
|
||||
return [
|
||||
[Block::STONE, 5],
|
||||
[Block::STONE, 15],
|
||||
[Block::GOLD_BLOCK, 0],
|
||||
[Block::WOODEN_PLANKS, 5],
|
||||
[Block::SAND, 0],
|
||||
[Block::GOLD_BLOCK, 0]
|
||||
[BlockIds::STONE, 5],
|
||||
[BlockIds::STONE, 15],
|
||||
[BlockIds::GOLD_BLOCK, 0],
|
||||
[BlockIds::WOODEN_PLANKS, 5],
|
||||
[BlockIds::SAND, 0],
|
||||
[BlockIds::GOLD_BLOCK, 0]
|
||||
];
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user