001 package org.bukkit.map;
002
003 import java.util.ArrayList;
004 import java.util.List;
005
006 /**
007 * Represents all the map cursors on a {@link MapCanvas}. Like MapCanvas, a
008 * MapCursorCollection is linked to a specific {@link MapRenderer}.
009 */
010 public final class MapCursorCollection {
011 private List<MapCursor> cursors = new ArrayList<MapCursor>();
012
013 /**
014 * Get the amount of cursors in this collection.
015 *
016 * @return The size of this collection.
017 */
018 public int size() {
019 return cursors.size();
020 }
021
022 /**
023 * Get a cursor from this collection.
024 *
025 * @param index The index of the cursor.
026 * @return The MapCursor.
027 */
028 public MapCursor getCursor(int index) {
029 return cursors.get(index);
030 }
031
032 /**
033 * Remove a cursor from the collection.
034 *
035 * @param cursor The MapCursor to remove.
036 * @return Whether the cursor was removed successfully.
037 */
038 public boolean removeCursor(MapCursor cursor) {
039 return cursors.remove(cursor);
040 }
041
042 /**
043 * Add a cursor to the collection.
044 *
045 * @param cursor The MapCursor to add.
046 * @return The MapCursor that was passed.
047 */
048 public MapCursor addCursor(MapCursor cursor) {
049 cursors.add(cursor);
050 return cursor;
051 }
052
053 /**
054 * Add a cursor to the collection.
055 *
056 * @param x The x coordinate, from -128 to 127.
057 * @param y The y coordinate, from -128 to 127.
058 * @param direction The facing of the cursor, from 0 to 15.
059 * @return The newly added MapCursor.
060 */
061 public MapCursor addCursor(int x, int y, byte direction) {
062 return addCursor(x, y, direction, (byte) 0, true);
063 }
064
065 /**
066 * Add a cursor to the collection.
067 *
068 * @param x The x coordinate, from -128 to 127.
069 * @param y The y coordinate, from -128 to 127.
070 * @param direction The facing of the cursor, from 0 to 15.
071 * @param type The type (color/style) of the map cursor.
072 * @return The newly added MapCursor.
073 * @deprecated Magic value
074 */
075 @Deprecated
076 public MapCursor addCursor(int x, int y, byte direction, byte type) {
077 return addCursor(x, y, direction, type, true);
078 }
079
080 /**
081 * Add a cursor to the collection.
082 *
083 * @param x The x coordinate, from -128 to 127.
084 * @param y The y coordinate, from -128 to 127.
085 * @param direction The facing of the cursor, from 0 to 15.
086 * @param type The type (color/style) of the map cursor.
087 * @param visible Whether the cursor is visible.
088 * @return The newly added MapCursor.
089 * @deprecated Magic value
090 */
091 @Deprecated
092 public MapCursor addCursor(int x, int y, byte direction, byte type, boolean visible) {
093 return addCursor(new MapCursor((byte) x, (byte) y, direction, type, visible));
094 }
095
096 }