// $Id$ /* * WorldEdit * Copyright (C) 2010 sk89q * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ package com.sk89q.worldedit.blocks; import com.sk89q.worldedit.CuboidClipboard.FlipDirection; import com.sk89q.worldedit.data.BlockData; /** * Represents a block. * * @author sk89q */ public class BaseBlock { /** * BaseBlock type. */ private short type = 0; /** * BaseBlock data. */ private char data = 0; /** * Construct the block with its type. * * @param type */ public BaseBlock(int type) { this.type = (short)type; } /** * Construct the block with its type and data. * * @param type * @param data */ public BaseBlock(int type, int data) { this.type = (short)type; this.data = (char)data; } /** * @return the type */ public int getType() { return (int)type; } /** * @param type the type to set */ public void setType(int type) { this.type = (short)type; } /** * @return the data */ public int getData() { return (int)data; } /** * @param data the data to set */ public void setData(int data) { this.data = (char)data; } /** * Returns true if it's air. * * @return if air */ public boolean isAir() { return type == 0; } /** * Rotate this block 90 degrees. */ public void rotate90() { data = (char)BlockData.rotate90(type, data); } /** * Rotate this block -90 degrees. */ public void rotate90Reverse() { data = (char)BlockData.rotate90Reverse(type, data); } /** * Flip this block. * @param direction */ public void flip(FlipDirection direction) { data = (char)BlockData.flip(type, data, direction); } }