1
1
mirror of https://github.com/OpenDiablo2/OpenDiablo2 synced 2025-02-14 04:26:44 -05:00
OpenDiablo2/OpenDiablo2.Core/UI/PanelFrame.cs
nicholasdechiara 55f8f3ef34 Mob and Playerstate (#31)
* Filled out eLevelId enum
- Added OpenDiablo2.Core.UT unit test project
- Added ELevelIdHelper class which contains code that generates the enum from the mpq data
- Added a unit test that verifies EngineDataManager works
- Added a unit test that runs the ELevelIdHelper generate function
- Renamed some enum values for constistency (e.g. Act1_Town -> Act1_Town1, as it is in the mpq)
* Retargeted OpenDiablo2.Core.UT to .net Framework 4.6.1
* Added TestConsole
TestConsole currently only supports writing the elevelids enum to a file
Also, removed elevelids generation unit test
* PlayerState and MobState
2018-11-29 21:20:29 -05:00

68 lines
2.0 KiB
C#

using System;
using System.Drawing;
using OpenDiablo2.Common;
using OpenDiablo2.Common.Enums;
using OpenDiablo2.Common.Interfaces;
namespace OpenDiablo2.Core.UI
{
public sealed class PanelFrame : IPanelFrame
{
private readonly IRenderWindow renderWindow;
private ISprite sprite;
private ePanelFrameType panelFrameType;
public Point Location { get; set; }
public PanelFrame(IRenderWindow renderWindow, ePanelFrameType panelFrameType)
{
this.renderWindow = renderWindow;
this.panelFrameType = panelFrameType;
sprite = renderWindow.LoadSprite(ResourcePaths.Frame, Palettes.Units, new Point(0, 0));
Location = new Point(0, 0);
}
private void DrawPanel()
{
switch(this.panelFrameType)
{
case ePanelFrameType.Left:
renderWindow.Draw(sprite, 0, new Point(0, 256));
renderWindow.Draw(sprite, 1, new Point(256, 66));
renderWindow.Draw(sprite, 2, new Point(0, 256 + 231));
renderWindow.Draw(sprite, 3, new Point(0, 256 + 231 + 66));
renderWindow.Draw(sprite, 4, new Point(256, 256 + 231 + 66));
break;
case ePanelFrameType.Right:
renderWindow.Draw(sprite, 5, new Point(400 + 0, 66));
renderWindow.Draw(sprite, 6, new Point(400 + 145, 256));
renderWindow.Draw(sprite, 7, new Point(400 + 145 + 169, 256 + 231));
renderWindow.Draw(sprite, 8, new Point(400 + 145, 256 + 231 + 66));
renderWindow.Draw(sprite, 9, new Point(400 + 0, 256 + 231 + 66));
break;
}
}
public void Update()
{
}
public void Render()
{
DrawPanel();
}
public void Dispose()
{
sprite.Dispose();
}
}
}