Package net.glowstone.block.state

Source Code of net.glowstone.block.state.GlowSign

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;
    }

}
TOP

Related Classes of net.glowstone.block.state.GlowSign

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.