2018-03-04 23:53:55 +08:00
|
|
|
|
using CustomNPCFramework.Framework.Enums;
|
2018-03-05 06:32:59 +08:00
|
|
|
|
using CustomNPCFramework.Framework.Graphics.TextureGroups;
|
2018-03-04 23:53:55 +08:00
|
|
|
|
using Microsoft.Xna.Framework;
|
2018-02-24 11:10:56 +08:00
|
|
|
|
using Microsoft.Xna.Framework.Graphics;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.IO;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
|
|
|
|
namespace CustomNPCFramework.Framework.Graphics
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Used to handle loading different textures and handling opperations on those textures.
|
|
|
|
|
/// </summary>
|
|
|
|
|
public class AssetSheet
|
|
|
|
|
{
|
2018-03-05 05:23:40 +08:00
|
|
|
|
public TextureGroups.TextureGroup textures;
|
2018-03-04 23:53:55 +08:00
|
|
|
|
|
2018-02-24 11:10:56 +08:00
|
|
|
|
public AssetInfo assetInfo;
|
|
|
|
|
public string path;
|
|
|
|
|
|
|
|
|
|
public int index;
|
|
|
|
|
|
|
|
|
|
public Rectangle currentAsset;
|
|
|
|
|
|
2018-03-04 23:53:55 +08:00
|
|
|
|
public AssetSheet(AssetInfo info,string path,Direction direction=Direction.down)
|
2018-02-24 11:10:56 +08:00
|
|
|
|
{
|
|
|
|
|
this.assetInfo = info;
|
2018-03-05 06:32:59 +08:00
|
|
|
|
this.textures = new TextureGroup(info,path,direction);
|
2018-03-04 23:53:55 +08:00
|
|
|
|
this.path = Class1.getShortenedDirectory(path);
|
2018-02-24 11:10:56 +08:00
|
|
|
|
this.index = 0;
|
|
|
|
|
}
|
|
|
|
|
|
2018-03-05 05:23:40 +08:00
|
|
|
|
public virtual KeyValuePair<string, Texture2D> getPathTexturePair()
|
2018-03-04 20:36:46 +08:00
|
|
|
|
{
|
2018-03-05 05:23:40 +08:00
|
|
|
|
return new KeyValuePair<string, Texture2D>(this.path, this.textures.currentTexture.currentTexture);
|
2018-03-04 20:36:46 +08:00
|
|
|
|
}
|
|
|
|
|
|
2018-02-24 11:10:56 +08:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
2018-03-04 23:53:55 +08:00
|
|
|
|
/// Used just to get a copy of this asset sheet.
|
2018-02-24 11:10:56 +08:00
|
|
|
|
/// </summary>
|
2018-03-05 05:23:40 +08:00
|
|
|
|
public virtual AssetSheet clone()
|
2018-02-24 11:10:56 +08:00
|
|
|
|
{
|
2018-03-04 23:53:55 +08:00
|
|
|
|
var asset = new AssetSheet(this.assetInfo,(string)this.path.Clone());
|
|
|
|
|
return asset;
|
2018-02-24 11:10:56 +08:00
|
|
|
|
}
|
|
|
|
|
|
2018-03-04 23:53:55 +08:00
|
|
|
|
|
2018-03-05 05:23:40 +08:00
|
|
|
|
public virtual void setLeft()
|
|
|
|
|
{
|
|
|
|
|
this.textures.setLeft();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public virtual void setUp()
|
|
|
|
|
{
|
|
|
|
|
this.textures.setUp();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public virtual void setDown()
|
2018-02-24 11:10:56 +08:00
|
|
|
|
{
|
2018-03-05 05:23:40 +08:00
|
|
|
|
this.textures.setDown();
|
2018-02-24 11:10:56 +08:00
|
|
|
|
}
|
|
|
|
|
|
2018-03-05 05:23:40 +08:00
|
|
|
|
public virtual void setRight()
|
2018-02-24 11:10:56 +08:00
|
|
|
|
{
|
2018-03-05 05:23:40 +08:00
|
|
|
|
this.textures.setRight();
|
2018-02-24 11:10:56 +08:00
|
|
|
|
}
|
|
|
|
|
|
2018-03-05 05:23:40 +08:00
|
|
|
|
public virtual Texture2D getCurrentSpriteTexture()
|
2018-02-24 11:10:56 +08:00
|
|
|
|
{
|
2018-03-05 05:23:40 +08:00
|
|
|
|
return this.textures.currentTexture.currentTexture;
|
2018-02-24 11:10:56 +08:00
|
|
|
|
}
|
|
|
|
|
|
2018-03-05 05:23:40 +08:00
|
|
|
|
public virtual Texture2D getTexture(Direction direction,AnimationType type)
|
2018-02-24 11:10:56 +08:00
|
|
|
|
{
|
2018-03-05 05:23:40 +08:00
|
|
|
|
return this.textures.getTextureFromAnimation(type).getTextureFromDirection(direction);
|
2018-02-24 11:10:56 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|