Add material data classes for cake, jukeboxes, and diodes. Remove some unneeded ones.

By: Celtic Minstrel <celtic.minstrel.ca@>
This commit is contained in:
Bukkit/Spigot
2011-03-26 12:29:52 -04:00
parent ae9f2fb195
commit 9c5c4622e2
4 changed files with 168 additions and 6 deletions

View File

@@ -0,0 +1,61 @@
package org.bukkit.material;
import org.bukkit.Material;
public class Cake extends MaterialData {
public Cake(int type) {
super(type);
}
public Cake(Material type) {
super(type);
}
public Cake(int type, byte data) {
super(type, data);
}
public Cake(Material type, byte data) {
super(type, data);
}
/**
* Gets the number of slices eaten from this cake
*
* @return The number of slices eaten
*/
public int getSlicesEaten() {
return getData();
}
/**
* Gets the number of slices remaining on this cake
*
* @return The number of slices remaining
*/
public int getSlicesRemaining() {
return 6 - getData();
}
/**
* Sets the number of slices eaten from this cake
*
* @param n The number of slices eaten
*/
public void setSlicesEaten(int n) {
if (n < 6) {
setData((byte) n);
} // TODO: else destroy the block? Probably not possible though
}
/**
* Sets the number of slices remaining on this cake
*
* @param n The number of slices remaining
*/
public void setSlicesRemaining(int n) {
if (n > 6) n = 6;
setData((byte) (6 - n));
}
}

View File

@@ -0,0 +1,43 @@
package org.bukkit.material;
import org.bukkit.Material;
public class Diode extends MaterialData {
public Diode(int type) {
super(type);
}
public Diode(Material type) {
super(type);
}
public Diode(int type, byte data) {
super(type, data);
}
public Diode(Material type, byte data) {
super(type, data);
}
/**
* Sets the delay of the repeater
*
* @param delay The new delay (1-4)
*/
public void setDelay(int delay) {
if (delay > 4) delay = 4;
if (delay < 1) delay = 1;
byte newData = (byte) (getData() & 0x3);
setData((byte) (newData | (delay - 1)));
}
/**
* Gets the delay of the repeater
*
* @return The delay (1-4)
*/
public int getDelay() {
return (getData() & 0xC) + 1;
}
}

View File

@@ -0,0 +1,58 @@
package org.bukkit.material;
import org.bukkit.Material;
public class Jukebox extends MaterialData {
public Jukebox(int type) {
super(type);
}
public Jukebox(Material type) {
super(type);
}
public Jukebox(int type, byte data) {
super(type, data);
}
public Jukebox(Material type, byte data) {
super(type, data);
}
/**
* Gets the type of record currently playing
*
* @return The type of record (Material.GOLD_RECORD or Material.GREEN_RECORD), or null for none.
*/
public Material getPlaying() {
switch ((int) getData()) {
default:
case 0x0:
return null;
case 0x1:
return Material.GOLD_RECORD;
case 0x2:
return Material.GREEN_RECORD;
}
}
/**
* Sets the type of record currently playing
*
* @param rec The type of record (Material.GOLD_RECORD or Material.GREEN_RECORD), or null for none.
*/
public void setPlaying(Material rec) {
if (rec == null) setData((byte) 0x0);
else switch (rec) {
case GOLD_RECORD:
setData((byte) 0x1);
break;
case GREEN_RECORD:
setData((byte) 0x2);
break;
default:
setData((byte) 0x0);
}
}
}