package net.glowstone.block.state;
import net.glowstone.block.GlowBlock;
import net.glowstone.block.GlowBlockState;
import net.glowstone.block.entity.TESign;
import org.bukkit.Material;
import org.bukkit.block.Sign;
public class GlowSign extends GlowBlockState implements Sign {
private final String[] lines;
public GlowSign(GlowBlock block) {
super(block);
if (block.getType() != Material.WALL_SIGN && block.getType() != Material.SIGN_POST) {
throw new IllegalArgumentException("GlowSign: expected WALL_SIGN or SIGN_POST, got " + block.getType());
}
lines = getTileEntity().getLines();
}
private TESign getTileEntity() {
return (TESign) getBlock().getTileEntity();
}
@Override
public String[] getLines() {
return lines;
}
@Override
public String getLine(int index) throws IndexOutOfBoundsException {
return lines[index];
}
@Override
public void setLine(int index, String line) throws IndexOutOfBoundsException {
lines[index] = line;
}
@Override
public boolean update(boolean force, boolean applyPhysics) {
boolean result = super.update(force, applyPhysics);
if (result) {
TESign sign = getTileEntity();
sign.setLines(lines);
sign.updateInRange();
}
return result;
}
}