/// <summary> /// Called when the PlayState is entered from the state manager. /// </summary> public override void OnEnter() { // Just toss out any pending input. DwarfGame.GumInputMapper.GetInputQueue(); if (!IsInitialized) { EnterTime = DateTime.Now; DiscoverPlayerTools(); VoxSelector.Selected += (voxels, button) => CurrentTool.OnVoxelsSelected(voxels, button); VoxSelector.Dragged += (voxels, button) => CurrentTool.OnVoxelsDragged(voxels, button); BodySelector.Selected += (bodies, button) => { CurrentTool.OnBodiesSelected(bodies, button); if (CurrentToolMode == "SelectUnits") { SelectedObjects = bodies; } }; BodySelector.MouseOver += (bodies) => CurrentTool.OnMouseOver(bodies); // Ensure game is not paused. World.Paused = false; DwarfTime.LastTime.Speed = 1.0f; // Setup new gui. Double rendering the mouse? Gui = new Gui.Root(DwarfGame.GuiSkin); Gui.MousePointer = new Gui.MousePointer("mouse", 4, 0); World.UserInterface = this; CreateGUIComponents(); IsInitialized = true; SoundManager.PlayMusic("main_theme_day"); World.Time.Dawn += time => { SoundManager.PlaySound(ContentPaths.Audio.Oscar.sfx_gui_daytime, 0.15f); SoundManager.PlayMusic("main_theme_day"); }; World.Time.NewNight += time => { SoundManager.PlaySound(ContentPaths.Audio.Oscar.sfx_gui_nighttime, 0.15f); SoundManager.PlayMusic("main_theme_night"); }; World.UnpauseThreads(); AutoSaveTimer = new Timer(GameSettings.Current.AutoSaveTimeMinutes * 60.0f, false, Timer.TimerMode.Real); foreach (var contextCommandFactory in AssetManager.EnumerateModHooks(typeof(ContextCommandAttribute), typeof(ContextCommands.ContextCommand), new Type[] { })) { ContextCommands.Add(contextCommandFactory.Invoke(null, new Object[] { }) as ContextCommands.ContextCommand); } World.LogEvent(String.Format("We have arrived at {0}", World.Overworld.Name)); } base.OnEnter(); }
public void OnMouseOver(IEnumerable <Body> bodies) { CurrentTool.OnMouseOver(bodies); }