public void Update(GameTime gameTime) { MouseState mouseState = Mouse.GetState(); Time = Time.Subtract(gameTime.ElapsedGameTime); ClickTime = ClickTime.Subtract(gameTime.ElapsedGameTime); if (drawLoadTextBox) { string result = loadTextBox.CheckMultilineCollisions(mouseState); if (!result.Equals("")) { game.SetFilename(result); game.SwitchMode(); } } if (mouseState.LeftButton == ButtonState.Pressed) { int x = mouseState.X; int y = mouseState.Y; mouseRect = new Rectangle(x, y, 1, 1); MouseCollisionChecker mouseCollisionChecker = new MouseCollisionChecker(blockDict, pipeDict, enemyDict, itemDict, playerDict); if ((int)Time.TotalMilliseconds <= 0) { Time = new TimeSpan(0, 0, 0, 0, 150); mouseCollisionChecker.CheckMouseDisplayCollisions(options[optionsIndex], mouseRect, previousMouseRect, displayBlocks, displayPipes, displayEnemies, displayItems, displayPlayers, blocks, pipes, enemies, items, players); } mouseCollisionChecker.CheckMouseDefaultCollisions(mouseRect, previousMouseRect, blocks, pipes, enemies, items, players); if (mouseRect.Intersects(saveAction.GetRectangle())) { drawSaveTextBox = true; } if (mouseRect.Intersects(loadAction.GetRectangle())) { drawLoadTextBox = true; } previousMouseRect = mouseRect; } else if ((int)ClickTime.TotalMilliseconds <= 0) { ClickTime = new TimeSpan(0, 0, 0, 0, 200); previousMouseRect = mouseRect; } if (savingLevel) { SaveLevel(saveTextBox.GetText()); } }
public void CheckMouseDisplayCollisions(ActionText option, Rectangle mouseRect, Rectangle previousMouseRect, List <IBlock> displayBlocks, List <IPipe> displayPipes, List <IEnemy> displayEnemies, List <IItem> displayItems, List <IPlayer> displayPlayers, List <IBlock> blocks, List <IPipe> pipes, List <IEnemy> enemies, List <IItem> items, List <IPlayer> players) { int x = mouseRect.X; int y = mouseRect.Y; Rectangle r = new Rectangle(x, y, 1, 1); if (option.GetOption().Equals("Blocks")) { foreach (IBlock displayBlock in displayBlocks) { if (mouseRect.Intersects(displayBlock.GetRectangle())) { EditUtility.blockCreator(displayBlock, blockDict, blocks, x, y); } } } else if (option.GetOption().Equals("Pipes")) { foreach (IPipe displayPipe in displayPipes) { if (mouseRect.Intersects(displayPipe.GetRectangle())) { EditUtility.pipeCreator(displayPipe, pipeDict, pipes, x, y); } } } else if (option.GetOption().Equals("Enemies")) { foreach (IEnemy displayEnemy in displayEnemies) { if (mouseRect.Intersects(displayEnemy.GetRectangle())) { EditUtility.enemyCreator(displayEnemy, enemyDict, enemies, x, y); } } } else if (option.GetOption().Equals("Items")) { foreach (IItem displayItem in displayItems) { if (mouseRect.Intersects(displayItem.GetRectangle())) { EditUtility.itemCreator(displayItem, itemDict, items, x, y); } } } else if (option.GetOption().Equals("Players")) { foreach (IPlayer displayPlayer in displayPlayers) { if (mouseRect.Intersects(displayPlayer.GetRectangle())) { EditUtility.playerCreator(displayPlayer, playerDict, players, displayPlayer.GetState()); } } } if (mouseRect.Intersects(option.GetRectangle())) { EditLevelDisplay.optionsIndex = (EditLevelDisplay.optionsIndex + 1) % EditLevelDisplay.options.Count(); } }