40 lines
1.1 KiB
C#
40 lines
1.1 KiB
C#
using Mine2d.game.core.data;
|
|
|
|
namespace Mine2d.game.core.items;
|
|
|
|
public class Item
|
|
{
|
|
public ItemId Id { get; set; }
|
|
public string Name { get; set; }
|
|
private readonly IntPtr texture;
|
|
|
|
public Item(ItemId id, string name, string[] textureName)
|
|
{
|
|
this.Id = id;
|
|
this.Name = name;
|
|
this.texture = Context.Get().TextureFactory.CreateTexture(textureName);
|
|
}
|
|
|
|
public Item(ItemId id, string name, string textureName)
|
|
{
|
|
this.Id = id;
|
|
this.Name = name;
|
|
this.texture = Context.Get().TextureFactory.LoadTexture(textureName);
|
|
}
|
|
|
|
public void Render(Vector2 position)
|
|
{
|
|
var ctx = Context.Get();
|
|
var renderer = ctx.Renderer;
|
|
var scale = ctx.FrontendGameState.Settings.GameScale;
|
|
var targetPos = (position - ctx.FrontendGameState.Camera.Position) * scale -
|
|
new Vector2(4 * scale, 6 * scale);
|
|
renderer.DrawTexture(this.texture, (int)targetPos.X, (int)targetPos.Y, 8 * scale, 8 * scale);
|
|
}
|
|
|
|
public IntPtr GetTexture()
|
|
{
|
|
return this.texture;
|
|
}
|
|
}
|