public static void DemolishStructure() { IsDemolitionLegal = true; foreach (var building in EntityLists.BuildingList) { if (Cursor.CursorRectangle.Intersects(building.BRec)) { if (building.Description == "Operations Base") { IsDemolitionLegal = false; } if (IsDemolitionLegal && CheckMouseStateChange.IsMouseClicked()) { EntityLists.BuildingList.Remove(building); break; } } } }
public static void CheckForMouseInput() { if (currentMouseState.ScrollWheelValue > PreviousScrollValue && Engine.Camera.Zoom <= 1.8) { Engine.Camera.Zoom += 0.1f; } if (currentMouseState.ScrollWheelValue > PreviousScrollValue && Engine.Camera.Zoom >= 0.2) { Engine.Camera.Zoom -= 0.1f; } PreviousScrollValue = currentMouseState.ScrollWheelValue; if (BuildMenuInteraction.IsBuildMenuOpen) { bool intersects = false; foreach (var icon in EntityLists.BuildIconList) { if (Cursor.CursorRectangle.Intersects(icon.BRec)) { intersects = true; } } foreach (var icon in EntityLists.MainIconList) { if (Cursor.CursorRectangle.Intersects(icon.BRec)) { intersects = true; } } if (!intersects && CheckMouseStateChange.IsMouseClicked()) { BuildMenuInteraction.IsBuildMenuOpen = false; } } }
protected override void Update(GameTime gameTime) { Camera.Update(gameTime); /* * if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || * Keyboard.GetState().IsKeyDown(Keys.Escape)) * Exit(); */ // Mouse //ToDo 1 Fix mouse getting 'stuck' in fullscreen mode MouseCoordinates = Cursor.GetMouseCoordinates(); Cursor.GetMouseCoordinates(); Cursor.UpdateCursorRectangleLocation(); //Update Tree Foliage Transparency Trees.ChangeTreeFoliageTransparency(); if (Debug.Debug.IsDebugEnabled) { fps.Update(gameTime); } if (ResolutionChanged) { ResolutionHandler.SetResolution(); Graphics.ApplyChanges(); } Camera.Position = CameraPosition; #region User Interface if (BuildMenuPane.IsBuildMenuWindowVisible) { BuildMenuRollOverText.GenerateRollOverText(); BuildMenuPane.CloseBuildMenu(); } if (BuildingPlacementHandler.IsPlacingBuilding) { BuildingPlacementHandler.CheckIfGroundClear(Blueprint); BuildingPlacementHandler.PlaceAStructure(BuildingPlacementHandler.SetBuildingTexture()); } //Menu if (!Bulldozer.IsBulldozerActive) { BuildMenuInteraction.CheckCursorMenuInteraction(Cursor.CursorRectangle); } if (BuildMenuInteraction.IsBuildMenuOpen && !Bulldozer.IsBulldozerActive) { BuildMenuInteraction.CheckBuildIconInteraction(); } if (BuildMenuPane.IsBuildMenuWindowVisible && !Bulldozer.IsBulldozerActive) { BuildMenuPane.UpdateBuildMenuWindowLocation(); } // Details Pane DetailsPaneInteraction.CheckForDetailsPaneInteraction(); DetailsPaneMovement.UpdateDetailsPaneLocation(); // Selected Pawn if (SelectedPawn.SelectedHuman != null) { SelectedPawn.UpdateIndicator(SelectedPawn.SelectedHuman); ExtendIconChecks.CheckExtendHandClicked(); PawnInfo.UpdatePawnInfo(); } #endregion #region PawnInfoSB PawnCursorInteraction.CheckForCursorPawnInteraction(); if (PawnInfo.IsPawnInfoVisible) { PawnInfo.ClosePawnInfo(); } if (ExtendIconChecks.IsWeaponIconListVisible) { EquipWeapon.CheckWeaponIconInteraction(); CreateItemIcons.UpdateWeaponIconList(); } #endregion ZedDeath.CheckZedsHealth(); RuinedBuilding.CheckBuildingsHealth(); HumanDeath.CheckHumansHealth(); ZedController.IncreaseZeds(); //Building Removal if (Bulldozer.IsBulldozerActive) { Bulldozer.DemolishStructure(); } //Movement //HumanMovement.RunFromZeds(); PathFind.MovePawns(); CheckMouseStateChange.UpdateMouseState(); KeyBindings.CheckForKeyInput(); KeyBindings.CheckForMouseInput(); Resource.SetResourcesForGathering(); base.Update(gameTime); }