void DrawTile(Map map, Layer layer, Camera2D camera, Vector2 position, string selectedTileName) { if (!string.IsNullOrEmpty(selectedTileName)) { var point = new Vector2((int)((camera.Position.X + position.X) / 32), (int)((camera.Position.Y + position.Y) / 32)); if (layer.Tiles.ContainsKey(point)) { layer.Tiles.Remove(point); } layer.Tiles.Add(point, TileRepository.GetTile(selectedTileName)); /*UndoService.Current[map].AddChange(new DelegateChange(null, new Action(() => * { * layer.Tiles.Remove(point); * }), new Action(() => * { * layer.Tiles.Add(point, TileRepository.GetTile(selectedTileName)); * }), selectedTileName), "Draw a tile");*/ /*MainForm.MapPanel.AddShadowForObject(Texture2D.FromStream(MainForm.MapPanel.GraphicsDevice, TileRepository.GetTile(selectedTileName).Texture), * point);*/ base.OnMouseMove(map, layer, camera, position, selectedTileName); } }
public TilesStack(TileRepository tr) { stack = new Stack <Tile>(); for (int type = 0; type < tr.GetTileTypeCount(); type++) { for (int i = 0; i < tr.GetTileCount(type); i++) { stack.Push(tr.GetTile(type)); } } }
public override void OnMouseClick(Map map, Layer layer, Camera2D camera, Vector2 position, string selectedTileName) { if (!string.IsNullOrEmpty(selectedTileName)) { var orginal = new Vector2((int)((camera.Position.X + position.X) / 32), (int)((camera.Position.Y + position.Y) / 32)); Tile target = null; layer.Tiles.TryGetValue(orginal, out target); FloodFill(layer, orginal, orginal, target, TileRepository.GetTile(selectedTileName)); } }
public ActionResult Scramble(int id) { var repos = new TileRepository(); var tile = repos.GetTile(id); var random = new Random(); var characters = tile.Text .ToCharArray() .Select(ch => new { ch, order = random.NextDouble() }) .OrderBy(x => x.order) .Select(x => x.ch); repos.ChangeTile(id, new string(characters.ToArray())); return(RedirectToAction("index")); }
public ActionResult ResetAll() { var repos = new TileRepository(); var tileData = "the quick brown fox jumped over the sleepy dog" .Split(' ') .Select((text, index) => new { text, index }); foreach (var data in tileData) { if (repos.GetTile(data.index).Text != data.text) { repos.ChangeTile(data.index, data.text); } } return(RedirectToAction("index")); }