Exemple #1
0
 public void SetHeldInfo(MapleDrawableInfo newInfo)
 {
     Clear();
     if (newInfo.Image == null)
     {
         ((MapleExtractableInfo)newInfo).ParseImage();
     }
     currAddedInfo = newInfo;
     currAddedObj  = newInfo.CreateInstance(Board.SelectedLayer, Board, X + currAddedInfo.Origin.X - newInfo.Image.Width / 2, Y + currAddedInfo.Origin.Y - newInfo.Image.Height / 2, 50, false, true);
     Board.BoardItems.Add(currAddedObj, false);
     BindItem(currAddedObj, new Microsoft.Xna.Framework.Point(newInfo.Origin.X - newInfo.Image.Width / 2, newInfo.Origin.Y - newInfo.Image.Height / 2));
     state = MouseState.StaticObjectAdding;
 }
Exemple #2
0
 public void SetHeldInfo(MapleDrawableInfo newInfo)
 {
     Clear();
     if (newInfo.Image == null) ((MapleExtractableInfo)newInfo).ParseImage();
     currAddedInfo = newInfo;
     currAddedObj = newInfo.CreateInstance(Board.SelectedLayer, Board, X + currAddedInfo.Origin.X - newInfo.Image.Width / 2, Y + currAddedInfo.Origin.Y - newInfo.Image.Height / 2, 50, false, true);
     Board.BoardItems.Add(currAddedObj, false);
     BindItem(currAddedObj, new Microsoft.Xna.Framework.Point(newInfo.Origin.X - newInfo.Image.Width / 2, newInfo.Origin.Y - newInfo.Image.Height / 2));
     state = MouseState.StaticObjectAdding;
 }
Exemple #3
0
 public void PlaceObject()
 {
     if (state == MouseState.StaticObjectAdding || state == MouseState.RandomTiles)
     {
         Board.UndoRedoMan.AddUndoBatch(new List <UndoRedoAction>()
         {
             UndoRedoManager.ItemAdded(currAddedObj)
         });
         //Board.BoardItems.Add(currAddedObj.CreateInstance(Board.Layers[Board.SelectedLayerIndex], Board, x, y, 50, false, false));
         currAddedObj.BeforeAdding = false;
         ReleaseItem(currAddedObj);
         if (currAddedObj is LayeredItem)
         {
             int highestZ = 0;
             foreach (LayeredItem item in Board.BoardItems.TileObjs)
             {
                 if (item.Z > highestZ)
                 {
                     highestZ = item.Z;
                 }
             }
             currAddedObj.Z = highestZ;
             Board.BoardItems.Sort();
         }
         if (state == MouseState.StaticObjectAdding)
         {
             currAddedObj = currAddedInfo.CreateInstance(Board.SelectedLayer, Board, X + currAddedInfo.Origin.X - currAddedInfo.Image.Width / 2, Y + currAddedInfo.Origin.Y - currAddedInfo.Image.Height / 2, 50, false, true);
         }
         else
         {
             currAddedObj = tileRandomList[NextInt32(tileRandomList.Length)].CreateInstance(Board.SelectedLayer, Board, X + currAddedInfo.Origin.X - currAddedInfo.Image.Width / 2, Y + currAddedInfo.Origin.Y - currAddedInfo.Image.Height / 2, 50, false, true);
         }
         Board.BoardItems.Add(currAddedObj, false);
         BindItem(currAddedObj, new Microsoft.Xna.Framework.Point(currAddedInfo.Origin.X - currAddedInfo.Image.Width / 2, currAddedInfo.Origin.Y - currAddedInfo.Image.Height / 2));
     }
     else if (state == MouseState.Chairs)
     {
         Board.UndoRedoMan.AddUndoBatch(new List <UndoRedoAction> {
             UndoRedoManager.ItemAdded(currAddedObj)
         });
         ReleaseItem(currAddedObj);
         currAddedObj = new Chair(Board, X, Y, true);
         Board.BoardItems.Add(currAddedObj, false);
         BindItem(currAddedObj, new Microsoft.Xna.Framework.Point());
     }
     else if (state == MouseState.Ropes)
     {
         int      count = BoundItems.Count;
         object[] keys  = new object[count];
         BoundItems.Keys.CopyTo(keys, 0);
         RopeAnchor anchor = (RopeAnchor)keys[0];
         ReleaseItem(anchor);
         if (count == 1)
         {
             Board.UndoRedoMan.AddUndoBatch(new List <UndoRedoAction> {
                 UndoRedoManager.RopeAdded(anchor.ParentRope)
             });
             CreateRope();
         }
     }
     else if (state == MouseState.Tooltip)
     {
         int      count = BoundItems.Count;
         object[] keys  = new object[count];
         BoundItems.Keys.CopyTo(keys, 0);
         ToolTipDot dot = (ToolTipDot)keys[0];
         ReleaseItem(dot);
         if (count == 1)
         {
             Board.UndoRedoMan.AddUndoBatch(new List <UndoRedoAction> {
                 UndoRedoManager.ItemAdded(dot.ParentTooltip)
             });
             CreateTooltip();
         }
     }
 }