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; }
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; }
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(); } } }