mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-04-21 08:17:34 +00:00
Implemented log stripping via axe right-click
This commit is contained in:
parent
248eacd042
commit
ff90c83d66
@ -461,11 +461,8 @@ class BlockFactory{
|
||||
|
||||
$this->register(new Leaves(BlockLegacyIdHelper::getLeavesIdentifier($treeType), $name . " Leaves", $leavesBreakInfo, $treeType));
|
||||
|
||||
$this->register(new Log(BlockLegacyIdHelper::getLogIdentifier($treeType), $name . " Log", $logBreakInfo, $treeType, false));
|
||||
$this->register(new Log(BlockLegacyIdHelper::getStrippedLogIdentifier($treeType), "Stripped " . $name . " Log", $logBreakInfo, $treeType, true));
|
||||
|
||||
$this->register(new Wood(BlockLegacyIdHelper::getAllSidedLogIdentifier($treeType), $name . " Wood", $logBreakInfo, $treeType, false));
|
||||
$this->register(new Wood(BlockLegacyIdHelper::getAllSidedStrippedLogIdentifier($treeType), "Stripped $name Wood", $logBreakInfo, $treeType, true));
|
||||
$this->register(new Log(BlockLegacyIdHelper::getLogIdentifier($treeType), $name . " Log", $logBreakInfo, $treeType));
|
||||
$this->register(new Wood(BlockLegacyIdHelper::getAllSidedLogIdentifier($treeType), $name . " Wood", $logBreakInfo, $treeType));
|
||||
|
||||
$this->register(new FenceGate(BlockLegacyIdHelper::getWoodenFenceGateIdentifier($treeType), $name . " Fence Gate", $planksBreakInfo));
|
||||
$this->register(new WoodenStairs(BlockLegacyIdHelper::getWoodenStairsIdentifier($treeType), $name . " Stairs", $planksBreakInfo));
|
||||
|
@ -92,18 +92,6 @@ final class BlockLegacyIdHelper{
|
||||
});
|
||||
}
|
||||
|
||||
public static function getAllSidedStrippedLogIdentifier(TreeType $treeType) : BID{
|
||||
return new BID(match($treeType->id()){
|
||||
TreeType::OAK()->id() => Ids::STRIPPED_OAK_WOOD,
|
||||
TreeType::SPRUCE()->id() => Ids::STRIPPED_SPRUCE_WOOD,
|
||||
TreeType::BIRCH()->id() => Ids::STRIPPED_BIRCH_WOOD,
|
||||
TreeType::JUNGLE()->id() => Ids::STRIPPED_JUNGLE_WOOD,
|
||||
TreeType::ACACIA()->id() => Ids::STRIPPED_ACACIA_WOOD,
|
||||
TreeType::DARK_OAK()->id() => Ids::STRIPPED_DARK_OAK_WOOD,
|
||||
default => throw new AssumptionFailedError("All tree types should be covered")
|
||||
});
|
||||
}
|
||||
|
||||
public static function getLeavesIdentifier(TreeType $treeType) : BID{
|
||||
return match($treeType->id()){
|
||||
TreeType::OAK()->id() => new BID(Ids::OAK_LEAVES),
|
||||
@ -281,22 +269,4 @@ final class BlockLegacyIdHelper{
|
||||
}
|
||||
throw new AssumptionFailedError("Switch should cover all wood types");
|
||||
}
|
||||
|
||||
public static function getStrippedLogIdentifier(TreeType $treeType) : BlockIdentifier{
|
||||
switch($treeType->id()){
|
||||
case TreeType::OAK()->id():
|
||||
return new BID(Ids::STRIPPED_OAK_LOG);
|
||||
case TreeType::SPRUCE()->id():
|
||||
return new BID(Ids::STRIPPED_SPRUCE_LOG);
|
||||
case TreeType::BIRCH()->id():
|
||||
return new BID(Ids::STRIPPED_BIRCH_LOG);
|
||||
case TreeType::JUNGLE()->id():
|
||||
return new BID(Ids::STRIPPED_JUNGLE_LOG);
|
||||
case TreeType::ACACIA()->id():
|
||||
return new BID(Ids::STRIPPED_ACACIA_LOG);
|
||||
case TreeType::DARK_OAK()->id():
|
||||
return new BID(Ids::STRIPPED_DARK_OAK_LOG);
|
||||
}
|
||||
throw new AssumptionFailedError("Switch should cover all wood types");
|
||||
}
|
||||
}
|
||||
|
@ -541,18 +541,7 @@ final class BlockTypeIds{
|
||||
public const STONE_SLAB = 10503;
|
||||
public const STONE_STAIRS = 10504;
|
||||
public const STONECUTTER = 10505;
|
||||
public const STRIPPED_ACACIA_LOG = 10506;
|
||||
public const STRIPPED_ACACIA_WOOD = 10507;
|
||||
public const STRIPPED_BIRCH_LOG = 10508;
|
||||
public const STRIPPED_BIRCH_WOOD = 10509;
|
||||
public const STRIPPED_DARK_OAK_LOG = 10510;
|
||||
public const STRIPPED_DARK_OAK_WOOD = 10511;
|
||||
public const STRIPPED_JUNGLE_LOG = 10512;
|
||||
public const STRIPPED_JUNGLE_WOOD = 10513;
|
||||
public const STRIPPED_OAK_LOG = 10514;
|
||||
public const STRIPPED_OAK_WOOD = 10515;
|
||||
public const STRIPPED_SPRUCE_LOG = 10516;
|
||||
public const STRIPPED_SPRUCE_WOOD = 10517;
|
||||
|
||||
public const SUGARCANE = 10518;
|
||||
public const SUNFLOWER = 10519;
|
||||
public const SWEET_BERRY_BUSH = 10520;
|
||||
|
@ -525,18 +525,6 @@ use pocketmine\utils\CloningRegistryTrait;
|
||||
* @method static StonePressurePlate STONE_PRESSURE_PLATE()
|
||||
* @method static Slab STONE_SLAB()
|
||||
* @method static Stair STONE_STAIRS()
|
||||
* @method static Log STRIPPED_ACACIA_LOG()
|
||||
* @method static Wood STRIPPED_ACACIA_WOOD()
|
||||
* @method static Log STRIPPED_BIRCH_LOG()
|
||||
* @method static Wood STRIPPED_BIRCH_WOOD()
|
||||
* @method static Log STRIPPED_DARK_OAK_LOG()
|
||||
* @method static Wood STRIPPED_DARK_OAK_WOOD()
|
||||
* @method static Log STRIPPED_JUNGLE_LOG()
|
||||
* @method static Wood STRIPPED_JUNGLE_WOOD()
|
||||
* @method static Log STRIPPED_OAK_LOG()
|
||||
* @method static Wood STRIPPED_OAK_WOOD()
|
||||
* @method static Log STRIPPED_SPRUCE_LOG()
|
||||
* @method static Wood STRIPPED_SPRUCE_WOOD()
|
||||
* @method static Sugarcane SUGARCANE()
|
||||
* @method static DoublePlant SUNFLOWER()
|
||||
* @method static SweetBerryBush SWEET_BERRY_BUSH()
|
||||
@ -585,7 +573,7 @@ final class VanillaBlocks{
|
||||
self::register("acacia_fence", $factory->get(Ids::ACACIA_FENCE, 0));
|
||||
self::register("acacia_fence_gate", $factory->get(Ids::ACACIA_FENCE_GATE, 0));
|
||||
self::register("acacia_leaves", $factory->get(Ids::ACACIA_LEAVES, 0));
|
||||
self::register("acacia_log", $factory->get(Ids::ACACIA_LOG, 2));
|
||||
self::register("acacia_log", $factory->get(Ids::ACACIA_LOG, 4));
|
||||
self::register("acacia_planks", $factory->get(Ids::ACACIA_PLANKS, 0));
|
||||
self::register("acacia_pressure_plate", $factory->get(Ids::ACACIA_PRESSURE_PLATE, 0));
|
||||
self::register("acacia_sapling", $factory->get(Ids::ACACIA_SAPLING, 0));
|
||||
@ -620,7 +608,7 @@ final class VanillaBlocks{
|
||||
self::register("birch_fence", $factory->get(Ids::BIRCH_FENCE, 0));
|
||||
self::register("birch_fence_gate", $factory->get(Ids::BIRCH_FENCE_GATE, 0));
|
||||
self::register("birch_leaves", $factory->get(Ids::BIRCH_LEAVES, 0));
|
||||
self::register("birch_log", $factory->get(Ids::BIRCH_LOG, 2));
|
||||
self::register("birch_log", $factory->get(Ids::BIRCH_LOG, 4));
|
||||
self::register("birch_planks", $factory->get(Ids::BIRCH_PLANKS, 0));
|
||||
self::register("birch_pressure_plate", $factory->get(Ids::BIRCH_PRESSURE_PLATE, 0));
|
||||
self::register("birch_sapling", $factory->get(Ids::BIRCH_SAPLING, 0));
|
||||
@ -682,7 +670,7 @@ final class VanillaBlocks{
|
||||
self::register("dark_oak_fence", $factory->get(Ids::DARK_OAK_FENCE, 0));
|
||||
self::register("dark_oak_fence_gate", $factory->get(Ids::DARK_OAK_FENCE_GATE, 0));
|
||||
self::register("dark_oak_leaves", $factory->get(Ids::DARK_OAK_LEAVES, 0));
|
||||
self::register("dark_oak_log", $factory->get(Ids::DARK_OAK_LOG, 2));
|
||||
self::register("dark_oak_log", $factory->get(Ids::DARK_OAK_LOG, 4));
|
||||
self::register("dark_oak_planks", $factory->get(Ids::DARK_OAK_PLANKS, 0));
|
||||
self::register("dark_oak_pressure_plate", $factory->get(Ids::DARK_OAK_PRESSURE_PLATE, 0));
|
||||
self::register("dark_oak_sapling", $factory->get(Ids::DARK_OAK_SAPLING, 0));
|
||||
@ -890,7 +878,7 @@ final class VanillaBlocks{
|
||||
self::register("jungle_fence", $factory->get(Ids::JUNGLE_FENCE, 0));
|
||||
self::register("jungle_fence_gate", $factory->get(Ids::JUNGLE_FENCE_GATE, 0));
|
||||
self::register("jungle_leaves", $factory->get(Ids::JUNGLE_LEAVES, 0));
|
||||
self::register("jungle_log", $factory->get(Ids::JUNGLE_LOG, 2));
|
||||
self::register("jungle_log", $factory->get(Ids::JUNGLE_LOG, 4));
|
||||
self::register("jungle_planks", $factory->get(Ids::JUNGLE_PLANKS, 0));
|
||||
self::register("jungle_pressure_plate", $factory->get(Ids::JUNGLE_PRESSURE_PLATE, 0));
|
||||
self::register("jungle_sapling", $factory->get(Ids::JUNGLE_SAPLING, 0));
|
||||
@ -948,7 +936,7 @@ final class VanillaBlocks{
|
||||
self::register("oak_fence", $factory->get(Ids::OAK_FENCE, 0));
|
||||
self::register("oak_fence_gate", $factory->get(Ids::OAK_FENCE_GATE, 0));
|
||||
self::register("oak_leaves", $factory->get(Ids::OAK_LEAVES, 0));
|
||||
self::register("oak_log", $factory->get(Ids::OAK_LOG, 2));
|
||||
self::register("oak_log", $factory->get(Ids::OAK_LOG, 4));
|
||||
self::register("oak_planks", $factory->get(Ids::OAK_PLANKS, 0));
|
||||
self::register("oak_pressure_plate", $factory->get(Ids::OAK_PRESSURE_PLATE, 0));
|
||||
self::register("oak_sapling", $factory->get(Ids::OAK_SAPLING, 0));
|
||||
@ -1048,7 +1036,7 @@ final class VanillaBlocks{
|
||||
self::register("spruce_fence", $factory->get(Ids::SPRUCE_FENCE, 0));
|
||||
self::register("spruce_fence_gate", $factory->get(Ids::SPRUCE_FENCE_GATE, 0));
|
||||
self::register("spruce_leaves", $factory->get(Ids::SPRUCE_LEAVES, 0));
|
||||
self::register("spruce_log", $factory->get(Ids::SPRUCE_LOG, 2));
|
||||
self::register("spruce_log", $factory->get(Ids::SPRUCE_LOG, 4));
|
||||
self::register("spruce_planks", $factory->get(Ids::SPRUCE_PLANKS, 0));
|
||||
self::register("spruce_pressure_plate", $factory->get(Ids::SPRUCE_PRESSURE_PLATE, 0));
|
||||
self::register("spruce_sapling", $factory->get(Ids::SPRUCE_SAPLING, 0));
|
||||
@ -1073,18 +1061,6 @@ final class VanillaBlocks{
|
||||
self::register("stone_slab", $factory->get(Ids::STONE_SLAB, 0));
|
||||
self::register("stone_stairs", $factory->get(Ids::STONE_STAIRS, 0));
|
||||
self::register("stonecutter", $factory->get(Ids::STONECUTTER, 0));
|
||||
self::register("stripped_acacia_log", $factory->get(Ids::STRIPPED_ACACIA_LOG, 2));
|
||||
self::register("stripped_acacia_wood", $factory->get(Ids::STRIPPED_ACACIA_WOOD, 0));
|
||||
self::register("stripped_birch_log", $factory->get(Ids::STRIPPED_BIRCH_LOG, 2));
|
||||
self::register("stripped_birch_wood", $factory->get(Ids::STRIPPED_BIRCH_WOOD, 0));
|
||||
self::register("stripped_dark_oak_log", $factory->get(Ids::STRIPPED_DARK_OAK_LOG, 2));
|
||||
self::register("stripped_dark_oak_wood", $factory->get(Ids::STRIPPED_DARK_OAK_WOOD, 0));
|
||||
self::register("stripped_jungle_log", $factory->get(Ids::STRIPPED_JUNGLE_LOG, 2));
|
||||
self::register("stripped_jungle_wood", $factory->get(Ids::STRIPPED_JUNGLE_WOOD, 0));
|
||||
self::register("stripped_oak_log", $factory->get(Ids::STRIPPED_OAK_LOG, 2));
|
||||
self::register("stripped_oak_wood", $factory->get(Ids::STRIPPED_OAK_WOOD, 0));
|
||||
self::register("stripped_spruce_log", $factory->get(Ids::STRIPPED_SPRUCE_LOG, 2));
|
||||
self::register("stripped_spruce_wood", $factory->get(Ids::STRIPPED_SPRUCE_WOOD, 0));
|
||||
self::register("sugarcane", $factory->get(Ids::SUGARCANE, 0));
|
||||
self::register("sunflower", $factory->get(Ids::SUNFLOWER, 0));
|
||||
self::register("sweet_berry_bush", $factory->get(Ids::SWEET_BERRY_BUSH, 0));
|
||||
|
@ -24,6 +24,9 @@ declare(strict_types=1);
|
||||
namespace pocketmine\block;
|
||||
|
||||
use pocketmine\block\utils\TreeType;
|
||||
use pocketmine\data\runtime\block\BlockDataReader;
|
||||
use pocketmine\data\runtime\block\BlockDataWriter;
|
||||
use pocketmine\item\Axe;
|
||||
use pocketmine\item\Item;
|
||||
use pocketmine\math\Vector3;
|
||||
use pocketmine\player\Player;
|
||||
@ -32,14 +35,23 @@ class Wood extends Opaque{
|
||||
|
||||
private TreeType $treeType;
|
||||
|
||||
private bool $stripped;
|
||||
private bool $stripped = false;
|
||||
|
||||
public function __construct(BlockIdentifier $idInfo, string $name, BlockBreakInfo $breakInfo, TreeType $treeType, bool $stripped){
|
||||
$this->stripped = $stripped; //TODO: this should be dynamic, but right now legacy shit gets in the way
|
||||
public function __construct(BlockIdentifier $idInfo, string $name, BlockBreakInfo $breakInfo, TreeType $treeType){
|
||||
parent::__construct($idInfo, $name, $breakInfo);
|
||||
$this->treeType = $treeType;
|
||||
}
|
||||
|
||||
public function getRequiredTypeDataBits() : int{ return 1; }
|
||||
|
||||
protected function decodeType(BlockDataReader $r) : void{
|
||||
$this->stripped = $r->readBool();
|
||||
}
|
||||
|
||||
protected function encodeType(BlockDataWriter $w) : void{
|
||||
$w->writeBool($this->stripped);
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO: this is ad hoc, but add an interface for this to all tree-related blocks
|
||||
*/
|
||||
@ -49,6 +61,12 @@ class Wood extends Opaque{
|
||||
|
||||
public function isStripped() : bool{ return $this->stripped; }
|
||||
|
||||
/** @return $this */
|
||||
public function setStripped(bool $stripped) : self{
|
||||
$this->stripped = $stripped;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getFuelTime() : int{
|
||||
return 300;
|
||||
}
|
||||
@ -62,8 +80,10 @@ class Wood extends Opaque{
|
||||
}
|
||||
|
||||
public function onInteract(Item $item, int $face, Vector3 $clickVector, ?Player $player = null) : bool{
|
||||
if(!$this->stripped && ($item->getBlockToolType() & BlockToolType::AXE) !== 0){
|
||||
//TODO: strip logs; can't implement this yet because of legacy limitations :(
|
||||
if(!$this->stripped && $item instanceof Axe){
|
||||
$item->applyDamage(1);
|
||||
$this->stripped = true;
|
||||
$this->position->getWorld()->setBlock($this->position, $this);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
@ -231,7 +231,7 @@ final class BlockObjectToBlockStateSerializer implements BlockStateSerializer{
|
||||
->writeString(StateNames::WOOD_TYPE, StringValues::WOOD_TYPE_ACACIA));
|
||||
$this->map(Blocks::ACACIA_FENCE_GATE(), fn(FenceGate $block) => Helper::encodeFenceGate($block, new Writer(Ids::ACACIA_FENCE_GATE)));
|
||||
$this->map(Blocks::ACACIA_LEAVES(), fn(Leaves $block) => Helper::encodeLeaves2($block, StringValues::NEW_LEAF_TYPE_ACACIA));
|
||||
$this->map(Blocks::ACACIA_LOG(), fn(Log $block) => Helper::encodeLog2($block, StringValues::NEW_LOG_TYPE_ACACIA));
|
||||
$this->map(Blocks::ACACIA_LOG(), fn(Log $block) => Helper::encodeLog2($block, StringValues::NEW_LOG_TYPE_ACACIA, Ids::STRIPPED_ACACIA_LOG));
|
||||
$this->map(Blocks::ACACIA_PLANKS(), fn() => Writer::create(Ids::PLANKS)
|
||||
->writeString(StateNames::WOOD_TYPE, StringValues::WOOD_TYPE_ACACIA));
|
||||
$this->map(Blocks::ACACIA_PRESSURE_PLATE(), fn(WoodenPressurePlate $block) => Helper::encodeSimplePressurePlate($block, new Writer(Ids::ACACIA_PRESSURE_PLATE)));
|
||||
@ -319,7 +319,7 @@ final class BlockObjectToBlockStateSerializer implements BlockStateSerializer{
|
||||
->writeString(StateNames::WOOD_TYPE, StringValues::WOOD_TYPE_BIRCH));
|
||||
$this->map(Blocks::BIRCH_FENCE_GATE(), fn(FenceGate $block) => Helper::encodeFenceGate($block, new Writer(Ids::BIRCH_FENCE_GATE)));
|
||||
$this->map(Blocks::BIRCH_LEAVES(), fn(Leaves $block) => Helper::encodeLeaves1($block, StringValues::OLD_LEAF_TYPE_BIRCH));
|
||||
$this->map(Blocks::BIRCH_LOG(), fn(Log $block) => Helper::encodeLog1($block, StringValues::OLD_LOG_TYPE_BIRCH));
|
||||
$this->map(Blocks::BIRCH_LOG(), fn(Log $block) => Helper::encodeLog1($block, StringValues::OLD_LOG_TYPE_BIRCH, Ids::STRIPPED_BIRCH_LOG));
|
||||
$this->map(Blocks::BIRCH_PLANKS(), fn() => Writer::create(Ids::PLANKS)
|
||||
->writeString(StateNames::WOOD_TYPE, StringValues::WOOD_TYPE_BIRCH));
|
||||
$this->map(Blocks::BIRCH_PRESSURE_PLATE(), fn(WoodenPressurePlate $block) => Helper::encodeSimplePressurePlate($block, new Writer(Ids::BIRCH_PRESSURE_PLATE)));
|
||||
@ -433,7 +433,7 @@ final class BlockObjectToBlockStateSerializer implements BlockStateSerializer{
|
||||
->writeString(StateNames::WOOD_TYPE, StringValues::WOOD_TYPE_DARK_OAK));
|
||||
$this->map(Blocks::DARK_OAK_FENCE_GATE(), fn(FenceGate $block) => Helper::encodeFenceGate($block, new Writer(Ids::DARK_OAK_FENCE_GATE)));
|
||||
$this->map(Blocks::DARK_OAK_LEAVES(), fn(Leaves $block) => Helper::encodeLeaves2($block, StringValues::NEW_LEAF_TYPE_DARK_OAK));
|
||||
$this->map(Blocks::DARK_OAK_LOG(), fn(Log $block) => Helper::encodeLog2($block, StringValues::NEW_LOG_TYPE_DARK_OAK));
|
||||
$this->map(Blocks::DARK_OAK_LOG(), fn(Log $block) => Helper::encodeLog2($block, StringValues::NEW_LOG_TYPE_DARK_OAK, Ids::STRIPPED_DARK_OAK_LOG));
|
||||
$this->map(Blocks::DARK_OAK_PLANKS(), fn() => Writer::create(Ids::PLANKS)
|
||||
->writeString(StateNames::WOOD_TYPE, StringValues::WOOD_TYPE_DARK_OAK));
|
||||
$this->map(Blocks::DARK_OAK_PRESSURE_PLATE(), fn(WoodenPressurePlate $block) => Helper::encodeSimplePressurePlate($block, new Writer(Ids::DARK_OAK_PRESSURE_PLATE)));
|
||||
@ -720,7 +720,7 @@ final class BlockObjectToBlockStateSerializer implements BlockStateSerializer{
|
||||
->writeString(StateNames::WOOD_TYPE, StringValues::WOOD_TYPE_JUNGLE));
|
||||
$this->map(Blocks::JUNGLE_FENCE_GATE(), fn(FenceGate $block) => Helper::encodeFenceGate($block, new Writer(Ids::JUNGLE_FENCE_GATE)));
|
||||
$this->map(Blocks::JUNGLE_LEAVES(), fn(Leaves $block) => Helper::encodeLeaves1($block, StringValues::OLD_LEAF_TYPE_JUNGLE));
|
||||
$this->map(Blocks::JUNGLE_LOG(), fn(Log $block) => Helper::encodeLog1($block, StringValues::OLD_LOG_TYPE_JUNGLE));
|
||||
$this->map(Blocks::JUNGLE_LOG(), fn(Log $block) => Helper::encodeLog1($block, StringValues::OLD_LOG_TYPE_JUNGLE, Ids::STRIPPED_JUNGLE_LOG));
|
||||
$this->map(Blocks::JUNGLE_PLANKS(), fn() => Writer::create(Ids::PLANKS)
|
||||
->writeString(StateNames::WOOD_TYPE, StringValues::WOOD_TYPE_JUNGLE));
|
||||
$this->map(Blocks::JUNGLE_PRESSURE_PLATE(), fn(WoodenPressurePlate $block) => Helper::encodeSimplePressurePlate($block, new Writer(Ids::JUNGLE_PRESSURE_PLATE)));
|
||||
@ -824,7 +824,7 @@ final class BlockObjectToBlockStateSerializer implements BlockStateSerializer{
|
||||
->writeString(StateNames::WOOD_TYPE, StringValues::WOOD_TYPE_OAK));
|
||||
$this->map(Blocks::OAK_FENCE_GATE(), fn(FenceGate $block) => Helper::encodeFenceGate($block, new Writer(Ids::FENCE_GATE)));
|
||||
$this->map(Blocks::OAK_LEAVES(), fn(Leaves $block) => Helper::encodeLeaves1($block, StringValues::OLD_LEAF_TYPE_OAK));
|
||||
$this->map(Blocks::OAK_LOG(), fn(Log $block) => Helper::encodeLog1($block, StringValues::OLD_LOG_TYPE_OAK));
|
||||
$this->map(Blocks::OAK_LOG(), fn(Log $block) => Helper::encodeLog1($block, StringValues::OLD_LOG_TYPE_OAK, Ids::STRIPPED_OAK_LOG));
|
||||
$this->map(Blocks::OAK_PLANKS(), fn() => Writer::create(Ids::PLANKS)
|
||||
->writeString(StateNames::WOOD_TYPE, StringValues::WOOD_TYPE_OAK));
|
||||
$this->map(Blocks::OAK_PRESSURE_PLATE(), fn(WoodenPressurePlate $block) => Helper::encodeSimplePressurePlate($block, new Writer(Ids::WOODEN_PRESSURE_PLATE)));
|
||||
@ -974,7 +974,7 @@ final class BlockObjectToBlockStateSerializer implements BlockStateSerializer{
|
||||
->writeString(StateNames::WOOD_TYPE, StringValues::WOOD_TYPE_SPRUCE));
|
||||
$this->map(Blocks::SPRUCE_FENCE_GATE(), fn(FenceGate $block) => Helper::encodeFenceGate($block, new Writer(Ids::SPRUCE_FENCE_GATE)));
|
||||
$this->map(Blocks::SPRUCE_LEAVES(), fn(Leaves $block) => Helper::encodeLeaves1($block, StringValues::OLD_LEAF_TYPE_SPRUCE));
|
||||
$this->map(Blocks::SPRUCE_LOG(), fn(Log $block) => Helper::encodeLog1($block, StringValues::OLD_LOG_TYPE_SPRUCE));
|
||||
$this->map(Blocks::SPRUCE_LOG(), fn(Log $block) => Helper::encodeLog1($block, StringValues::OLD_LOG_TYPE_SPRUCE, Ids::STRIPPED_SPRUCE_LOG));
|
||||
$this->map(Blocks::SPRUCE_PLANKS(), fn() => Writer::create(Ids::PLANKS)
|
||||
->writeString(StateNames::WOOD_TYPE, StringValues::WOOD_TYPE_SPRUCE));
|
||||
$this->map(Blocks::SPRUCE_PRESSURE_PLATE(), fn(WoodenPressurePlate $block) => Helper::encodeSimplePressurePlate($block, new Writer(Ids::SPRUCE_PRESSURE_PLATE)));
|
||||
@ -1016,24 +1016,6 @@ final class BlockObjectToBlockStateSerializer implements BlockStateSerializer{
|
||||
$this->map(Blocks::STONE_PRESSURE_PLATE(), fn(StonePressurePlate $block) => Helper::encodeSimplePressurePlate($block, new Writer(Ids::STONE_PRESSURE_PLATE)));
|
||||
$this->map(Blocks::STONE_SLAB(), fn(Slab $block) => Helper::encodeStoneSlab4($block, StringValues::STONE_SLAB_TYPE_4_STONE));
|
||||
$this->map(Blocks::STONE_STAIRS(), fn(Stair $block) => Helper::encodeStairs($block, new Writer(Ids::NORMAL_STONE_STAIRS)));
|
||||
$this->map(Blocks::STRIPPED_ACACIA_LOG(), fn(Log $block) => Writer::create(Ids::STRIPPED_ACACIA_LOG)
|
||||
->writePillarAxis($block->getAxis()));
|
||||
$this->map(Blocks::STRIPPED_ACACIA_WOOD(), fn(Wood $block) => Helper::encodeAllSidedLog($block));
|
||||
$this->map(Blocks::STRIPPED_BIRCH_LOG(), fn(Log $block) => Writer::create(Ids::STRIPPED_BIRCH_LOG)
|
||||
->writePillarAxis($block->getAxis()));
|
||||
$this->map(Blocks::STRIPPED_BIRCH_WOOD(), fn(Wood $block) => Helper::encodeAllSidedLog($block));
|
||||
$this->map(Blocks::STRIPPED_DARK_OAK_LOG(), fn(Log $block) => Writer::create(Ids::STRIPPED_DARK_OAK_LOG)
|
||||
->writePillarAxis($block->getAxis()));
|
||||
$this->map(Blocks::STRIPPED_DARK_OAK_WOOD(), fn(Wood $block) => Helper::encodeAllSidedLog($block));
|
||||
$this->map(Blocks::STRIPPED_JUNGLE_LOG(), fn(Log $block) => Writer::create(Ids::STRIPPED_JUNGLE_LOG)
|
||||
->writePillarAxis($block->getAxis()));
|
||||
$this->map(Blocks::STRIPPED_JUNGLE_WOOD(), fn(Wood $block) => Helper::encodeAllSidedLog($block));
|
||||
$this->map(Blocks::STRIPPED_OAK_LOG(), fn(Log $block) => Writer::create(Ids::STRIPPED_OAK_LOG)
|
||||
->writePillarAxis($block->getAxis()));
|
||||
$this->map(Blocks::STRIPPED_OAK_WOOD(), fn(Wood $block) => Helper::encodeAllSidedLog($block));
|
||||
$this->map(Blocks::STRIPPED_SPRUCE_LOG(), fn(Log $block) => Writer::create(Ids::STRIPPED_SPRUCE_LOG)
|
||||
->writePillarAxis($block->getAxis()));
|
||||
$this->map(Blocks::STRIPPED_SPRUCE_WOOD(), fn(Wood $block) => Helper::encodeAllSidedLog($block));
|
||||
$this->map(Blocks::SUGARCANE(), function(Sugarcane $block) : Writer{
|
||||
return Writer::create(Ids::REEDS)
|
||||
->writeInt(StateNames::AGE, $block->getAge());
|
||||
|
@ -33,6 +33,7 @@ use pocketmine\block\FloorCoralFan;
|
||||
use pocketmine\block\FloorSign;
|
||||
use pocketmine\block\GlazedTerracotta;
|
||||
use pocketmine\block\Liquid;
|
||||
use pocketmine\block\Log;
|
||||
use pocketmine\block\RedMushroomBlock;
|
||||
use pocketmine\block\RedstoneComparator;
|
||||
use pocketmine\block\RedstoneRepeater;
|
||||
@ -149,6 +150,13 @@ final class BlockStateDeserializerHelper{
|
||||
return self::decodeLiquid($block, $in, true);
|
||||
}
|
||||
|
||||
/** @throws BlockStateDeserializeException */
|
||||
public static function decodeLog(Log $block, bool $stripped, BlockStateReader $in) : Log{
|
||||
return $block
|
||||
->setAxis($in->readPillarAxis())
|
||||
->setStripped($stripped);
|
||||
}
|
||||
|
||||
/** @throws BlockStateDeserializeException */
|
||||
public static function decodeMushroomBlock(RedMushroomBlock $block, BlockStateReader $in) : Block{
|
||||
switch($type = $in->readBoundedInt(BlockStateNames::HUGE_MUSHROOM_BITS, 0, 15)){
|
||||
|
@ -140,14 +140,17 @@ final class BlockStateSerializerHelper{
|
||||
->writePillarAxis($block->getAxis());
|
||||
}
|
||||
|
||||
public static function encodeLog1(Log $block, string $type) : BlockStateWriter{
|
||||
return self::encodeLog($block, BlockStateWriter::create(Ids::LOG)
|
||||
->writeString(BlockStateNames::OLD_LOG_TYPE, $type));
|
||||
public static function encodeLog1(Log $block, string $unstrippedType, string $strippedId) : BlockStateWriter{
|
||||
return self::encodeLog($block, $block->isStripped() ?
|
||||
BlockStateWriter::create($strippedId) :
|
||||
BlockStateWriter::create(Ids::LOG)->writeString(BlockStateNames::OLD_LOG_TYPE, $unstrippedType));
|
||||
}
|
||||
|
||||
public static function encodeLog2(Log $block, string $type) : BlockStateWriter{
|
||||
return self::encodeLog($block, BlockStateWriter::create(Ids::LOG2)
|
||||
->writeString(BlockStateNames::NEW_LOG_TYPE, $type));
|
||||
public static function encodeLog2(Log $block, string $unstrippedType, string $strippedId) : BlockStateWriter{
|
||||
return self::encodeLog($block, $block->isStripped() ?
|
||||
BlockStateWriter::create($strippedId) :
|
||||
BlockStateWriter::create(Ids::LOG2)->writeString(BlockStateNames::NEW_LOG_TYPE, $unstrippedType)
|
||||
);
|
||||
}
|
||||
|
||||
public static function encodeMushroomBlock(RedMushroomBlock $block, BlockStateWriter $out) : BlockStateWriter{
|
||||
|
@ -638,24 +638,18 @@ final class BlockStateToBlockObjectDeserializer implements BlockStateDeserialize
|
||||
->setFacing($in->readHorizontalFacing())
|
||||
->setLit(true);
|
||||
});
|
||||
$this->map(Ids::LOG, function(Reader $in) : Block{
|
||||
return (match($type = $in->readString(StateNames::OLD_LOG_TYPE)){
|
||||
StringValues::OLD_LOG_TYPE_BIRCH => Blocks::BIRCH_LOG(),
|
||||
StringValues::OLD_LOG_TYPE_JUNGLE => Blocks::JUNGLE_LOG(),
|
||||
StringValues::OLD_LOG_TYPE_OAK => Blocks::OAK_LOG(),
|
||||
StringValues::OLD_LOG_TYPE_SPRUCE => Blocks::SPRUCE_LOG(),
|
||||
default => throw $in->badValueException(StateNames::OLD_LOG_TYPE, $type),
|
||||
})
|
||||
->setAxis($in->readPillarAxis());
|
||||
});
|
||||
$this->map(Ids::LOG2, function(Reader $in) : Block{
|
||||
return (match($type = $in->readString(StateNames::NEW_LOG_TYPE)){
|
||||
StringValues::NEW_LOG_TYPE_ACACIA => Blocks::ACACIA_LOG(),
|
||||
StringValues::NEW_LOG_TYPE_DARK_OAK => Blocks::DARK_OAK_LOG(),
|
||||
default => throw $in->badValueException(StateNames::NEW_LOG_TYPE, $type),
|
||||
})
|
||||
->setAxis($in->readPillarAxis());
|
||||
});
|
||||
$this->map(Ids::LOG, fn(Reader $in) => Helper::decodeLog(match($type = $in->readString(StateNames::OLD_LOG_TYPE)){
|
||||
StringValues::OLD_LOG_TYPE_BIRCH => Blocks::BIRCH_LOG(),
|
||||
StringValues::OLD_LOG_TYPE_JUNGLE => Blocks::JUNGLE_LOG(),
|
||||
StringValues::OLD_LOG_TYPE_OAK => Blocks::OAK_LOG(),
|
||||
StringValues::OLD_LOG_TYPE_SPRUCE => Blocks::SPRUCE_LOG(),
|
||||
default => throw $in->badValueException(StateNames::OLD_LOG_TYPE, $type),
|
||||
}, false, $in));
|
||||
$this->map(Ids::LOG2, fn(Reader $in) => Helper::decodeLog(match($type = $in->readString(StateNames::NEW_LOG_TYPE)){
|
||||
StringValues::NEW_LOG_TYPE_ACACIA => Blocks::ACACIA_LOG(),
|
||||
StringValues::NEW_LOG_TYPE_DARK_OAK => Blocks::DARK_OAK_LOG(),
|
||||
default => throw $in->badValueException(StateNames::NEW_LOG_TYPE, $type),
|
||||
}, false, $in));
|
||||
$this->map(Ids::LOOM, function(Reader $in) : Block{
|
||||
return Blocks::LOOM()
|
||||
->setFacing($in->readLegacyHorizontalFacing());
|
||||
@ -959,30 +953,12 @@ final class BlockStateToBlockObjectDeserializer implements BlockStateDeserialize
|
||||
return Blocks::STONECUTTER()
|
||||
->setFacing($in->readHorizontalFacing());
|
||||
});
|
||||
$this->map(Ids::STRIPPED_ACACIA_LOG, function(Reader $in) : Block{
|
||||
return Blocks::STRIPPED_ACACIA_LOG()
|
||||
->setAxis($in->readPillarAxis());
|
||||
});
|
||||
$this->map(Ids::STRIPPED_BIRCH_LOG, function(Reader $in) : Block{
|
||||
return Blocks::STRIPPED_BIRCH_LOG()
|
||||
->setAxis($in->readPillarAxis());
|
||||
});
|
||||
$this->map(Ids::STRIPPED_DARK_OAK_LOG, function(Reader $in) : Block{
|
||||
return Blocks::STRIPPED_DARK_OAK_LOG()
|
||||
->setAxis($in->readPillarAxis());
|
||||
});
|
||||
$this->map(Ids::STRIPPED_JUNGLE_LOG, function(Reader $in) : Block{
|
||||
return Blocks::STRIPPED_JUNGLE_LOG()
|
||||
->setAxis($in->readPillarAxis());
|
||||
});
|
||||
$this->map(Ids::STRIPPED_OAK_LOG, function(Reader $in) : Block{
|
||||
return Blocks::STRIPPED_OAK_LOG()
|
||||
->setAxis($in->readPillarAxis());
|
||||
});
|
||||
$this->map(Ids::STRIPPED_SPRUCE_LOG, function(Reader $in) : Block{
|
||||
return Blocks::STRIPPED_SPRUCE_LOG()
|
||||
->setAxis($in->readPillarAxis());
|
||||
});
|
||||
$this->map(Ids::STRIPPED_ACACIA_LOG, fn(Reader $in) => Helper::decodeLog(Blocks::ACACIA_LOG(), true, $in));
|
||||
$this->map(Ids::STRIPPED_BIRCH_LOG, fn(Reader $in) => Helper::decodeLog(Blocks::BIRCH_LOG(), true, $in));
|
||||
$this->map(Ids::STRIPPED_DARK_OAK_LOG, fn(Reader $in) => Helper::decodeLog(Blocks::DARK_OAK_LOG(), true, $in));
|
||||
$this->map(Ids::STRIPPED_JUNGLE_LOG, fn(Reader $in) => Helper::decodeLog(Blocks::JUNGLE_LOG(), true, $in));
|
||||
$this->map(Ids::STRIPPED_OAK_LOG, fn(Reader $in) => Helper::decodeLog(Blocks::OAK_LOG(), true, $in));
|
||||
$this->map(Ids::STRIPPED_SPRUCE_LOG, fn(Reader $in) => Helper::decodeLog(Blocks::SPRUCE_LOG(), true, $in));
|
||||
$this->map(Ids::SWEET_BERRY_BUSH, function(Reader $in) : Block{
|
||||
//berry bush only wants 0-3, but it can be bigger in MCPE due to misuse of GROWTH state which goes up to 7
|
||||
$growth = $in->readBoundedInt(StateNames::GROWTH, 0, 7);
|
||||
@ -1057,15 +1033,15 @@ final class BlockStateToBlockObjectDeserializer implements BlockStateDeserialize
|
||||
$this->map(Ids::WOOD, function(Reader $in) : Block{
|
||||
$in->todo(StateNames::PILLAR_AXIS); //TODO: our impl doesn't support axis yet
|
||||
$stripped = $in->readBool(StateNames::STRIPPED_BIT);
|
||||
return match($woodType = $in->readString(StateNames::WOOD_TYPE)){
|
||||
StringValues::WOOD_TYPE_ACACIA => $stripped ? Blocks::STRIPPED_ACACIA_WOOD() : Blocks::ACACIA_WOOD(),
|
||||
StringValues::WOOD_TYPE_BIRCH => $stripped ? Blocks::STRIPPED_BIRCH_WOOD() : Blocks::BIRCH_WOOD(),
|
||||
StringValues::WOOD_TYPE_DARK_OAK => $stripped ? Blocks::STRIPPED_DARK_OAK_WOOD() : Blocks::DARK_OAK_WOOD(),
|
||||
StringValues::WOOD_TYPE_JUNGLE => $stripped ? Blocks::STRIPPED_JUNGLE_WOOD() : Blocks::JUNGLE_WOOD(),
|
||||
StringValues::WOOD_TYPE_OAK => $stripped ? Blocks::STRIPPED_OAK_WOOD() : Blocks::OAK_WOOD(),
|
||||
StringValues::WOOD_TYPE_SPRUCE => $stripped ? Blocks::STRIPPED_SPRUCE_WOOD() : Blocks::SPRUCE_WOOD(),
|
||||
return (match($woodType = $in->readString(StateNames::WOOD_TYPE)){
|
||||
StringValues::WOOD_TYPE_ACACIA => Blocks::ACACIA_WOOD(),
|
||||
StringValues::WOOD_TYPE_BIRCH => Blocks::BIRCH_WOOD(),
|
||||
StringValues::WOOD_TYPE_DARK_OAK => Blocks::DARK_OAK_WOOD(),
|
||||
StringValues::WOOD_TYPE_JUNGLE => Blocks::JUNGLE_WOOD(),
|
||||
StringValues::WOOD_TYPE_OAK => Blocks::OAK_WOOD(),
|
||||
StringValues::WOOD_TYPE_SPRUCE => Blocks::SPRUCE_WOOD(),
|
||||
default => throw $in->badValueException(StateNames::WOOD_TYPE, $woodType),
|
||||
};
|
||||
})->setStripped($stripped);
|
||||
});
|
||||
$this->map(Ids::WOODEN_BUTTON, fn(Reader $in) => Helper::decodeButton(Blocks::OAK_BUTTON(), $in));
|
||||
$this->map(Ids::WOODEN_DOOR, fn(Reader $in) => Helper::decodeDoor(Blocks::OAK_DOOR(), $in));
|
||||
|
@ -77,7 +77,7 @@ final class StringToItemParser extends StringToTParser{
|
||||
$result->registerBlock("acacia_fence", fn() => Blocks::ACACIA_FENCE());
|
||||
$result->registerBlock("acacia_fence_gate", fn() => Blocks::ACACIA_FENCE_GATE());
|
||||
$result->registerBlock("acacia_leaves", fn() => Blocks::ACACIA_LEAVES());
|
||||
$result->registerBlock("acacia_log", fn() => Blocks::ACACIA_LOG());
|
||||
$result->registerBlock("acacia_log", fn() => Blocks::ACACIA_LOG()->setStripped(false));
|
||||
$result->registerBlock("acacia_planks", fn() => Blocks::ACACIA_PLANKS());
|
||||
$result->registerBlock("acacia_pressure_plate", fn() => Blocks::ACACIA_PRESSURE_PLATE());
|
||||
$result->registerBlock("acacia_sapling", fn() => Blocks::ACACIA_SAPLING());
|
||||
@ -87,7 +87,7 @@ final class StringToItemParser extends StringToTParser{
|
||||
$result->registerBlock("acacia_standing_sign", fn() => Blocks::ACACIA_SIGN());
|
||||
$result->registerBlock("acacia_trapdoor", fn() => Blocks::ACACIA_TRAPDOOR());
|
||||
$result->registerBlock("acacia_wall_sign", fn() => Blocks::ACACIA_WALL_SIGN());
|
||||
$result->registerBlock("acacia_wood", fn() => Blocks::ACACIA_WOOD());
|
||||
$result->registerBlock("acacia_wood", fn() => Blocks::ACACIA_WOOD()->setStripped(false));
|
||||
$result->registerBlock("acacia_wood_stairs", fn() => Blocks::ACACIA_STAIRS());
|
||||
$result->registerBlock("acacia_wooden_stairs", fn() => Blocks::ACACIA_STAIRS());
|
||||
$result->registerBlock("activator_rail", fn() => Blocks::ACTIVATOR_RAIL());
|
||||
@ -119,7 +119,7 @@ final class StringToItemParser extends StringToTParser{
|
||||
$result->registerBlock("birch_fence", fn() => Blocks::BIRCH_FENCE());
|
||||
$result->registerBlock("birch_fence_gate", fn() => Blocks::BIRCH_FENCE_GATE());
|
||||
$result->registerBlock("birch_leaves", fn() => Blocks::BIRCH_LEAVES());
|
||||
$result->registerBlock("birch_log", fn() => Blocks::BIRCH_LOG());
|
||||
$result->registerBlock("birch_log", fn() => Blocks::BIRCH_LOG()->setStripped(false));
|
||||
$result->registerBlock("birch_planks", fn() => Blocks::BIRCH_PLANKS());
|
||||
$result->registerBlock("birch_pressure_plate", fn() => Blocks::BIRCH_PRESSURE_PLATE());
|
||||
$result->registerBlock("birch_sapling", fn() => Blocks::BIRCH_SAPLING());
|
||||
@ -129,7 +129,7 @@ final class StringToItemParser extends StringToTParser{
|
||||
$result->registerBlock("birch_standing_sign", fn() => Blocks::BIRCH_SIGN());
|
||||
$result->registerBlock("birch_trapdoor", fn() => Blocks::BIRCH_TRAPDOOR());
|
||||
$result->registerBlock("birch_wall_sign", fn() => Blocks::BIRCH_WALL_SIGN());
|
||||
$result->registerBlock("birch_wood", fn() => Blocks::BIRCH_WOOD());
|
||||
$result->registerBlock("birch_wood", fn() => Blocks::BIRCH_WOOD()->setStripped(false));
|
||||
$result->registerBlock("birch_wood_stairs", fn() => Blocks::BIRCH_STAIRS());
|
||||
$result->registerBlock("birch_wooden_stairs", fn() => Blocks::BIRCH_STAIRS());
|
||||
$result->registerBlock("blast_furnace", fn() => Blocks::BLAST_FURNACE());
|
||||
@ -211,7 +211,7 @@ final class StringToItemParser extends StringToTParser{
|
||||
$result->registerBlock("dark_oak_fence", fn() => Blocks::DARK_OAK_FENCE());
|
||||
$result->registerBlock("dark_oak_fence_gate", fn() => Blocks::DARK_OAK_FENCE_GATE());
|
||||
$result->registerBlock("dark_oak_leaves", fn() => Blocks::DARK_OAK_LEAVES());
|
||||
$result->registerBlock("dark_oak_log", fn() => Blocks::DARK_OAK_LOG());
|
||||
$result->registerBlock("dark_oak_log", fn() => Blocks::DARK_OAK_LOG()->setStripped(false));
|
||||
$result->registerBlock("dark_oak_planks", fn() => Blocks::DARK_OAK_PLANKS());
|
||||
$result->registerBlock("dark_oak_pressure_plate", fn() => Blocks::DARK_OAK_PRESSURE_PLATE());
|
||||
$result->registerBlock("dark_oak_sapling", fn() => Blocks::DARK_OAK_SAPLING());
|
||||
@ -221,7 +221,7 @@ final class StringToItemParser extends StringToTParser{
|
||||
$result->registerBlock("dark_oak_standing_sign", fn() => Blocks::DARK_OAK_SIGN());
|
||||
$result->registerBlock("dark_oak_trapdoor", fn() => Blocks::DARK_OAK_TRAPDOOR());
|
||||
$result->registerBlock("dark_oak_wall_sign", fn() => Blocks::DARK_OAK_WALL_SIGN());
|
||||
$result->registerBlock("dark_oak_wood", fn() => Blocks::DARK_OAK_WOOD());
|
||||
$result->registerBlock("dark_oak_wood", fn() => Blocks::DARK_OAK_WOOD()->setStripped(false));
|
||||
$result->registerBlock("dark_oak_wood_stairs", fn() => Blocks::DARK_OAK_STAIRS());
|
||||
$result->registerBlock("dark_oak_wooden_stairs", fn() => Blocks::DARK_OAK_STAIRS());
|
||||
$result->registerBlock("dark_prismarine", fn() => Blocks::DARK_PRISMARINE());
|
||||
@ -601,7 +601,7 @@ final class StringToItemParser extends StringToTParser{
|
||||
$result->registerBlock("jungle_fence", fn() => Blocks::JUNGLE_FENCE());
|
||||
$result->registerBlock("jungle_fence_gate", fn() => Blocks::JUNGLE_FENCE_GATE());
|
||||
$result->registerBlock("jungle_leaves", fn() => Blocks::JUNGLE_LEAVES());
|
||||
$result->registerBlock("jungle_log", fn() => Blocks::JUNGLE_LOG());
|
||||
$result->registerBlock("jungle_log", fn() => Blocks::JUNGLE_LOG()->setStripped(false));
|
||||
$result->registerBlock("jungle_planks", fn() => Blocks::JUNGLE_PLANKS());
|
||||
$result->registerBlock("jungle_pressure_plate", fn() => Blocks::JUNGLE_PRESSURE_PLATE());
|
||||
$result->registerBlock("jungle_sapling", fn() => Blocks::JUNGLE_SAPLING());
|
||||
@ -611,7 +611,7 @@ final class StringToItemParser extends StringToTParser{
|
||||
$result->registerBlock("jungle_standing_sign", fn() => Blocks::JUNGLE_SIGN());
|
||||
$result->registerBlock("jungle_trapdoor", fn() => Blocks::JUNGLE_TRAPDOOR());
|
||||
$result->registerBlock("jungle_wall_sign", fn() => Blocks::JUNGLE_WALL_SIGN());
|
||||
$result->registerBlock("jungle_wood", fn() => Blocks::JUNGLE_WOOD());
|
||||
$result->registerBlock("jungle_wood", fn() => Blocks::JUNGLE_WOOD()->setStripped(false));
|
||||
$result->registerBlock("jungle_wood_stairs", fn() => Blocks::JUNGLE_STAIRS());
|
||||
$result->registerBlock("jungle_wooden_stairs", fn() => Blocks::JUNGLE_STAIRS());
|
||||
$result->registerBlock("lab_table", fn() => Blocks::LAB_TABLE());
|
||||
@ -641,8 +641,8 @@ final class StringToItemParser extends StringToTParser{
|
||||
$result->registerBlock("lit_redstone_ore", fn() => Blocks::REDSTONE_ORE()->setLit(true));
|
||||
$result->registerBlock("lit_redstone_torch", fn() => Blocks::REDSTONE_TORCH());
|
||||
$result->registerBlock("lit_smoker", fn() => Blocks::SMOKER());
|
||||
$result->registerBlock("log", fn() => Blocks::OAK_LOG());
|
||||
$result->registerBlock("log2", fn() => Blocks::ACACIA_LOG());
|
||||
$result->registerBlock("log", fn() => Blocks::OAK_LOG()->setStripped(false));
|
||||
$result->registerBlock("log2", fn() => Blocks::ACACIA_LOG()->setStripped(false));
|
||||
$result->registerBlock("loom", fn() => Blocks::LOOM());
|
||||
$result->registerBlock("magma", fn() => Blocks::MAGMA());
|
||||
$result->registerBlock("material_reducer", fn() => Blocks::MATERIAL_REDUCER());
|
||||
@ -690,7 +690,7 @@ final class StringToItemParser extends StringToTParser{
|
||||
$result->registerBlock("oak_fence", fn() => Blocks::OAK_FENCE());
|
||||
$result->registerBlock("oak_fence_gate", fn() => Blocks::OAK_FENCE_GATE());
|
||||
$result->registerBlock("oak_leaves", fn() => Blocks::OAK_LEAVES());
|
||||
$result->registerBlock("oak_log", fn() => Blocks::OAK_LOG());
|
||||
$result->registerBlock("oak_log", fn() => Blocks::OAK_LOG()->setStripped(false));
|
||||
$result->registerBlock("oak_planks", fn() => Blocks::OAK_PLANKS());
|
||||
$result->registerBlock("oak_pressure_plate", fn() => Blocks::OAK_PRESSURE_PLATE());
|
||||
$result->registerBlock("oak_sapling", fn() => Blocks::OAK_SAPLING());
|
||||
@ -700,7 +700,7 @@ final class StringToItemParser extends StringToTParser{
|
||||
$result->registerBlock("oak_standing_sign", fn() => Blocks::OAK_SIGN());
|
||||
$result->registerBlock("oak_trapdoor", fn() => Blocks::OAK_TRAPDOOR());
|
||||
$result->registerBlock("oak_wall_sign", fn() => Blocks::OAK_WALL_SIGN());
|
||||
$result->registerBlock("oak_wood", fn() => Blocks::OAK_WOOD());
|
||||
$result->registerBlock("oak_wood", fn() => Blocks::OAK_WOOD()->setStripped(false));
|
||||
$result->registerBlock("oak_wood_stairs", fn() => Blocks::OAK_STAIRS());
|
||||
$result->registerBlock("oak_wooden_stairs", fn() => Blocks::OAK_STAIRS());
|
||||
$result->registerBlock("obsidian", fn() => Blocks::OBSIDIAN());
|
||||
@ -821,7 +821,7 @@ final class StringToItemParser extends StringToTParser{
|
||||
$result->registerBlock("spruce_fence", fn() => Blocks::SPRUCE_FENCE());
|
||||
$result->registerBlock("spruce_fence_gate", fn() => Blocks::SPRUCE_FENCE_GATE());
|
||||
$result->registerBlock("spruce_leaves", fn() => Blocks::SPRUCE_LEAVES());
|
||||
$result->registerBlock("spruce_log", fn() => Blocks::SPRUCE_LOG());
|
||||
$result->registerBlock("spruce_log", fn() => Blocks::SPRUCE_LOG()->setStripped(false));
|
||||
$result->registerBlock("spruce_planks", fn() => Blocks::SPRUCE_PLANKS());
|
||||
$result->registerBlock("spruce_pressure_plate", fn() => Blocks::SPRUCE_PRESSURE_PLATE());
|
||||
$result->registerBlock("spruce_sapling", fn() => Blocks::SPRUCE_SAPLING());
|
||||
@ -831,7 +831,7 @@ final class StringToItemParser extends StringToTParser{
|
||||
$result->registerBlock("spruce_standing_sign", fn() => Blocks::SPRUCE_SIGN());
|
||||
$result->registerBlock("spruce_trapdoor", fn() => Blocks::SPRUCE_TRAPDOOR());
|
||||
$result->registerBlock("spruce_wall_sign", fn() => Blocks::SPRUCE_WALL_SIGN());
|
||||
$result->registerBlock("spruce_wood", fn() => Blocks::SPRUCE_WOOD());
|
||||
$result->registerBlock("spruce_wood", fn() => Blocks::SPRUCE_WOOD()->setStripped(false));
|
||||
$result->registerBlock("spruce_wood_stairs", fn() => Blocks::SPRUCE_STAIRS());
|
||||
$result->registerBlock("spruce_wooden_stairs", fn() => Blocks::SPRUCE_STAIRS());
|
||||
$result->registerBlock("stained_clay", fn() => Blocks::STAINED_CLAY());
|
||||
@ -861,18 +861,18 @@ final class StringToItemParser extends StringToTParser{
|
||||
$result->registerBlock("stonebrick", fn() => Blocks::STONE_BRICKS());
|
||||
$result->registerBlock("stonecutter", fn() => Blocks::STONECUTTER());
|
||||
$result->registerBlock("stonecutter_block", fn() => Blocks::STONECUTTER());
|
||||
$result->registerBlock("stripped_acacia_log", fn() => Blocks::STRIPPED_ACACIA_LOG());
|
||||
$result->registerBlock("stripped_acacia_wood", fn() => Blocks::STRIPPED_ACACIA_WOOD());
|
||||
$result->registerBlock("stripped_birch_log", fn() => Blocks::STRIPPED_BIRCH_LOG());
|
||||
$result->registerBlock("stripped_birch_wood", fn() => Blocks::STRIPPED_BIRCH_WOOD());
|
||||
$result->registerBlock("stripped_dark_oak_log", fn() => Blocks::STRIPPED_DARK_OAK_LOG());
|
||||
$result->registerBlock("stripped_dark_oak_wood", fn() => Blocks::STRIPPED_DARK_OAK_WOOD());
|
||||
$result->registerBlock("stripped_jungle_log", fn() => Blocks::STRIPPED_JUNGLE_LOG());
|
||||
$result->registerBlock("stripped_jungle_wood", fn() => Blocks::STRIPPED_JUNGLE_WOOD());
|
||||
$result->registerBlock("stripped_oak_log", fn() => Blocks::STRIPPED_OAK_LOG());
|
||||
$result->registerBlock("stripped_oak_wood", fn() => Blocks::STRIPPED_OAK_WOOD());
|
||||
$result->registerBlock("stripped_spruce_log", fn() => Blocks::STRIPPED_SPRUCE_LOG());
|
||||
$result->registerBlock("stripped_spruce_wood", fn() => Blocks::STRIPPED_SPRUCE_WOOD());
|
||||
$result->registerBlock("stripped_acacia_log", fn() => Blocks::ACACIA_LOG()->setStripped(true));
|
||||
$result->registerBlock("stripped_acacia_wood", fn() => Blocks::ACACIA_WOOD()->setStripped(true));
|
||||
$result->registerBlock("stripped_birch_log", fn() => Blocks::BIRCH_LOG()->setStripped(true));
|
||||
$result->registerBlock("stripped_birch_wood", fn() => Blocks::BIRCH_WOOD()->setStripped(true));
|
||||
$result->registerBlock("stripped_dark_oak_log", fn() => Blocks::DARK_OAK_LOG()->setStripped(true));
|
||||
$result->registerBlock("stripped_dark_oak_wood", fn() => Blocks::DARK_OAK_WOOD()->setStripped(true));
|
||||
$result->registerBlock("stripped_jungle_log", fn() => Blocks::JUNGLE_LOG()->setStripped(true));
|
||||
$result->registerBlock("stripped_jungle_wood", fn() => Blocks::JUNGLE_WOOD()->setStripped(true));
|
||||
$result->registerBlock("stripped_oak_log", fn() => Blocks::OAK_LOG()->setStripped(true));
|
||||
$result->registerBlock("stripped_oak_wood", fn() => Blocks::OAK_WOOD()->setStripped(true));
|
||||
$result->registerBlock("stripped_spruce_log", fn() => Blocks::SPRUCE_LOG()->setStripped(true));
|
||||
$result->registerBlock("stripped_spruce_wood", fn() => Blocks::SPRUCE_WOOD()->setStripped(true));
|
||||
$result->registerBlock("sugar_cane", fn() => Blocks::SUGARCANE());
|
||||
$result->registerBlock("sugar_canes", fn() => Blocks::SUGARCANE());
|
||||
$result->registerBlock("sugarcane", fn() => Blocks::SUGARCANE());
|
||||
@ -890,7 +890,7 @@ final class StringToItemParser extends StringToTParser{
|
||||
$result->registerBlock("tripwire", fn() => Blocks::TRIPWIRE());
|
||||
$result->registerBlock("tripwire_hook", fn() => Blocks::TRIPWIRE_HOOK());
|
||||
$result->registerBlock("trunk", fn() => Blocks::OAK_PLANKS());
|
||||
$result->registerBlock("trunk2", fn() => Blocks::ACACIA_LOG());
|
||||
$result->registerBlock("trunk2", fn() => Blocks::ACACIA_LOG()->setStripped(false));
|
||||
$result->registerBlock("underwater_torch", fn() => Blocks::UNDERWATER_TORCH());
|
||||
$result->registerBlock("undyed_shulker_box", fn() => Blocks::SHULKER_BOX());
|
||||
$result->registerBlock("unlit_redstone_torch", fn() => Blocks::REDSTONE_TORCH());
|
||||
@ -912,8 +912,8 @@ final class StringToItemParser extends StringToTParser{
|
||||
$result->registerBlock("weighted_pressure_plate_light", fn() => Blocks::WEIGHTED_PRESSURE_PLATE_LIGHT());
|
||||
$result->registerBlock("wheat_block", fn() => Blocks::WHEAT());
|
||||
$result->registerBlock("white_tulip", fn() => Blocks::WHITE_TULIP());
|
||||
$result->registerBlock("wood", fn() => Blocks::OAK_LOG());
|
||||
$result->registerBlock("wood2", fn() => Blocks::ACACIA_LOG());
|
||||
$result->registerBlock("wood", fn() => Blocks::OAK_LOG()->setStripped(false));
|
||||
$result->registerBlock("wood2", fn() => Blocks::ACACIA_LOG()->setStripped(false));
|
||||
$result->registerBlock("wood_door_block", fn() => Blocks::OAK_DOOR());
|
||||
$result->registerBlock("wood_slab", fn() => Blocks::OAK_SLAB());
|
||||
$result->registerBlock("wood_slabs", fn() => Blocks::OAK_SLAB());
|
||||
|
Loading…
x
Reference in New Issue
Block a user