Architecture
Appearance
fCraft setup consists of two shared modules (fCraft.dll and fCraftGUI.dll), a visual configuration tool (ConfigGUI.exe), and a choice of front-ends (ServerGUI.exe and ServerCLI.exe).
Project Directory Structure
- AutoRankEditor - experimental
- bin
- Debug - binaries built in Debug, Debug_Events, Debug_IRC, and Debug_Scheduler configurations.
- Release - binaries built in Release configuration.
- ConfigCLI - experimental command-line config editor
- ConfigGUI - graphical config editor
- fCraft - shared components
- AutoRank - fCraft.AutoRank namespace; AutoRankManager, conditions, and criteria.
- Commands - fCraft namespace; Command descriptors and handlers, Command/CommandDescriptor/CommandManager classes, CommandCategory enum.
- Drawing - fCraft.Drawing namespace; DrawOperation base class and Brush-related interfaces; BrushManager; copy/paste- and undo-related classes; Axis enum.
- Brushes - fCraft.Drawing namespace; All brush implementations.
- DrawOps - fCraft.Drawing namespace; All DrawOperation implementations.
- MapConversion - fCraft.MapConversion namespace; MapUtility, class, MapFormat enum, IMapConverter implementations (importers and exporters), NBT and .INI utilities.
- Network - fCraft namespace; Heartbeat, IP bans, IRC, low-level network utilities, networking component of the Player class.
- Player - fCraft namespace; permissions and ranks, player constants, PlayerDB and PlayerInfo, Player class, Chat.
- System - fCraft namespace; Config, Server central class, Logger, Scheduler.
- Utils - fCraft, JetBrains.Annotations, System.IO.Compression namespaces; various utility classes, extension methods, Vector classes, code annotations.
- World - fCraft namespace; Block enum, BlockDB classes, map generation, World and WorldManager classes, Zones.
- fCraftGUI - fCraft.GUI namespace; graphical components shared by ServerGUI and ConfigGUI.
- ServerCLI - fCraft.ServerCLI namespace; Command-line server front end.
- ServerGUI - fCraft.ServerGUI namespace; Graphical server front end.
- UpdateInstaller - fCraft.UpdateInstaller namespace; Self-extracting updater.
- UpdateBuilder - fCraft.UpdateBuilder namespace; Zips files to include in the UpdateInstaller. Used only during the build process.