private void DoCurrentThing(CurrentDecor currentThing, Level lvl) { switch (lvl.Things[currentThing.LayerIndex][currentThing.TileIndex].Kind) { case Toolbox.EntityType.Resource: if (lvl.Things[currentThing.LayerIndex][currentThing.TileIndex].GetType() == typeof(Tree)) { ((GameMapScreen)ToT.screenManager.Screens[Toolbox.ScreenType.GameMap]).GameMap.player.Resources[Toolbox.ResourceType.Wood]++; ((Tree)lvl.Things[currentThing.LayerIndex][currentThing.TileIndex]).ResourceQty--; if (((Tree)lvl.Things[currentThing.LayerIndex][currentThing.TileIndex]).ResourceQty <= 0) { lvl.Things[currentThing.LayerIndex].Remove(currentThing.TileIndex); } } else if (lvl.Things[currentThing.LayerIndex][currentThing.TileIndex].GetType() == typeof(Rock)) { ((GameMapScreen)ToT.screenManager.Screens[Toolbox.ScreenType.GameMap]).GameMap.player.Resources[Toolbox.ResourceType.Rock]++; ((Rock)lvl.Things[currentThing.LayerIndex][currentThing.TileIndex]).ResourceQty--; if (((Rock)lvl.Things[currentThing.LayerIndex][currentThing.TileIndex]).ResourceQty <= 0) { lvl.Things[currentThing.LayerIndex].Remove(currentThing.TileIndex); } } else if (lvl.Things[currentThing.LayerIndex][currentThing.TileIndex].GetType() == typeof(Crystal)) { ((GameMapScreen)ToT.screenManager.Screens[Toolbox.ScreenType.GameMap]).GameMap.player.Resources[Toolbox.ResourceType.Crystal]++; ((Crystal)lvl.Things[currentThing.LayerIndex][currentThing.TileIndex]).ResourceQty--; if (((Crystal)lvl.Things[currentThing.LayerIndex][currentThing.TileIndex]).ResourceQty <= 0) { lvl.Things[currentThing.LayerIndex].Remove(currentThing.TileIndex); } } break; } }
private void UpdateHover(Rectangle mouseRect, Level level) { CurrentThing = null; foreach (KeyValuePair <int, Dictionary <Vector2, Thing> > tTs in level.Things) { foreach (KeyValuePair <Vector2, Thing> tT in tTs.Value) { if (mouseRect.Intersects(tT.Value.Anime.LevelRectangle(tT.Key, ToT.Settings.LevelTileSize))) { tT.Value.IsHover = true; CurrentThing = new CurrentDecor() { LayerIndex = tTs.Key, TileIndex = tT.Key }; } else { tT.Value.IsHover = false; } } } }