ChromeProvider/SequenceProvider split
This commit is contained in:
@@ -109,7 +109,7 @@ namespace OpenRa
|
|||||||
};
|
};
|
||||||
|
|
||||||
panelSprites = Graphics.Util.MakeArray(8,
|
panelSprites = Graphics.Util.MakeArray(8,
|
||||||
n => SequenceProvider.GetImageFromCollection(renderer, "panel", n.ToString()));
|
n => ChromeProvider.GetImage(renderer, "panel", n.ToString()));
|
||||||
|
|
||||||
tabSprites = Rules.ActorInfo.Values
|
tabSprites = Rules.ActorInfo.Values
|
||||||
.Where(u => u.Traits.Contains<BuildableInfo>())
|
.Where(u => u.Traits.Contains<BuildableInfo>())
|
||||||
@@ -168,7 +168,7 @@ namespace OpenRa
|
|||||||
|
|
||||||
DrawRadar();
|
DrawRadar();
|
||||||
DrawPower();
|
DrawPower();
|
||||||
rgbaRenderer.DrawSprite(SequenceProvider.GetImageFromCollection(renderer, chromeCollection, "moneybin"), new float2(Game.viewport.Width - 320, 0), PaletteType.Chrome);
|
rgbaRenderer.DrawSprite(ChromeProvider.GetImage(renderer, chromeCollection, "moneybin"), new float2(Game.viewport.Width - 320, 0), PaletteType.Chrome);
|
||||||
DrawMoney();
|
DrawMoney();
|
||||||
rgbaRenderer.Flush();
|
rgbaRenderer.Flush();
|
||||||
DrawButtons();
|
DrawButtons();
|
||||||
@@ -316,12 +316,12 @@ namespace OpenRa
|
|||||||
|
|
||||||
hasRadar = hasNewRadar;
|
hasRadar = hasNewRadar;
|
||||||
|
|
||||||
rgbaRenderer.DrawSprite(SequenceProvider.GetImageFromCollection(renderer, radarCollection, "left"), radarOrigin, PaletteType.Chrome);
|
rgbaRenderer.DrawSprite(ChromeProvider.GetImage(renderer, radarCollection, "left"), radarOrigin, PaletteType.Chrome);
|
||||||
rgbaRenderer.DrawSprite(SequenceProvider.GetImageFromCollection(renderer, radarCollection, "right"), radarOrigin + new float2(201, 0), PaletteType.Chrome);
|
rgbaRenderer.DrawSprite(ChromeProvider.GetImage(renderer, radarCollection, "right"), radarOrigin + new float2(201, 0), PaletteType.Chrome);
|
||||||
rgbaRenderer.DrawSprite(SequenceProvider.GetImageFromCollection(renderer, radarCollection, "bottom"), radarOrigin + new float2(0, 192), PaletteType.Chrome);
|
rgbaRenderer.DrawSprite(ChromeProvider.GetImage(renderer, radarCollection, "bottom"), radarOrigin + new float2(0, 192), PaletteType.Chrome);
|
||||||
|
|
||||||
if (radarAnimating)
|
if (radarAnimating)
|
||||||
rgbaRenderer.DrawSprite(SequenceProvider.GetImageFromCollection(renderer, radarCollection, "bg"), radarOrigin + new float2(9, 0), PaletteType.Chrome);
|
rgbaRenderer.DrawSprite(ChromeProvider.GetImage(renderer, radarCollection, "bg"), radarOrigin + new float2(9, 0), PaletteType.Chrome);
|
||||||
|
|
||||||
rgbaRenderer.Flush();
|
rgbaRenderer.Flush();
|
||||||
|
|
||||||
@@ -358,7 +358,7 @@ namespace OpenRa
|
|||||||
var producing = queue.CurrentItem(groupName);
|
var producing = queue.CurrentItem(groupName);
|
||||||
var index = q.Key == currentTab ? 2 : (producing != null && producing.Done) ? 1 : 0;
|
var index = q.Key == currentTab ? 2 : (producing != null && producing.Done) ? 1 : 0;
|
||||||
var race = (Game.LocalPlayer.Race == Race.Allies) ? "allies" : "soviet";
|
var race = (Game.LocalPlayer.Race == Race.Allies) ? "allies" : "soviet";
|
||||||
rgbaRenderer.DrawSprite(SequenceProvider.GetImageFromCollection(renderer,"tabs-"+tabKeys[index], race+"-"+q.Key), new float2(x, y), PaletteType.Chrome);
|
rgbaRenderer.DrawSprite(ChromeProvider.GetImage(renderer,"tabs-"+tabKeys[index], race+"-"+q.Key), new float2(x, y), PaletteType.Chrome);
|
||||||
|
|
||||||
buttons.Add(Pair.New(new RectangleF(x, y, tabWidth, tabHeight),
|
buttons.Add(Pair.New(new RectangleF(x, y, tabWidth, tabHeight),
|
||||||
(Action<bool>)(isLmb => HandleTabClick(groupName))));
|
(Action<bool>)(isLmb => HandleTabClick(groupName))));
|
||||||
@@ -397,7 +397,7 @@ namespace OpenRa
|
|||||||
var x = Game.viewport.Width - 65;
|
var x = Game.viewport.Width - 65;
|
||||||
foreach (var d in moneyDigits.Reverse())
|
foreach (var d in moneyDigits.Reverse())
|
||||||
{
|
{
|
||||||
rgbaRenderer.DrawSprite(SequenceProvider.GetImageFromCollection(renderer, digitCollection, (d - '0').ToString()), new float2(x, 6), PaletteType.Chrome);
|
rgbaRenderer.DrawSprite(ChromeProvider.GetImage(renderer, digitCollection, (d - '0').ToString()), new float2(x, 6), PaletteType.Chrome);
|
||||||
x -= 14;
|
x -= 14;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -447,7 +447,7 @@ namespace OpenRa
|
|||||||
lineRenderer.Flush();
|
lineRenderer.Flush();
|
||||||
|
|
||||||
// Power usage indicator
|
// Power usage indicator
|
||||||
var indicator = SequenceProvider.GetImageFromCollection(renderer, radarCollection, "power-indicator");
|
var indicator = ChromeProvider.GetImage(renderer, radarCollection, "power-indicator");
|
||||||
var powerDrainedTemp = barStart.X + (barEnd.X - barStart.X) * (Game.LocalPlayer.PowerDrained / powerScaleBy);
|
var powerDrainedTemp = barStart.X + (barEnd.X - barStart.X) * (Game.LocalPlayer.PowerDrained / powerScaleBy);
|
||||||
lastPowerDrainedPos = float2.Lerp(lastPowerDrainedPos.GetValueOrDefault(powerDrainedTemp), powerDrainedTemp, .3f);
|
lastPowerDrainedPos = float2.Lerp(lastPowerDrainedPos.GetValueOrDefault(powerDrainedTemp), powerDrainedTemp, .3f);
|
||||||
float2 powerDrainLevel = new float2(lastPowerDrainedPos.Value-indicator.size.X/2, barStart.Y-1);
|
float2 powerDrainLevel = new float2(lastPowerDrainedPos.Value-indicator.size.X/2, barStart.Y-1);
|
||||||
@@ -655,7 +655,7 @@ namespace OpenRa
|
|||||||
string tooltipItem = null;
|
string tooltipItem = null;
|
||||||
|
|
||||||
// Draw the top border
|
// Draw the top border
|
||||||
rgbaRenderer.DrawSprite(SequenceProvider.GetImageFromCollection(renderer, paletteCollection, "top"), new float2(origin.X - 9, origin.Y - 9), PaletteType.Chrome);
|
rgbaRenderer.DrawSprite(ChromeProvider.GetImage(renderer, paletteCollection, "top"), new float2(origin.X - 9, origin.Y - 9), PaletteType.Chrome);
|
||||||
|
|
||||||
// Draw the icons
|
// Draw the icons
|
||||||
int lasty = -1;
|
int lasty = -1;
|
||||||
@@ -664,7 +664,7 @@ namespace OpenRa
|
|||||||
// Draw the background for this row
|
// Draw the background for this row
|
||||||
if (y != lasty)
|
if (y != lasty)
|
||||||
{
|
{
|
||||||
rgbaRenderer.DrawSprite(SequenceProvider.GetImageFromCollection(renderer, paletteCollection, "bg-" + (y % 4).ToString()), new float2(origin.X - 9, origin.Y + 48 * y), PaletteType.Chrome);
|
rgbaRenderer.DrawSprite(ChromeProvider.GetImage(renderer, paletteCollection, "bg-" + (y % 4).ToString()), new float2(origin.X - 9, origin.Y + 48 * y), PaletteType.Chrome);
|
||||||
rgbaRenderer.Flush();
|
rgbaRenderer.Flush();
|
||||||
lasty = y;
|
lasty = y;
|
||||||
}
|
}
|
||||||
@@ -731,7 +731,7 @@ namespace OpenRa
|
|||||||
|
|
||||||
while (y < paletteRows)
|
while (y < paletteRows)
|
||||||
{
|
{
|
||||||
rgbaRenderer.DrawSprite(SequenceProvider.GetImageFromCollection(renderer, paletteCollection, "bg-" + (y % 4).ToString()), new float2(origin.X - 9, origin.Y + 48 * y), PaletteType.Chrome);
|
rgbaRenderer.DrawSprite(ChromeProvider.GetImage(renderer, paletteCollection, "bg-" + (y % 4).ToString()), new float2(origin.X - 9, origin.Y + 48 * y), PaletteType.Chrome);
|
||||||
y++;
|
y++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -739,15 +739,15 @@ namespace OpenRa
|
|||||||
shpRenderer.DrawSprite(ob.First, ob.Second, PaletteType.Chrome);
|
shpRenderer.DrawSprite(ob.First, ob.Second, PaletteType.Chrome);
|
||||||
|
|
||||||
shpRenderer.Flush();
|
shpRenderer.Flush();
|
||||||
rgbaRenderer.DrawSprite(SequenceProvider.GetImageFromCollection(renderer, paletteCollection, "bottom"), new float2(origin.X - 9, origin.Y - 1 + 48 * y), PaletteType.Chrome);
|
rgbaRenderer.DrawSprite(ChromeProvider.GetImage(renderer, paletteCollection, "bottom"), new float2(origin.X - 9, origin.Y - 1 + 48 * y), PaletteType.Chrome);
|
||||||
|
|
||||||
// Draw dock
|
// Draw dock
|
||||||
rgbaRenderer.DrawSprite(SequenceProvider.GetImageFromCollection(renderer, paletteCollection, "dock-top"), new float2(Game.viewport.Width - 14, origin.Y - 23), PaletteType.Chrome);
|
rgbaRenderer.DrawSprite(ChromeProvider.GetImage(renderer, paletteCollection, "dock-top"), new float2(Game.viewport.Width - 14, origin.Y - 23), PaletteType.Chrome);
|
||||||
for (int i = 0; i < y; i++)
|
for (int i = 0; i < y; i++)
|
||||||
{
|
{
|
||||||
rgbaRenderer.DrawSprite(SequenceProvider.GetImageFromCollection(renderer, paletteCollection, "dock-" + (y % 4).ToString()), new float2(Game.viewport.Width - 14, origin.Y + 48 * i), PaletteType.Chrome);
|
rgbaRenderer.DrawSprite(ChromeProvider.GetImage(renderer, paletteCollection, "dock-" + (y % 4).ToString()), new float2(Game.viewport.Width - 14, origin.Y + 48 * i), PaletteType.Chrome);
|
||||||
}
|
}
|
||||||
rgbaRenderer.DrawSprite(SequenceProvider.GetImageFromCollection(renderer, paletteCollection, "dock-bottom"), new float2(Game.viewport.Width - 14, origin.Y - 1 + 48 * y), PaletteType.Chrome);
|
rgbaRenderer.DrawSprite(ChromeProvider.GetImage(renderer, paletteCollection, "dock-bottom"), new float2(Game.viewport.Width - 14, origin.Y - 1 + 48 * y), PaletteType.Chrome);
|
||||||
rgbaRenderer.Flush();
|
rgbaRenderer.Flush();
|
||||||
|
|
||||||
if (tooltipItem != null)
|
if (tooltipItem != null)
|
||||||
@@ -846,7 +846,7 @@ namespace OpenRa
|
|||||||
|
|
||||||
void DrawProductionTooltip(string unit, int2 pos)
|
void DrawProductionTooltip(string unit, int2 pos)
|
||||||
{
|
{
|
||||||
var tooltipSprite = SequenceProvider.GetImageFromCollection(renderer, chromeCollection, "tooltip-bg");
|
var tooltipSprite = ChromeProvider.GetImage(renderer, chromeCollection, "tooltip-bg");
|
||||||
var p = pos.ToFloat2() - new float2(tooltipSprite.size.X, 0);
|
var p = pos.ToFloat2() - new float2(tooltipSprite.size.X, 0);
|
||||||
rgbaRenderer.DrawSprite(tooltipSprite, p, PaletteType.Chrome);
|
rgbaRenderer.DrawSprite(tooltipSprite, p, PaletteType.Chrome);
|
||||||
rgbaRenderer.Flush();
|
rgbaRenderer.Flush();
|
||||||
@@ -898,10 +898,10 @@ namespace OpenRa
|
|||||||
|
|
||||||
if (numPowers == 0) return;
|
if (numPowers == 0) return;
|
||||||
|
|
||||||
rgbaRenderer.DrawSprite(SequenceProvider.GetImageFromCollection(renderer, chromeCollection, "specialbin-top"), new float2(0, 14), PaletteType.Chrome);
|
rgbaRenderer.DrawSprite(ChromeProvider.GetImage(renderer, chromeCollection, "specialbin-top"), new float2(0, 14), PaletteType.Chrome);
|
||||||
for (var i = 1; i < numPowers; i++)
|
for (var i = 1; i < numPowers; i++)
|
||||||
rgbaRenderer.DrawSprite(SequenceProvider.GetImageFromCollection(renderer, chromeCollection, "specialbin-middle"), new float2(0, 14 + i * 51), PaletteType.Chrome);
|
rgbaRenderer.DrawSprite(ChromeProvider.GetImage(renderer, chromeCollection, "specialbin-middle"), new float2(0, 14 + i * 51), PaletteType.Chrome);
|
||||||
rgbaRenderer.DrawSprite(SequenceProvider.GetImageFromCollection(renderer, chromeCollection, "specialbin-bottom"), new float2(0, 14 + numPowers * 51), PaletteType.Chrome);
|
rgbaRenderer.DrawSprite(ChromeProvider.GetImage(renderer, chromeCollection, "specialbin-bottom"), new float2(0, 14 + numPowers * 51), PaletteType.Chrome);
|
||||||
|
|
||||||
rgbaRenderer.Flush();
|
rgbaRenderer.Flush();
|
||||||
|
|
||||||
@@ -967,7 +967,7 @@ namespace OpenRa
|
|||||||
|
|
||||||
void DrawSupportPowerTooltip(string sp, int2 pos)
|
void DrawSupportPowerTooltip(string sp, int2 pos)
|
||||||
{
|
{
|
||||||
var tooltipSprite = SequenceProvider.GetImageFromCollection(renderer, chromeCollection, "tooltip-bg");
|
var tooltipSprite = ChromeProvider.GetImage(renderer, chromeCollection, "tooltip-bg");
|
||||||
rgbaRenderer.DrawSprite(tooltipSprite, pos, PaletteType.Chrome);
|
rgbaRenderer.DrawSprite(tooltipSprite, pos, PaletteType.Chrome);
|
||||||
rgbaRenderer.Flush();
|
rgbaRenderer.Flush();
|
||||||
|
|
||||||
|
|||||||
@@ -102,6 +102,8 @@ namespace OpenRa
|
|||||||
PerfHistory.items["batches"].hasNormalTick = false;
|
PerfHistory.items["batches"].hasNormalTick = false;
|
||||||
Game.controller = controller;
|
Game.controller = controller;
|
||||||
|
|
||||||
|
ChromeProvider.Initialize("chrome.xml");
|
||||||
|
|
||||||
ChangeMap(mapName);
|
ChangeMap(mapName);
|
||||||
|
|
||||||
if (Settings.Replay != "")
|
if (Settings.Replay != "")
|
||||||
|
|||||||
78
OpenRa.Game/Graphics/ChromeProvider.cs
Normal file
78
OpenRa.Game/Graphics/ChromeProvider.cs
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Xml;
|
||||||
|
using OpenRa.FileFormats;
|
||||||
|
|
||||||
|
namespace OpenRa.Graphics
|
||||||
|
{
|
||||||
|
static class ChromeProvider
|
||||||
|
{
|
||||||
|
static Dictionary<string, Dictionary<string, MappedImage>> collections;
|
||||||
|
static Dictionary<string, Sheet> cachedSheets;
|
||||||
|
static Dictionary<string, Dictionary<string, Sprite>> cachedSprites;
|
||||||
|
|
||||||
|
public static void Initialize(params string[] chromeFiles)
|
||||||
|
{
|
||||||
|
collections = new Dictionary<string, Dictionary<string, MappedImage>>();
|
||||||
|
cachedSheets = new Dictionary<string, Sheet>();
|
||||||
|
cachedSprites = new Dictionary<string, Dictionary<string, Sprite>>();
|
||||||
|
|
||||||
|
foreach (var f in chromeFiles)
|
||||||
|
LoadChromeSource(f);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void LoadChromeSource(string filename)
|
||||||
|
{
|
||||||
|
XmlDocument document = new XmlDocument();
|
||||||
|
document.Load(FileSystem.Open(filename));
|
||||||
|
foreach (XmlElement eCollection in document.SelectNodes("/chrome/collection"))
|
||||||
|
LoadChromeForCollection(eCollection);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void LoadChromeForCollection(XmlElement eCollection)
|
||||||
|
{
|
||||||
|
string elementName = eCollection.GetAttribute("name");
|
||||||
|
string defaultSrc = (eCollection.HasAttribute("src") ? eCollection.GetAttribute("src") : null);
|
||||||
|
|
||||||
|
var images = eCollection.SelectNodes("./image").OfType<XmlElement>()
|
||||||
|
.Select(e => new MappedImage(defaultSrc, e))
|
||||||
|
.ToDictionary(s => s.Name);
|
||||||
|
|
||||||
|
collections.Add(elementName, images);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Sprite GetImage(Renderer renderer, string collection, string image)
|
||||||
|
{
|
||||||
|
// Cached sprite
|
||||||
|
if (cachedSprites.ContainsKey(collection) && cachedSprites[collection].ContainsKey(image))
|
||||||
|
return cachedSprites[collection][image];
|
||||||
|
|
||||||
|
MappedImage mi;
|
||||||
|
try { mi = collections[collection][image]; }
|
||||||
|
catch (KeyNotFoundException)
|
||||||
|
{
|
||||||
|
throw new InvalidOperationException(
|
||||||
|
"Collection `{0}` does not have an image `{1}`".F(collection, image));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Cached sheet
|
||||||
|
Sheet sheet;
|
||||||
|
if (cachedSheets.ContainsKey(mi.Src))
|
||||||
|
sheet = cachedSheets[mi.Src];
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sheet = new Sheet(renderer, mi.Src);
|
||||||
|
cachedSheets.Add(mi.Src, sheet);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Cache the sprite
|
||||||
|
if (!cachedSprites.ContainsKey(collection))
|
||||||
|
cachedSprites.Add(collection, new Dictionary<string, Sprite>());
|
||||||
|
cachedSprites[collection].Add(image, mi.GetImage(renderer, sheet));
|
||||||
|
|
||||||
|
return cachedSprites[collection][image];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -10,25 +10,15 @@ namespace OpenRa.Graphics
|
|||||||
{
|
{
|
||||||
static Dictionary<string, Dictionary<string, Sequence>> units;
|
static Dictionary<string, Dictionary<string, Sequence>> units;
|
||||||
static Dictionary<string, CursorSequence> cursors;
|
static Dictionary<string, CursorSequence> cursors;
|
||||||
|
|
||||||
static Dictionary<string, Dictionary<string, MappedImage>> collections;
|
public static void Initialize(bool useAftermath)
|
||||||
static Dictionary<string, Sheet> cachedSheets;
|
|
||||||
static Dictionary<string, Dictionary<string, Sprite>> cachedSprites;
|
|
||||||
|
|
||||||
public static void Initialize( bool useAftermath )
|
|
||||||
{
|
{
|
||||||
units = new Dictionary<string, Dictionary<string, Sequence>>();
|
units = new Dictionary<string, Dictionary<string, Sequence>>();
|
||||||
cursors = new Dictionary<string, CursorSequence>();
|
cursors = new Dictionary<string, CursorSequence>();
|
||||||
|
|
||||||
collections = new Dictionary<string, Dictionary<string, MappedImage>>();
|
|
||||||
cachedSheets = new Dictionary<string, Sheet>();
|
|
||||||
cachedSprites = new Dictionary<string, Dictionary<string, Sprite>>();
|
|
||||||
|
|
||||||
LoadSequenceSource("sequences.xml");
|
LoadSequenceSource("sequences.xml");
|
||||||
if (useAftermath)
|
if (useAftermath)
|
||||||
LoadSequenceSource("sequences-aftermath.xml");
|
LoadSequenceSource("sequences-aftermath.xml");
|
||||||
|
|
||||||
LoadChromeSource("chrome.xml");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void LoadSequenceSource(string filename)
|
static void LoadSequenceSource(string filename)
|
||||||
@@ -42,27 +32,7 @@ namespace OpenRa.Graphics
|
|||||||
foreach (XmlElement eCursor in document.SelectNodes("/sequences/cursor"))
|
foreach (XmlElement eCursor in document.SelectNodes("/sequences/cursor"))
|
||||||
LoadSequencesForCursor(eCursor);
|
LoadSequencesForCursor(eCursor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void LoadChromeSource(string filename)
|
|
||||||
{
|
|
||||||
XmlDocument document = new XmlDocument();
|
|
||||||
document.Load(FileSystem.Open(filename));
|
|
||||||
foreach (XmlElement eCollection in document.SelectNodes("/chrome/collection"))
|
|
||||||
LoadChromeForCollection(eCollection);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void LoadChromeForCollection(XmlElement eCollection)
|
|
||||||
{
|
|
||||||
string elementName = eCollection.GetAttribute("name");
|
|
||||||
string defaultSrc = (eCollection.HasAttribute("src") ? eCollection.GetAttribute("src") : null);
|
|
||||||
|
|
||||||
var images = eCollection.SelectNodes("./image").OfType<XmlElement>()
|
|
||||||
.Select(e => new MappedImage(defaultSrc, e))
|
|
||||||
.ToDictionary(s => s.Name);
|
|
||||||
|
|
||||||
collections.Add(elementName, images);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void LoadSequencesForCursor(XmlElement eCursor)
|
static void LoadSequencesForCursor(XmlElement eCursor)
|
||||||
{
|
{
|
||||||
string cursorSrc = eCursor.GetAttribute("src");
|
string cursorSrc = eCursor.GetAttribute("src");
|
||||||
@@ -103,38 +73,5 @@ namespace OpenRa.Graphics
|
|||||||
{
|
{
|
||||||
return cursors[cursor];
|
return cursors[cursor];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static Sprite GetImageFromCollection(Renderer renderer,string collection, string image)
|
|
||||||
{
|
|
||||||
// Cached sprite
|
|
||||||
if (cachedSprites.ContainsKey(collection) && cachedSprites[collection].ContainsKey(image))
|
|
||||||
return cachedSprites[collection][image];
|
|
||||||
|
|
||||||
MappedImage mi;
|
|
||||||
try { mi = collections[collection][image];}
|
|
||||||
catch (KeyNotFoundException)
|
|
||||||
{
|
|
||||||
throw new InvalidOperationException(
|
|
||||||
"Collection `{0}` does not have an image `{1}`".F(collection, image));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Cached sheet
|
|
||||||
Sheet sheet;
|
|
||||||
if (cachedSheets.ContainsKey(mi.Src))
|
|
||||||
sheet = cachedSheets[mi.Src];
|
|
||||||
else
|
|
||||||
{
|
|
||||||
sheet = new Sheet(renderer, mi.Src);
|
|
||||||
cachedSheets.Add(mi.Src, sheet);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Cache the sprite
|
|
||||||
if (!cachedSprites.ContainsKey(collection))
|
|
||||||
cachedSprites.Add(collection, new Dictionary<string,Sprite>());
|
|
||||||
cachedSprites[collection].Add(image, mi.GetImage(renderer, sheet));
|
|
||||||
|
|
||||||
return cachedSprites[collection][image];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -98,6 +98,7 @@
|
|||||||
<Compile Include="GameRules\UserSettings.cs" />
|
<Compile Include="GameRules\UserSettings.cs" />
|
||||||
<Compile Include="GameRules\VoiceInfo.cs" />
|
<Compile Include="GameRules\VoiceInfo.cs" />
|
||||||
<Compile Include="Effects\IEffect.cs" />
|
<Compile Include="Effects\IEffect.cs" />
|
||||||
|
<Compile Include="Graphics\ChromeProvider.cs" />
|
||||||
<Compile Include="Graphics\MappedImage.cs" />
|
<Compile Include="Graphics\MappedImage.cs" />
|
||||||
<Compile Include="Graphics\Minimap.cs" />
|
<Compile Include="Graphics\Minimap.cs" />
|
||||||
<Compile Include="Resources1.Designer.cs">
|
<Compile Include="Resources1.Designer.cs">
|
||||||
|
|||||||
Reference in New Issue
Block a user