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 (
|
||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2interface"
|
||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2resource"
|
||||
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2asset"
|
||||
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2util"
|
||||
)
|
||||
|
||||
// static check that UIFrame implements Widget
|
||||
|
@ -21,9 +21,9 @@ const (
|
|||
// when it is visible.
|
||||
type UIFrame struct {
|
||||
*BaseWidget
|
||||
asset *d2asset.AssetManager
|
||||
frame *Sprite
|
||||
frameOrientation frameOrientation
|
||||
*d2util.Logger
|
||||
}
|
||||
|
||||
// frame indices into dc6 images for panels
|
||||
|
@ -41,11 +41,7 @@ const (
|
|||
)
|
||||
|
||||
// NewUIFrame creates a new Frame instance
|
||||
func NewUIFrame(
|
||||
asset *d2asset.AssetManager,
|
||||
uiManager *UIManager,
|
||||
frameOrientation frameOrientation,
|
||||
) *UIFrame {
|
||||
func (ui *UIManager) NewUIFrame(frameOrientation frameOrientation) *UIFrame {
|
||||
var originX, originY = 0, 0
|
||||
|
||||
switch frameOrientation {
|
||||
|
@ -57,32 +53,29 @@ func NewUIFrame(
|
|||
originY = 0
|
||||
}
|
||||
|
||||
base := NewBaseWidget(uiManager)
|
||||
base := NewBaseWidget(ui)
|
||||
base.SetVisible(false)
|
||||
base.SetPosition(originX, originY)
|
||||
|
||||
frame := &UIFrame{
|
||||
BaseWidget: base,
|
||||
asset: asset,
|
||||
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
|
||||
}
|
||||
|
||||
// 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() {
|
||||
var framesWidth, framesHeight []int
|
||||
|
||||
|
@ -111,7 +104,7 @@ func (u *UIFrame) calculateSize() {
|
|||
for i := range framesWidth {
|
||||
w, _, err := u.frame.GetFrameSize(framesWidth[i])
|
||||
if err != nil {
|
||||
u.asset.Logger.Error(err.Error())
|
||||
u.Error(err.Error())
|
||||
}
|
||||
|
||||
u.width += w
|
||||
|
@ -120,7 +113,7 @@ func (u *UIFrame) calculateSize() {
|
|||
for i := range framesHeight {
|
||||
_, h, err := u.frame.GetFrameSize(framesHeight[i])
|
||||
if err != nil {
|
||||
u.asset.Logger.Error(err.Error())
|
||||
u.Error(err.Error())
|
||||
}
|
||||
|
||||
u.height += h
|
||||
|
@ -132,11 +125,11 @@ func (u *UIFrame) Render(target d2interface.Surface) {
|
|||
switch u.frameOrientation {
|
||||
case FrameLeft:
|
||||
if err := u.renderLeft(target); err != nil {
|
||||
u.asset.Logger.Error("Render error" + err.Error())
|
||||
u.Error("Render error" + err.Error())
|
||||
}
|
||||
case FrameRight:
|
||||
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.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.panel, err = s.uiManager.NewSprite(d2resource.InventoryCharacterPanel, d2resource.PaletteSky)
|
||||
|
|
|
@ -104,7 +104,7 @@ func (g *Inventory) Load() {
|
|||
|
||||
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.panel, err = g.uiManager.NewSprite(d2resource.InventoryCharacterPanel, d2resource.PaletteSky)
|
||||
|
|
|
@ -213,7 +213,7 @@ func (s *QuestLog) Load() {
|
|||
s.Error(err.Error())
|
||||
}
|
||||
|
||||
frame := d2ui.NewUIFrame(s.asset, s.uiManager, d2ui.FrameLeft)
|
||||
frame := s.uiManager.NewUIFrame(d2ui.FrameLeft)
|
||||
s.panelGroup.AddWidget(frame)
|
||||
|
||||
s.panel, err = s.uiManager.NewSprite(d2resource.QuestLogBg, d2resource.PaletteSky)
|
||||
|
|
|
@ -127,7 +127,6 @@ type skillTree struct {
|
|||
skills map[int]*d2hero.HeroSkill
|
||||
skillIcons []*skillIcon
|
||||
heroClass d2enum.Hero
|
||||
frame *d2ui.UIFrame
|
||||
availSPLabel *d2ui.Label
|
||||
closeButton *d2ui.Button
|
||||
tab [numTabs]*skillTreeTab
|
||||
|
@ -153,8 +152,8 @@ func (s *skillTree) load() {
|
|||
s.panel = s.uiManager.NewCustomWidget(s.Render, 400, 600)
|
||||
s.panelGroup.AddWidget(s.panel)
|
||||
|
||||
s.frame = d2ui.NewUIFrame(s.asset, s.uiManager, d2ui.FrameRight)
|
||||
s.panelGroup.AddWidget(s.frame)
|
||||
frame := s.uiManager.NewUIFrame(d2ui.FrameRight)
|
||||
s.panelGroup.AddWidget(frame)
|
||||
|
||||
s.closeButton = s.uiManager.NewButton(d2ui.ButtonTypeSquareClose, "")
|
||||
s.closeButton.SetVisible(false)
|
||||
|
|
Loading…
Reference in New Issue