Jump to content

Architecture

From fCraft Wiki
Revision as of 02:26, 11 November 2011 by F (talk | contribs) (Created page with "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.e...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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.