mirror of
https://github.com/mangostwo/server
synced 2026-08-20 02:23:09 -04:00
Four cores brought to one shape. TERRAIN. src/shared/terrain in all four behind the TerrainInfo seam, and no src/game/vmap anywhere: one baked tile carries ground, liquid, area and collision together. The seam is load-bearing -- the moment the engine learns what a zone is, it can no longer live in shared. A hull has surfaces stacked at one (x, y), so the query is a Column, not a height. SPATIAL. An object no longer owns coordinates: it HAS a Geometry::Placement, read through Where() and mutated through Place(). A placement carries the FRAME it is in, and a cross-frame answer fails closed -- so "same map AND in range" cannot be written wrong, because it is one question. Ground height, line of sight and the free-spot sweep were never geometry and became free functions beside it. MOVEMENT. A generator states an INTENT -- where the mover wants to be -- and a driver realises it. The two were one thing before, so every generator knew how movement is executed and none could be reasoned about alone. An intent resolves in the mover's OWN frame, so chase, follow and a random walk on a deck are computed in deck coordinates without the caller knowing there is a deck, and the pathfinder is handed the map it routes on rather than assuming the world's. TRANSPORTS. The vessel IS a map. A ship's hull is baked as its own map with its own terrain, so a passenger stands on real ground rather than on an offset, and deck-local is the only coordinate system aboard. The server's estimate of a hull's world position is used for one thing only -- finding observers ashore -- and never composed into anything. SD3. The scripts moved onto Where()/Place() and the free functions beside them, so the old coordinate-owning API is not compiled at all in an SD3 build. What remains of the compatibility layer exists for Eluna alone. dep, realmd and SD3 all point at merged upstream. EXTRACTORS. One baker per core, from the client to the caches the server reads, with a Windows GUI in front of it: checkboxes per component, folder and file pickers, a live log. It drives the console tool through its command line and links none of it. Cataclysm's split ADT and its MPQ patch chain are read properly; every core's output is scored against the world database's own ground spawns, 97-99% within two yards. ALSO. Off-thread logging and one startup console. The src/proto network seam, enforced at build time -- game links proto, proto reaches neither game nor the database. C++17 throughout, ACE and G3D gone. One test harness, socket tests behind their own switch. Layout, CI and ignore rules identical across the four. Built with both script engines on GCC, Clang and MSVC. Co-authored-by: Claude Opus 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| docker-compose.yml | ||
| DockerFile-mangosd | ||
| DockerFile-realmd | ||
| Readme.txt | ||
How to start: To start the docker container use the command "docker-compose up" inside the extra/docker folder If you need to rebuild the images use "docker-compose build" Now to setup the server make sure you have the correct configuration and the data folder in the correct location: The configuration should be place here "../../etc" from the extra/docker folder The data folder should be place here "../../data" from the extra/docker folder Note: those paths can be change inside the docker-compose.yml file Configutation: Inside your "mangosd.conf" make sure the "DataDir" is set to "/mangos/data" Make sure all the mysql hostname is set to "mysqldb" The Mysql connection seting is set inside the docker-compose.yml file and can be change Here the default values: - MYSQL_USER=mangos - MYSQL_PASSWORD=mangos - MYSQL_ROOT_PASSWORD=mangos - MYSQL_ROOT_HOST=% The database need to be run manualy in order to have it initialize