@@ -9,110 +9,123 @@ public enum Instrument {
|
||||
/**
|
||||
* Piano is the standard instrument for a note block.
|
||||
*/
|
||||
PIANO(0x0),
|
||||
PIANO(0x0, Sound.BLOCK_NOTE_BLOCK_HARP),
|
||||
/**
|
||||
* Bass drum is normally played when a note block is on top of a
|
||||
* stone-like block.
|
||||
*/
|
||||
BASS_DRUM(0x1),
|
||||
BASS_DRUM(0x1, Sound.BLOCK_NOTE_BLOCK_BASEDRUM),
|
||||
/**
|
||||
* Snare drum is normally played when a note block is on top of a sandy
|
||||
* block.
|
||||
*/
|
||||
SNARE_DRUM(0x2),
|
||||
SNARE_DRUM(0x2, Sound.BLOCK_NOTE_BLOCK_SNARE),
|
||||
/**
|
||||
* Sticks are normally played when a note block is on top of a glass
|
||||
* block.
|
||||
*/
|
||||
STICKS(0x3),
|
||||
STICKS(0x3, Sound.BLOCK_NOTE_BLOCK_HAT),
|
||||
/**
|
||||
* Bass guitar is normally played when a note block is on top of a wooden
|
||||
* block.
|
||||
*/
|
||||
BASS_GUITAR(0x4),
|
||||
BASS_GUITAR(0x4, Sound.BLOCK_NOTE_BLOCK_BASS),
|
||||
/**
|
||||
* Flute is normally played when a note block is on top of a clay block.
|
||||
*/
|
||||
FLUTE(0x5),
|
||||
FLUTE(0x5, Sound.BLOCK_NOTE_BLOCK_FLUTE),
|
||||
/**
|
||||
* Bell is normally played when a note block is on top of a gold block.
|
||||
*/
|
||||
BELL(0x6),
|
||||
BELL(0x6, Sound.BLOCK_NOTE_BLOCK_BELL),
|
||||
/**
|
||||
* Guitar is normally played when a note block is on top of a woolen block.
|
||||
*/
|
||||
GUITAR(0x7),
|
||||
GUITAR(0x7, Sound.BLOCK_NOTE_BLOCK_GUITAR),
|
||||
/**
|
||||
* Chime is normally played when a note block is on top of a packed ice
|
||||
* block.
|
||||
*/
|
||||
CHIME(0x8),
|
||||
CHIME(0x8, Sound.BLOCK_NOTE_BLOCK_CHIME),
|
||||
/**
|
||||
* Xylophone is normally played when a note block is on top of a bone block.
|
||||
*/
|
||||
XYLOPHONE(0x9),
|
||||
XYLOPHONE(0x9, Sound.BLOCK_NOTE_BLOCK_XYLOPHONE),
|
||||
/**
|
||||
* Iron Xylophone is normally played when a note block is on top of a iron block.
|
||||
*/
|
||||
IRON_XYLOPHONE(0xA),
|
||||
IRON_XYLOPHONE(0xA, Sound.BLOCK_NOTE_BLOCK_IRON_XYLOPHONE),
|
||||
/**
|
||||
* Cow Bell is normally played when a note block is on top of a soul sand block.
|
||||
*/
|
||||
COW_BELL(0xB),
|
||||
COW_BELL(0xB, Sound.BLOCK_NOTE_BLOCK_COW_BELL),
|
||||
/**
|
||||
* Didgeridoo is normally played when a note block is on top of a pumpkin block.
|
||||
*/
|
||||
DIDGERIDOO(0xC),
|
||||
DIDGERIDOO(0xC, Sound.BLOCK_NOTE_BLOCK_DIDGERIDOO),
|
||||
/**
|
||||
* Bit is normally played when a note block is on top of a emerald block.
|
||||
*/
|
||||
BIT(0xD),
|
||||
BIT(0xD, Sound.BLOCK_NOTE_BLOCK_BIT),
|
||||
/**
|
||||
* Banjo is normally played when a note block is on top of a hay block.
|
||||
*/
|
||||
BANJO(0xE),
|
||||
BANJO(0xE, Sound.BLOCK_NOTE_BLOCK_BANJO),
|
||||
/**
|
||||
* Pling is normally played when a note block is on top of a glowstone block.
|
||||
*/
|
||||
PLING(0xF),
|
||||
PLING(0xF, Sound.BLOCK_NOTE_BLOCK_PLING),
|
||||
/**
|
||||
* Zombie is normally played when a Zombie Head is on top of the note block.
|
||||
*/
|
||||
ZOMBIE,
|
||||
ZOMBIE(Sound.BLOCK_NOTE_BLOCK_IMITATE_ZOMBIE),
|
||||
/**
|
||||
* Skeleton is normally played when a Skeleton Head is on top of the note block.
|
||||
*/
|
||||
SKELETON,
|
||||
SKELETON(Sound.BLOCK_NOTE_BLOCK_IMITATE_SKELETON),
|
||||
/**
|
||||
* Creeper is normally played when a Creeper Head is on top of the note block.
|
||||
*/
|
||||
CREEPER,
|
||||
CREEPER(Sound.BLOCK_NOTE_BLOCK_IMITATE_CREEPER),
|
||||
/**
|
||||
* Dragon is normally played when a Dragon Head is on top of the note block.
|
||||
*/
|
||||
DRAGON,
|
||||
DRAGON(Sound.BLOCK_NOTE_BLOCK_IMITATE_ENDER_DRAGON),
|
||||
/**
|
||||
* Wither Skeleton is normally played when a Wither Skeleton Head is on top of the note block.
|
||||
*/
|
||||
WITHER_SKELETON,
|
||||
WITHER_SKELETON(Sound.BLOCK_NOTE_BLOCK_IMITATE_WITHER_SKELETON),
|
||||
/**
|
||||
* Piglin is normally played when a Piglin Head is on top of the note block.
|
||||
*/
|
||||
PIGLIN,
|
||||
PIGLIN(Sound.BLOCK_NOTE_BLOCK_IMITATE_PIGLIN),
|
||||
/**
|
||||
* Custom Sound is normally played when a Player Head with the required data is on top of the note block.
|
||||
*/
|
||||
CUSTOM_HEAD;
|
||||
CUSTOM_HEAD(null);
|
||||
|
||||
private final byte type;
|
||||
private final Sound sound;
|
||||
private static final Map<Byte, Instrument> BY_DATA = Maps.newHashMap();
|
||||
|
||||
private Instrument() {
|
||||
this(-1);
|
||||
private Instrument(final Sound sound) {
|
||||
this(-1, sound);
|
||||
}
|
||||
|
||||
private Instrument(final int type) {
|
||||
private Instrument(final int type, final Sound sound) {
|
||||
this.type = (byte) type;
|
||||
this.sound = sound;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the sound associated with this instrument. <br>
|
||||
* Will be null for {@link Instrument#CUSTOM_HEAD}
|
||||
*
|
||||
* @return the sound or null
|
||||
*/
|
||||
@Nullable
|
||||
public Sound getSound() {
|
||||
return this.sound;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user