001 package org.bukkit.map; 002 003 /** 004 * Represents a cursor on a map. 005 */ 006 public final class MapCursor { 007 private byte x, y; 008 private byte direction, type; 009 private boolean visible; 010 011 /** 012 * Initialize the map cursor. 013 * 014 * @param x The x coordinate, from -128 to 127. 015 * @param y The y coordinate, from -128 to 127. 016 * @param direction The facing of the cursor, from 0 to 15. 017 * @param type The type (color/style) of the map cursor. 018 * @param visible Whether the cursor is visible by default. 019 * @deprecated Magic value 020 */ 021 @Deprecated 022 public MapCursor(byte x, byte y, byte direction, byte type, boolean visible) { 023 this.x = x; 024 this.y = y; 025 setDirection(direction); 026 setRawType(type); 027 this.visible = visible; 028 } 029 030 /** 031 * Get the X position of this cursor. 032 * 033 * @return The X coordinate. 034 */ 035 public byte getX() { 036 return x; 037 } 038 039 /** 040 * Get the Y position of this cursor. 041 * 042 * @return The Y coordinate. 043 */ 044 public byte getY() { 045 return y; 046 } 047 048 /** 049 * Get the direction of this cursor. 050 * 051 * @return The facing of the cursor, from 0 to 15. 052 */ 053 public byte getDirection() { 054 return direction; 055 } 056 057 /** 058 * Get the type of this cursor. 059 * 060 * @return The type (color/style) of the map cursor. 061 */ 062 public Type getType() { 063 return Type.byValue(type); 064 } 065 066 /** 067 * Get the type of this cursor. 068 * 069 * @return The type (color/style) of the map cursor. 070 * @deprecated Magic value 071 */ 072 @Deprecated 073 public byte getRawType() { 074 return type; 075 } 076 077 /** 078 * Get the visibility status of this cursor. 079 * 080 * @return True if visible, false otherwise. 081 */ 082 public boolean isVisible() { 083 return visible; 084 } 085 086 /** 087 * Set the X position of this cursor. 088 * 089 * @param x The X coordinate. 090 */ 091 public void setX(byte x) { 092 this.x = x; 093 } 094 095 /** 096 * Set the Y position of this cursor. 097 * 098 * @param y The Y coordinate. 099 */ 100 public void setY(byte y) { 101 this.y = y; 102 } 103 104 /** 105 * Set the direction of this cursor. 106 * 107 * @param direction The facing of the cursor, from 0 to 15. 108 */ 109 public void setDirection(byte direction) { 110 if (direction < 0 || direction > 15) { 111 throw new IllegalArgumentException("Direction must be in the range 0-15"); 112 } 113 this.direction = direction; 114 } 115 116 /** 117 * Set the type of this cursor. 118 * 119 * @param type The type (color/style) of the map cursor. 120 */ 121 public void setType(Type type) { 122 setRawType(type.value); 123 } 124 125 /** 126 * Set the type of this cursor. 127 * 128 * @param type The type (color/style) of the map cursor. 129 * @deprecated Magic value 130 */ 131 @Deprecated 132 public void setRawType(byte type) { 133 if (type < 0 || type > 15) { 134 throw new IllegalArgumentException("Type must be in the range 0-15"); 135 } 136 this.type = type; 137 } 138 139 /** 140 * Set the visibility status of this cursor. 141 * 142 * @param visible True if visible. 143 */ 144 public void setVisible(boolean visible) { 145 this.visible = visible; 146 } 147 148 /** 149 * Represents the standard types of map cursors. More may be made 150 * available by texture packs - the value is used by the client as an 151 * index in the file './misc/mapicons.png' from minecraft.jar or from a 152 * texture pack. 153 */ 154 public enum Type { 155 WHITE_POINTER(0), 156 GREEN_POINTER(1), 157 RED_POINTER(2), 158 BLUE_POINTER(3), 159 WHITE_CROSS(4); 160 161 private byte value; 162 163 private Type(int value) { 164 this.value = (byte) value; 165 } 166 167 /** 168 * 169 * @deprecated Magic value 170 */ 171 @Deprecated 172 public byte getValue() { 173 return value; 174 } 175 176 /** 177 * 178 * @deprecated Magic value 179 */ 180 @Deprecated 181 public static Type byValue(byte value) { 182 for (Type t : values()) { 183 if (t.value == value) return t; 184 } 185 return null; 186 } 187 } 188 189 }