void Main_DragOver(object sender, DragEventArgs e) { Point tile = ScreenToTile(SharplikeView.PointToClient(new Point(e.X, e.Y))); AbstractSquare sq = Map.GetSafeSquare(new Vector3(tile.X + Map.View.X, tile.Y + Map.View.Y, Map.View.Z)); if (sq != null && sq.IsPassable(Direction.Here)) { e.Effect = DragDropEffects.Copy; } else { e.Effect = DragDropEffects.None; } }
void Main_DragDrop(object sender, DragEventArgs e) { Point tile = ScreenToTile(SharplikeView.PointToClient(new Point(e.X, e.Y))); Vector3 maploc = new Vector3(tile.X + Map.View.X, tile.Y + Map.View.Y, Map.View.Z); AbstractSquare sq = Map.GetSafeSquare(maploc); if (sq != null && sq.IsPassable(Direction.Here)) { EditorExtensionNode node = e.Data.GetData(typeof(EditorExtensionNode)) as EditorExtensionNode; AbstractEntity ent = node.CreateInstance() as AbstractEntity; ent.Location = maploc; ent.Map = Map; } }