From 21735a349e5a776626890a11cf4cfe4092e95917 Mon Sep 17 00:00:00 2001 From: Li <li@silica.codes> Date: Mon, 28 Nov 2022 11:30:44 +1300 Subject: [PATCH 1/4] Fix some bugz --- .gitignore | 3 ++ SilicaTilesEditor/MainForm.Designer.cs | 28 ++++++------- SilicaTilesEditor/TileMapEditorControl.cs | 9 +++-- SilicaTilesEditor/TileSelectorControl.cs | 2 +- SilicaTilesEditor/Tileset.cs | 48 +++++++++++++---------- 5 files changed, 51 insertions(+), 39 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4e52eb2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.vs/* +SilicaTilesEditor/obj/* +SilicaTilesEditor/bin/* \ No newline at end of file diff --git a/SilicaTilesEditor/MainForm.Designer.cs b/SilicaTilesEditor/MainForm.Designer.cs index dff39e7..d2dce73 100644 --- a/SilicaTilesEditor/MainForm.Designer.cs +++ b/SilicaTilesEditor/MainForm.Designer.cs @@ -48,9 +48,9 @@ namespace SilicaTilesEditor this.tileset7 = new System.Windows.Forms.ToolStripMenuItem(); this.lookingAt = new System.Windows.Forms.Label(); this.layout = new System.Windows.Forms.TableLayoutPanel(); + this.selTileId = new System.Windows.Forms.Label(); this.tileSelector = new SilicaTilesEditor.TileSelectorControl(); this.tileList = new SilicaTilesEditor.TileMapEditorControl(); - this.selTileId = new System.Windows.Forms.Label(); this.toolMenu.SuspendLayout(); this.layout.SuspendLayout(); this.SuspendLayout(); @@ -82,21 +82,21 @@ namespace SilicaTilesEditor // newItem // this.newItem.Name = "newItem"; - this.newItem.Size = new System.Drawing.Size(180, 22); + this.newItem.Size = new System.Drawing.Size(121, 22); this.newItem.Text = "New File"; this.newItem.Click += new System.EventHandler(this.newItem_Click); // // loadItem // this.loadItem.Name = "loadItem"; - this.loadItem.Size = new System.Drawing.Size(180, 22); + this.loadItem.Size = new System.Drawing.Size(121, 22); this.loadItem.Text = "Load File"; this.loadItem.Click += new System.EventHandler(this.loadItem_Click); // // saveItem // this.saveItem.Name = "saveItem"; - this.saveItem.Size = new System.Drawing.Size(180, 22); + this.saveItem.Size = new System.Drawing.Size(121, 22); this.saveItem.Text = "Save File"; this.saveItem.Click += new System.EventHandler(this.saveItem_Click); // @@ -234,6 +234,16 @@ namespace SilicaTilesEditor this.layout.Size = new System.Drawing.Size(1107, 487); this.layout.TabIndex = 4; // + // selTileId + // + this.selTileId.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.selTileId.AutoSize = true; + this.selTileId.Location = new System.Drawing.Point(12, 515); + this.selTileId.Name = "selTileId"; + this.selTileId.Size = new System.Drawing.Size(89, 13); + this.selTileId.TabIndex = 5; + this.selTileId.Text = "Seleted Tile ID: 0"; + // // tileSelector // this.tileSelector.AutoScroll = true; @@ -253,16 +263,6 @@ namespace SilicaTilesEditor this.tileList.Size = new System.Drawing.Size(852, 481); this.tileList.TabIndex = 1; // - // selTileId - // - this.selTileId.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.selTileId.AutoSize = true; - this.selTileId.Location = new System.Drawing.Point(12, 515); - this.selTileId.Name = "selTileId"; - this.selTileId.Size = new System.Drawing.Size(89, 13); - this.selTileId.TabIndex = 5; - this.selTileId.Text = "Seleted Tile ID: 1"; - // // MainForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); diff --git a/SilicaTilesEditor/TileMapEditorControl.cs b/SilicaTilesEditor/TileMapEditorControl.cs index 4acd599..d0e4fa8 100644 --- a/SilicaTilesEditor/TileMapEditorControl.cs +++ b/SilicaTilesEditor/TileMapEditorControl.cs @@ -46,7 +46,7 @@ namespace SilicaTilesEditor this.Invalidate(); if(Map.MapLoaded) - Program.form.lookingAt.Text = "Looking at: " + selectedTileX + "," + selectedTileY + "(" + Map.GetTileId(selectedTileX, selectedTileY, false) + ":" + Map.GetTileId(selectedTileX, selectedTileY, true) + ")"; + Program.form.lookingAt.Text = "Looking at: " + selectedTileX + "," + selectedTileY + "(" + (Map.GetTileId(selectedTileX, selectedTileY, false) - 1) + ":" + (Map.GetTileId(selectedTileX, selectedTileY, true) - 1) + ")"; } } @@ -89,7 +89,7 @@ namespace SilicaTilesEditor int relY = 0; if (Map.MapLoaded) { - + /* Draw Terrain Tiles */ for (int y = offsetY; y < (tlistHeight + offsetY)+1; y++) { relX = -1; @@ -105,7 +105,7 @@ namespace SilicaTilesEditor } relY++; } - + /* Draw Overlay Tiles */ if (DisplayOverlay) { @@ -118,10 +118,11 @@ namespace SilicaTilesEditor for (int x = offsetX; x < (tlistWidth + offsetX) + 1; x++) { relX++; - int tileId = Map.GetTileId(x, y, true) - 1; + int tileId = Map.GetTileId(x, y, true) -1; Bitmap Tile = null; if (tileId >= Tileset.OverlayList.Length) { + /* Draw Extenal Overlay Tiles */ tileId -= Tileset.OverlayList.Length; Tile = Tileset.GetTileset(ExtOverlay)[tileId]; } diff --git a/SilicaTilesEditor/TileSelectorControl.cs b/SilicaTilesEditor/TileSelectorControl.cs index 24ab0d2..4d21db9 100644 --- a/SilicaTilesEditor/TileSelectorControl.cs +++ b/SilicaTilesEditor/TileSelectorControl.cs @@ -33,7 +33,7 @@ namespace SilicaTilesEditor else SelTileY = Convert.ToInt32(Math.Floor((float)VerticalScroll.Value / 48.0)) + Convert.ToInt32(Math.Floor((float)(e.Y + tinyOffsetY) / 48.0)); - SelectedTileid = ((SelTileY * maxX) + SelTileX) + 1; + SelectedTileid = ((SelTileY * maxX) + SelTileX); bool change = false; if(SelectedTileid > 0xFF) diff --git a/SilicaTilesEditor/Tileset.cs b/SilicaTilesEditor/Tileset.cs index 5f382a7..1848a24 100644 --- a/SilicaTilesEditor/Tileset.cs +++ b/SilicaTilesEditor/Tileset.cs @@ -7,17 +7,17 @@ namespace SilicaTilesEditor class Tileset { public static Bitmap[] TerrainList = new Bitmap[((Resources.TerrainTileset.Height / 32) * (Resources.TerrainTileset.Width / 32)) + 1]; - public static Bitmap[] OverlayList = new Bitmap[193]; + public static Bitmap[] OverlayList = new Bitmap[192 + 1]; public static Bitmap[] ExtOverlays = new Bitmap[8] { Resources.Tileset0, Resources.Tileset1, Resources.Tileset2, Resources.Tileset3, Resources.Tileset4, Resources.Tileset5, Resources.Tileset6, Resources.Tileset7 }; - public static Bitmap[] ExtNorm = new Bitmap[((Resources.Tileset0.Height / 48) * (Resources.Tileset0.Width / 32)) + 1]; - public static Bitmap[] ExtSnow = new Bitmap[((Resources.Tileset1.Height / 48) * (Resources.Tileset1.Width / 32)) + 1]; - public static Bitmap[] ExtSand = new Bitmap[((Resources.Tileset2.Height / 48) * (Resources.Tileset2.Width / 32)) + 1]; - public static Bitmap[] ExtPirt = new Bitmap[((Resources.Tileset3.Height / 48) * (Resources.Tileset3.Width / 32)) + 1]; - public static Bitmap[] ExtFlwr = new Bitmap[((Resources.Tileset4.Height / 48) * (Resources.Tileset4.Width / 32)) + 1]; - public static Bitmap[] ExtJngl = new Bitmap[((Resources.Tileset5.Height / 48) * (Resources.Tileset5.Width / 32)) + 1]; - public static Bitmap[] ExtClwd = new Bitmap[((Resources.Tileset6.Height / 48) * (Resources.Tileset6.Width / 32)) + 1]; - public static Bitmap[] ExtVolc = new Bitmap[((Resources.Tileset7.Height / 48) * (Resources.Tileset7.Width / 32)) + 1]; + public static Bitmap[] ExtNorm = new Bitmap[((Resources.Tileset0.Height / 48) * (Resources.Tileset0.Width / 32))]; + public static Bitmap[] ExtSnow = new Bitmap[((Resources.Tileset1.Height / 48) * (Resources.Tileset1.Width / 32))]; + public static Bitmap[] ExtSand = new Bitmap[((Resources.Tileset2.Height / 48) * (Resources.Tileset2.Width / 32))]; + public static Bitmap[] ExtPirt = new Bitmap[((Resources.Tileset3.Height / 48) * (Resources.Tileset3.Width / 32))]; + public static Bitmap[] ExtFlwr = new Bitmap[((Resources.Tileset4.Height / 48) * (Resources.Tileset4.Width / 32))]; + public static Bitmap[] ExtJngl = new Bitmap[((Resources.Tileset5.Height / 48) * (Resources.Tileset5.Width / 32))]; + public static Bitmap[] ExtClwd = new Bitmap[((Resources.Tileset6.Height / 48) * (Resources.Tileset6.Width / 32))]; + public static Bitmap[] ExtVolc = new Bitmap[((Resources.Tileset7.Height / 48) * (Resources.Tileset7.Width / 32))]; public static Bitmap[] JoinedTileset { @@ -83,6 +83,8 @@ namespace SilicaTilesEditor { Console.WriteLine("Reading Terrain.png..."); int i = 0; + Rectangle dstRect = new Rectangle(0, 0, 32, 32); + Rectangle srcRect = new Rectangle(0, 0, 32, 32); for (int y = 0; y < (Resources.TerrainTileset.Height/32); y++) { @@ -90,9 +92,9 @@ namespace SilicaTilesEditor { i++; TerrainList[i] = new Bitmap(32, 32); - int posx = x * 32; - int posy = y * 32; - CopyRegionIntoImage(Resources.TerrainTileset, new Rectangle(posx, posy, 32, 32), TerrainList[i], new Rectangle(0, 0, 32, 32)); + srcRect.X = x * 32; + srcRect.Y = y * 32; + CopyRegionIntoImage(Resources.TerrainTileset, srcRect, TerrainList[i], dstRect); } } ReadAllTerrain = true; @@ -100,7 +102,9 @@ namespace SilicaTilesEditor public static void ReadExtOverlay() { - for(int picid = 0; picid <= 7; picid++) + Rectangle dstRect = new Rectangle(0, 0, 32, 48); + Rectangle srcRect = new Rectangle(0, 0, 32, 48); + for (int picid = 0; picid <= 7; picid++) { Bitmap[] TilesetList = GetTileset(picid); Bitmap Tileset = ExtOverlays[picid]; @@ -112,11 +116,11 @@ namespace SilicaTilesEditor { for (int x = 0; x < (Tileset.Width / 32); x++) { - i++; TilesetList[i] = new Bitmap(32, 48); - int posx = x * 32; - int posy = y * 48; - CopyRegionIntoImage(Tileset, new Rectangle(posx, posy, 32, 48), TilesetList[i], new Rectangle(0, 0, 32, 48)); + srcRect.X = x * 32; + srcRect.Y = y * 48; + CopyRegionIntoImage(Tileset, srcRect, TilesetList[i], dstRect); + i++; } } Console.WriteLine("Total Tiles Read: " + i.ToString()); @@ -128,15 +132,19 @@ namespace SilicaTilesEditor int i = 0; int OVERLAY_SIZE = 24; + Rectangle dstRect = new Rectangle(0, 0, 32, 48); + Rectangle srcRect = new Rectangle(0, 0, 32, 48); + for (int y = 0; y < OVERLAY_SIZE; y++) { for (int x = 0; x < (Resources.OverlayTileset.Width / 32); x++) { i++; OverlayList[i] = new Bitmap(32, 48); - int posx = x * 32; - int posy = y * 48; - CopyRegionIntoImage(Resources.OverlayTileset, new Rectangle(posx, posy, 32, 48), OverlayList[i], new Rectangle(0, 0, 32, 48)); + srcRect.X = x * 32; + srcRect.Y = y * 48; + + CopyRegionIntoImage(Resources.OverlayTileset, srcRect, OverlayList[i], dstRect); } } } From f08b53243e758b13f16cd9a3919e6073386acea5 Mon Sep 17 00:00:00 2001 From: Li <li@silica.codes> Date: Mon, 28 Nov 2022 11:55:08 +1300 Subject: [PATCH 2/4] Improve load times --- SilicaTilesEditor/MainForm.cs | 7 ++++--- SilicaTilesEditor/Tileset.cs | 23 ++++++++++++++++++----- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/SilicaTilesEditor/MainForm.cs b/SilicaTilesEditor/MainForm.cs index bbe8c20..aac65ff 100644 --- a/SilicaTilesEditor/MainForm.cs +++ b/SilicaTilesEditor/MainForm.cs @@ -1,4 +1,6 @@ using System; +using System.Collections.Generic; +using System.Threading.Tasks; using System.Windows.Forms; namespace SilicaTilesEditor @@ -42,9 +44,8 @@ namespace SilicaTilesEditor } private void MainForm_Load(object sender, EventArgs e) { - Tileset.ReadTerrain(); - Tileset.ReadOverlay(); - Tileset.ReadExtOverlay(); + Tileset.ReadAllTiles(); + layout.ColumnStyles[0].Width = (32*7) + SystemInformation.VerticalScrollBarWidth; tileset0.Checked = true; tileList.ExtOverlay = 0; diff --git a/SilicaTilesEditor/Tileset.cs b/SilicaTilesEditor/Tileset.cs index 1848a24..ce200ba 100644 --- a/SilicaTilesEditor/Tileset.cs +++ b/SilicaTilesEditor/Tileset.cs @@ -1,6 +1,9 @@ using SilicaTilesEditor.Properties; using System; +using System.Collections.Generic; using System.Drawing; +using System.Runtime.CompilerServices; +using System.Threading.Tasks; namespace SilicaTilesEditor { @@ -18,7 +21,6 @@ namespace SilicaTilesEditor public static Bitmap[] ExtJngl = new Bitmap[((Resources.Tileset5.Height / 48) * (Resources.Tileset5.Width / 32))]; public static Bitmap[] ExtClwd = new Bitmap[((Resources.Tileset6.Height / 48) * (Resources.Tileset6.Width / 32))]; public static Bitmap[] ExtVolc = new Bitmap[((Resources.Tileset7.Height / 48) * (Resources.Tileset7.Width / 32))]; - public static Bitmap[] JoinedTileset { get @@ -79,7 +81,19 @@ namespace SilicaTilesEditor } } - public static void ReadTerrain() + public static void ReadAllTiles() + { + Task[] tileTasks = new Task[3]; + + tileTasks[0] = Task.Run(() => readTerrain()); + tileTasks[1] = Task.Run(() => readOverlay()); + tileTasks[2] = Task.Run(() => readExtOverlay()); + + Task.WaitAll(tileTasks); + ReadAllTerrain = true; + ReadAllOverlay = true; + } + private static void readTerrain() { Console.WriteLine("Reading Terrain.png..."); int i = 0; @@ -97,10 +111,9 @@ namespace SilicaTilesEditor CopyRegionIntoImage(Resources.TerrainTileset, srcRect, TerrainList[i], dstRect); } } - ReadAllTerrain = true; } - public static void ReadExtOverlay() + private static void readExtOverlay() { Rectangle dstRect = new Rectangle(0, 0, 32, 48); Rectangle srcRect = new Rectangle(0, 0, 32, 48); @@ -126,7 +139,7 @@ namespace SilicaTilesEditor Console.WriteLine("Total Tiles Read: " + i.ToString()); } } - public static void ReadOverlay() + private static void readOverlay() { Console.WriteLine("Reading Overlay.png..."); int i = 0; From e560c569a2fb1894188f5dd4e22c25ce065dc45d Mon Sep 17 00:00:00 2001 From: Li <li@silica.codes> Date: Mon, 28 Nov 2022 12:08:22 +1300 Subject: [PATCH 3/4] Improve load time 2 --- SilicaTilesEditor/MainForm.Designer.cs | 1 + SilicaTilesEditor/MainForm.cs | 8 +++-- SilicaTilesEditor/Tileset.cs | 46 ++++++++++++++++---------- 3 files changed, 35 insertions(+), 20 deletions(-) diff --git a/SilicaTilesEditor/MainForm.Designer.cs b/SilicaTilesEditor/MainForm.Designer.cs index d2dce73..56370f2 100644 --- a/SilicaTilesEditor/MainForm.Designer.cs +++ b/SilicaTilesEditor/MainForm.Designer.cs @@ -275,6 +275,7 @@ namespace SilicaTilesEditor this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Name = "MainForm"; this.Text = "Horse Isle Map Editor"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainForm_FormClosing); this.Load += new System.EventHandler(this.MainForm_Load); this.toolMenu.ResumeLayout(false); this.toolMenu.PerformLayout(); diff --git a/SilicaTilesEditor/MainForm.cs b/SilicaTilesEditor/MainForm.cs index aac65ff..5e8da4d 100644 --- a/SilicaTilesEditor/MainForm.cs +++ b/SilicaTilesEditor/MainForm.cs @@ -1,6 +1,5 @@ using System; -using System.Collections.Generic; -using System.Threading.Tasks; +using System.Diagnostics; using System.Windows.Forms; namespace SilicaTilesEditor @@ -173,5 +172,10 @@ namespace SilicaTilesEditor MessageBox.Show("File saved successfully.", "Save", MessageBoxButtons.OK, MessageBoxIcon.Information); } } + + private void MainForm_FormClosing(object sender, FormClosingEventArgs e) + { + Process.GetCurrentProcess().Kill(); + } } } diff --git a/SilicaTilesEditor/Tileset.cs b/SilicaTilesEditor/Tileset.cs index ce200ba..4d6121e 100644 --- a/SilicaTilesEditor/Tileset.cs +++ b/SilicaTilesEditor/Tileset.cs @@ -1,26 +1,36 @@ using SilicaTilesEditor.Properties; using System; -using System.Collections.Generic; using System.Drawing; -using System.Runtime.CompilerServices; using System.Threading.Tasks; namespace SilicaTilesEditor { class Tileset { - public static Bitmap[] TerrainList = new Bitmap[((Resources.TerrainTileset.Height / 32) * (Resources.TerrainTileset.Width / 32)) + 1]; - public static Bitmap[] OverlayList = new Bitmap[192 + 1]; - public static Bitmap[] ExtOverlays = new Bitmap[8] { Resources.Tileset0, Resources.Tileset1, Resources.Tileset2, Resources.Tileset3, Resources.Tileset4, Resources.Tileset5, Resources.Tileset6, Resources.Tileset7 }; + public static Bitmap CacheTerrainTileset = Resources.TerrainTileset; + public static Bitmap CacheOverlayTileset = Resources.OverlayTileset; + public static Bitmap CacheOverlayTileset0 = Resources.Tileset0; + public static Bitmap CacheOverlayTileset1 = Resources.Tileset1; + public static Bitmap CacheOverlayTileset2 = Resources.Tileset2; + public static Bitmap CacheOverlayTileset3 = Resources.Tileset3; + public static Bitmap CacheOverlayTileset4 = Resources.Tileset4; + public static Bitmap CacheOverlayTileset5 = Resources.Tileset5; + public static Bitmap CacheOverlayTileset6 = Resources.Tileset6; + public static Bitmap CacheOverlayTileset7 = Resources.Tileset7; - public static Bitmap[] ExtNorm = new Bitmap[((Resources.Tileset0.Height / 48) * (Resources.Tileset0.Width / 32))]; - public static Bitmap[] ExtSnow = new Bitmap[((Resources.Tileset1.Height / 48) * (Resources.Tileset1.Width / 32))]; - public static Bitmap[] ExtSand = new Bitmap[((Resources.Tileset2.Height / 48) * (Resources.Tileset2.Width / 32))]; - public static Bitmap[] ExtPirt = new Bitmap[((Resources.Tileset3.Height / 48) * (Resources.Tileset3.Width / 32))]; - public static Bitmap[] ExtFlwr = new Bitmap[((Resources.Tileset4.Height / 48) * (Resources.Tileset4.Width / 32))]; - public static Bitmap[] ExtJngl = new Bitmap[((Resources.Tileset5.Height / 48) * (Resources.Tileset5.Width / 32))]; - public static Bitmap[] ExtClwd = new Bitmap[((Resources.Tileset6.Height / 48) * (Resources.Tileset6.Width / 32))]; - public static Bitmap[] ExtVolc = new Bitmap[((Resources.Tileset7.Height / 48) * (Resources.Tileset7.Width / 32))]; + + public static Bitmap[] TerrainList = new Bitmap[((CacheTerrainTileset.Height / 32) * (CacheTerrainTileset.Width / 32)) + 1]; + public static Bitmap[] OverlayList = new Bitmap[192 + 1]; + public static Bitmap[] ExtOverlays = new Bitmap[8] { CacheOverlayTileset0, CacheOverlayTileset1, CacheOverlayTileset2, CacheOverlayTileset3, CacheOverlayTileset4, CacheOverlayTileset5, CacheOverlayTileset6, CacheOverlayTileset7 }; + + public static Bitmap[] ExtNorm = new Bitmap[((CacheOverlayTileset0.Height / 48) * (CacheOverlayTileset0.Width / 32))]; + public static Bitmap[] ExtSnow = new Bitmap[((CacheOverlayTileset1.Height / 48) * (CacheOverlayTileset1.Width / 32))]; + public static Bitmap[] ExtSand = new Bitmap[((CacheOverlayTileset2.Height / 48) * (CacheOverlayTileset2.Width / 32))]; + public static Bitmap[] ExtPirt = new Bitmap[((CacheOverlayTileset3.Height / 48) * (CacheOverlayTileset3.Width / 32))]; + public static Bitmap[] ExtFlwr = new Bitmap[((CacheOverlayTileset4.Height / 48) * (CacheOverlayTileset4.Width / 32))]; + public static Bitmap[] ExtJngl = new Bitmap[((CacheOverlayTileset5.Height / 48) * (CacheOverlayTileset5.Width / 32))]; + public static Bitmap[] ExtClwd = new Bitmap[((CacheOverlayTileset6.Height / 48) * (CacheOverlayTileset6.Width / 32))]; + public static Bitmap[] ExtVolc = new Bitmap[((CacheOverlayTileset7.Height / 48) * (CacheOverlayTileset7.Width / 32))]; public static Bitmap[] JoinedTileset { get @@ -100,15 +110,15 @@ namespace SilicaTilesEditor Rectangle dstRect = new Rectangle(0, 0, 32, 32); Rectangle srcRect = new Rectangle(0, 0, 32, 32); - for (int y = 0; y < (Resources.TerrainTileset.Height/32); y++) + for (int y = 0; y < (CacheTerrainTileset.Height/32); y++) { - for (int x = 0; x < (Resources.TerrainTileset.Width / 32); x++) + for (int x = 0; x < (CacheTerrainTileset.Width / 32); x++) { i++; TerrainList[i] = new Bitmap(32, 32); srcRect.X = x * 32; srcRect.Y = y * 32; - CopyRegionIntoImage(Resources.TerrainTileset, srcRect, TerrainList[i], dstRect); + CopyRegionIntoImage(CacheTerrainTileset, srcRect, TerrainList[i], dstRect); } } } @@ -150,14 +160,14 @@ namespace SilicaTilesEditor for (int y = 0; y < OVERLAY_SIZE; y++) { - for (int x = 0; x < (Resources.OverlayTileset.Width / 32); x++) + for (int x = 0; x < (CacheOverlayTileset.Width / 32); x++) { i++; OverlayList[i] = new Bitmap(32, 48); srcRect.X = x * 32; srcRect.Y = y * 48; - CopyRegionIntoImage(Resources.OverlayTileset, srcRect, OverlayList[i], dstRect); + CopyRegionIntoImage(CacheOverlayTileset, srcRect, OverlayList[i], dstRect); } } } From 0b951674c7691d322e17e975a4036ca33703c223 Mon Sep 17 00:00:00 2001 From: Li <li@silica.codes> Date: Mon, 28 Nov 2022 12:14:54 +1300 Subject: [PATCH 4/4] cache resources, instead of looking up every time --- SilicaTilesEditor/Tileset.cs | 50 ++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/SilicaTilesEditor/Tileset.cs b/SilicaTilesEditor/Tileset.cs index 4d6121e..0b8d771 100644 --- a/SilicaTilesEditor/Tileset.cs +++ b/SilicaTilesEditor/Tileset.cs @@ -7,30 +7,30 @@ namespace SilicaTilesEditor { class Tileset { - public static Bitmap CacheTerrainTileset = Resources.TerrainTileset; - public static Bitmap CacheOverlayTileset = Resources.OverlayTileset; - public static Bitmap CacheOverlayTileset0 = Resources.Tileset0; - public static Bitmap CacheOverlayTileset1 = Resources.Tileset1; - public static Bitmap CacheOverlayTileset2 = Resources.Tileset2; - public static Bitmap CacheOverlayTileset3 = Resources.Tileset3; - public static Bitmap CacheOverlayTileset4 = Resources.Tileset4; - public static Bitmap CacheOverlayTileset5 = Resources.Tileset5; - public static Bitmap CacheOverlayTileset6 = Resources.Tileset6; - public static Bitmap CacheOverlayTileset7 = Resources.Tileset7; + private static Bitmap cacheTerrainTileset = Resources.TerrainTileset; + private static Bitmap cacheOverlayTileset = Resources.OverlayTileset; + private static Bitmap cacheOverlayTileset0 = Resources.Tileset0; + private static Bitmap cacheOverlayTileset1 = Resources.Tileset1; + private static Bitmap cacheOverlayTileset2 = Resources.Tileset2; + private static Bitmap cacheOverlayTileset3 = Resources.Tileset3; + private static Bitmap cacheOverlayTileset4 = Resources.Tileset4; + private static Bitmap cacheOverlayTileset5 = Resources.Tileset5; + private static Bitmap cacheOverlayTileset6 = Resources.Tileset6; + private static Bitmap cacheOverlayTileset7 = Resources.Tileset7; - public static Bitmap[] TerrainList = new Bitmap[((CacheTerrainTileset.Height / 32) * (CacheTerrainTileset.Width / 32)) + 1]; + public static Bitmap[] TerrainList = new Bitmap[((cacheTerrainTileset.Height / 32) * (cacheTerrainTileset.Width / 32)) + 1]; public static Bitmap[] OverlayList = new Bitmap[192 + 1]; - public static Bitmap[] ExtOverlays = new Bitmap[8] { CacheOverlayTileset0, CacheOverlayTileset1, CacheOverlayTileset2, CacheOverlayTileset3, CacheOverlayTileset4, CacheOverlayTileset5, CacheOverlayTileset6, CacheOverlayTileset7 }; + public static Bitmap[] ExtOverlays = new Bitmap[8] { cacheOverlayTileset0, cacheOverlayTileset1, cacheOverlayTileset2, cacheOverlayTileset3, cacheOverlayTileset4, cacheOverlayTileset5, cacheOverlayTileset6, cacheOverlayTileset7 }; - public static Bitmap[] ExtNorm = new Bitmap[((CacheOverlayTileset0.Height / 48) * (CacheOverlayTileset0.Width / 32))]; - public static Bitmap[] ExtSnow = new Bitmap[((CacheOverlayTileset1.Height / 48) * (CacheOverlayTileset1.Width / 32))]; - public static Bitmap[] ExtSand = new Bitmap[((CacheOverlayTileset2.Height / 48) * (CacheOverlayTileset2.Width / 32))]; - public static Bitmap[] ExtPirt = new Bitmap[((CacheOverlayTileset3.Height / 48) * (CacheOverlayTileset3.Width / 32))]; - public static Bitmap[] ExtFlwr = new Bitmap[((CacheOverlayTileset4.Height / 48) * (CacheOverlayTileset4.Width / 32))]; - public static Bitmap[] ExtJngl = new Bitmap[((CacheOverlayTileset5.Height / 48) * (CacheOverlayTileset5.Width / 32))]; - public static Bitmap[] ExtClwd = new Bitmap[((CacheOverlayTileset6.Height / 48) * (CacheOverlayTileset6.Width / 32))]; - public static Bitmap[] ExtVolc = new Bitmap[((CacheOverlayTileset7.Height / 48) * (CacheOverlayTileset7.Width / 32))]; + public static Bitmap[] ExtNorm = new Bitmap[((cacheOverlayTileset0.Height / 48) * (cacheOverlayTileset0.Width / 32))]; + public static Bitmap[] ExtSnow = new Bitmap[((cacheOverlayTileset1.Height / 48) * (cacheOverlayTileset1.Width / 32))]; + public static Bitmap[] ExtSand = new Bitmap[((cacheOverlayTileset2.Height / 48) * (cacheOverlayTileset2.Width / 32))]; + public static Bitmap[] ExtPirt = new Bitmap[((cacheOverlayTileset3.Height / 48) * (cacheOverlayTileset3.Width / 32))]; + public static Bitmap[] ExtFlwr = new Bitmap[((cacheOverlayTileset4.Height / 48) * (cacheOverlayTileset4.Width / 32))]; + public static Bitmap[] ExtJngl = new Bitmap[((cacheOverlayTileset5.Height / 48) * (cacheOverlayTileset5.Width / 32))]; + public static Bitmap[] ExtClwd = new Bitmap[((cacheOverlayTileset6.Height / 48) * (cacheOverlayTileset6.Width / 32))]; + public static Bitmap[] ExtVolc = new Bitmap[((cacheOverlayTileset7.Height / 48) * (cacheOverlayTileset7.Width / 32))]; public static Bitmap[] JoinedTileset { get @@ -110,15 +110,15 @@ namespace SilicaTilesEditor Rectangle dstRect = new Rectangle(0, 0, 32, 32); Rectangle srcRect = new Rectangle(0, 0, 32, 32); - for (int y = 0; y < (CacheTerrainTileset.Height/32); y++) + for (int y = 0; y < (cacheTerrainTileset.Height/32); y++) { - for (int x = 0; x < (CacheTerrainTileset.Width / 32); x++) + for (int x = 0; x < (cacheTerrainTileset.Width / 32); x++) { i++; TerrainList[i] = new Bitmap(32, 32); srcRect.X = x * 32; srcRect.Y = y * 32; - CopyRegionIntoImage(CacheTerrainTileset, srcRect, TerrainList[i], dstRect); + CopyRegionIntoImage(cacheTerrainTileset, srcRect, TerrainList[i], dstRect); } } } @@ -160,14 +160,14 @@ namespace SilicaTilesEditor for (int y = 0; y < OVERLAY_SIZE; y++) { - for (int x = 0; x < (CacheOverlayTileset.Width / 32); x++) + for (int x = 0; x < (cacheOverlayTileset.Width / 32); x++) { i++; OverlayList[i] = new Bitmap(32, 48); srcRect.X = x * 32; srcRect.Y = y * 48; - CopyRegionIntoImage(CacheOverlayTileset, srcRect, OverlayList[i], dstRect); + CopyRegionIntoImage(cacheOverlayTileset, srcRect, OverlayList[i], dstRect); } } }