mirror of
https://github.com/Ellpeck/MLEM.git
synced 2024-11-26 06:28:35 +01:00
added the ability to convert texture atlases to collections
This commit is contained in:
parent
92353e40e6
commit
9919ee4a97
3 changed files with 37 additions and 0 deletions
|
@ -17,6 +17,7 @@ Additions
|
||||||
- Added GetFlags and GetUniqueFlags to EnumHelper
|
- Added GetFlags and GetUniqueFlags to EnumHelper
|
||||||
- Added GetDownTime, GetUpTime, GetTimeSincePress, WasModifierDown and WasDown to Keybind and Combination
|
- Added GetDownTime, GetUpTime, GetTimeSincePress, WasModifierDown and WasDown to Keybind and Combination
|
||||||
- Added the ability for UniformTextureAtlases to have padding for each region
|
- Added the ability for UniformTextureAtlases to have padding for each region
|
||||||
|
- Added UniformTextureAtlas methods ToList and ToDictionary
|
||||||
- **Added the ability to find paths to one of multiple goals using AStar**
|
- **Added the ability to find paths to one of multiple goals using AStar**
|
||||||
|
|
||||||
Improvements
|
Improvements
|
||||||
|
@ -73,6 +74,7 @@ Additions
|
||||||
- Added data, from, and copy instructions to DataTextureAtlas
|
- Added data, from, and copy instructions to DataTextureAtlas
|
||||||
- Added the ability to add additional regions to a RuntimeTexturePacker after packing
|
- Added the ability to add additional regions to a RuntimeTexturePacker after packing
|
||||||
- Added GetFlags, GetUniqueFlags and IsDefined to DynamicEnum
|
- Added GetFlags, GetUniqueFlags and IsDefined to DynamicEnum
|
||||||
|
- Added DataTextureAtlas.ToDictionary
|
||||||
|
|
||||||
Improvements
|
Improvements
|
||||||
- Allow data texture atlas pivots and offsets to be negative
|
- Allow data texture atlas pivots and offsets to be negative
|
||||||
|
|
|
@ -72,6 +72,15 @@ namespace MLEM.Data {
|
||||||
this.Texture = texture;
|
this.Texture = texture;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Converts this data texture atlas to a <see cref="Dictionary{TKey,TValue}"/> and returns the result.
|
||||||
|
/// The resulting dictionary will contain all named regions that this data texture atlas contains.
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>The dictionary representation of this data texture atlas.</returns>
|
||||||
|
public Dictionary<string, TextureRegion> ToDictionary() {
|
||||||
|
return new Dictionary<string, TextureRegion>(this.regions);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Loads a <see cref="DataTextureAtlas"/> from the given loaded texture and texture data file.
|
/// Loads a <see cref="DataTextureAtlas"/> from the given loaded texture and texture data file.
|
||||||
/// For more information on data texture atlases, see the <see cref="DataTextureAtlas"/> type documentation.
|
/// For more information on data texture atlases, see the <see cref="DataTextureAtlas"/> type documentation.
|
||||||
|
|
|
@ -94,6 +94,32 @@ namespace MLEM.Textures {
|
||||||
public UniformTextureAtlas(Texture2D texture, int regionAmountX, int regionAmountY, int regionPadding = 0) :
|
public UniformTextureAtlas(Texture2D texture, int regionAmountX, int regionAmountY, int regionPadding = 0) :
|
||||||
this(new TextureRegion(texture), regionAmountX, regionAmountY, regionPadding) {}
|
this(new TextureRegion(texture), regionAmountX, regionAmountY, regionPadding) {}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Converts this uniform texture atlas to a <see cref="List{T}"/> and returns the result.
|
||||||
|
/// The resulting list will contain all square 1x1 regions that this uniform texture atlas contains, based on <see cref="RegionAmountX"/> and <see cref="RegionAmountY"/>, with each index containing the <see cref="TextureRegion"/> at <see cref="this[int]"/>.
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>The list representation of this uniform texture atlas.</returns>
|
||||||
|
public List<TextureRegion> ToList() {
|
||||||
|
var ret = new List<TextureRegion>();
|
||||||
|
for (var i = 0; i < this.RegionAmountX * this.RegionAmountY; i++)
|
||||||
|
ret.Add(this[i]);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Converts this uniform texture atlas to a <see cref="Dictionary{TKey,TValue}"/> and returns the result.
|
||||||
|
/// The resulting dictionary will contain all square 1x1 regions that this uniform texture atlas contains, based on <see cref="RegionAmountX"/> and <see cref="RegionAmountY"/>, wich each key containing the <see cref="TextureRegion"/> at <see cref="this[Point]"/>.
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>The dictionary representation of this uniform texture atlas.</returns>
|
||||||
|
public Dictionary<Point, TextureRegion> ToDictionary() {
|
||||||
|
var ret = new Dictionary<Point, TextureRegion>();
|
||||||
|
for (var x = 0; x < this.RegionAmountX; x++) {
|
||||||
|
for (var y = 0; y < this.RegionAmountY; y++)
|
||||||
|
ret.Add(new Point(x, y), this[x, y]);
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
private TextureRegion GetOrAddRegion(Rectangle rect) {
|
private TextureRegion GetOrAddRegion(Rectangle rect) {
|
||||||
if (this.regions.TryGetValue(rect, out var region))
|
if (this.regions.TryGetValue(rect, out var region))
|
||||||
return region;
|
return region;
|
||||||
|
|
Loading…
Reference in a new issue