PocketMine-MP 5.18.2 git-00e39821f06a4b6d728d35053c2621dbb19369ff
RecordType.php
1<?php
2
3/*
4 *
5 * ____ _ _ __ __ _ __ __ ____
6 * | _ \ ___ ___| | _____| |_| \/ (_)_ __ ___ | \/ | _ \
7 * | |_) / _ \ / __| |/ / _ \ __| |\/| | | '_ \ / _ \_____| |\/| | |_) |
8 * | __/ (_) | (__| < __/ |_| | | | | | | | __/_____| | | | __/
9 * |_| \___/ \___|_|\_\___|\__|_| |_|_|_| |_|\___| |_| |_|_|
10 *
11 * This program is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License as published by
13 * the Free Software Foundation, either version 3 of the License, or
14 * (at your option) any later version.
15 *
16 * @author PocketMine Team
17 * @link http://www.pocketmine.net/
18 *
19 *
20 */
21
22declare(strict_types=1);
23
24namespace pocketmine\block\utils;
25
29use pocketmine\utils\LegacyEnumShimTrait;
30use function spl_object_id;
31
54enum RecordType{
55 use LegacyEnumShimTrait;
56
57 case DISK_13;
58 case DISK_5;
59 case DISK_CAT;
60 case DISK_BLOCKS;
61 case DISK_CHIRP;
62 case DISK_FAR;
63 case DISK_MALL;
64 case DISK_MELLOHI;
65 case DISK_OTHERSIDE;
66 case DISK_PIGSTEP;
67 case DISK_STAL;
68 case DISK_STRAD;
69 case DISK_WARD;
70 case DISK_11;
71 case DISK_WAIT;
72
76 private function getMetadata() : array{
78 static $cache = [];
79
80 return $cache[spl_object_id($this)] ??= match($this){
81 self::DISK_13 => ["C418 - 13", LevelSoundEvent::RECORD_13, KnownTranslationFactory::item_record_13_desc()],
82 self::DISK_5 => ["Samuel Ã…berg - 5", LevelSoundEvent::RECORD_5, KnownTranslationFactory::item_record_5_desc()],
83 self::DISK_CAT => ["C418 - cat", LevelSoundEvent::RECORD_CAT, KnownTranslationFactory::item_record_cat_desc()],
84 self::DISK_BLOCKS => ["C418 - blocks", LevelSoundEvent::RECORD_BLOCKS, KnownTranslationFactory::item_record_blocks_desc()],
85 self::DISK_CHIRP => ["C418 - chirp", LevelSoundEvent::RECORD_CHIRP, KnownTranslationFactory::item_record_chirp_desc()],
86 self::DISK_FAR => ["C418 - far", LevelSoundEvent::RECORD_FAR, KnownTranslationFactory::item_record_far_desc()],
87 self::DISK_MALL => ["C418 - mall", LevelSoundEvent::RECORD_MALL, KnownTranslationFactory::item_record_mall_desc()],
88 self::DISK_MELLOHI => ["C418 - mellohi", LevelSoundEvent::RECORD_MELLOHI, KnownTranslationFactory::item_record_mellohi_desc()],
89 self::DISK_OTHERSIDE => ["Lena Raine - otherside", LevelSoundEvent::RECORD_OTHERSIDE, KnownTranslationFactory::item_record_otherside_desc()],
90 self::DISK_PIGSTEP => ["Lena Raine - Pigstep", LevelSoundEvent::RECORD_PIGSTEP, KnownTranslationFactory::item_record_pigstep_desc()],
91 self::DISK_STAL => ["C418 - stal", LevelSoundEvent::RECORD_STAL, KnownTranslationFactory::item_record_stal_desc()],
92 self::DISK_STRAD => ["C418 - strad", LevelSoundEvent::RECORD_STRAD, KnownTranslationFactory::item_record_strad_desc()],
93 self::DISK_WARD => ["C418 - ward", LevelSoundEvent::RECORD_WARD, KnownTranslationFactory::item_record_ward_desc()],
94 self::DISK_11 => ["C418 - 11", LevelSoundEvent::RECORD_11, KnownTranslationFactory::item_record_11_desc()],
95 self::DISK_WAIT => ["C418 - wait", LevelSoundEvent::RECORD_WAIT, KnownTranslationFactory::item_record_wait_desc()]
96 };
97 }
98
99 public function getSoundName() : string{
100 return $this->getMetadata()[0];
101 }
102
103 public function getSoundId() : int{
104 return $this->getMetadata()[1];
105 }
106
107 public function getTranslatableName() : Translatable{
108 return $this->getMetadata()[2];
109 }
110}