rotchess_core/
lib.rs

1//! Core library code for headless rotchess logic.
2//!
3//! This module provides functionality for a [`RotchessEmulator`] to modify
4//! and record state over time as it is fed information in the form of
5//! [events](`emulator::Event`). External code should read the board's state and
6//! draw it for the user. This crate is not responsible for any drawing of state.
7//! It does, however, provide functions that help the drawing program understand
8//! what to draw.
9//!
10//! # Important definitions
11//!
12//! Ok well, coords and angles are almost definitely all outdated and wrong now, haha.
13//!
14//! - coordinate system: all coordinates are standard euclidean coordinates.
15//!   That is, x and y increase going right and up. This may differ from code
16//!   that draws the rotchess pieces, where the coordinate system may increase
17//!   y when going down.
18//! - angles: follows standard math convention. Unless otherwise specified,
19//!   they're measured in radians, 0 at the positive x-axis, increasing anticlockwise.
20//! - rotchess-unit: an eighth of the side length of the board.
21
22pub mod emulator;
23pub mod floating_drift;
24pub mod piece;
25pub mod turn;
26
27pub use emulator::RotchessEmulator;