X Tutup
Skip to content
This repository was archived by the owner on Jan 4, 2023. It is now read-only.

Commit 3dd8fe7

Browse files
committed
Cleaning up Meta Sprite look up and draw APIs.
1 parent fb72147 commit 3dd8fe7

File tree

2 files changed

+46
-3
lines changed

2 files changed

+46
-3
lines changed

SDK/Lua/Chips/Game/LuaGameChip.MetaSprite.cs

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ public void RegisterMetaSprite()
1111

1212
LuaScript.Globals["FindMetaSpriteId"] = new Func<string, int>(FindMetaSpriteId);
1313
LuaScript.Globals["TotalMetaSprites"] = new Func<int?, int>(TotalMetaSprites);
14-
LuaScript.Globals["MetaSprite"] = new Func<int, SpriteCollection, SpriteCollection>(MetaSprite);
14+
LuaScript.Globals["MetaSprite"] = new Func<object, SpriteCollection, SpriteCollection>(MetaSpriteRouter);
1515
LuaScript.Globals["DrawMetaSprite"] =
16-
new Action<int, int, int, bool, bool, DrawMode, int>(DrawMetaSprite);
16+
new Action<object, int, int, bool, bool, DrawMode, int>(DrawMetaSpriteRouter);
1717

1818
UserData.RegisterType<SpriteData>();
1919
LuaScript.Globals["SpriteData"] = UserData.CreateStatic<SpriteData>();
@@ -33,5 +33,29 @@ public void RegisterMetaSprite()
3333
LuaScript.Globals["NewMetaSprite"] =
3434
new Func<int, string, int[], int, int, SpriteCollection>(NewMetaSprite);
3535
}
36+
37+
public void DrawMetaSpriteRouter(object metaSprite, int x, int y, bool flipH = false, bool flipV = false, DrawMode drawMode = DrawMode.Sprite, int colorOffset = 0)
38+
{
39+
40+
if(metaSprite is string){
41+
DrawMetaSprite((string)metaSprite, x, y, flipH, flipV, drawMode, colorOffset);
42+
}else if(metaSprite is SpriteCollection){
43+
DrawMetaSprite((SpriteCollection)metaSprite, x, y, flipH, flipV, drawMode, colorOffset);
44+
}else{
45+
// Convert to an int or throw an error
46+
DrawMetaSprite(Convert.ToInt32(metaSprite), x, y, flipH, flipV, drawMode, colorOffset);
47+
}
48+
49+
}
50+
51+
public SpriteCollection MetaSpriteRouter(object id, SpriteCollection spriteCollection = null)
52+
{
53+
if(id is string)
54+
{
55+
return MetaSprite((string)id, spriteCollection);
56+
}
57+
58+
return MetaSprite(Convert.ToInt32(id), spriteCollection);
59+
}
3660
}
3761
}

SDK/Player/Chips/Game/GameChip.MetaSprite.cs

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,11 @@ public int MaxSpriteCount()
117117
return SpriteChip.MaxSpriteCount;
118118
}
119119

120+
public SpriteCollection MetaSprite(string name, SpriteCollection spriteCollection = null)
121+
{
122+
return MetaSprite(FindMetaSpriteId(name), spriteCollection);
123+
}
124+
120125
public SpriteCollection MetaSprite(int id, SpriteCollection spriteCollection = null)
121126
{
122127
if (id < 0 || id > metaSprites.Length)
@@ -159,16 +164,30 @@ protected int FindMetaSpriteId(string name)
159164
return -1;
160165
}
161166

167+
public void DrawMetaSprite(string name, int x, int y, bool flipH = false, bool flipV = false,
168+
DrawMode drawMode = DrawMode.Sprite, int colorOffset = 0)
169+
{
170+
DrawMetaSprite(FindMetaSpriteId(name), x, y, flipH, flipV, drawMode, colorOffset);
171+
}
172+
162173
public void DrawMetaSprite(int id, int x, int y, bool flipH = false, bool flipV = false,
163174
DrawMode drawMode = DrawMode.Sprite, int colorOffset = 0)
164175
{
165176
// This draw method doesn't support background or tile draw modes
166177
if (id == -1) return;
167178

168-
var spriteCollection = metaSprites[id];
179+
DrawMetaSprite(metaSprites[id], x, y, flipH, flipV, drawMode, colorOffset);
180+
181+
}
182+
183+
public void DrawMetaSprite(SpriteCollection spriteCollection, int x, int y, bool flipH = false, bool flipV = false,
184+
DrawMode drawMode = DrawMode.Sprite, int colorOffset = 0)
185+
{
186+
169187
// Get the sprite data for the meta sprite
170188
var tmpSpritesData = spriteCollection.Sprites;
171189
var total = tmpSpritesData.Count;
190+
var id = 0;
172191

173192
// When rendering in Tile Mode, switch to grid layout
174193
if (drawMode == DrawMode.Tile)

0 commit comments

Comments
 (0)
X Tutup