Open nsmryan opened 3 years ago
Impressions should be entities.
Freeze AOE tiles if cursor over. This may remove some AoE calculations in display. Display uses AoE calculations for sound, which requires the map. Sound is available as individual tiles, but the sound animation collects them into a single effect.
Game- configuration, gamedata, settings, rng, log, values, and input state
Procgen: WFC - from template file ProcGen commands - trivial names and numbers Maps are made from a MapLoadConfig (enum or with string)
InputActions: mostly trivial, interact has an option
Messages: Trivial, serializable/deserializable to simple strings
Libraries: roguelike_core: oorandom for randomness indexmap for entity system pathfinding for astar euclid for simple math symmetric-shadowcasting for base of FOV system serde for serialize/deserialize log/simple-logging/logging_timer for logging symbol - is this even used? I think its a string intern system
roguelike_engine: wfc_image - WFC generation from image, requires image as well
roguelike_main sdl2 in main gumdrop for simple cli bmp for screenshot
Notes: wfc, wfc_image, and image could be removed if there was a simpler WFC implementation is there any need for rexpaint any more? symbol interning is not really used. Possibly move render into engine, or split sdl into separate crate (possibly as a client to the roguelike_main). Any separate crates? DrawCmd crate that takes lines of drawcmd inputs? then test with TCL or something? Split utils into roguelike_utils. This should be small and not include ai, map, or other game logic. Use this in draw cmd crate for faster build times.
Components: SDL2 Events in main from keys InputActions in engine Messages into game, and out as a result DrawCmds can also be a result