Define a grid size to snap onto. A grid of 1x1 gives us a pixel by pixel grid. But we usually want to have 5, 10, 50, 100 or something like that.

This commit is contained in:
Tim Young 2017-09-15 19:21:46 -05:00
parent 23814be473
commit 72f1c3ac79
2 changed files with 13 additions and 4 deletions

View File

@ -26,6 +26,7 @@ namespace SpriteLibrary
List<ImageStruct> TheImages = new List<ImageStruct>(); List<ImageStruct> TheImages = new List<ImageStruct>();
ResourceManager myResourceManager = null; ResourceManager myResourceManager = null;
string Filename = ""; string Filename = "";
Size SnapGridSize = new Size(5, 5);
public SpriteDatabase(ResourceManager theResourceManager, string filename) public SpriteDatabase(ResourceManager theResourceManager, string filename)
{ {
@ -39,6 +40,14 @@ namespace SpriteLibrary
LoadSpriteInfo(); LoadSpriteInfo();
} }
public void SetSnapGridSize(Size GridSize)
{
if (GridSize.Width <= 0) return;
if (GridSize.Height <= 0) return;
if (GridSize.Width > 500) return;
if (GridSize.Height > 500) return;
SnapGridSize = GridSize;
}
//******************************* //*******************************
//**** Sprite Info Functions *** //**** Sprite Info Functions ***
@ -83,7 +92,7 @@ namespace SpriteLibrary
public void OpenEditWindow(int FirstItemIndex=-1) public void OpenEditWindow(int FirstItemIndex=-1)
{ {
SpriteEntryForm SEF = new SpriteEntryForm(myResourceManager, SpriteInfoList); SpriteEntryForm SEF = new SpriteEntryForm(myResourceManager, SpriteInfoList, SnapGridSize);
SEF.ShowDialog(); SEF.ShowDialog();
//Use the updated list returned from the form. //Use the updated list returned from the form.
SpriteInfoList.Clear(); SpriteInfoList.Clear();

View File

@ -11,11 +11,9 @@ using System.Xml.Serialization;
using System.IO; using System.IO;
using System.Resources; using System.Resources;
using System.Windows.Forms; using System.Windows.Forms;
using System.Windows;
using System.Collections; using System.Collections;
namespace SpriteLibrary namespace SpriteLibrary
{ {
internal partial class SpriteEntryForm : Form internal partial class SpriteEntryForm : Form
@ -23,12 +21,14 @@ namespace SpriteLibrary
SpriteController MyController; SpriteController MyController;
ResourceManager myResources = null; ResourceManager myResources = null;
List<SpriteInfo> SpriteInformation = new List<SpriteInfo>(); List<SpriteInfo> SpriteInformation = new List<SpriteInfo>();
Size SnapGridSize = new Size(5,5);
internal SpriteEntryForm(ResourceManager theResourceManager, List<SpriteInfo> ListToWorkOn) internal SpriteEntryForm(ResourceManager theResourceManager, List<SpriteInfo> ListToWorkOn, Size GridSize)
{ {
InitializeComponent(); InitializeComponent();
if (theResourceManager == null) throw new Exception("NullException: The ResourceManager passed to the SpriteEntryForm cannot be null. Pass it Properties.Resources.ResourceManager"); if (theResourceManager == null) throw new Exception("NullException: The ResourceManager passed to the SpriteEntryForm cannot be null. Pass it Properties.Resources.ResourceManager");
myResources = theResourceManager; myResources = theResourceManager;
SnapGridSize = GridSize;
LocalSetup(); LocalSetup();
SpriteInformation.AddRange(ListToWorkOn); SpriteInformation.AddRange(ListToWorkOn);
} }