示例#1
0
 public DMPGame(Settings dmpSettings, UniverseSyncCache universeSyncCache, ModWorker modWorker, ConnectionWindow connectionWindow, DMPModInterface dmpModInterface, ToolbarSupport toolbarSupport, OptionsWindow optionsWindow)
 {
     this.dmpSettings          = dmpSettings;
     this.universeSyncCache    = universeSyncCache;
     this.modWorker            = modWorker;
     this.connectionWindow     = connectionWindow;
     this.dmpModInterface      = dmpModInterface;
     this.configNodeSerializer = new ConfigNodeSerializer();
     this.posistionStatistics  = new PosistionStatistics();
     this.networkWorker        = new NetworkWorker(this, dmpSettings, connectionWindow, modWorker, configNodeSerializer);
     this.adminSystem          = new AdminSystem(dmpSettings);
     this.flagSyncer           = new FlagSyncer(this, dmpSettings, networkWorker);
     this.lockSystem           = new LockSystem(dmpSettings, networkWorker);
     this.partKiller           = new PartKiller(lockSystem);
     this.dynamicTickWorker    = new DynamicTickWorker(this, networkWorker);
     this.kerbalReassigner     = new KerbalReassigner();
     this.vesselPackedUpdater  = new VesselInterFrameUpdater(lockSystem, posistionStatistics, dmpSettings);
     this.vesselWorker         = new VesselWorker(this, dmpSettings, modWorker, lockSystem, networkWorker, configNodeSerializer, dynamicTickWorker, kerbalReassigner, partKiller, posistionStatistics, vesselPackedUpdater);
     this.scenarioWorker       = new ScenarioWorker(this, vesselWorker, configNodeSerializer, networkWorker);
     this.playerStatusWorker   = new PlayerStatusWorker(this, dmpSettings, vesselWorker, lockSystem, networkWorker);
     this.timeSyncer           = new TimeSyncer(this, networkWorker, vesselWorker);
     this.warpWorker           = new WarpWorker(this, dmpSettings, timeSyncer, networkWorker, playerStatusWorker);
     this.chatWorker           = new ChatWorker(this, dmpSettings, networkWorker, adminSystem, playerStatusWorker);
     this.screenshotWorker     = new ScreenshotWorker(this, dmpSettings, chatWorker, networkWorker, playerStatusWorker);
     this.vesselRecorder       = new VesselRecorder(this, warpWorker, vesselWorker, networkWorker, dmpSettings);
     this.debugWindow          = new DebugWindow(this, dmpSettings, timeSyncer, networkWorker, vesselWorker, dynamicTickWorker, warpWorker, vesselRecorder, posistionStatistics);
     this.craftLibraryWorker   = new CraftLibraryWorker(this, dmpSettings, networkWorker);
     this.hackyInAtmoLoader    = new HackyInAtmoLoader(this, lockSystem, vesselWorker);
     this.asteroidWorker       = new AsteroidWorker(this, lockSystem, networkWorker, vesselWorker);
     this.playerColorWorker    = new PlayerColorWorker(dmpSettings, lockSystem, networkWorker);
     this.playerStatusWindow   = new PlayerStatusWindow(this, dmpSettings, warpWorker, chatWorker, craftLibraryWorker, debugWindow, screenshotWorker, timeSyncer, playerStatusWorker, optionsWindow, playerColorWorker);
     this.playerColorWorker.SetDependencies(playerStatusWindow);
     this.vesselWorker.SetDependencies(hackyInAtmoLoader, timeSyncer, asteroidWorker, chatWorker, playerStatusWorker);
     this.networkWorker.SetDependencies(timeSyncer, warpWorker, chatWorker, playerColorWorker, flagSyncer, partKiller, kerbalReassigner, asteroidWorker, vesselWorker, hackyInAtmoLoader, playerStatusWorker, scenarioWorker, dynamicTickWorker, craftLibraryWorker, screenshotWorker, toolbarSupport, adminSystem, lockSystem, dmpModInterface, universeSyncCache, vesselRecorder);
     //this.vesselPackedUpdater.SetVesselRecoder(this.vesselRecorder);
     optionsWindow.SetDependencies(this, networkWorker, playerColorWorker);
     this.dmpModInterface.DMPRun(networkWorker);
     this.stopEvent.Add(this.chatWorker.Stop);
     this.stopEvent.Add(this.craftLibraryWorker.Stop);
     this.stopEvent.Add(this.debugWindow.Stop);
     this.stopEvent.Add(this.dynamicTickWorker.Stop);
     this.stopEvent.Add(this.flagSyncer.Stop);
     this.stopEvent.Add(this.hackyInAtmoLoader.Stop);
     this.stopEvent.Add(this.kerbalReassigner.Stop);
     this.stopEvent.Add(this.playerColorWorker.Stop);
     this.stopEvent.Add(this.playerStatusWindow.Stop);
     this.stopEvent.Add(this.playerStatusWorker.Stop);
     this.stopEvent.Add(this.partKiller.Stop);
     this.stopEvent.Add(this.scenarioWorker.Stop);
     this.stopEvent.Add(this.screenshotWorker.Stop);
     this.stopEvent.Add(this.timeSyncer.Stop);
     this.stopEvent.Add(toolbarSupport.Stop);
     this.stopEvent.Add(optionsWindow.Stop);
     this.stopEvent.Add(this.vesselWorker.Stop);
     this.stopEvent.Add(this.warpWorker.Stop);
     this.stopEvent.Add(this.asteroidWorker.Stop);
     this.stopEvent.Add(this.vesselRecorder.Stop);
 }
示例#2
0
 public WarpWorker(DMPGame dmpGame, Settings dmpSettings, TimeSyncer timeSyncer, NetworkWorker networkWorker, PlayerStatusWorker playerStatusWorker)
 {
     this.dmpGame            = dmpGame;
     this.dmpSettings        = dmpSettings;
     this.timeSyncer         = timeSyncer;
     this.networkWorker      = networkWorker;
     this.playerStatusWorker = playerStatusWorker;
     dmpGame.updateEvent.Add(Update);
 }
 public ScreenshotWorker(DMPGame dmpGame, Settings dmpSettings, ChatWorker chatWorker, NetworkWorker networkWorker, PlayerStatusWorker playerStatusWorker)
 {
     this.dmpGame            = dmpGame;
     this.dmpSettings        = dmpSettings;
     this.chatWorker         = chatWorker;
     this.networkWorker      = networkWorker;
     this.playerStatusWorker = playerStatusWorker;
     dmpGame.updateEvent.Add(Update);
     dmpGame.drawEvent.Add(Draw);
 }
 public static void Reset()
 {
     lock (Client.eventLock)
     {
         if (singleton != null)
         {
             Client.updateEvent.Remove(singleton.Update);
         }
         singleton = new PlayerStatusWorker();
         Client.updateEvent.Add(singleton.Update);
     }
 }
 public static void Reset()
 {
     lock (Client.eventLock)
     {
         if (singleton != null)
         {
             singleton.workerEnabled = false;
             Client.updateEvent.Remove(singleton.Update);
         }
         singleton = new PlayerStatusWorker();
         Client.updateEvent.Add(singleton.Update);
     }
 }
示例#6
0
 public PlayerStatusWindow(DMPGame dmpGame, Settings dmpSettings, WarpWorker warpWorker, ChatWorker chatWorker, CraftLibraryWorker craftLibraryWorker, DebugWindow debugWindow, ScreenshotWorker screenshotWorker, TimeSyncer timeSyncer, PlayerStatusWorker playerStatusWorker, OptionsWindow optionsWindow, PlayerColorWorker playerColorWorker)
 {
     this.dmpGame            = dmpGame;
     this.dmpSettings        = dmpSettings;
     this.warpWorker         = warpWorker;
     this.chatWorker         = chatWorker;
     this.craftLibraryWorker = craftLibraryWorker;
     this.debugWindow        = debugWindow;
     this.screenshotWorker   = screenshotWorker;
     this.timeSyncer         = timeSyncer;
     this.playerStatusWorker = playerStatusWorker;
     this.optionsWindow      = optionsWindow;
     this.playerColorWorker  = playerColorWorker;
     dmpGame.updateEvent.Add(Update);
     dmpGame.drawEvent.Add(Draw);
 }
示例#7
0
 public ChatWorker(DMPGame dmpGame, Settings dmpSettings, NetworkWorker networkWorker, AdminSystem adminSystem, PlayerStatusWorker playerStatusWorker)
 {
     this.dmpGame            = dmpGame;
     this.dmpSettings        = dmpSettings;
     this.networkWorker      = networkWorker;
     this.adminSystem        = adminSystem;
     this.playerStatusWorker = playerStatusWorker;
     RegisterChatCommand("help", DisplayHelp, "Displays this help");
     RegisterChatCommand("join", JoinChannel, "Joins a new chat channel");
     RegisterChatCommand("query", StartQuery, "Starts a query");
     RegisterChatCommand("leave", LeaveChannel, "Leaves the current channel");
     RegisterChatCommand("part", LeaveChannel, "Leaves the current channel");
     RegisterChatCommand("ping", ServerPing, "Pings the server");
     RegisterChatCommand("motd", ServerMOTD, "Gets the current Message of the Day");
     RegisterChatCommand("resize", ResizeChat, "Resized the chat window");
     RegisterChatCommand("version", DisplayVersion, "Displays the current version of DMP");
     dmpGame.updateEvent.Add(Update);
     dmpGame.drawEvent.Add(Draw);
 }
示例#8
0
 public PlayerStatusWindow(DMPGame dmpGame, Settings dmpSettings, WarpWorker warpWorker, ChatWorker chatWorker, CraftLibraryWorker craftLibraryWorker, ScreenshotWorker screenshotWorker, TimeSyncer timeSyncer, PlayerStatusWorker playerStatusWorker, OptionsWindow optionsWindow, PlayerColorWorker playerColorWorker, GroupsWindow groupsWindow, PermissionsWindow permissionsWindow)
 {
     this.dmpGame            = dmpGame;
     this.dmpSettings        = dmpSettings;
     this.warpWorker         = warpWorker;
     this.chatWorker         = chatWorker;
     this.craftLibraryWorker = craftLibraryWorker;
     this.screenshotWorker   = screenshotWorker;
     this.timeSyncer         = timeSyncer;
     this.playerStatusWorker = playerStatusWorker;
     this.optionsWindow      = optionsWindow;
     this.playerColorWorker  = playerColorWorker;
     this.groupsWindow       = groupsWindow;
     this.permissionsWindow  = permissionsWindow;
     updateAction            = new NamedAction(Update);
     drawAction = new NamedAction(Draw);
     this.dmpGame.updateEvent.Add(updateAction);
     this.dmpGame.drawEvent.Add(drawAction);
 }
示例#9
0
 public void SetDependencies(PlayerStatusWorker playerStatusWorker)
 {
     this.playerStatusWorker = playerStatusWorker;
 }