diff --git a/images/server-uml-2.png b/images/server-uml-2.png new file mode 100644 index 0000000..41f574e Binary files /dev/null and b/images/server-uml-2.png differ diff --git a/misc/server-uml-2.class.violet b/misc/server-uml-2.class.violet new file mode 100644 index 0000000..511ceed --- /dev/null +++ b/misc/server-uml-2.class.violet @@ -0,0 +1,942 @@ + + + + + + + + Client Manager + + + + + + x + + + 299.0 + + + + y + + + 214.0 + + + + 299.0 + 214.0 + + + + + + + + Internet + + + + + + x + + + 299.0 + + + + y + + + 115.0 + + + + 299.0 + 115.0 + + + + + + + + Client + + + + + + x + + + 181.0 + + + + y + + + 27.0 + + + + 181.0 + 27.0 + + + + + + + + Client + + + + + + x + + + 301.0 + + + + y + + + 25.0 + + + + 301.0 + 25.0 + + + + + + + + Client + + + + + + x + + + 416.0 + + + + y + + + 28.0 + + + + 416.0 + 28.0 + + + + + + + + Game Info +Account Info +Player Info +Map Info + + + + Database + + + + + x + + + 857.0 + + + + y + + + 36.0 + + + + 857.0 + 36.0 + + + + + + + + Client + + + + + + x + + + 177.0 + + + + y + + + 115.0 + + + + 177.0 + 115.0 + + + + + + + + Terminal + + + + + + x + + + 181.0 + + + + y + + + 210.0 + + + + 181.0 + 210.0 + + + + + + + + Just an idea for +controlling the +server directly + + + + + + x + + + 44.0 + + + + y + + + 204.0 + + + + 44.0 + 204.0 + + + + + + + + Account Manager + + + + + + x + + + 769.0 + + + + y + + + 178.0 + + + + 769.0 + 178.0 + + + + + + + + Player Manager + + + + + + x + + + 922.0 + + + + y + + + 177.0 + + + + 922.0 + 177.0 + + + + + + + + Chat Server + + + + + + x + + + 421.0 + + + + y + + + 205.0 + + + + 421.0 + 205.0 + + + + + + + + std::list<ThreadHandle> + + + + + OpenRoom(args) +CloseRoom(args) + + + + + Room Manager + + + + + + x + + + 598.0 + + + + y + + + 53.0 + + + + 598.0 + 53.0 + + + + + + + + index +inventory +equipment +statistics + + + + + Player + + + + + + x + + + 916.0 + + + + y + + + 265.0 + + + + 916.0 + 265.0 + + + + + + + + index +mail box + + + + + Init() = pure virtual +Loop() = pure virtual +Quit() = pure virtual + + + + + Base Room + + + + + + x + + + 606.0 + + + + y + + + 292.0 + + + + 606.0 + 292.0 + + + + + + + + collision map +etc. maps +player list +combat portals + + + + + World Room + + + + + + x + + + 549.0 + + + + y + + + 447.0 + + + + 549.0 + 447.0 + + + + + + + + parent room +combatants +monsters + + + + + + Combat Room + + + + + + x + + + 690.0 + + + + y + + + 448.0 + + + + 690.0 + 448.0 + + + + + + + + lua state + + + + + Init() +Loop() +Quit() + + + + + Server Application + + + + + + x + + + 407.0 + + + + y + + + 309.0 + + + + 407.0 + 309.0 + + + + + + + + Direct connections + + + + + + x + + + 40.0 + + + + y + + + 38.0 + + + + 40.0 + 38.0 + + + + + + + + thread +std::list<BaseRoom> + + + + + Thread Handle + + + + + + x + + + 595.0 + + + + y + + + 161.0 + + + + 595.0 + 161.0 + + + + + + + + 255 + 239 + 213 + 255 + + + + + Combat rooms should be closed +when they're empty. Send the "close" +message to the parent world room +and the Room Manager. + + + + + + x + + + 817.0 + + + + y + + + 452.0 + + + + 817.0 + 452.0 + + + + + + + + Also used for +/commands + + + + + + x + + + 431.0 + + + + y + + + 147.0 + + + + 431.0 + 147.0 + + + + + + + + Attention: +*Anything with "Manager" in their name is a singleton. + + + + + + + x + + + 63.0 + + + + y + + + 316.0 + + + + 63.0 + 316.0 + + + + + + + + Undecided, +possibly SQLite3 + + + + + + x + + + 982.0 + + + + y + + + 47.0 + + + + 982.0 + 47.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +