"""BulletML parser.
-http://www.asahi-net.or.jp/~cs8k-cyu/bulletml/index_e.html
+BulletML is the Bullet Markup Language. BulletML can describe the
+barrage of bullets in shooting games. (For example Progear, Psyvariar,
+Gigawing2, G DARIUS, XEVIOUS, ...) This module parses and executes
+BulletML scripts in Python. All data structures in it are
+renderer-agnostic. A sample renderer for Pygame is included. The full
+API documentation is contained in its Python docstrings.
+
+In addition to the standard BulletML XML format, this module supports
+an equivalent YAML format. For convenience, two simple collision
+routines are provided, bulletml.overlaps for stationary circles and
+bulletml.collides for moving circles.
+
+More information is available at the BulletML homepage,
+http://www.asahi-net.or.jp/~cs8k-cyu/bulletml/index_e.html, or the
+python-bulletml homepage, https://yukkurigames.com/python-bulletml/.
+
+
+Basic Usage:
+
+ from bulletml import Bullet, BulletML
+
+ doc = BulletML.FromDocument(open("test.xml", "rU"))
+ player = ... # On your own here, but it needs x and y fields.
+ rank = 0.5 # Player difficulty, 0 to 1
+
+ bullet = Bullet.FromDocument(doc, x, y, target=player, rank=rank)
+ bullets = [bullet]
+ ...
+ for bullet in bullets:
+ bullets.extend(bullet.step()) # step() returns new Bullets
+ ...
+
+For drawing, you're on your own, but Bullet instances have a number of
+attributes that can be used to influence it.
+
"""
from bulletml.parser import BulletML
-from bulletml.impl import Bullet, Action
+from bulletml.impl import Bullet
+from bulletml.collision import overlaps, collides, collides_all
-VERSION = (1, 0)
+VERSION = (3,)
VERSION_STRING = ".".join(map(str, VERSION))
+
+__all__ = ["VERSION", "VERSION_STRING", "Bullet", "BulletML",
+ "overlaps", "collides", "collides_all"]