mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-04-23 00:55:57 +00:00
Implemented crimson, warped and mangrove signs
This commit is contained in:
parent
51ce358734
commit
412dcaa744
@ -26,6 +26,8 @@ namespace pocketmine\block;
|
||||
use pocketmine\block\tile\Sign as TileSign;
|
||||
use pocketmine\block\utils\SignText;
|
||||
use pocketmine\block\utils\SupportType;
|
||||
use pocketmine\block\utils\WoodType;
|
||||
use pocketmine\block\utils\WoodTypeTrait;
|
||||
use pocketmine\event\block\SignChangeEvent;
|
||||
use pocketmine\item\Item;
|
||||
use pocketmine\math\AxisAlignedBB;
|
||||
@ -38,6 +40,8 @@ use function assert;
|
||||
use function strlen;
|
||||
|
||||
abstract class BaseSign extends Transparent{
|
||||
use WoodTypeTrait;
|
||||
|
||||
protected SignText $text;
|
||||
protected ?int $editorEntityRuntimeId = null;
|
||||
|
||||
@ -47,7 +51,8 @@ abstract class BaseSign extends Transparent{
|
||||
/**
|
||||
* @param \Closure() : Item $asItemCallback
|
||||
*/
|
||||
public function __construct(BlockIdentifier $idInfo, string $name, BlockBreakInfo $breakInfo, \Closure $asItemCallback){
|
||||
public function __construct(BlockIdentifier $idInfo, string $name, BlockBreakInfo $breakInfo, WoodType $woodType, \Closure $asItemCallback){
|
||||
$this->woodType = $woodType;
|
||||
parent::__construct($idInfo, $name, $breakInfo);
|
||||
$this->text = new SignText();
|
||||
$this->asItemCallback = $asItemCallback;
|
||||
|
@ -461,10 +461,6 @@ class BlockFactory{
|
||||
$name = $treeType->getDisplayName();
|
||||
$this->register(new Sapling(BlockLegacyIdHelper::getSaplingIdentifier($treeType), $name . " Sapling", BreakInfo::instant(), $treeType));
|
||||
$this->register(new Leaves(BlockLegacyIdHelper::getLeavesIdentifier($treeType), $name . " Leaves", $leavesBreakInfo, $treeType));
|
||||
|
||||
[$floorSignId, $wallSignId, $signAsItem] = BlockLegacyIdHelper::getWoodenSignInfo($treeType);
|
||||
$this->register(new FloorSign($floorSignId, $name . " Sign", $signBreakInfo, $signAsItem));
|
||||
$this->register(new WallSign($wallSignId, $name . " Wall Sign", $signBreakInfo, $signAsItem));
|
||||
}
|
||||
|
||||
foreach(WoodType::getAll() as $woodType){
|
||||
@ -484,6 +480,10 @@ class BlockFactory{
|
||||
$this->register(new WoodenButton(BlockLegacyIdHelper::getWoodenButtonIdentifier($woodType), $name . " Button", $woodenButtonBreakInfo, $woodType));
|
||||
$this->register(new WoodenPressurePlate(BlockLegacyIdHelper::getWoodenPressurePlateIdentifier($woodType), $name . " Pressure Plate", $woodenPressurePlateBreakInfo, $woodType));
|
||||
$this->register(new WoodenTrapdoor(BlockLegacyIdHelper::getWoodenTrapdoorIdentifier($woodType), $name . " Trapdoor", $woodenDoorBreakInfo, $woodType));
|
||||
|
||||
[$floorSignId, $wallSignId, $signAsItem] = BlockLegacyIdHelper::getWoodenSignInfo($woodType);
|
||||
$this->register(new FloorSign($floorSignId, $name . " Sign", $signBreakInfo, $woodType, $signAsItem));
|
||||
$this->register(new WallSign($wallSignId, $name . " Wall Sign", $signBreakInfo, $woodType, $signAsItem));
|
||||
}
|
||||
|
||||
$sandstoneBreakInfo = new BreakInfo(0.8, ToolType::PICKAXE, ToolTier::WOOD()->getHarvestLevel());
|
||||
|
@ -136,44 +136,63 @@ final class BlockLegacyIdHelper{
|
||||
* @return BID[]|\Closure[]
|
||||
* @phpstan-return array{BID, BID, \Closure() : \pocketmine\item\Item}
|
||||
*/
|
||||
public static function getWoodenSignInfo(TreeType $treeType) : array{
|
||||
public static function getWoodenSignInfo(WoodType $treeType) : array{
|
||||
switch($treeType->id()){
|
||||
case TreeType::OAK()->id():
|
||||
case WoodType::OAK()->id():
|
||||
return [
|
||||
new BID(Ids::OAK_SIGN, TileSign::class),
|
||||
new BID(Ids::OAK_WALL_SIGN, TileSign::class),
|
||||
fn() => VanillaItems::OAK_SIGN()
|
||||
];
|
||||
case TreeType::SPRUCE()->id():
|
||||
case WoodType::SPRUCE()->id():
|
||||
return [
|
||||
new BID(Ids::SPRUCE_SIGN, TileSign::class),
|
||||
new BID(Ids::SPRUCE_WALL_SIGN, TileSign::class),
|
||||
fn() => VanillaItems::SPRUCE_SIGN()
|
||||
];
|
||||
case TreeType::BIRCH()->id():
|
||||
case WoodType::BIRCH()->id():
|
||||
return [
|
||||
new BID(Ids::BIRCH_SIGN, TileSign::class),
|
||||
new BID(Ids::BIRCH_WALL_SIGN, TileSign::class),
|
||||
fn() => VanillaItems::BIRCH_SIGN()
|
||||
];
|
||||
case TreeType::JUNGLE()->id():
|
||||
case WoodType::JUNGLE()->id():
|
||||
return [
|
||||
new BID(Ids::JUNGLE_SIGN, TileSign::class),
|
||||
new BID(Ids::JUNGLE_WALL_SIGN, TileSign::class),
|
||||
fn() => VanillaItems::JUNGLE_SIGN()
|
||||
];
|
||||
case TreeType::ACACIA()->id():
|
||||
case WoodType::ACACIA()->id():
|
||||
return [
|
||||
new BID(Ids::ACACIA_SIGN, TileSign::class),
|
||||
new BID(Ids::ACACIA_WALL_SIGN, TileSign::class),
|
||||
fn() => VanillaItems::ACACIA_SIGN()
|
||||
];
|
||||
case TreeType::DARK_OAK()->id():
|
||||
case WoodType::DARK_OAK()->id():
|
||||
return [
|
||||
new BID(Ids::DARK_OAK_SIGN, TileSign::class),
|
||||
new BID(Ids::DARK_OAK_WALL_SIGN, TileSign::class),
|
||||
fn() => VanillaItems::DARK_OAK_SIGN()
|
||||
];
|
||||
case WoodType::MANGROVE()->id():
|
||||
return [
|
||||
new BID(Ids::MANGROVE_SIGN, TileSign::class),
|
||||
new BID(Ids::MANGROVE_WALL_SIGN, TileSign::class),
|
||||
fn() => VanillaItems::MANGROVE_SIGN()
|
||||
];
|
||||
case WoodType::CRIMSON()->id():
|
||||
return [
|
||||
new BID(Ids::CRIMSON_SIGN, TileSign::class),
|
||||
new BID(Ids::CRIMSON_WALL_SIGN, TileSign::class),
|
||||
fn() => VanillaItems::CRIMSON_SIGN()
|
||||
];
|
||||
case WoodType::WARPED()->id():
|
||||
return [
|
||||
new BID(Ids::WARPED_SIGN, TileSign::class),
|
||||
new BID(Ids::WARPED_WALL_SIGN, TileSign::class),
|
||||
fn() => VanillaItems::WARPED_SIGN()
|
||||
];
|
||||
|
||||
}
|
||||
throw new AssumptionFailedError("Switch should cover all wood types");
|
||||
}
|
||||
|
@ -650,6 +650,12 @@ final class BlockTypeIds{
|
||||
public const MANGROVE_STAIRS = 10625;
|
||||
public const CRIMSON_STAIRS = 10626;
|
||||
public const WARPED_STAIRS = 10627;
|
||||
public const MANGROVE_SIGN = 10628;
|
||||
public const CRIMSON_SIGN = 10629;
|
||||
public const WARPED_SIGN = 10630;
|
||||
public const MANGROVE_WALL_SIGN = 10631;
|
||||
public const CRIMSON_WALL_SIGN = 10632;
|
||||
public const WARPED_WALL_SIGN = 10633;
|
||||
|
||||
public const FIRST_UNUSED_BLOCK_ID = 10628;
|
||||
public const FIRST_UNUSED_BLOCK_ID = 10634;
|
||||
}
|
||||
|
@ -150,10 +150,12 @@ use pocketmine\utils\CloningRegistryTrait;
|
||||
* @method static Wood CRIMSON_HYPHAE()
|
||||
* @method static Planks CRIMSON_PLANKS()
|
||||
* @method static WoodenPressurePlate CRIMSON_PRESSURE_PLATE()
|
||||
* @method static FloorSign CRIMSON_SIGN()
|
||||
* @method static WoodenSlab CRIMSON_SLAB()
|
||||
* @method static WoodenStairs CRIMSON_STAIRS()
|
||||
* @method static Wood CRIMSON_STEM()
|
||||
* @method static WoodenTrapdoor CRIMSON_TRAPDOOR()
|
||||
* @method static WallSign CRIMSON_WALL_SIGN()
|
||||
* @method static Opaque CUT_RED_SANDSTONE()
|
||||
* @method static Slab CUT_RED_SANDSTONE_SLAB()
|
||||
* @method static Opaque CUT_SANDSTONE()
|
||||
@ -415,9 +417,11 @@ use pocketmine\utils\CloningRegistryTrait;
|
||||
* @method static Wood MANGROVE_LOG()
|
||||
* @method static Planks MANGROVE_PLANKS()
|
||||
* @method static WoodenPressurePlate MANGROVE_PRESSURE_PLATE()
|
||||
* @method static FloorSign MANGROVE_SIGN()
|
||||
* @method static WoodenSlab MANGROVE_SLAB()
|
||||
* @method static WoodenStairs MANGROVE_STAIRS()
|
||||
* @method static WoodenTrapdoor MANGROVE_TRAPDOOR()
|
||||
* @method static WallSign MANGROVE_WALL_SIGN()
|
||||
* @method static Wood MANGROVE_WOOD()
|
||||
* @method static ChemistryTable MATERIAL_REDUCER()
|
||||
* @method static Melon MELON()
|
||||
@ -617,10 +621,12 @@ use pocketmine\utils\CloningRegistryTrait;
|
||||
* @method static Wood WARPED_HYPHAE()
|
||||
* @method static Planks WARPED_PLANKS()
|
||||
* @method static WoodenPressurePlate WARPED_PRESSURE_PLATE()
|
||||
* @method static FloorSign WARPED_SIGN()
|
||||
* @method static WoodenSlab WARPED_SLAB()
|
||||
* @method static WoodenStairs WARPED_STAIRS()
|
||||
* @method static Wood WARPED_STEM()
|
||||
* @method static WoodenTrapdoor WARPED_TRAPDOOR()
|
||||
* @method static WallSign WARPED_WALL_SIGN()
|
||||
* @method static Water WATER()
|
||||
* @method static WeightedPressurePlateHeavy WEIGHTED_PRESSURE_PLATE_HEAVY()
|
||||
* @method static WeightedPressurePlateLight WEIGHTED_PRESSURE_PLATE_LIGHT()
|
||||
@ -769,10 +775,12 @@ final class VanillaBlocks{
|
||||
self::register("crimson_hyphae", $factory->fromTypeId(Ids::CRIMSON_HYPHAE));
|
||||
self::register("crimson_planks", $factory->fromTypeId(Ids::CRIMSON_PLANKS));
|
||||
self::register("crimson_pressure_plate", $factory->fromTypeId(Ids::CRIMSON_PRESSURE_PLATE));
|
||||
self::register("crimson_sign", $factory->fromTypeId(Ids::CRIMSON_SIGN));
|
||||
self::register("crimson_slab", $factory->fromTypeId(Ids::CRIMSON_SLAB));
|
||||
self::register("crimson_stairs", $factory->fromTypeId(Ids::CRIMSON_STAIRS));
|
||||
self::register("crimson_stem", $factory->fromTypeId(Ids::CRIMSON_STEM));
|
||||
self::register("crimson_trapdoor", $factory->fromTypeId(Ids::CRIMSON_TRAPDOOR));
|
||||
self::register("crimson_wall_sign", $factory->fromTypeId(Ids::CRIMSON_WALL_SIGN));
|
||||
self::register("cut_red_sandstone", $factory->fromTypeId(Ids::CUT_RED_SANDSTONE));
|
||||
self::register("cut_red_sandstone_slab", $factory->fromTypeId(Ids::CUT_RED_SANDSTONE_SLAB));
|
||||
self::register("cut_sandstone", $factory->fromTypeId(Ids::CUT_SANDSTONE));
|
||||
@ -1034,9 +1042,11 @@ final class VanillaBlocks{
|
||||
self::register("mangrove_log", $factory->fromTypeId(Ids::MANGROVE_LOG));
|
||||
self::register("mangrove_planks", $factory->fromTypeId(Ids::MANGROVE_PLANKS));
|
||||
self::register("mangrove_pressure_plate", $factory->fromTypeId(Ids::MANGROVE_PRESSURE_PLATE));
|
||||
self::register("mangrove_sign", $factory->fromTypeId(Ids::MANGROVE_SIGN));
|
||||
self::register("mangrove_slab", $factory->fromTypeId(Ids::MANGROVE_SLAB));
|
||||
self::register("mangrove_stairs", $factory->fromTypeId(Ids::MANGROVE_STAIRS));
|
||||
self::register("mangrove_trapdoor", $factory->fromTypeId(Ids::MANGROVE_TRAPDOOR));
|
||||
self::register("mangrove_wall_sign", $factory->fromTypeId(Ids::MANGROVE_WALL_SIGN));
|
||||
self::register("mangrove_wood", $factory->fromTypeId(Ids::MANGROVE_WOOD));
|
||||
self::register("material_reducer", $factory->fromTypeId(Ids::MATERIAL_REDUCER));
|
||||
self::register("melon", $factory->fromTypeId(Ids::MELON));
|
||||
@ -1236,10 +1246,12 @@ final class VanillaBlocks{
|
||||
self::register("warped_hyphae", $factory->fromTypeId(Ids::WARPED_HYPHAE));
|
||||
self::register("warped_planks", $factory->fromTypeId(Ids::WARPED_PLANKS));
|
||||
self::register("warped_pressure_plate", $factory->fromTypeId(Ids::WARPED_PRESSURE_PLATE));
|
||||
self::register("warped_sign", $factory->fromTypeId(Ids::WARPED_SIGN));
|
||||
self::register("warped_slab", $factory->fromTypeId(Ids::WARPED_SLAB));
|
||||
self::register("warped_stairs", $factory->fromTypeId(Ids::WARPED_STAIRS));
|
||||
self::register("warped_stem", $factory->fromTypeId(Ids::WARPED_STEM));
|
||||
self::register("warped_trapdoor", $factory->fromTypeId(Ids::WARPED_TRAPDOOR));
|
||||
self::register("warped_wall_sign", $factory->fromTypeId(Ids::WARPED_WALL_SIGN));
|
||||
self::register("water", $factory->fromTypeId(Ids::WATER));
|
||||
self::register("weighted_pressure_plate_heavy", $factory->fromTypeId(Ids::WEIGHTED_PRESSURE_PLATE_HEAVY));
|
||||
self::register("weighted_pressure_plate_light", $factory->fromTypeId(Ids::WEIGHTED_PRESSURE_PLATE_LIGHT));
|
||||
|
@ -465,10 +465,12 @@ final class BlockObjectToBlockStateSerializer implements BlockStateSerializer{
|
||||
$this->map(Blocks::CRIMSON_HYPHAE(), fn(Wood $block) => Helper::encodeNewLog($block, Ids::CRIMSON_HYPHAE, Ids::STRIPPED_CRIMSON_HYPHAE));
|
||||
$this->mapSimple(Blocks::CRIMSON_PLANKS(), Ids::CRIMSON_PLANKS);
|
||||
$this->map(Blocks::CRIMSON_PRESSURE_PLATE(), fn(SimplePressurePlate $block) => Helper::encodeSimplePressurePlate($block, new Writer(Ids::CRIMSON_PRESSURE_PLATE)));
|
||||
$this->map(Blocks::CRIMSON_SIGN(), fn(FloorSign $block) => Helper::encodeFloorSign($block, new Writer(Ids::CRIMSON_STANDING_SIGN)));
|
||||
$this->mapSlab(Blocks::CRIMSON_SLAB(), Ids::CRIMSON_SLAB, Ids::CRIMSON_DOUBLE_SLAB);
|
||||
$this->mapStairs(Blocks::CRIMSON_STAIRS(), Ids::CRIMSON_STAIRS);
|
||||
$this->map(Blocks::CRIMSON_STEM(), fn(Wood $block) => Helper::encodeNewLog($block, Ids::CRIMSON_STEM, Ids::STRIPPED_CRIMSON_STEM));
|
||||
$this->map(Blocks::CRIMSON_TRAPDOOR(), fn(Trapdoor $block) => Helper::encodeTrapdoor($block, new Writer(Ids::CRIMSON_TRAPDOOR)));
|
||||
$this->map(Blocks::CRIMSON_WALL_SIGN(), fn(WallSign $block) => Helper::encodeWallSign($block, new Writer(Ids::CRIMSON_WALL_SIGN)));
|
||||
$this->map(Blocks::CUT_RED_SANDSTONE(), fn() => Helper::encodeSandstone(Ids::RED_SANDSTONE, StringValues::SAND_STONE_TYPE_CUT));
|
||||
$this->map(Blocks::CUT_RED_SANDSTONE_SLAB(), fn(Slab $block) => Helper::encodeStoneSlab4($block, StringValues::STONE_SLAB_TYPE_4_CUT_RED_SANDSTONE));
|
||||
$this->map(Blocks::CUT_SANDSTONE(), fn() => Helper::encodeSandstone(Ids::SANDSTONE, StringValues::SAND_STONE_TYPE_CUT));
|
||||
@ -847,9 +849,11 @@ final class BlockObjectToBlockStateSerializer implements BlockStateSerializer{
|
||||
$this->map(Blocks::MANGROVE_LOG(), fn(Wood $block) => Helper::encodeNewLog($block, Ids::MANGROVE_LOG, Ids::STRIPPED_MANGROVE_LOG));
|
||||
$this->mapSimple(Blocks::MANGROVE_PLANKS(), Ids::MANGROVE_PLANKS);
|
||||
$this->map(Blocks::MANGROVE_PRESSURE_PLATE(), fn(SimplePressurePlate $block) => Helper::encodeSimplePressurePlate($block, new Writer(Ids::MANGROVE_PRESSURE_PLATE)));
|
||||
$this->map(Blocks::MANGROVE_SIGN(), fn(FloorSign $block) => Helper::encodeFloorSign($block, new Writer(Ids::MANGROVE_STANDING_SIGN)));
|
||||
$this->mapSlab(Blocks::MANGROVE_SLAB(), Ids::MANGROVE_SLAB, Ids::MANGROVE_DOUBLE_SLAB);
|
||||
$this->mapStairs(Blocks::MANGROVE_STAIRS(), Ids::MANGROVE_STAIRS);
|
||||
$this->map(Blocks::MANGROVE_TRAPDOOR(), fn(Trapdoor $block) => Helper::encodeTrapdoor($block, new Writer(Ids::MANGROVE_TRAPDOOR)));
|
||||
$this->map(Blocks::MANGROVE_WALL_SIGN(), fn(WallSign $block) => Helper::encodeWallSign($block, new Writer(Ids::MANGROVE_WALL_SIGN)));
|
||||
$this->map(Blocks::MANGROVE_WOOD(), function(Wood $block) : Writer{
|
||||
//we can't use the standard method for this because mangrove_wood has a useless property attached to it
|
||||
if(!$block->isStripped()){
|
||||
@ -1195,10 +1199,12 @@ final class BlockObjectToBlockStateSerializer implements BlockStateSerializer{
|
||||
$this->map(Blocks::WARPED_HYPHAE(), fn(Wood $block) => Helper::encodeNewLog($block, Ids::WARPED_HYPHAE, Ids::STRIPPED_WARPED_HYPHAE));
|
||||
$this->mapSimple(Blocks::WARPED_PLANKS(), Ids::WARPED_PLANKS);
|
||||
$this->map(Blocks::WARPED_PRESSURE_PLATE(), fn(SimplePressurePlate $block) => Helper::encodeSimplePressurePlate($block, new Writer(Ids::WARPED_PRESSURE_PLATE)));
|
||||
$this->map(Blocks::WARPED_SIGN(), fn(FloorSign $block) => Helper::encodeFloorSign($block, new Writer(Ids::WARPED_STANDING_SIGN)));
|
||||
$this->mapSlab(Blocks::WARPED_SLAB(), Ids::WARPED_SLAB, Ids::WARPED_DOUBLE_SLAB);
|
||||
$this->mapStairs(Blocks::WARPED_STAIRS(), Ids::WARPED_STAIRS);
|
||||
$this->map(Blocks::WARPED_STEM(), fn(Wood $block) => Helper::encodeNewLog($block, Ids::WARPED_STEM, Ids::STRIPPED_WARPED_STEM));
|
||||
$this->map(Blocks::WARPED_TRAPDOOR(), fn(Trapdoor $block) => Helper::encodeTrapdoor($block, new Writer(Ids::WARPED_TRAPDOOR)));
|
||||
$this->map(Blocks::WARPED_WALL_SIGN(), fn(WallSign $block) => Helper::encodeWallSign($block, new Writer(Ids::WARPED_WALL_SIGN)));
|
||||
$this->map(Blocks::WATER(), fn(Water $block) => Helper::encodeLiquid($block, Ids::WATER, Ids::FLOWING_WATER));
|
||||
$this->map(Blocks::WEIGHTED_PRESSURE_PLATE_HEAVY(), function(WeightedPressurePlateHeavy $block) : Writer{
|
||||
return Writer::create(Ids::HEAVY_WEIGHTED_PRESSURE_PLATE)
|
||||
|
@ -309,8 +309,10 @@ final class BlockStateToBlockObjectDeserializer implements BlockStateDeserialize
|
||||
$this->map(Ids::CRIMSON_PLANKS, fn() => Blocks::CRIMSON_PLANKS());
|
||||
$this->map(Ids::CRIMSON_PRESSURE_PLATE, fn(Reader $in) => Helper::decodeSimplePressurePlate(Blocks::CRIMSON_PRESSURE_PLATE(), $in));
|
||||
$this->mapStairs(Ids::CRIMSON_STAIRS, fn() => Blocks::CRIMSON_STAIRS());
|
||||
$this->map(Ids::CRIMSON_STANDING_SIGN, fn(Reader $in) => Helper::decodeFloorSign(Blocks::CRIMSON_SIGN(), $in));
|
||||
$this->map(Ids::CRIMSON_STEM, fn(Reader $in) => Helper::decodeLog(Blocks::CRIMSON_STEM(), false, $in));
|
||||
$this->map(Ids::CRIMSON_TRAPDOOR, fn(Reader $in) => Helper::decodeTrapdoor(Blocks::CRIMSON_TRAPDOOR(), $in));
|
||||
$this->map(Ids::CRIMSON_WALL_SIGN, fn(Reader $in) => Helper::decodeWallSign(Blocks::CRIMSON_WALL_SIGN(), $in));
|
||||
$this->map(Ids::CYAN_GLAZED_TERRACOTTA, fn(Reader $in) => Helper::decodeGlazedTerracotta(DyeColor::CYAN(), $in));
|
||||
$this->map(Ids::DARK_OAK_BUTTON, fn(Reader $in) => Helper::decodeButton(Blocks::DARK_OAK_BUTTON(), $in));
|
||||
$this->map(Ids::DARK_OAK_DOOR, fn(Reader $in) => Helper::decodeDoor(Blocks::DARK_OAK_DOOR(), $in));
|
||||
@ -735,7 +737,9 @@ final class BlockStateToBlockObjectDeserializer implements BlockStateDeserialize
|
||||
$this->map(Ids::MANGROVE_PLANKS, fn() => Blocks::MANGROVE_PLANKS());
|
||||
$this->map(Ids::MANGROVE_PRESSURE_PLATE, fn(Reader $in) => Helper::decodeSimplePressurePlate(Blocks::MANGROVE_PRESSURE_PLATE(), $in));
|
||||
$this->mapStairs(Ids::MANGROVE_STAIRS, fn() => Blocks::MANGROVE_STAIRS());
|
||||
$this->map(Ids::MANGROVE_STANDING_SIGN, fn(Reader $in) => Helper::decodeFloorSign(Blocks::MANGROVE_SIGN(), $in));
|
||||
$this->map(Ids::MANGROVE_TRAPDOOR, fn(Reader $in) => Helper::decodeTrapdoor(Blocks::MANGROVE_TRAPDOOR(), $in));
|
||||
$this->map(Ids::MANGROVE_WALL_SIGN, fn(Reader $in) => Helper::decodeWallSign(Blocks::MANGROVE_WALL_SIGN(), $in));
|
||||
$this->map(Ids::MANGROVE_WOOD, function(Reader $in){
|
||||
$in->ignored(StateNames::STRIPPED_BIT); //this is also ignored by vanilla
|
||||
return Helper::decodeLog(Blocks::MANGROVE_WOOD(), false, $in);
|
||||
@ -1151,8 +1155,10 @@ final class BlockStateToBlockObjectDeserializer implements BlockStateDeserialize
|
||||
$this->map(Ids::WARPED_PLANKS, fn() => Blocks::WARPED_PLANKS());
|
||||
$this->map(Ids::WARPED_PRESSURE_PLATE, fn(Reader $in) => Helper::decodeSimplePressurePlate(Blocks::WARPED_PRESSURE_PLATE(), $in));
|
||||
$this->mapStairs(Ids::WARPED_STAIRS, fn() => Blocks::WARPED_STAIRS());
|
||||
$this->map(Ids::WARPED_STANDING_SIGN, fn(Reader $in) => Helper::decodeFloorSign(Blocks::WARPED_SIGN(), $in));
|
||||
$this->map(Ids::WARPED_STEM, fn(Reader $in) => Helper::decodeLog(Blocks::WARPED_STEM(), false, $in));
|
||||
$this->map(Ids::WARPED_TRAPDOOR, fn(Reader $in) => Helper::decodeTrapdoor(Blocks::WARPED_TRAPDOOR(), $in));
|
||||
$this->map(Ids::WARPED_WALL_SIGN, fn(Reader $in) => Helper::decodeWallSign(Blocks::WARPED_WALL_SIGN(), $in));
|
||||
$this->map(Ids::WATER, fn(Reader $in) => Helper::decodeStillLiquid(Blocks::WATER(), $in));
|
||||
$this->map(Ids::WATERLILY, fn() => Blocks::LILY_PAD());
|
||||
$this->map(Ids::WEB, fn() => Blocks::COBWEB());
|
||||
|
@ -271,7 +271,7 @@ final class ItemDeserializer{
|
||||
//TODO: minecraft:creeper_banner_pattern
|
||||
//TODO: minecraft:creeper_spawn_egg
|
||||
$this->map(Ids::CRIMSON_DOOR, fn() => Blocks::CRIMSON_DOOR()->asItem());
|
||||
//TODO: minecraft:crimson_sign
|
||||
$this->map(Ids::CRIMSON_SIGN, fn() => Blocks::CRIMSON_SIGN()->asItem());
|
||||
//TODO: minecraft:crossbow
|
||||
$this->map(Ids::CYAN_DYE, fn() => Items::DYE()->setColor(DyeColor::CYAN()));
|
||||
$this->map(Ids::DARK_OAK_BOAT, fn() => Items::DARK_OAK_BOAT());
|
||||
@ -422,6 +422,7 @@ final class ItemDeserializer{
|
||||
$this->map(Ids::MAGMA_CREAM, fn() => Items::MAGMA_CREAM());
|
||||
//TODO: minecraft:magma_cube_spawn_egg
|
||||
$this->map(Ids::MANGROVE_DOOR, fn() => Blocks::MANGROVE_DOOR()->asItem());
|
||||
$this->map(Ids::MANGROVE_SIGN, fn() => Blocks::MANGROVE_SIGN()->asItem());
|
||||
//TODO: minecraft:medicine
|
||||
$this->map(Ids::MELON_SEEDS, fn() => Items::MELON_SEEDS());
|
||||
$this->map(Ids::MELON_SLICE, fn() => Items::MELON());
|
||||
@ -595,7 +596,7 @@ final class ItemDeserializer{
|
||||
//TODO: minecraft:wandering_trader_spawn_egg
|
||||
$this->map(Ids::WARPED_DOOR, fn() => Blocks::WARPED_DOOR()->asItem());
|
||||
//TODO: minecraft:warped_fungus_on_a_stick
|
||||
//TODO: minecraft:warped_sign
|
||||
$this->map(Ids::WARPED_SIGN, fn() => Blocks::WARPED_SIGN()->asItem());
|
||||
$this->map(Ids::WATER_BUCKET, fn() => Items::WATER_BUCKET());
|
||||
$this->map(Ids::WHEAT, fn() => Items::WHEAT());
|
||||
$this->map(Ids::WHEAT_SEEDS, fn() => Items::WHEAT_SEEDS());
|
||||
|
@ -336,6 +336,7 @@ final class ItemSerializer{
|
||||
$this->map(Items::COOKED_RABBIT(), self::id(Ids::COOKED_RABBIT));
|
||||
$this->map(Items::COOKED_SALMON(), self::id(Ids::COOKED_SALMON));
|
||||
$this->map(Items::COOKIE(), self::id(Ids::COOKIE));
|
||||
$this->map(Items::CRIMSON_SIGN(), self::id(Ids::CRIMSON_SIGN));
|
||||
$this->map(Items::DARK_OAK_BOAT(), self::id(Ids::DARK_OAK_BOAT));
|
||||
$this->map(Items::DARK_OAK_SIGN(), self::id(Ids::DARK_OAK_SIGN));
|
||||
$this->map(Items::DIAMOND(), self::id(Ids::DIAMOND));
|
||||
@ -420,6 +421,7 @@ final class ItemSerializer{
|
||||
$this->map(Items::LEATHER_PANTS(), self::id(Ids::LEATHER_LEGGINGS));
|
||||
$this->map(Items::LEATHER_TUNIC(), self::id(Ids::LEATHER_CHESTPLATE));
|
||||
$this->map(Items::MAGMA_CREAM(), self::id(Ids::MAGMA_CREAM));
|
||||
$this->map(Items::MANGROVE_SIGN(), self::id(Ids::MANGROVE_SIGN));
|
||||
$this->map(Items::MELON(), self::id(Ids::MELON_SLICE));
|
||||
$this->map(Items::MELON_SEEDS(), self::id(Ids::MELON_SEEDS));
|
||||
$this->map(Items::MILK_BUCKET(), self::id(Ids::MILK_BUCKET));
|
||||
@ -488,6 +490,7 @@ final class ItemSerializer{
|
||||
$this->map(Items::SWEET_BERRIES(), self::id(Ids::SWEET_BERRIES));
|
||||
$this->map(Items::TOTEM(), self::id(Ids::TOTEM_OF_UNDYING));
|
||||
$this->map(Items::VILLAGER_SPAWN_EGG(), self::id(Ids::VILLAGER_SPAWN_EGG));
|
||||
$this->map(Items::WARPED_SIGN(), self::id(Ids::WARPED_SIGN));
|
||||
$this->map(Items::WATER_BUCKET(), self::id(Ids::WATER_BUCKET));
|
||||
$this->map(Items::WHEAT(), self::id(Ids::WHEAT));
|
||||
$this->map(Items::WHEAT_SEEDS(), self::id(Ids::WHEAT_SEEDS));
|
||||
|
@ -219,6 +219,9 @@ class ItemFactory{
|
||||
$this->register(new ItemBlockWallOrFloor(new IID(Ids::JUNGLE_SIGN), Blocks::JUNGLE_SIGN(), Blocks::JUNGLE_WALL_SIGN()));
|
||||
$this->register(new ItemBlockWallOrFloor(new IID(Ids::ACACIA_SIGN), Blocks::ACACIA_SIGN(), Blocks::ACACIA_WALL_SIGN()));
|
||||
$this->register(new ItemBlockWallOrFloor(new IID(Ids::DARK_OAK_SIGN), Blocks::DARK_OAK_SIGN(), Blocks::DARK_OAK_WALL_SIGN()));
|
||||
$this->register(new ItemBlockWallOrFloor(new IID(Ids::MANGROVE_SIGN), Blocks::MANGROVE_SIGN(), Blocks::MANGROVE_WALL_SIGN()));
|
||||
$this->register(new ItemBlockWallOrFloor(new IID(Ids::CRIMSON_SIGN), Blocks::CRIMSON_SIGN(), Blocks::CRIMSON_WALL_SIGN()));
|
||||
$this->register(new ItemBlockWallOrFloor(new IID(Ids::WARPED_SIGN), Blocks::WARPED_SIGN(), Blocks::WARPED_WALL_SIGN()));
|
||||
$this->register(new Snowball(new IID(Ids::SNOWBALL), "Snowball"));
|
||||
$this->register(new SpiderEye(new IID(Ids::SPIDER_EYE), "Spider Eye"));
|
||||
$this->register(new Steak(new IID(Ids::STEAK), "Steak"));
|
||||
|
@ -265,6 +265,9 @@ final class ItemTypeIds{
|
||||
public const WRITABLE_BOOK = 20226;
|
||||
public const WRITTEN_BOOK = 20227;
|
||||
public const ZOMBIE_SPAWN_EGG = 20228;
|
||||
public const CRIMSON_SIGN = 20229;
|
||||
public const MANGROVE_SIGN = 20230;
|
||||
public const WARPED_SIGN = 20231;
|
||||
|
||||
public const FIRST_UNUSED_ITEM_ID = 20229;
|
||||
public const FIRST_UNUSED_ITEM_ID = 20232;
|
||||
}
|
||||
|
@ -233,6 +233,7 @@ final class StringToItemParser extends StringToTParser{
|
||||
$result->registerBlock("crimson_hyphae", fn() => Blocks::CRIMSON_HYPHAE()->setStripped(false));
|
||||
$result->registerBlock("crimson_planks", fn() => Blocks::CRIMSON_PLANKS());
|
||||
$result->registerBlock("crimson_pressure_plate", fn() => Blocks::CRIMSON_PRESSURE_PLATE());
|
||||
$result->registerBlock("crimson_sign", fn() => Blocks::CRIMSON_SIGN());
|
||||
$result->registerBlock("crimson_slab", fn() => Blocks::CRIMSON_SLAB());
|
||||
$result->registerBlock("crimson_stairs", fn() => Blocks::CRIMSON_STAIRS());
|
||||
$result->registerBlock("crimson_stem", fn() => Blocks::CRIMSON_STEM()->setStripped(false));
|
||||
@ -703,6 +704,7 @@ final class StringToItemParser extends StringToTParser{
|
||||
$result->registerBlock("mangrove_log", fn() => Blocks::MANGROVE_LOG()->setStripped(false));
|
||||
$result->registerBlock("mangrove_planks", fn() => Blocks::MANGROVE_PLANKS());
|
||||
$result->registerBlock("mangrove_pressure_plate", fn() => Blocks::MANGROVE_PRESSURE_PLATE());
|
||||
$result->registerBlock("mangrove_sign", fn() => Blocks::MANGROVE_SIGN());
|
||||
$result->registerBlock("mangrove_slab", fn() => Blocks::MANGROVE_SLAB());
|
||||
$result->registerBlock("mangrove_stairs", fn() => Blocks::MANGROVE_STAIRS());
|
||||
$result->registerBlock("mangrove_trapdoor", fn() => Blocks::MANGROVE_TRAPDOOR());
|
||||
@ -1003,6 +1005,7 @@ final class StringToItemParser extends StringToTParser{
|
||||
$result->registerBlock("warped_hyphae", fn() => Blocks::WARPED_HYPHAE()->setStripped(false));
|
||||
$result->registerBlock("warped_planks", fn() => Blocks::WARPED_PLANKS());
|
||||
$result->registerBlock("warped_pressure_plate", fn() => Blocks::WARPED_PRESSURE_PLATE());
|
||||
$result->registerBlock("warped_sign", fn() => Blocks::WARPED_SIGN());
|
||||
$result->registerBlock("warped_slab", fn() => Blocks::WARPED_SLAB());
|
||||
$result->registerBlock("warped_stairs", fn() => Blocks::WARPED_STAIRS());
|
||||
$result->registerBlock("warped_stem", fn() => Blocks::WARPED_STEM()->setStripped(false));
|
||||
|
@ -116,6 +116,7 @@ use pocketmine\utils\CloningRegistryTrait;
|
||||
* @method static CookedSalmon COOKED_SALMON()
|
||||
* @method static Cookie COOKIE()
|
||||
* @method static CoralFan CORAL_FAN()
|
||||
* @method static ItemBlockWallOrFloor CRIMSON_SIGN()
|
||||
* @method static Boat DARK_OAK_BOAT()
|
||||
* @method static ItemBlockWallOrFloor DARK_OAK_SIGN()
|
||||
* @method static Item DIAMOND()
|
||||
@ -182,6 +183,7 @@ use pocketmine\utils\CloningRegistryTrait;
|
||||
* @method static Armor LEATHER_PANTS()
|
||||
* @method static Armor LEATHER_TUNIC()
|
||||
* @method static Item MAGMA_CREAM()
|
||||
* @method static ItemBlockWallOrFloor MANGROVE_SIGN()
|
||||
* @method static Melon MELON()
|
||||
* @method static MelonSeeds MELON_SEEDS()
|
||||
* @method static MilkBucket MILK_BUCKET()
|
||||
@ -250,6 +252,7 @@ use pocketmine\utils\CloningRegistryTrait;
|
||||
* @method static SweetBerries SWEET_BERRIES()
|
||||
* @method static Totem TOTEM()
|
||||
* @method static SpawnEgg VILLAGER_SPAWN_EGG()
|
||||
* @method static ItemBlockWallOrFloor WARPED_SIGN()
|
||||
* @method static LiquidBucket WATER_BUCKET()
|
||||
* @method static Item WHEAT()
|
||||
* @method static WheatSeeds WHEAT_SEEDS()
|
||||
@ -369,6 +372,7 @@ final class VanillaItems{
|
||||
self::register("cooked_salmon", $factory->fromTypeId(Ids::COOKED_SALMON));
|
||||
self::register("cookie", $factory->fromTypeId(Ids::COOKIE));
|
||||
self::register("coral_fan", $factory->fromTypeId(Ids::CORAL_FAN));
|
||||
self::register("crimson_sign", $factory->fromTypeId(Ids::CRIMSON_SIGN));
|
||||
self::register("dark_oak_boat", $factory->fromTypeId(Ids::DARK_OAK_BOAT));
|
||||
self::register("dark_oak_sign", $factory->fromTypeId(Ids::DARK_OAK_SIGN));
|
||||
self::register("diamond", $factory->fromTypeId(Ids::DIAMOND));
|
||||
@ -435,6 +439,7 @@ final class VanillaItems{
|
||||
self::register("leather_pants", $factory->fromTypeId(Ids::LEATHER_PANTS));
|
||||
self::register("leather_tunic", $factory->fromTypeId(Ids::LEATHER_TUNIC));
|
||||
self::register("magma_cream", $factory->fromTypeId(Ids::MAGMA_CREAM));
|
||||
self::register("mangrove_sign", $factory->fromTypeId(Ids::MANGROVE_SIGN));
|
||||
self::register("melon", $factory->fromTypeId(Ids::MELON));
|
||||
self::register("melon_seeds", $factory->fromTypeId(Ids::MELON_SEEDS));
|
||||
self::register("milk_bucket", $factory->fromTypeId(Ids::MILK_BUCKET));
|
||||
@ -503,6 +508,7 @@ final class VanillaItems{
|
||||
self::register("sweet_berries", $factory->fromTypeId(Ids::SWEET_BERRIES));
|
||||
self::register("totem", $factory->fromTypeId(Ids::TOTEM));
|
||||
self::register("villager_spawn_egg", $factory->fromTypeId(Ids::VILLAGER_SPAWN_EGG));
|
||||
self::register("warped_sign", $factory->fromTypeId(Ids::WARPED_SIGN));
|
||||
self::register("water_bucket", $factory->fromTypeId(Ids::WATER_BUCKET));
|
||||
self::register("wheat", $factory->fromTypeId(Ids::WHEAT));
|
||||
self::register("wheat_seeds", $factory->fromTypeId(Ids::WHEAT_SEEDS));
|
||||
|
Loading…
x
Reference in New Issue
Block a user