mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-06-06 20:07:09 +00:00
BlockStateToObjectDeserializer: make flat colour block handling less repetetive
This commit is contained in:
parent
fa719f37d5
commit
1b452f3a88
@ -128,80 +128,95 @@ final class BlockStateToObjectDeserializer implements BlockStateDeserializer{
|
||||
|
||||
private function registerCandleDeserializers() : void{
|
||||
$this->map(Ids::CANDLE, fn(Reader $in) => Helper::decodeCandle(Blocks::CANDLE(), $in));
|
||||
$dyedCandleDeserializer = fn(DyeColor $color) => fn(Reader $in) => Helper::decodeCandle(Blocks::DYED_CANDLE()->setColor($color), $in);
|
||||
$this->map(Ids::BLACK_CANDLE, $dyedCandleDeserializer(DyeColor::BLACK()));
|
||||
$this->map(Ids::BLUE_CANDLE, $dyedCandleDeserializer(DyeColor::BLUE()));
|
||||
$this->map(Ids::BROWN_CANDLE, $dyedCandleDeserializer(DyeColor::BROWN()));
|
||||
$this->map(Ids::CYAN_CANDLE, $dyedCandleDeserializer(DyeColor::CYAN()));
|
||||
$this->map(Ids::GRAY_CANDLE, $dyedCandleDeserializer(DyeColor::GRAY()));
|
||||
$this->map(Ids::GREEN_CANDLE, $dyedCandleDeserializer(DyeColor::GREEN()));
|
||||
$this->map(Ids::LIGHT_BLUE_CANDLE, $dyedCandleDeserializer(DyeColor::LIGHT_BLUE()));
|
||||
$this->map(Ids::LIGHT_GRAY_CANDLE, $dyedCandleDeserializer(DyeColor::LIGHT_GRAY()));
|
||||
$this->map(Ids::LIME_CANDLE, $dyedCandleDeserializer(DyeColor::LIME()));
|
||||
$this->map(Ids::MAGENTA_CANDLE, $dyedCandleDeserializer(DyeColor::MAGENTA()));
|
||||
$this->map(Ids::ORANGE_CANDLE, $dyedCandleDeserializer(DyeColor::ORANGE()));
|
||||
$this->map(Ids::PINK_CANDLE, $dyedCandleDeserializer(DyeColor::PINK()));
|
||||
$this->map(Ids::PURPLE_CANDLE, $dyedCandleDeserializer(DyeColor::PURPLE()));
|
||||
$this->map(Ids::RED_CANDLE, $dyedCandleDeserializer(DyeColor::RED()));
|
||||
$this->map(Ids::WHITE_CANDLE, $dyedCandleDeserializer(DyeColor::WHITE()));
|
||||
$this->map(Ids::YELLOW_CANDLE, $dyedCandleDeserializer(DyeColor::YELLOW()));
|
||||
foreach([
|
||||
Ids::BLACK_CANDLE => DyeColor::BLACK(),
|
||||
Ids::BLUE_CANDLE => DyeColor::BLUE(),
|
||||
Ids::BROWN_CANDLE => DyeColor::BROWN(),
|
||||
Ids::CYAN_CANDLE => DyeColor::CYAN(),
|
||||
Ids::GRAY_CANDLE => DyeColor::GRAY(),
|
||||
Ids::GREEN_CANDLE => DyeColor::GREEN(),
|
||||
Ids::LIGHT_BLUE_CANDLE => DyeColor::LIGHT_BLUE(),
|
||||
Ids::LIGHT_GRAY_CANDLE => DyeColor::LIGHT_GRAY(),
|
||||
Ids::LIME_CANDLE => DyeColor::LIME(),
|
||||
Ids::MAGENTA_CANDLE => DyeColor::MAGENTA(),
|
||||
Ids::ORANGE_CANDLE => DyeColor::ORANGE(),
|
||||
Ids::PINK_CANDLE => DyeColor::PINK(),
|
||||
Ids::PURPLE_CANDLE => DyeColor::PURPLE(),
|
||||
Ids::RED_CANDLE => DyeColor::RED(),
|
||||
Ids::WHITE_CANDLE => DyeColor::WHITE(),
|
||||
Ids::YELLOW_CANDLE => DyeColor::YELLOW(),
|
||||
] as $id => $color){
|
||||
$this->map($id, fn(Reader $in) => Helper::decodeCandle(Blocks::DYED_CANDLE()->setColor($color), $in));
|
||||
}
|
||||
|
||||
$this->map(Ids::CANDLE_CAKE, fn(Reader $in) => Blocks::CAKE_WITH_CANDLE()->setLit($in->readBool(StateNames::LIT)));
|
||||
$cakeWithDyedCandleDeserializer = fn(DyeColor $color) => fn(Reader $in) => Blocks::CAKE_WITH_DYED_CANDLE()
|
||||
->setColor($color)
|
||||
->setLit($in->readBool(StateNames::LIT));
|
||||
$this->map(Ids::BLACK_CANDLE_CAKE, $cakeWithDyedCandleDeserializer(DyeColor::BLACK()));
|
||||
$this->map(Ids::BLUE_CANDLE_CAKE, $cakeWithDyedCandleDeserializer(DyeColor::BLUE()));
|
||||
$this->map(Ids::BROWN_CANDLE_CAKE, $cakeWithDyedCandleDeserializer(DyeColor::BROWN()));
|
||||
$this->map(Ids::CYAN_CANDLE_CAKE, $cakeWithDyedCandleDeserializer(DyeColor::CYAN()));
|
||||
$this->map(Ids::GRAY_CANDLE_CAKE, $cakeWithDyedCandleDeserializer(DyeColor::GRAY()));
|
||||
$this->map(Ids::GREEN_CANDLE_CAKE, $cakeWithDyedCandleDeserializer(DyeColor::GREEN()));
|
||||
$this->map(Ids::LIGHT_BLUE_CANDLE_CAKE, $cakeWithDyedCandleDeserializer(DyeColor::LIGHT_BLUE()));
|
||||
$this->map(Ids::LIGHT_GRAY_CANDLE_CAKE, $cakeWithDyedCandleDeserializer(DyeColor::LIGHT_GRAY()));
|
||||
$this->map(Ids::LIME_CANDLE_CAKE, $cakeWithDyedCandleDeserializer(DyeColor::LIME()));
|
||||
$this->map(Ids::MAGENTA_CANDLE_CAKE, $cakeWithDyedCandleDeserializer(DyeColor::MAGENTA()));
|
||||
$this->map(Ids::ORANGE_CANDLE_CAKE, $cakeWithDyedCandleDeserializer(DyeColor::ORANGE()));
|
||||
$this->map(Ids::PINK_CANDLE_CAKE, $cakeWithDyedCandleDeserializer(DyeColor::PINK()));
|
||||
$this->map(Ids::PURPLE_CANDLE_CAKE, $cakeWithDyedCandleDeserializer(DyeColor::PURPLE()));
|
||||
$this->map(Ids::RED_CANDLE_CAKE, $cakeWithDyedCandleDeserializer(DyeColor::RED()));
|
||||
$this->map(Ids::WHITE_CANDLE_CAKE, $cakeWithDyedCandleDeserializer(DyeColor::WHITE()));
|
||||
$this->map(Ids::YELLOW_CANDLE_CAKE, $cakeWithDyedCandleDeserializer(DyeColor::YELLOW()));
|
||||
foreach([
|
||||
Ids::BLACK_CANDLE_CAKE => DyeColor::BLACK(),
|
||||
Ids::BLUE_CANDLE_CAKE => DyeColor::BLUE(),
|
||||
Ids::BROWN_CANDLE_CAKE => DyeColor::BROWN(),
|
||||
Ids::CYAN_CANDLE_CAKE => DyeColor::CYAN(),
|
||||
Ids::GRAY_CANDLE_CAKE => DyeColor::GRAY(),
|
||||
Ids::GREEN_CANDLE_CAKE => DyeColor::GREEN(),
|
||||
Ids::LIGHT_BLUE_CANDLE_CAKE => DyeColor::LIGHT_BLUE(),
|
||||
Ids::LIGHT_GRAY_CANDLE_CAKE => DyeColor::LIGHT_GRAY(),
|
||||
Ids::LIME_CANDLE_CAKE => DyeColor::LIME(),
|
||||
Ids::MAGENTA_CANDLE_CAKE => DyeColor::MAGENTA(),
|
||||
Ids::ORANGE_CANDLE_CAKE => DyeColor::ORANGE(),
|
||||
Ids::PINK_CANDLE_CAKE => DyeColor::PINK(),
|
||||
Ids::PURPLE_CANDLE_CAKE => DyeColor::PURPLE(),
|
||||
Ids::RED_CANDLE_CAKE => DyeColor::RED(),
|
||||
Ids::WHITE_CANDLE_CAKE => DyeColor::WHITE(),
|
||||
Ids::YELLOW_CANDLE_CAKE => DyeColor::YELLOW(),
|
||||
] as $id => $color){
|
||||
$this->map($id, fn(Reader $in) => Blocks::CAKE_WITH_DYED_CANDLE()
|
||||
->setColor($color)
|
||||
->setLit($in->readBool(StateNames::LIT))
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
private function registerFlatColorBlockDeserializers() : void{
|
||||
$this->map(Ids::BLACK_GLAZED_TERRACOTTA, fn(Reader $in) => Helper::decodeGlazedTerracotta(DyeColor::BLACK(), $in));
|
||||
$this->map(Ids::BLUE_GLAZED_TERRACOTTA, fn(Reader $in) => Helper::decodeGlazedTerracotta(DyeColor::BLUE(), $in));
|
||||
$this->map(Ids::BROWN_GLAZED_TERRACOTTA, fn(Reader $in) => Helper::decodeGlazedTerracotta(DyeColor::BROWN(), $in));
|
||||
$this->map(Ids::CYAN_GLAZED_TERRACOTTA, fn(Reader $in) => Helper::decodeGlazedTerracotta(DyeColor::CYAN(), $in));
|
||||
$this->map(Ids::GRAY_GLAZED_TERRACOTTA, fn(Reader $in) => Helper::decodeGlazedTerracotta(DyeColor::GRAY(), $in));
|
||||
$this->map(Ids::GREEN_GLAZED_TERRACOTTA, fn(Reader $in) => Helper::decodeGlazedTerracotta(DyeColor::GREEN(), $in));
|
||||
$this->map(Ids::LIGHT_BLUE_GLAZED_TERRACOTTA, fn(Reader $in) => Helper::decodeGlazedTerracotta(DyeColor::LIGHT_BLUE(), $in));
|
||||
$this->map(Ids::SILVER_GLAZED_TERRACOTTA, fn(Reader $in) => Helper::decodeGlazedTerracotta(DyeColor::LIGHT_GRAY(), $in));
|
||||
$this->map(Ids::LIME_GLAZED_TERRACOTTA, fn(Reader $in) => Helper::decodeGlazedTerracotta(DyeColor::LIME(), $in));
|
||||
$this->map(Ids::MAGENTA_GLAZED_TERRACOTTA, fn(Reader $in) => Helper::decodeGlazedTerracotta(DyeColor::MAGENTA(), $in));
|
||||
$this->map(Ids::ORANGE_GLAZED_TERRACOTTA, fn(Reader $in) => Helper::decodeGlazedTerracotta(DyeColor::ORANGE(), $in));
|
||||
$this->map(Ids::PINK_GLAZED_TERRACOTTA, fn(Reader $in) => Helper::decodeGlazedTerracotta(DyeColor::PINK(), $in));
|
||||
$this->map(Ids::PURPLE_GLAZED_TERRACOTTA, fn(Reader $in) => Helper::decodeGlazedTerracotta(DyeColor::PURPLE(), $in));
|
||||
$this->map(Ids::RED_GLAZED_TERRACOTTA, fn(Reader $in) => Helper::decodeGlazedTerracotta(DyeColor::RED(), $in));
|
||||
$this->map(Ids::WHITE_GLAZED_TERRACOTTA, fn(Reader $in) => Helper::decodeGlazedTerracotta(DyeColor::WHITE(), $in));
|
||||
$this->map(Ids::YELLOW_GLAZED_TERRACOTTA, fn(Reader $in) => Helper::decodeGlazedTerracotta(DyeColor::YELLOW(), $in));
|
||||
foreach([
|
||||
Ids::BLACK_GLAZED_TERRACOTTA => DyeColor::BLACK(),
|
||||
Ids::BLUE_GLAZED_TERRACOTTA => DyeColor::BLUE(),
|
||||
Ids::BROWN_GLAZED_TERRACOTTA => DyeColor::BROWN(),
|
||||
Ids::CYAN_GLAZED_TERRACOTTA => DyeColor::CYAN(),
|
||||
Ids::GRAY_GLAZED_TERRACOTTA => DyeColor::GRAY(),
|
||||
Ids::GREEN_GLAZED_TERRACOTTA => DyeColor::GREEN(),
|
||||
Ids::LIGHT_BLUE_GLAZED_TERRACOTTA => DyeColor::LIGHT_BLUE(),
|
||||
Ids::SILVER_GLAZED_TERRACOTTA => DyeColor::LIGHT_GRAY(),
|
||||
Ids::LIME_GLAZED_TERRACOTTA => DyeColor::LIME(),
|
||||
Ids::MAGENTA_GLAZED_TERRACOTTA => DyeColor::MAGENTA(),
|
||||
Ids::ORANGE_GLAZED_TERRACOTTA => DyeColor::ORANGE(),
|
||||
Ids::PINK_GLAZED_TERRACOTTA => DyeColor::PINK(),
|
||||
Ids::PURPLE_GLAZED_TERRACOTTA => DyeColor::PURPLE(),
|
||||
Ids::RED_GLAZED_TERRACOTTA => DyeColor::RED(),
|
||||
Ids::WHITE_GLAZED_TERRACOTTA => DyeColor::WHITE(),
|
||||
Ids::YELLOW_GLAZED_TERRACOTTA => DyeColor::YELLOW(),
|
||||
] as $id => $color){
|
||||
$this->map($id, fn(Reader $in) => Helper::decodeGlazedTerracotta($color, $in));
|
||||
}
|
||||
|
||||
$this->mapSimple(Ids::BLACK_WOOL, fn() => Blocks::WOOL()->setColor(DyeColor::BLACK()));
|
||||
$this->mapSimple(Ids::BLUE_WOOL, fn() => Blocks::WOOL()->setColor(DyeColor::BLUE()));
|
||||
$this->mapSimple(Ids::BROWN_WOOL, fn() => Blocks::WOOL()->setColor(DyeColor::BROWN()));
|
||||
$this->mapSimple(Ids::CYAN_WOOL, fn() => Blocks::WOOL()->setColor(DyeColor::CYAN()));
|
||||
$this->mapSimple(Ids::GRAY_WOOL, fn() => Blocks::WOOL()->setColor(DyeColor::GRAY()));
|
||||
$this->mapSimple(Ids::GREEN_WOOL, fn() => Blocks::WOOL()->setColor(DyeColor::GREEN()));
|
||||
$this->mapSimple(Ids::LIGHT_BLUE_WOOL, fn() => Blocks::WOOL()->setColor(DyeColor::LIGHT_BLUE()));
|
||||
$this->mapSimple(Ids::LIGHT_GRAY_WOOL, fn() => Blocks::WOOL()->setColor(DyeColor::LIGHT_GRAY()));
|
||||
$this->mapSimple(Ids::LIME_WOOL, fn() => Blocks::WOOL()->setColor(DyeColor::LIME()));
|
||||
$this->mapSimple(Ids::MAGENTA_WOOL, fn() => Blocks::WOOL()->setColor(DyeColor::MAGENTA()));
|
||||
$this->mapSimple(Ids::ORANGE_WOOL, fn() => Blocks::WOOL()->setColor(DyeColor::ORANGE()));
|
||||
$this->mapSimple(Ids::PINK_WOOL, fn() => Blocks::WOOL()->setColor(DyeColor::PINK()));
|
||||
$this->mapSimple(Ids::PURPLE_WOOL, fn() => Blocks::WOOL()->setColor(DyeColor::PURPLE()));
|
||||
$this->mapSimple(Ids::RED_WOOL, fn() => Blocks::WOOL()->setColor(DyeColor::RED()));
|
||||
$this->mapSimple(Ids::WHITE_WOOL, fn() => Blocks::WOOL()->setColor(DyeColor::WHITE()));
|
||||
$this->mapSimple(Ids::YELLOW_WOOL, fn() => Blocks::WOOL()->setColor(DyeColor::YELLOW()));
|
||||
foreach([
|
||||
Ids::BLACK_WOOL => DyeColor::BLACK(),
|
||||
Ids::BLUE_WOOL => DyeColor::BLUE(),
|
||||
Ids::BROWN_WOOL => DyeColor::BROWN(),
|
||||
Ids::CYAN_WOOL => DyeColor::CYAN(),
|
||||
Ids::GRAY_WOOL => DyeColor::GRAY(),
|
||||
Ids::GREEN_WOOL => DyeColor::GREEN(),
|
||||
Ids::LIGHT_BLUE_WOOL => DyeColor::LIGHT_BLUE(),
|
||||
Ids::LIGHT_GRAY_WOOL => DyeColor::LIGHT_GRAY(),
|
||||
Ids::LIME_WOOL => DyeColor::LIME(),
|
||||
Ids::MAGENTA_WOOL => DyeColor::MAGENTA(),
|
||||
Ids::ORANGE_WOOL => DyeColor::ORANGE(),
|
||||
Ids::PINK_WOOL => DyeColor::PINK(),
|
||||
Ids::PURPLE_WOOL => DyeColor::PURPLE(),
|
||||
Ids::RED_WOOL => DyeColor::RED(),
|
||||
Ids::WHITE_WOOL => DyeColor::WHITE(),
|
||||
Ids::YELLOW_WOOL => DyeColor::YELLOW(),
|
||||
] as $id => $color){
|
||||
$this->mapSimple($id, fn() => Blocks::WOOL()->setColor($color));
|
||||
}
|
||||
}
|
||||
|
||||
private function registerCauldronDeserializers() : void{
|
||||
|
Loading…
x
Reference in New Issue
Block a user