Quantcast

First draft of README

Ludovicus [08-13-19 - 22:55]
First draft of README
Filename
README.md
diff --git a/README.md b/README.md
old mode 100644
new mode 100755
index 346f754..6a6f292
--- a/README.md
+++ b/README.md
@@ -1,8 +1,130 @@
 # TomTom
 Acts as your portable navigation assistant for World of Warcraft

-## Supported Commands
+## Supported Console Commands
+
+### /way /tway /tomtomway
+
+This command sets waypoints and lets you perform simple operations.
+In case /way is used by some other addon, /tway and /tomtomway are aliases.
+Subcommands are:
+
+#### /tomtomway local
+List all the waypoints in the local zone.
+
+#### /tomtomway list
+List all the waypoints everywhere.
+
+#### /tomtomway arrow
+Print the status of the crazy arrow.
+
+#### /tomtomway block
+Print the status of the coordinate block.
+
+#### /tomtomway reset \[all]|\[zone]
+Reset either all the waypoints or just the ones in a specific zone.
+
+#### /tomtomway  <x-coords> <y-coords> <description>
+Create a waypoint in the current zone.
+Coordinates are currently use a '.' as the decimal separator.
+The description is whatever is after the y coordinate.
+
+#### /tomtomway <zone> <x-coords> <y-coords> <description>
+Create a waypoint in the specified zone.
+Coordinates are currently use a '.' as the decimal separator.
+The description is whatever is after the y coordinate.
+
+### /cway
+Set the active waypoint to be the closest one.
+
+# /wayb
+Drop a waypoint at your current location.
+
+### /tomtom
+Open the TomTom Interface options.

 ## Zone Naming Conventions

+TBD
+
+
 ## Supported Addon API
+
+Definitions:
+
+* **map**: a integer representing the mapID
+  See https://wowwiki.fandom.com/wiki/MapID .
+* **x**: The horizontal coordinate, normally from 0..1 .
+  Can be negative, for Baa'l secret.
+* **y**: The vertical coordinate, normally from 0..1 .
+  Can be negative, for Baa'l secret.
+* **uid**: A table representing the waypoint.
+  Since you are going to look anyways, it currently looks like:
+  * \[1]: map
+  * \[2]: x
+  * \[3]: y
+  * title: The description of the waypoint
+  * \<things>: All the rest of the options.
+* **callbacks**: A table used to describe the functions that will be called
+as a waypoint is approached. The table is structured as follows:
+  * distance: a table indexed by distance.
+  * minimap: a table with the following subkeys:
+    * onclick: a function called with (event, uid, self, button) when the icon is clicked.
+    * tooltip_show: a function called when the tooltip is initially shown with (event, tooltip, uid, dist)
+    * tooltip_update: a function called on tooltip update with (event, tooltip, uid, dist)
+  * world: a table with the following subkeys:
+    * onclick: a function called with (event, uid, self, button) when the icon is clicked.
+    * tooltip_show: a function called when the tooltip is initially shown with (event, tooltip, uid, dist)
+    * tooltip_update: a function called on tooltip update with (event, tooltip, uid, dist)
+
+### uid = TomTom:AddWaypoint(map, x, y, options)
+AddWaypoint creates a new waypoint. The options are:
+* title: Required string describing the waypoint
+* source: Required string describing who is setting the waypoint.
+          This will be displayed when mosuing over the arrow or waypoint.
+* persistent: Optional boolean saying if the waypoint should persist across logins.
+* minimap: Optional Boolean that defaults to the profile.minimap.enable
+* minimap_icon: Optional texture that defaults to profile.minimap.icon
+* minimap_icon_size: Optional texture that defaults to profile.minimap.icon_size
+* world: Optional Boolean that defaults to the profile.worldmap.enable
+* worldmap_icon: Optional Boolean that defaults to the profile.worldmap.icon
+* worldmap_icon_size: Optional Boolean that defaults to the profile.worldmap.icon_size
+* crazy: Optional Boolean that defaults to profile.arrow.autoqueue
+* cleardistance: Optional number that defaults to profile.persistence.cleardistance
+* arrivaldistance: Optional number that defaults to profile.arrow.arrival
+* silent: Optional Boolean that suppresses announcing the creation of the waypoint
+* callbacks: Overrides for the default callbacks
+
+
+### callbacks = TomTom:DefaultCallbacks(opts)
+Generate the default callback tables using the given options table.
+
+### uid = TomTom:AddWaypointToCurrentZone(x, y, desc)
+AddWaypointToCurrentZone creates a waypoint in the current zone with all default options except for the description.
+
+### TomTom:RemoveWaypoint(uid)
+RemoveWaypoint removes the waypoint identified by the uid from the world-map, mini-map and crazy arrow.
+It will also be removed from the persistence list.
+
+### TomTom:HideWaypoint(uid, minimap, worldmap)
+HideWaypoint on either the mini-map or world-map.
+
+### TomTom:ShowWaypoint(uid)
+ShowWaypoint as per the options.
+
+### TomTom:ClearWaypoint(uid)
+ClearWaypoint deactivates the waypoint.
+
+### yards = TomTom:GetDistanceToWaypoint(uid)
+Return the number of yards to reach the waypoint.
+
+### angle = TomTom:GetDirectionToWaypoint(uid)
+Return the angle (in radians) to the waypoint.
+
+### TomTom:SetClosestWaypoint(verbose)
+Set the arrow to the closest waypoint.
+If verbose is true, announce in chat.
+
+### m, x, y = TomTom:GetCurrentPlayerPosition()
+Return the current map, x, and y coordinates of the player.
+