Example #1
0
        private static SimpleTile GetSelectedTile(DraggableMap dmap, int x, int y)
        {
            int tilex = x / Tile.tilesize;
            int tiley = y / Tile.tilesize;
            dmap.HighlightTile(tilex, tiley);

            Bitmap b = new Bitmap(Tile.tilesize, Tile.tilesize);
            using (Graphics g = Graphics.FromImage(b))
            {
                g.DrawImage(
                    dmap.img,
                    new Rectangle(0, 0, Tile.tilesize, Tile.tilesize),
                    new Rectangle(tilex * Tile.tilesize, tiley * Tile.tilesize, Tile.tilesize, Tile.tilesize),
                    GraphicsUnit.Pixel);
            }
            SimpleTile st = new SimpleTile(b);
            return st;
        }
Example #2
0
        private void OpenFile(string filename)
        {
            var img = new Bitmap(filename);
            img.SetResolution(96, 96);

            string name = Path.GetFileNameWithoutExtension(filename);
            tc_topRight.TabPages.Add(name, name);

            DraggableMap dm = new DraggableMap();
            tc_topRight.TabPages[name].Controls.Add(dm);

            Button basicTile = new Button();
            basicTile.Click += new EventHandler(basicTile_Click);
            basicTile.Text = "Create Basic Tile";
            basicTile.Dock = DockStyle.Bottom;

            tc_topRight.TabPages[name].Controls.Add(basicTile);

            Button autoTile12 = new Button();
            autoTile12.Click += new EventHandler((obj, evt) => {
                AutoTile12 at12 = new AutoTile12();
                DraggableMap dmap = ((Button)obj).Tag as DraggableMap;

                int x, y;
                dmap.GetHighlightedTile(out x, out y);

                for (int i = 0; i < AutoTile12.tileToRawTileIndex.Length; i++)
                {
                    Rectangle rect = AutoTile12.tileToRawTileIndex[i];
                    SimpleTile st = GetSelectedTile(dmap, rect.X + x * Tile.tilesize, rect.Y + y * Tile.tilesize);
                    at12.rawtiles[i] = st;
                }

                AddAutotile12(at12, at12);
            });
            autoTile12.Tag = dm;
            autoTile12.Text = "Create Autotile";
            autoTile12.Dock = DockStyle.Bottom;
            autoTile12.Enabled = false;

            tc_topRight.TabPages[name].Controls.Add(autoTile12);

            dm.map = new Tile[img.Width / Tile.tilesize, img.Height / Tile.tilesize, 1];
            dm.img = img;
            dm.Dock = DockStyle.Fill;
            dm.LeftClick += new Action<DraggableMap, MouseEventArgs>((dmap, evt) =>
            {
                int x, y;
                dmap.GetMapPos(evt, out x, out y);

                SimpleTile st = GetSelectedTile(dmap, x, y);

                currentTile = st;

                if (dmap.highlightwidth == 3 && dmap.highlightheight == 4)
                {
                    autoTile12.Enabled = true;
                }
                else
                {
                    autoTile12.Enabled = false;
                }
            });
            dm.LeftClickDrag += new Action<DraggableMap, MouseEventArgs>((dmap, evt) =>
            {
                int x, y;
                dmap.GetMapPos(evt, out x, out y);

                int tilex = x / Tile.tilesize;
                int tiley = y / Tile.tilesize;

                int htilex, htiley;
                dmap.GetHighlightedTile(out htilex, out htiley);

                dmap.HighlightTile(Math.Min(tilex, htilex), Math.Min(tiley, htiley));

                int dx = Math.Max(Math.Abs(tilex - htilex + 1), 1);
                int dy = Math.Max(Math.Abs(tiley - htiley + 1), 1);

                dmap.highlightwidth = dx;
                dmap.highlightheight = dy;

                if (dx == 3 && dy == 4)
                {
                    autoTile12.Enabled = true;
                }
                else
                {
                    autoTile12.Enabled = false;
                }

            });
        }
Example #3
0
 void draggableMap1_LeftClickDrag(DraggableMap dmap, MouseEventArgs obj)
 {
     int x, y;
     draggableMap1.GetMapPos(obj, out x, out y);
     draggableMap1.PutTile(x / Tile.tilesize, y / Tile.tilesize, paintTile);
 }