コード例 #1
0
        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);
            }
        }
コード例 #2
0
    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));
            }
        }
    }
コード例 #3
0
ファイル: FillTool.cs プロジェクト: alongubkin/Plutonium
        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));
            }
        }
コード例 #4
0
        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"));
        }
コード例 #5
0
        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"));
        }