diff --git a/SheetPlayer.sln b/SheetPlayer.sln
new file mode 100644
index 0000000..c8fd9ff
--- /dev/null
+++ b/SheetPlayer.sln
@@ -0,0 +1,22 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.26430.16
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SheetPlayer", "SheetPlayer\SheetPlayer.csproj", "{A5FC613D-6F3C-42B1-BA91-EB9489E55A38}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {A5FC613D-6F3C-42B1-BA91-EB9489E55A38}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A5FC613D-6F3C-42B1-BA91-EB9489E55A38}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A5FC613D-6F3C-42B1-BA91-EB9489E55A38}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A5FC613D-6F3C-42B1-BA91-EB9489E55A38}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/SheetPlayer/App.config b/SheetPlayer/App.config
new file mode 100644
index 0000000..8e15646
--- /dev/null
+++ b/SheetPlayer/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SheetPlayer/Form1.Designer.cs b/SheetPlayer/Form1.Designer.cs
new file mode 100644
index 0000000..ea9a4d7
--- /dev/null
+++ b/SheetPlayer/Form1.Designer.cs
@@ -0,0 +1,81 @@
+namespace SheetPlayer {
+ partial class mainForm {
+ ///
+ /// Erforderliche Designervariable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Verwendete Ressourcen bereinigen.
+ ///
+ /// True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False.
+ protected override void Dispose(bool disposing) {
+ if (disposing && (components != null)) {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Vom Windows Form-Designer generierter Code
+
+ ///
+ /// Erforderliche Methode für die Designerunterstützung.
+ /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden.
+ ///
+ private void InitializeComponent() {
+ this.components = new System.ComponentModel.Container();
+ this.cmdBakeForm = new System.Windows.Forms.Button();
+ this.drawCycle = new System.Windows.Forms.Timer(this.components);
+ this.SuspendLayout();
+ //
+ // cmdBakeForm
+ //
+ this.cmdBakeForm.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.cmdBakeForm.BackColor = System.Drawing.SystemColors.ActiveCaption;
+ this.cmdBakeForm.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(63)))), ((int)(((byte)(116)))), ((int)(((byte)(197)))));
+ this.cmdBakeForm.FlatAppearance.MouseDownBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(242)))), ((int)(((byte)(236)))), ((int)(((byte)(204)))));
+ this.cmdBakeForm.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.cmdBakeForm.Location = new System.Drawing.Point(468, 244);
+ this.cmdBakeForm.Name = "cmdBakeForm";
+ this.cmdBakeForm.Size = new System.Drawing.Size(32, 32);
+ this.cmdBakeForm.TabIndex = 0;
+ this.cmdBakeForm.UseVisualStyleBackColor = false;
+ this.cmdBakeForm.Click += new System.EventHandler(this.cmdBakeForm_Click);
+ //
+ // drawCycle
+ //
+ this.drawCycle.Enabled = true;
+ this.drawCycle.Interval = 80;
+ this.drawCycle.Tick += new System.EventHandler(this.drawCycle_Tick);
+ //
+ // mainForm
+ //
+ this.AllowDrop = true;
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.BackColor = System.Drawing.Color.White;
+ this.ClientSize = new System.Drawing.Size(512, 288);
+ this.Controls.Add(this.cmdBakeForm);
+ this.DoubleBuffered = true;
+ this.KeyPreview = true;
+ this.Name = "mainForm";
+ this.Text = "SheetPlayer";
+ this.DragDrop += new System.Windows.Forms.DragEventHandler(this.mainForm_DragDrop);
+ this.DragEnter += new System.Windows.Forms.DragEventHandler(this.mainForm_DragEnter);
+ this.Paint += new System.Windows.Forms.PaintEventHandler(this.mainForm_Paint);
+ this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.mainForm_KeyDown);
+ this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.mainForm_KeyUp);
+ this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.mainForm_MouseDown);
+ this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.mainForm_MouseMove);
+ this.MouseUp += new System.Windows.Forms.MouseEventHandler(this.mainForm_MouseUp);
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Button cmdBakeForm;
+ private System.Windows.Forms.Timer drawCycle;
+ }
+}
+
diff --git a/SheetPlayer/Form1.cs b/SheetPlayer/Form1.cs
new file mode 100644
index 0000000..e60106c
--- /dev/null
+++ b/SheetPlayer/Form1.cs
@@ -0,0 +1,159 @@
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.Drawing.Drawing2D;
+using System.Windows.Forms;
+
+namespace SheetPlayer {
+ public partial class mainForm : Form {
+ public mainForm() {
+ InitializeComponent();
+ }
+
+ bool isBaked = false;
+
+ private void cmdBakeForm_Click(object sender, EventArgs e) {
+ Point prevPosition;
+ if (isBaked) {
+ prevPosition = cmdBakeForm.PointToScreen(Point.Empty);
+ FormBorderStyle = FormBorderStyle.Sizable;
+ }
+ else {
+ prevPosition = cmdBakeForm.PointToScreen(Point.Empty);
+ FormBorderStyle = FormBorderStyle.None;
+ }
+ Point afterPosition = cmdBakeForm.PointToScreen(Point.Empty);
+ Location = new Point(Location.X - (afterPosition.X - prevPosition.X),
+ Location.Y - (afterPosition.Y - prevPosition.Y));
+ isBaked = !isBaked;
+ TopMost = isBaked;
+ }
+
+ static public List aoPool = new List();
+ static public int globalFrameCounter = 0;
+
+ private void mainForm_DragEnter(object sender, DragEventArgs e) {
+ if (e.Data.GetDataPresent(DataFormats.FileDrop))
+ e.Effect = DragDropEffects.Copy;
+ }
+
+ private void mainForm_DragDrop(object sender, DragEventArgs e) {
+ foreach (string entry in (string[])e.Data.GetData(DataFormats.FileDrop, false)) {
+ aoPool.Add(new animationObject(entry, this.PointToClient(new Point(e.X - 24, e.Y - 24))));
+ }
+ }
+
+ int grabbedObject = -1;
+ bool ctrl = false;
+ bool dragging = false;
+ Point startMousePosition = Point.Empty;
+
+ private void mainForm_MouseDown(object sender, MouseEventArgs e) {
+ if (!isBaked) {
+ switch (e.Button) {
+ case MouseButtons.Left:
+ grabbedObject = getUnderlyingObject();
+ if (grabbedObject >= 0) {
+ dragging = true;
+ startMousePosition = MousePosition;
+ }
+ break;
+ }
+ }
+ }
+
+ private void mainForm_MouseMove(object sender, MouseEventArgs e) {
+ if (grabbedObject >= 0) Invalidate();
+ }
+
+ private void mainForm_MouseUp(object sender, MouseEventArgs e) {
+ if (!isBaked) {
+ switch (e.Button) {
+ case MouseButtons.Left:
+ if (dragging) {
+ if (ctrl) {
+
+ aoPool.Add((animationObject)aoPool[grabbedObject].Clone());
+ grabbedObject = aoPool.Count - 1;
+ }
+ aoPool[grabbedObject].position.X += MousePosition.X - startMousePosition.X;
+ aoPool[grabbedObject].position.Y += MousePosition.Y - startMousePosition.Y;
+ dragging = false;
+ grabbedObject = -1;
+ }
+ break;
+ case MouseButtons.Right:
+ int objID = getUnderlyingObject();
+ if (dragging) {
+ grabbedObject = -1;
+ dragging = false;
+ }
+ else {
+ if (objID > -1) {
+ if (ctrl) {
+ aoPool.RemoveAt(objID);
+ }
+ else {
+ aoMenu ao = new aoMenu(objID);
+ ao.Show();
+ ao.Location = new Point(MousePosition.X, MousePosition.Y - 76);
+ }
+ }
+ }
+ break;
+ }
+ }
+ }
+
+ private void mainForm_KeyDown(object sender, KeyEventArgs e) { if (e.Modifiers == Keys.Control) ctrl = true; }
+ private void mainForm_KeyUp(object sender, KeyEventArgs e) { if (e.Modifiers != Keys.Control) ctrl = false; }
+
+ private int getUnderlyingObject() {
+ int nearestObject = -1;
+ for (int i = aoPool.Count - 1; i >= 0; i--) {
+ animationObject obj = aoPool[i];
+ if (this.PointToClient(MousePosition).X > obj.position.X &&
+ this.PointToClient(MousePosition).Y > obj.position.Y &&
+ this.PointToClient(MousePosition).X < obj.position.X + obj.currentFrame.Width * obj.size &&
+ this.PointToClient(MousePosition).Y < obj.position.Y + obj.currentFrame.Height * obj.size) {
+ if (nearestObject == -1) nearestObject = i;
+ }
+ }
+ return nearestObject;
+ }
+
+ private void drawCycle_Tick(object sender, EventArgs e) {
+ foreach (animationObject obj in aoPool) {
+ obj.checkForModification();
+ }
+ Invalidate();
+ globalFrameCounter++;
+ }
+
+ private void mainForm_Paint(object sender, PaintEventArgs e) {
+ Graphics g = e.Graphics;
+ g.InterpolationMode = InterpolationMode.NearestNeighbor;
+ for (int i = aoPool.Count - 1; i >= 0; i--) {
+ animationObject obj = aoPool[i];
+ List drawLocations = new List();
+ if (i == grabbedObject) {
+ if (ctrl) drawLocations.Add(obj.position);
+ drawLocations.Add(new Point(obj.position.X + MousePosition.X - startMousePosition.X,
+ obj.position.Y + MousePosition.Y - startMousePosition.Y));
+ }
+ else {
+ drawLocations.Add(obj.position);
+ }
+ foreach (Point pos in drawLocations) {
+ g.SetClip(new Rectangle(pos,
+ new Size(obj.currentFrame.Size.Width * obj.size,
+ obj.currentFrame.Size.Height * obj.size)),
+ CombineMode.Replace);
+ g.DrawImage(obj.spriteSheet, pos.X - obj.currentFrame.X * obj.size,
+ pos.Y - obj.currentFrame.Y * obj.size,
+ obj.spriteSheet.Size.Width * obj.size, obj.spriteSheet.Size.Height * obj.size);
+ }
+ }
+ }
+ }
+}
diff --git a/SheetPlayer/Form1.resx b/SheetPlayer/Form1.resx
new file mode 100644
index 0000000..3e9ccb0
--- /dev/null
+++ b/SheetPlayer/Form1.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/SheetPlayer/Program.cs b/SheetPlayer/Program.cs
new file mode 100644
index 0000000..39e75ea
--- /dev/null
+++ b/SheetPlayer/Program.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace SheetPlayer {
+ static class Program {
+ ///
+ /// Der Haupteinstiegspunkt für die Anwendung.
+ ///
+ [STAThread]
+ static void Main(){
+ Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(false);
+ Application.Run(new mainForm());
+ }
+ }
+}
diff --git a/SheetPlayer/Properties/AssemblyInfo.cs b/SheetPlayer/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..4def06a
--- /dev/null
+++ b/SheetPlayer/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// Allgemeine Informationen über eine Assembly werden über die folgenden
+// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
+// die einer Assembly zugeordnet sind.
+[assembly: AssemblyTitle("SheetPlayer")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("SheetPlayer")]
+[assembly: AssemblyCopyright("Copyright © 2019")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly
+// für COM-Komponenten unsichtbar. Wenn Sie auf einen Typ in dieser Assembly von
+// COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen.
+[assembly: ComVisible(false)]
+
+// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
+[assembly: Guid("a5fc613d-6f3c-42b1-ba91-eb9489e55a38")]
+
+// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
+//
+// Hauptversion
+// Nebenversion
+// Buildnummer
+// Revision
+//
+// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
+// übernehmen, indem Sie "*" eingeben:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/SheetPlayer/Properties/Resources.Designer.cs b/SheetPlayer/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..0ca73ab
--- /dev/null
+++ b/SheetPlayer/Properties/Resources.Designer.cs
@@ -0,0 +1,62 @@
+//------------------------------------------------------------------------------
+//
+// Dieser Code wurde von einem Tool generiert.
+// Laufzeitversion: 4.0.30319.42000
+//
+// Änderungen an dieser Datei können fehlerhaftes Verhalten verursachen und gehen verloren, wenn
+// der Code neu generiert wird.
+//
+//------------------------------------------------------------------------------
+
+namespace SheetPlayer.Properties {
+
+
+ ///
+ /// Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
+ ///
+ // Diese Klasse wurde von der StronglyTypedResourceBuilder-Klasse
+ // über ein Tool wie ResGen oder Visual Studio automatisch generiert.
+ // Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen
+ // mit der Option /str erneut aus, oder erstellen Sie Ihr VS-Projekt neu.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ ///
+ /// Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if ((resourceMan == null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SheetPlayer.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle
+ /// Ressourcenlookups, die diese stark typisierte Ressourcenklasse verwenden.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/SheetPlayer/Properties/Resources.resx b/SheetPlayer/Properties/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/SheetPlayer/Properties/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/SheetPlayer/Properties/Settings.Designer.cs b/SheetPlayer/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..2fa3f14
--- /dev/null
+++ b/SheetPlayer/Properties/Settings.Designer.cs
@@ -0,0 +1,26 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace SheetPlayer.Properties {
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default {
+ get {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/SheetPlayer/Properties/Settings.settings b/SheetPlayer/Properties/Settings.settings
new file mode 100644
index 0000000..3964565
--- /dev/null
+++ b/SheetPlayer/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/SheetPlayer/SheetPlayer.csproj b/SheetPlayer/SheetPlayer.csproj
new file mode 100644
index 0000000..3f21d70
--- /dev/null
+++ b/SheetPlayer/SheetPlayer.csproj
@@ -0,0 +1,91 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {A5FC613D-6F3C-42B1-BA91-EB9489E55A38}
+ WinExe
+ SheetPlayer
+ SheetPlayer
+ v4.5
+ 512
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Form
+
+
+ aoMenu.cs
+
+
+ Form
+
+
+ Form1.cs
+
+
+
+
+ aoMenu.cs
+
+
+ Form1.cs
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SheetPlayer/animationObject.cs b/SheetPlayer/animationObject.cs
new file mode 100644
index 0000000..4149d76
--- /dev/null
+++ b/SheetPlayer/animationObject.cs
@@ -0,0 +1,63 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Drawing;
+using System.IO;
+
+namespace SheetPlayer {
+ public class animationObject : ICloneable {
+ //srcData
+ private string srcPath;
+ private long lastModificTime = 0;
+ public string metaData = "48f1";
+ public Point position;
+ public int size = 1;
+
+ //precalculatedData
+ public Bitmap spriteSheet;
+ private List animationFrames = new List();
+
+ public Rectangle currentFrame {
+ get {
+ return animationFrames[mainForm.globalFrameCounter % animationFrames.Count];
+ }
+ }
+
+ public animationObject(string draggedImage, Point dropPosition) {
+ srcPath = draggedImage;
+ checkForModification();
+ updateMetaData();
+ position = dropPosition;
+ }
+
+ public object Clone() {
+ return this.MemberwiseClone();
+ }
+
+ public void checkForModification() {
+ try {
+ long currentModificTime = File.GetLastWriteTime(srcPath).Ticks;
+ if (lastModificTime != currentModificTime) {
+ var binary = File.ReadAllBytes(srcPath);
+ var memoryStream = new MemoryStream(binary);
+ spriteSheet = (Bitmap)Image.FromStream(memoryStream);
+ lastModificTime = currentModificTime;
+ }
+ }
+ catch { }
+ }
+
+ public void updateMetaData() {
+ animationFrames.Add(new Rectangle(0, 0, 48, 48));
+ animationFrames.Add(new Rectangle(48, 0, 48, 48));
+ animationFrames.Add(new Rectangle(96, 0, 48, 48));
+ animationFrames.Add(new Rectangle(96, 0, 48, 48));
+ animationFrames.Add(new Rectangle(144, 0, 48, 48));
+ foreach (char c in metaData.ToCharArray(0, metaData.Length)) {
+
+ }
+ }
+ }
+}
diff --git a/SheetPlayer/aoMenu.Designer.cs b/SheetPlayer/aoMenu.Designer.cs
new file mode 100644
index 0000000..7bbb0e8
--- /dev/null
+++ b/SheetPlayer/aoMenu.Designer.cs
@@ -0,0 +1,107 @@
+namespace SheetPlayer {
+ partial class aoMenu {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing) {
+ if (disposing && (components != null)) {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent() {
+ this.pnlSkin = new System.Windows.Forms.Panel();
+ this.tbSize = new System.Windows.Forms.TrackBar();
+ this.cmdDelete = new System.Windows.Forms.Button();
+ this.tbMetaData = new System.Windows.Forms.TextBox();
+ this.pnlSkin.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.tbSize)).BeginInit();
+ this.SuspendLayout();
+ //
+ // pnlSkin
+ //
+ this.pnlSkin.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.pnlSkin.Controls.Add(this.tbSize);
+ this.pnlSkin.Controls.Add(this.cmdDelete);
+ this.pnlSkin.Controls.Add(this.tbMetaData);
+ this.pnlSkin.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.pnlSkin.Location = new System.Drawing.Point(0, 0);
+ this.pnlSkin.Name = "pnlSkin";
+ this.pnlSkin.Size = new System.Drawing.Size(360, 76);
+ this.pnlSkin.TabIndex = 0;
+ //
+ // tbSize
+ //
+ this.tbSize.LargeChange = 2;
+ this.tbSize.Location = new System.Drawing.Point(10, 37);
+ this.tbSize.Minimum = 1;
+ this.tbSize.Name = "tbSize";
+ this.tbSize.Size = new System.Drawing.Size(337, 45);
+ this.tbSize.TabIndex = 2;
+ this.tbSize.Value = 1;
+ this.tbSize.Scroll += new System.EventHandler(this.tbSize_Scroll);
+ //
+ // cmdDelete
+ //
+ this.cmdDelete.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.cmdDelete.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Red;
+ this.cmdDelete.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(199)))), ((int)(((byte)(97)))), ((int)(((byte)(99)))));
+ this.cmdDelete.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+ this.cmdDelete.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.cmdDelete.Location = new System.Drawing.Point(293, 8);
+ this.cmdDelete.Name = "cmdDelete";
+ this.cmdDelete.Size = new System.Drawing.Size(62, 23);
+ this.cmdDelete.TabIndex = 0;
+ this.cmdDelete.Text = "delete";
+ this.cmdDelete.UseVisualStyleBackColor = true;
+ this.cmdDelete.Click += new System.EventHandler(this.cmdDelete_Click);
+ //
+ // tbMetaData
+ //
+ this.tbMetaData.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.tbMetaData.Location = new System.Drawing.Point(10, 10);
+ this.tbMetaData.Name = "tbMetaData";
+ this.tbMetaData.Size = new System.Drawing.Size(277, 20);
+ this.tbMetaData.TabIndex = 1;
+ this.tbMetaData.TextChanged += new System.EventHandler(this.tbMetaData_TextChanged);
+ //
+ // aoMenu
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(360, 76);
+ this.Controls.Add(this.pnlSkin);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
+ this.KeyPreview = true;
+ this.Name = "aoMenu";
+ this.Text = "aoMenu";
+ this.Deactivate += new System.EventHandler(this.aoMenu_Deactivate);
+ this.pnlSkin.ResumeLayout(false);
+ this.pnlSkin.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.tbSize)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Panel pnlSkin;
+ private System.Windows.Forms.Button cmdDelete;
+ private System.Windows.Forms.TextBox tbMetaData;
+ private System.Windows.Forms.TrackBar tbSize;
+ }
+}
\ No newline at end of file
diff --git a/SheetPlayer/aoMenu.cs b/SheetPlayer/aoMenu.cs
new file mode 100644
index 0000000..d0e443a
--- /dev/null
+++ b/SheetPlayer/aoMenu.cs
@@ -0,0 +1,32 @@
+using System;
+using System.Windows.Forms;
+
+namespace SheetPlayer {
+ public partial class aoMenu : Form {
+ public aoMenu(int i) {
+ InitializeComponent();
+ index = i;
+ tbMetaData.Text = mainForm.aoPool[index].metaData;
+ tbSize.Value = mainForm.aoPool[index].size;
+ }
+
+ int index;
+
+ private void tbMetaData_TextChanged(object sender, EventArgs e) {
+ mainForm.aoPool[index].metaData = tbMetaData.Text;
+ }
+
+ private void tbSize_Scroll(object sender, EventArgs e) {
+ mainForm.aoPool[index].size = tbSize.Value;
+ }
+
+ private void cmdDelete_Click(object sender, EventArgs e) {
+ mainForm.aoPool.RemoveAt(index);
+ Close();
+ }
+
+ private void aoMenu_Deactivate(object sender, EventArgs e) {
+ Close();
+ }
+ }
+}
diff --git a/SheetPlayer/aoMenu.resx b/SheetPlayer/aoMenu.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/SheetPlayer/aoMenu.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/SheetPlayer/bin/Debug/SheetPlayer.exe b/SheetPlayer/bin/Debug/SheetPlayer.exe
new file mode 100644
index 0000000..9174390
Binary files /dev/null and b/SheetPlayer/bin/Debug/SheetPlayer.exe differ
diff --git a/SheetPlayer/bin/Debug/SheetPlayer.exe.config b/SheetPlayer/bin/Debug/SheetPlayer.exe.config
new file mode 100644
index 0000000..8e15646
--- /dev/null
+++ b/SheetPlayer/bin/Debug/SheetPlayer.exe.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SheetPlayer/bin/Debug/SheetPlayer.pdb b/SheetPlayer/bin/Debug/SheetPlayer.pdb
new file mode 100644
index 0000000..a326af4
Binary files /dev/null and b/SheetPlayer/bin/Debug/SheetPlayer.pdb differ
diff --git a/SheetPlayer/obj/Debug/CoreCompileInputs.cache b/SheetPlayer/obj/Debug/CoreCompileInputs.cache
new file mode 100644
index 0000000..1b92ad6
--- /dev/null
+++ b/SheetPlayer/obj/Debug/CoreCompileInputs.cache
@@ -0,0 +1 @@
+139f2d5324d1d36438a972bbf6a545d5e9bddd69
diff --git a/SheetPlayer/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/SheetPlayer/obj/Debug/DesignTimeResolveAssemblyReferences.cache
new file mode 100644
index 0000000..ab11654
Binary files /dev/null and b/SheetPlayer/obj/Debug/DesignTimeResolveAssemblyReferences.cache differ
diff --git a/SheetPlayer/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/SheetPlayer/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
new file mode 100644
index 0000000..a0514f1
Binary files /dev/null and b/SheetPlayer/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ
diff --git a/SheetPlayer/obj/Debug/SheetPlayer.Properties.Resources.resources b/SheetPlayer/obj/Debug/SheetPlayer.Properties.Resources.resources
new file mode 100644
index 0000000..6c05a97
Binary files /dev/null and b/SheetPlayer/obj/Debug/SheetPlayer.Properties.Resources.resources differ
diff --git a/SheetPlayer/obj/Debug/SheetPlayer.aoMenu.resources b/SheetPlayer/obj/Debug/SheetPlayer.aoMenu.resources
new file mode 100644
index 0000000..6c05a97
Binary files /dev/null and b/SheetPlayer/obj/Debug/SheetPlayer.aoMenu.resources differ
diff --git a/SheetPlayer/obj/Debug/SheetPlayer.csproj.FileListAbsolute.txt b/SheetPlayer/obj/Debug/SheetPlayer.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000..99de474
--- /dev/null
+++ b/SheetPlayer/obj/Debug/SheetPlayer.csproj.FileListAbsolute.txt
@@ -0,0 +1,10 @@
+C:\Users\Dave\Desktop\Projects\SheetPlayer\SheetPlayer\bin\Debug\SheetPlayer.exe.config
+C:\Users\Dave\Desktop\Projects\SheetPlayer\SheetPlayer\bin\Debug\SheetPlayer.exe
+C:\Users\Dave\Desktop\Projects\SheetPlayer\SheetPlayer\bin\Debug\SheetPlayer.pdb
+C:\Users\Dave\Desktop\Projects\SheetPlayer\SheetPlayer\obj\Debug\SheetPlayer.csprojResolveAssemblyReference.cache
+C:\Users\Dave\Desktop\Projects\SheetPlayer\SheetPlayer\obj\Debug\SheetPlayer.mainForm.resources
+C:\Users\Dave\Desktop\Projects\SheetPlayer\SheetPlayer\obj\Debug\SheetPlayer.Properties.Resources.resources
+C:\Users\Dave\Desktop\Projects\SheetPlayer\SheetPlayer\obj\Debug\SheetPlayer.csproj.GenerateResource.Cache
+C:\Users\Dave\Desktop\Projects\SheetPlayer\SheetPlayer\obj\Debug\SheetPlayer.exe
+C:\Users\Dave\Desktop\Projects\SheetPlayer\SheetPlayer\obj\Debug\SheetPlayer.pdb
+C:\Users\Dave\Desktop\Projects\SheetPlayer\SheetPlayer\obj\Debug\SheetPlayer.aoMenu.resources
diff --git a/SheetPlayer/obj/Debug/SheetPlayer.csproj.GenerateResource.Cache b/SheetPlayer/obj/Debug/SheetPlayer.csproj.GenerateResource.Cache
new file mode 100644
index 0000000..71a15de
Binary files /dev/null and b/SheetPlayer/obj/Debug/SheetPlayer.csproj.GenerateResource.Cache differ
diff --git a/SheetPlayer/obj/Debug/SheetPlayer.csprojResolveAssemblyReference.cache b/SheetPlayer/obj/Debug/SheetPlayer.csprojResolveAssemblyReference.cache
new file mode 100644
index 0000000..2155b75
Binary files /dev/null and b/SheetPlayer/obj/Debug/SheetPlayer.csprojResolveAssemblyReference.cache differ
diff --git a/SheetPlayer/obj/Debug/SheetPlayer.exe b/SheetPlayer/obj/Debug/SheetPlayer.exe
new file mode 100644
index 0000000..9174390
Binary files /dev/null and b/SheetPlayer/obj/Debug/SheetPlayer.exe differ
diff --git a/SheetPlayer/obj/Debug/SheetPlayer.mainForm.resources b/SheetPlayer/obj/Debug/SheetPlayer.mainForm.resources
new file mode 100644
index 0000000..6c05a97
Binary files /dev/null and b/SheetPlayer/obj/Debug/SheetPlayer.mainForm.resources differ
diff --git a/SheetPlayer/obj/Debug/SheetPlayer.pdb b/SheetPlayer/obj/Debug/SheetPlayer.pdb
new file mode 100644
index 0000000..a326af4
Binary files /dev/null and b/SheetPlayer/obj/Debug/SheetPlayer.pdb differ
diff --git a/SheetPlayer/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/SheetPlayer/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
new file mode 100644
index 0000000..e69de29
diff --git a/SheetPlayer/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/SheetPlayer/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
new file mode 100644
index 0000000..e69de29
diff --git a/SheetPlayer/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/SheetPlayer/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
new file mode 100644
index 0000000..e69de29
diff --git a/push.bat b/push.bat
new file mode 100644
index 0000000..4d5bbe5
--- /dev/null
+++ b/push.bat
@@ -0,0 +1,5 @@
+@echo off
+cls
+git add --all
+git commit -m "this commit message was generated automatically"
+git push origin master
\ No newline at end of file