From 21735a349e5a776626890a11cf4cfe4092e95917 Mon Sep 17 00:00:00 2001
From: Li
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
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
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
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);
}
}
}