d2ui.Frame refactor (#994)
* d2ui.Frame refactor * removed unneccessery d2asset.AssetManager argument from d2ui.NewUIFrame * d2ui.Frame refactor * removed unneccessery d2asset.AssetManager argument from d2ui.NewUIFrame Co-authored-by: M. Sz <mszeptuch@protonmail.com> Co-authored-by: Tim Sarbin <tim.sarbin@gmail.com> Co-authored-by: gravestench <dknuth0101@gmail.com>
This commit is contained in:
parent
0e95fd44ce
commit
5cd404e4a5
|
@ -3,7 +3,7 @@ package d2ui
|
||||||
import (
|
import (
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2interface"
|
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2interface"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2resource"
|
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2resource"
|
||||||
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2asset"
|
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2util"
|
||||||
)
|
)
|
||||||
|
|
||||||
// static check that UIFrame implements Widget
|
// static check that UIFrame implements Widget
|
||||||
|
@ -21,9 +21,9 @@ const (
|
||||||
// when it is visible.
|
// when it is visible.
|
||||||
type UIFrame struct {
|
type UIFrame struct {
|
||||||
*BaseWidget
|
*BaseWidget
|
||||||
asset *d2asset.AssetManager
|
|
||||||
frame *Sprite
|
frame *Sprite
|
||||||
frameOrientation frameOrientation
|
frameOrientation frameOrientation
|
||||||
|
*d2util.Logger
|
||||||
}
|
}
|
||||||
|
|
||||||
// frame indices into dc6 images for panels
|
// frame indices into dc6 images for panels
|
||||||
|
@ -41,11 +41,7 @@ const (
|
||||||
)
|
)
|
||||||
|
|
||||||
// NewUIFrame creates a new Frame instance
|
// NewUIFrame creates a new Frame instance
|
||||||
func NewUIFrame(
|
func (ui *UIManager) NewUIFrame(frameOrientation frameOrientation) *UIFrame {
|
||||||
asset *d2asset.AssetManager,
|
|
||||||
uiManager *UIManager,
|
|
||||||
frameOrientation frameOrientation,
|
|
||||||
) *UIFrame {
|
|
||||||
var originX, originY = 0, 0
|
var originX, originY = 0, 0
|
||||||
|
|
||||||
switch frameOrientation {
|
switch frameOrientation {
|
||||||
|
@ -57,32 +53,29 @@ func NewUIFrame(
|
||||||
originY = 0
|
originY = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
base := NewBaseWidget(uiManager)
|
base := NewBaseWidget(ui)
|
||||||
|
base.SetVisible(false)
|
||||||
base.SetPosition(originX, originY)
|
base.SetPosition(originX, originY)
|
||||||
|
|
||||||
frame := &UIFrame{
|
frame := &UIFrame{
|
||||||
BaseWidget: base,
|
BaseWidget: base,
|
||||||
asset: asset,
|
|
||||||
frameOrientation: frameOrientation,
|
frameOrientation: frameOrientation,
|
||||||
|
Logger: ui.Logger,
|
||||||
}
|
}
|
||||||
frame.Load()
|
|
||||||
|
|
||||||
frame.asset.Logger.SetPrefix(logPrefix) // workaround
|
sprite, err := ui.NewSprite(d2resource.Frame, d2resource.PaletteSky)
|
||||||
|
if err != nil {
|
||||||
|
frame.Error(err.Error())
|
||||||
|
}
|
||||||
|
|
||||||
|
frame.frame = sprite
|
||||||
|
frame.calculateSize()
|
||||||
|
|
||||||
|
ui.addWidget(frame)
|
||||||
|
|
||||||
return frame
|
return frame
|
||||||
}
|
}
|
||||||
|
|
||||||
// Load the necessary frame resources
|
|
||||||
func (u *UIFrame) Load() {
|
|
||||||
sprite, err := u.manager.NewSprite(d2resource.Frame, d2resource.PaletteSky)
|
|
||||||
if err != nil {
|
|
||||||
u.asset.Logger.Error(err.Error())
|
|
||||||
}
|
|
||||||
|
|
||||||
u.frame = sprite
|
|
||||||
u.calculateSize()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (u *UIFrame) calculateSize() {
|
func (u *UIFrame) calculateSize() {
|
||||||
var framesWidth, framesHeight []int
|
var framesWidth, framesHeight []int
|
||||||
|
|
||||||
|
@ -111,7 +104,7 @@ func (u *UIFrame) calculateSize() {
|
||||||
for i := range framesWidth {
|
for i := range framesWidth {
|
||||||
w, _, err := u.frame.GetFrameSize(framesWidth[i])
|
w, _, err := u.frame.GetFrameSize(framesWidth[i])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
u.asset.Logger.Error(err.Error())
|
u.Error(err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
u.width += w
|
u.width += w
|
||||||
|
@ -120,7 +113,7 @@ func (u *UIFrame) calculateSize() {
|
||||||
for i := range framesHeight {
|
for i := range framesHeight {
|
||||||
_, h, err := u.frame.GetFrameSize(framesHeight[i])
|
_, h, err := u.frame.GetFrameSize(framesHeight[i])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
u.asset.Logger.Error(err.Error())
|
u.Error(err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
u.height += h
|
u.height += h
|
||||||
|
@ -132,11 +125,11 @@ func (u *UIFrame) Render(target d2interface.Surface) {
|
||||||
switch u.frameOrientation {
|
switch u.frameOrientation {
|
||||||
case FrameLeft:
|
case FrameLeft:
|
||||||
if err := u.renderLeft(target); err != nil {
|
if err := u.renderLeft(target); err != nil {
|
||||||
u.asset.Logger.Error("Render error" + err.Error())
|
u.Error("Render error" + err.Error())
|
||||||
}
|
}
|
||||||
case FrameRight:
|
case FrameRight:
|
||||||
if err := u.renderRight(target); err != nil {
|
if err := u.renderRight(target); err != nil {
|
||||||
u.asset.Logger.Error("Render error" + err.Error())
|
u.Error("Render error" + err.Error())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -149,7 +149,7 @@ func (s *HeroStatsPanel) Load() {
|
||||||
s.panelGroup = s.uiManager.NewWidgetGroup(d2ui.RenderPriorityHeroStatsPanel)
|
s.panelGroup = s.uiManager.NewWidgetGroup(d2ui.RenderPriorityHeroStatsPanel)
|
||||||
s.newStatPoints = s.uiManager.NewWidgetGroup(d2ui.RenderPriorityHeroStatsPanel)
|
s.newStatPoints = s.uiManager.NewWidgetGroup(d2ui.RenderPriorityHeroStatsPanel)
|
||||||
|
|
||||||
frame := d2ui.NewUIFrame(s.asset, s.uiManager, d2ui.FrameLeft)
|
frame := s.uiManager.NewUIFrame(d2ui.FrameLeft)
|
||||||
s.panelGroup.AddWidget(frame)
|
s.panelGroup.AddWidget(frame)
|
||||||
|
|
||||||
s.panel, err = s.uiManager.NewSprite(d2resource.InventoryCharacterPanel, d2resource.PaletteSky)
|
s.panel, err = s.uiManager.NewSprite(d2resource.InventoryCharacterPanel, d2resource.PaletteSky)
|
||||||
|
|
|
@ -104,7 +104,7 @@ func (g *Inventory) Load() {
|
||||||
|
|
||||||
g.panelGroup = g.uiManager.NewWidgetGroup(d2ui.RenderPriorityInventory)
|
g.panelGroup = g.uiManager.NewWidgetGroup(d2ui.RenderPriorityInventory)
|
||||||
|
|
||||||
frame := d2ui.NewUIFrame(g.asset, g.uiManager, d2ui.FrameRight)
|
frame := g.uiManager.NewUIFrame(d2ui.FrameRight)
|
||||||
g.panelGroup.AddWidget(frame)
|
g.panelGroup.AddWidget(frame)
|
||||||
|
|
||||||
g.panel, err = g.uiManager.NewSprite(d2resource.InventoryCharacterPanel, d2resource.PaletteSky)
|
g.panel, err = g.uiManager.NewSprite(d2resource.InventoryCharacterPanel, d2resource.PaletteSky)
|
||||||
|
|
|
@ -213,7 +213,7 @@ func (s *QuestLog) Load() {
|
||||||
s.Error(err.Error())
|
s.Error(err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
frame := d2ui.NewUIFrame(s.asset, s.uiManager, d2ui.FrameLeft)
|
frame := s.uiManager.NewUIFrame(d2ui.FrameLeft)
|
||||||
s.panelGroup.AddWidget(frame)
|
s.panelGroup.AddWidget(frame)
|
||||||
|
|
||||||
s.panel, err = s.uiManager.NewSprite(d2resource.QuestLogBg, d2resource.PaletteSky)
|
s.panel, err = s.uiManager.NewSprite(d2resource.QuestLogBg, d2resource.PaletteSky)
|
||||||
|
|
|
@ -127,7 +127,6 @@ type skillTree struct {
|
||||||
skills map[int]*d2hero.HeroSkill
|
skills map[int]*d2hero.HeroSkill
|
||||||
skillIcons []*skillIcon
|
skillIcons []*skillIcon
|
||||||
heroClass d2enum.Hero
|
heroClass d2enum.Hero
|
||||||
frame *d2ui.UIFrame
|
|
||||||
availSPLabel *d2ui.Label
|
availSPLabel *d2ui.Label
|
||||||
closeButton *d2ui.Button
|
closeButton *d2ui.Button
|
||||||
tab [numTabs]*skillTreeTab
|
tab [numTabs]*skillTreeTab
|
||||||
|
@ -153,8 +152,8 @@ func (s *skillTree) load() {
|
||||||
s.panel = s.uiManager.NewCustomWidget(s.Render, 400, 600)
|
s.panel = s.uiManager.NewCustomWidget(s.Render, 400, 600)
|
||||||
s.panelGroup.AddWidget(s.panel)
|
s.panelGroup.AddWidget(s.panel)
|
||||||
|
|
||||||
s.frame = d2ui.NewUIFrame(s.asset, s.uiManager, d2ui.FrameRight)
|
frame := s.uiManager.NewUIFrame(d2ui.FrameRight)
|
||||||
s.panelGroup.AddWidget(s.frame)
|
s.panelGroup.AddWidget(frame)
|
||||||
|
|
||||||
s.closeButton = s.uiManager.NewButton(d2ui.ButtonTypeSquareClose, "")
|
s.closeButton = s.uiManager.NewButton(d2ui.ButtonTypeSquareClose, "")
|
||||||
s.closeButton.SetVisible(false)
|
s.closeButton.SetVisible(false)
|
||||||
|
|
Loading…
Reference in New Issue