Origin Preset Applier Implementer

This commit is contained in:
quinnvoker
2018-12-02 17:10:01 -08:00
parent c0c757650c
commit de9d120a23
6 changed files with 360 additions and 161 deletions
+49 -44
View File
@@ -13,13 +13,14 @@ using Microsoft.Xna;
using System.IO;
using QURO;
using Microsoft.Xna.Framework.Content.Pipeline.Serialization.Intermediate;
using SpriteMapEditor.SpriteMapModifications;
namespace SpriteMapEditor
{
public partial class Form1 : Form
{
private SpriteMapModifications.History undoHistory;
private History undoHistory;
private BindingList<SpriteMapRegion> sprites;
private List<SpriteMapRegion> selectedSprites;
@@ -73,10 +74,12 @@ namespace SpriteMapEditor
public Form1()
{
InitializeComponent();
FormBorderStyle = FormBorderStyle.FixedSingle;
FormBorderStyle = FormBorderStyle.Sizable;
undoHistory = new SpriteMapModifications.History();
originPresetBox.DataSource = Enum.GetValues(typeof(OriginPreset));
spriteSheetViewer.Width = 1;
spriteSheetViewer.Height = 1;
@@ -105,16 +108,19 @@ namespace SpriteMapEditor
{
spriteSheet = Image.FromFile(loadSpriteSheetDialog.FileName);
spriteSheetViewer.Image = spriteSheet;
InitializeMask();
EnableEditing();
}
EnableLoadAndSaveAsSpriteMap();
InitializeMask();
}
private void EnableLoadAndSaveAsSpriteMap()
private void EnableEditing()
{
loadSpriteMapToolStripMenuItem.Enabled = true;
saveSpriteMapAsToolStripMenuItem.Enabled = true;
spriteListEditPanel.Enabled = true;
spriteEditPanel.Enabled = true;
viewEditPanel.Enabled = true;
spriteViewerPanel.Enabled = true;
}
private void spriteSheetViewer_Paint(object sender, PaintEventArgs e)
@@ -170,6 +176,7 @@ namespace SpriteMapEditor
originYPosBox.Value = (int)currentSprite.Origin.Y;
originYPosBox.Text = ((int)currentSprite.Origin.Y).ToString();
}
originPresetBox.SelectedIndex = 0;
loadingSprite = false;
}
@@ -296,8 +303,8 @@ namespace SpriteMapEditor
{
if (loadingSprite)
return;
var modification = new SpriteMapModifications.ModifyBounds(selectedSprites, x: (int)spriteXPosBox.Value);
SpriteMapModifications.ModHelper.DoModificationWithSelectionTracking(modification, spriteList);
var modification = new ModifyBounds(selectedSprites, x: (int)spriteXPosBox.Value);
ModHelper.DoModificationWithSelectionTracking(modification, spriteList);
undoHistory.Add(modification);
UpdateHighlightMask();
spriteSheetViewer.Refresh();
@@ -307,8 +314,8 @@ namespace SpriteMapEditor
{
if (loadingSprite)
return;
var modification = new SpriteMapModifications.ModifyBounds(selectedSprites, y: (int)spriteYPosBox.Value);
SpriteMapModifications.ModHelper.DoModificationWithSelectionTracking(modification, spriteList);
var modification = new ModifyBounds(selectedSprites, y: (int)spriteYPosBox.Value);
ModHelper.DoModificationWithSelectionTracking(modification, spriteList);
undoHistory.Add(modification);
UpdateHighlightMask();
spriteSheetViewer.Refresh();
@@ -318,8 +325,8 @@ namespace SpriteMapEditor
{
if (loadingSprite)
return;
var modification = new SpriteMapModifications.ModifyBounds(selectedSprites, width: (int)spriteWidthBox.Value);
SpriteMapModifications.ModHelper.DoModificationWithSelectionTracking(modification, spriteList);
var modification = new ModifyBounds(selectedSprites, width: (int)spriteWidthBox.Value);
ModHelper.DoModificationWithSelectionTracking(modification, spriteList);
undoHistory.Add(modification);
UpdateHighlightMask();
spriteSheetViewer.Refresh();
@@ -329,8 +336,8 @@ namespace SpriteMapEditor
{
if (loadingSprite)
return;
var modification = new SpriteMapModifications.ModifyBounds(selectedSprites, height: (int)spriteHeightBox.Value);
SpriteMapModifications.ModHelper.DoModificationWithSelectionTracking(modification, spriteList);
var modification = new ModifyBounds(selectedSprites, height: (int)spriteHeightBox.Value);
ModHelper.DoModificationWithSelectionTracking(modification, spriteList);
undoHistory.Add(modification);
UpdateHighlightMask();
spriteSheetViewer.Refresh();
@@ -338,8 +345,8 @@ namespace SpriteMapEditor
private void addSpriteButton_Click(object sender, EventArgs e)
{
var modification = new SpriteMapModifications.AddSprite(sprites, selectedSprites[0]);
SpriteMapModifications.ModHelper.DoModificationWithSelectionTracking(modification, spriteList);
var modification = new AddSprite(sprites, selectedSprites[0]);
ModHelper.DoModificationWithSelectionTracking(modification, spriteList);
undoHistory.Add(modification);
}
@@ -354,8 +361,8 @@ namespace SpriteMapEditor
if (indexToRemove > -1 && indexToRemove < sprites.Count)
{
var modification = new SpriteMapModifications.RemoveSprite(sprites, indexToRemove);
SpriteMapModifications.ModHelper.DoModificationWithSelectionTracking(modification, spriteList);
var modification = new RemoveSprite(sprites, indexToRemove);
ModHelper.DoModificationWithSelectionTracking(modification, spriteList);
undoHistory.Add(modification);
}
}
@@ -589,9 +596,9 @@ namespace SpriteMapEditor
var totalDragY = selectedSprites[0].Bounds.Y - preDragBounds[0].Y;
if (totalDragX != 0 || totalDragY != 0)
{
var modification = new SpriteMapModifications.MoveBounds(selectedSprites, totalDragX, totalDragY, preDragBounds);
var modification = new MoveBounds(selectedSprites, totalDragX, totalDragY, preDragBounds);
modification.Undo();
SpriteMapModifications.ModHelper.DoModificationWithSelectionTracking(modification, spriteList);
ModHelper.DoModificationWithSelectionTracking(modification, spriteList);
undoHistory.Add(modification);
}
}
@@ -601,8 +608,8 @@ namespace SpriteMapEditor
{
if (loadingSprite)
return;
var modification = new SpriteMapModifications.ModifyOrigin(selectedSprites, x: (int)originXPosBox.Value);
SpriteMapModifications.ModHelper.DoModificationWithSelectionTracking(modification, spriteList);
var modification = new ModifyOrigin(selectedSprites, x: (int)originXPosBox.Value);
ModHelper.DoModificationWithSelectionTracking(modification, spriteList);
undoHistory.Add(modification);
spriteSheetViewer.Refresh();
}
@@ -611,8 +618,8 @@ namespace SpriteMapEditor
{
if (loadingSprite)
return;
var modification = new SpriteMapModifications.ModifyOrigin(selectedSprites, y: (int)originYPosBox.Value);
SpriteMapModifications.ModHelper.DoModificationWithSelectionTracking(modification, spriteList);
var modification = new ModifyOrigin(selectedSprites, y: (int)originYPosBox.Value);
ModHelper.DoModificationWithSelectionTracking(modification, spriteList);
undoHistory.Add(modification);
spriteSheetViewer.Refresh();
}
@@ -621,8 +628,8 @@ namespace SpriteMapEditor
{
if(spriteList.SelectedIndex < sprites.Count - 1)
{
var modification = new SpriteMapModifications.MoveSpriteListEntry(sprites, spriteList.SelectedIndex, 1);
SpriteMapModifications.ModHelper.DoModificationWithSelectionTracking(modification, spriteList);
var modification = new MoveSpriteListEntry(sprites, spriteList.SelectedIndex, 1);
ModHelper.DoModificationWithSelectionTracking(modification, spriteList);
undoHistory.Add(modification);
int newPosition = spriteList.SelectedIndex + 1;
spriteList.SelectedIndices.Clear();
@@ -634,8 +641,8 @@ namespace SpriteMapEditor
{
if(spriteList.SelectedIndex > 0)
{
var modification = new SpriteMapModifications.MoveSpriteListEntry(sprites, spriteList.SelectedIndex, -1);
SpriteMapModifications.ModHelper.DoModificationWithSelectionTracking(modification, spriteList);
var modification = new MoveSpriteListEntry(sprites, spriteList.SelectedIndex, -1);
ModHelper.DoModificationWithSelectionTracking(modification, spriteList);
undoHistory.Add(modification);
int newPosition = spriteList.SelectedIndex - 1;
spriteList.SelectedIndices.Clear();
@@ -647,20 +654,7 @@ namespace SpriteMapEditor
{
editingOrigin = editingOriginCheckBox.Checked;
if (editingOrigin)
{
originXPosLabel.Enabled = true;
originXPosBox.Enabled = true;
originYPosLabel.Enabled = true;
originYPosBox.Enabled = true;
}
else
{
originXPosLabel.Enabled = false;
originXPosBox.Enabled = false;
originYPosLabel.Enabled = false;
originYPosBox.Enabled = false;
}
originEditPanel.Enabled = editingOrigin;
spriteViewerPanel.Refresh();
}
@@ -686,8 +680,8 @@ namespace SpriteMapEditor
private void UpdateSpriteName()
{
var modification = new SpriteMapModifications.RenameSprite(selectedSprites[0], spriteNameBox.Text);
SpriteMapModifications.ModHelper.DoModificationWithSelectionTracking(modification, spriteList);
var modification = new RenameSprite(selectedSprites[0], spriteNameBox.Text);
ModHelper.DoModificationWithSelectionTracking(modification, spriteList);
undoHistory.Add(modification);
sprites.ResetBindings();
}
@@ -742,5 +736,16 @@ namespace SpriteMapEditor
{
undoHistory.Redo(spriteList);
}
private void originPresetBox_SelectedIndexChanged(object sender, EventArgs e)
{
if ((OriginPreset)originPresetBox.SelectedIndex == OriginPreset.None)
return;
var modification = new ApplyOriginPreset(selectedSprites,
(OriginPreset)originPresetBox.SelectedIndex);
ModHelper.DoModificationWithSelectionTracking(modification, spriteList);
undoHistory.Add(modification);
spriteSheetViewer.Refresh();
}
}
}