public boolean clickedSign(Player player, Sign state) {
		for (Animation a : animations) {
			if (player.equals(a.CurrentEditor)
					&& state.getLine(0).endsWith("SUPERFRAME")) {
				if (a.WaitingToAddFrame) {
					a.WaitingToAddFrame = false;
					state.setLine(0, ChatColor.DARK_AQUA + "SUPERFRAME");
					state.setLine(1,
							ChatColor.AQUA + "Frame " + a.Frames.size());
					a.AddFrame(state.getBlock().getLocation());
					state.update(true);
					return true;
				}

				if (!state.getLine(1).startsWith(ChatColor.AQUA + "Frame "))
					return false;

				int frameInd = Integer.parseInt(ChatColor.stripColor(state
						.getLine(1).replace(ChatColor.AQUA + "Frame ", "")));
				if (a.CurrentModifyingFrameIndex == frameInd) {

					player.sendMessage(ChatColor.AQUA
							+ "  You have completed modifying frame "
							+ a.CurrentModifyingFrameIndex);
					a.CurrentModifyingFrameIndex = -1;
					updateDrawing(a.Frames.get(frameInd), a.CurrentFrameIndex>-1?a.Frames.get(a.CurrentFrameIndex):null);
					return true;
				}

				a.CurrentModifyingFrameIndex = frameInd;
				player.sendMessage(ChatColor.AQUA
						+ "  You are now modifying frame "
						+ a.CurrentModifyingFrameIndex);
				updateDrawing(a.Frames.get(frameInd), a.Frames.get(frameInd));
				return true;
			}
		}
		return false;

	}