mirror of
https://github.com/PaperMC/Paper.git
synced 2025-08-14 19:55:52 -07:00
Add material data classes for cake, jukeboxes, and diodes. Remove some unneeded ones.
By: Celtic Minstrel <celtic.minstrel.ca@>
This commit is contained in:
61
paper-api/src/main/java/org/bukkit/material/Cake.java
Normal file
61
paper-api/src/main/java/org/bukkit/material/Cake.java
Normal 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));
|
||||
}
|
||||
}
|
43
paper-api/src/main/java/org/bukkit/material/Diode.java
Normal file
43
paper-api/src/main/java/org/bukkit/material/Diode.java
Normal 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;
|
||||
}
|
||||
}
|
58
paper-api/src/main/java/org/bukkit/material/Jukebox.java
Normal file
58
paper-api/src/main/java/org/bukkit/material/Jukebox.java
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user