Move some things around

This commit is contained in:
Miroslav Vasilev 2024-05-06 21:47:20 +03:00
parent a56e3d3c91
commit 3b9923a713
10 changed files with 29 additions and 35 deletions

View file

@ -2,7 +2,6 @@ package state
import ( import (
"mvvasilev/last_light/engine" "mvvasilev/last_light/engine"
engine1 "mvvasilev/last_light/engine"
"mvvasilev/last_light/game/model" "mvvasilev/last_light/game/model"
"mvvasilev/last_light/game/ui/menu" "mvvasilev/last_light/game/ui/menu"
@ -14,7 +13,7 @@ type InventoryScreenState struct {
exitMenu bool exitMenu bool
inventoryMenu *menu.PlayerInventoryMenu inventoryMenu *menu.PlayerInventoryMenu
selectedInventorySlot engine1.Position selectedInventorySlot engine.Position
player *model.Player player *model.Player
@ -27,7 +26,7 @@ func CreateInventoryScreenState(player *model.Player, prevState PausableState) *
iss.prevState = prevState iss.prevState = prevState
iss.player = player iss.player = player
iss.selectedInventorySlot = engine1.PositionAt(0, 0) iss.selectedInventorySlot = engine.PositionAt(0, 0)
iss.exitMenu = false iss.exitMenu = false
iss.inventoryMenu = menu.CreatePlayerInventoryMenu(43, 0, player.Inventory(), tcell.StyleDefault, tcell.StyleDefault.Background(tcell.ColorDarkSlateGray)) iss.inventoryMenu = menu.CreatePlayerInventoryMenu(43, 0, player.Inventory(), tcell.StyleDefault, tcell.StyleDefault.Background(tcell.ColorDarkSlateGray))

View file

@ -2,7 +2,6 @@ package state
import ( import (
"mvvasilev/last_light/engine" "mvvasilev/last_light/engine"
engine1 "mvvasilev/last_light/engine"
"mvvasilev/last_light/game/ui" "mvvasilev/last_light/game/ui"
"github.com/gdamore/tcell/v2" "github.com/gdamore/tcell/v2"
@ -50,13 +49,13 @@ func NewMainMenuState() *MainMenuState {
func (mms *MainMenuState) OnInput(e *tcell.EventKey) { func (mms *MainMenuState) OnInput(e *tcell.EventKey) {
if e.Key() == tcell.KeyDown { if e.Key() == tcell.KeyDown {
mms.buttons[mms.currButtonSelected].Unhighlight() mms.buttons[mms.currButtonSelected].Unhighlight()
mms.currButtonSelected = engine1.LimitIncrement(mms.currButtonSelected, 2) mms.currButtonSelected = engine.LimitIncrement(mms.currButtonSelected, 2)
mms.buttons[mms.currButtonSelected].Highlight() mms.buttons[mms.currButtonSelected].Highlight()
} }
if e.Key() == tcell.KeyUp { if e.Key() == tcell.KeyUp {
mms.buttons[mms.currButtonSelected].Unhighlight() mms.buttons[mms.currButtonSelected].Unhighlight()
mms.currButtonSelected = engine1.LimitDecrement(mms.currButtonSelected, 0) mms.currButtonSelected = engine.LimitDecrement(mms.currButtonSelected, 0)
mms.buttons[mms.currButtonSelected].Highlight() mms.buttons[mms.currButtonSelected].Highlight()
} }

View file

@ -2,7 +2,6 @@ package state
import ( import (
"mvvasilev/last_light/engine" "mvvasilev/last_light/engine"
engine1 "mvvasilev/last_light/engine"
"mvvasilev/last_light/game/ui" "mvvasilev/last_light/game/ui"
"github.com/gdamore/tcell/v2" "github.com/gdamore/tcell/v2"
@ -68,13 +67,13 @@ func (pg *PauseGameState) OnInput(e *tcell.EventKey) {
if e.Key() == tcell.KeyDown { if e.Key() == tcell.KeyDown {
pg.buttons[pg.currButtonSelected].Unhighlight() pg.buttons[pg.currButtonSelected].Unhighlight()
pg.currButtonSelected = engine1.LimitIncrement(pg.currButtonSelected, 1) pg.currButtonSelected = engine.LimitIncrement(pg.currButtonSelected, 1)
pg.buttons[pg.currButtonSelected].Highlight() pg.buttons[pg.currButtonSelected].Highlight()
} }
if e.Key() == tcell.KeyUp { if e.Key() == tcell.KeyUp {
pg.buttons[pg.currButtonSelected].Unhighlight() pg.buttons[pg.currButtonSelected].Unhighlight()
pg.currButtonSelected = engine1.LimitDecrement(pg.currButtonSelected, 0) pg.currButtonSelected = engine.LimitDecrement(pg.currButtonSelected, 0)
pg.buttons[pg.currButtonSelected].Highlight() pg.buttons[pg.currButtonSelected].Highlight()
} }

View file

@ -2,7 +2,6 @@ package state
import ( import (
"mvvasilev/last_light/engine" "mvvasilev/last_light/engine"
engine1 "mvvasilev/last_light/engine"
"mvvasilev/last_light/game/model" "mvvasilev/last_light/game/model"
"mvvasilev/last_light/game/world" "mvvasilev/last_light/game/world"
@ -26,7 +25,7 @@ type PlayingState struct {
func BeginPlayingState() *PlayingState { func BeginPlayingState() *PlayingState {
s := new(PlayingState) s := new(PlayingState)
mapSize := engine1.SizeOf(128, 128) mapSize := engine.SizeOf(128, 128)
dungeonLevel := world.CreateBSPDungeonMap(mapSize.Width(), mapSize.Height(), 4) dungeonLevel := world.CreateBSPDungeonMap(mapSize.Width(), mapSize.Height(), 4)
@ -37,11 +36,15 @@ func BeginPlayingState() *PlayingState {
genTable[0.051] = model.ItemTypeLongsword() genTable[0.051] = model.ItemTypeLongsword()
genTable[0.052] = model.ItemTypeKey() genTable[0.052] = model.ItemTypeKey()
itemTiles := world.SpawnItems(dungeonLevel.Rooms(), 0.025, genTable) itemTiles := world.SpawnItems(dungeonLevel.Rooms(), 0.01, genTable)
itemLevel := world.CreateEmptyDungeonLevel(mapSize.Width(), mapSize.Height()) itemLevel := world.CreateEmptyDungeonLevel(mapSize.Width(), mapSize.Height())
for _, it := range itemTiles { for _, it := range itemTiles {
if !dungeonLevel.TileAt(it.Position().XY()).Passable() {
continue
}
itemLevel.SetTileAt(it.Position().X(), it.Position().Y(), it) itemLevel.SetTileAt(it.Position().X(), it.Position().Y(), it)
} }
@ -58,9 +61,9 @@ func BeginPlayingState() *PlayingState {
s.entityMap.AddEntity(s.player, '@', tcell.StyleDefault) s.entityMap.AddEntity(s.player, '@', tcell.StyleDefault)
s.viewport = engine.CreateViewport( s.viewport = engine.CreateViewport(
engine1.PositionAt(0, 0), engine.PositionAt(0, 0),
dungeonLevel.PlayerSpawnPoint(), dungeonLevel.PlayerSpawnPoint(),
engine1.SizeOf(80, 24), engine.SizeOf(80, 24),
tcell.StyleDefault, tcell.StyleDefault,
) )

View file

@ -2,7 +2,6 @@ package ui
import ( import (
"mvvasilev/last_light/engine" "mvvasilev/last_light/engine"
engine1 "mvvasilev/last_light/engine"
"github.com/gdamore/tcell/v2" "github.com/gdamore/tcell/v2"
"github.com/gdamore/tcell/v2/views" "github.com/gdamore/tcell/v2/views"
@ -45,11 +44,11 @@ func (b *UIBorderedButton) MoveTo(x int, y int) {
panic("not implemented") // TODO: Implement panic("not implemented") // TODO: Implement
} }
func (b *UIBorderedButton) Position() engine1.Position { func (b *UIBorderedButton) Position() engine.Position {
panic("not implemented") // TODO: Implement panic("not implemented") // TODO: Implement
} }
func (b *UIBorderedButton) Size() engine1.Size { func (b *UIBorderedButton) Size() engine.Size {
panic("not implemented") // TODO: Implement panic("not implemented") // TODO: Implement
} }

View file

@ -2,7 +2,6 @@ package ui
import ( import (
"mvvasilev/last_light/engine" "mvvasilev/last_light/engine"
engine1 "mvvasilev/last_light/engine"
"unicode/utf8" "unicode/utf8"
"github.com/gdamore/tcell/v2" "github.com/gdamore/tcell/v2"
@ -41,11 +40,11 @@ func (t *UILabel) MoveTo(x int, y int) {
t.text = engine.CreateText(x, y, int(t.text.Size().Width()), int(t.Size().Height()), t.text.Content(), t.text.Style()) t.text = engine.CreateText(x, y, int(t.text.Size().Width()), int(t.Size().Height()), t.text.Content(), t.text.Style())
} }
func (t *UILabel) Position() engine1.Position { func (t *UILabel) Position() engine.Position {
return t.text.Position() return t.text.Position()
} }
func (t *UILabel) Size() engine1.Size { func (t *UILabel) Size() engine.Size {
return t.text.Size() return t.text.Size()
} }

View file

@ -3,7 +3,6 @@ package menu
import ( import (
"fmt" "fmt"
"mvvasilev/last_light/engine" "mvvasilev/last_light/engine"
engine1 "mvvasilev/last_light/engine"
"mvvasilev/last_light/game/model" "mvvasilev/last_light/game/model"
"mvvasilev/last_light/game/ui" "mvvasilev/last_light/game/ui"
@ -27,7 +26,7 @@ type PlayerInventoryMenu struct {
selectedItem *engine.ArbitraryDrawable selectedItem *engine.ArbitraryDrawable
help *ui.UILabel help *ui.UILabel
selectedInventorySlot engine1.Position selectedInventorySlot engine.Position
} }
func CreatePlayerInventoryMenu(x, y int, playerInventory *model.EquippedInventory, style tcell.Style, highlightStyle tcell.Style) *PlayerInventoryMenu { func CreatePlayerInventoryMenu(x, y int, playerInventory *model.EquippedInventory, style tcell.Style, highlightStyle tcell.Style) *PlayerInventoryMenu {
@ -138,11 +137,11 @@ func (pim *PlayerInventoryMenu) MoveTo(x int, y int) {
} }
func (pim *PlayerInventoryMenu) Position() engine1.Position { func (pim *PlayerInventoryMenu) Position() engine.Position {
return pim.inventoryMenu.Position() return pim.inventoryMenu.Position()
} }
func (pim *PlayerInventoryMenu) Size() engine1.Size { func (pim *PlayerInventoryMenu) Size() engine.Size {
return pim.inventoryMenu.Size() return pim.inventoryMenu.Size()
} }
@ -156,7 +155,7 @@ func (pim *PlayerInventoryMenu) UniqueId() uuid.UUID {
func (pim *PlayerInventoryMenu) SelectSlot(x, y int) { func (pim *PlayerInventoryMenu) SelectSlot(x, y int) {
pim.inventoryGrid.Unhighlight() pim.inventoryGrid.Unhighlight()
pim.selectedInventorySlot = engine1.PositionAt(x, y) pim.selectedInventorySlot = engine.PositionAt(x, y)
pim.inventoryGrid.Highlight(pim.selectedInventorySlot) pim.inventoryGrid.Highlight(pim.selectedInventorySlot)
} }

View file

@ -2,7 +2,6 @@ package ui
import ( import (
"mvvasilev/last_light/engine" "mvvasilev/last_light/engine"
engine1 "mvvasilev/last_light/engine"
"strings" "strings"
"unicode/utf8" "unicode/utf8"
@ -85,11 +84,11 @@ func (sb *UISimpleButton) MoveTo(x int, y int) {
sb.text = engine.CreateText(x, y, int(utf8.RuneCountInString(sb.text.Content())), 1, sb.text.Content(), sb.highlightedStyle) sb.text = engine.CreateText(x, y, int(utf8.RuneCountInString(sb.text.Content())), 1, sb.text.Content(), sb.highlightedStyle)
} }
func (sb *UISimpleButton) Position() engine1.Position { func (sb *UISimpleButton) Position() engine.Position {
return sb.text.Position() return sb.text.Position()
} }
func (sb *UISimpleButton) Size() engine1.Size { func (sb *UISimpleButton) Size() engine.Size {
return sb.text.Size() return sb.text.Size()
} }

View file

@ -2,15 +2,14 @@ package ui
import ( import (
"mvvasilev/last_light/engine" "mvvasilev/last_light/engine"
engine1 "mvvasilev/last_light/engine"
"github.com/gdamore/tcell/v2" "github.com/gdamore/tcell/v2"
) )
type UIElement interface { type UIElement interface {
MoveTo(x, y int) MoveTo(x, y int)
Position() engine1.Position Position() engine.Position
Size() engine1.Size Size() engine.Size
Input(e *tcell.EventKey) Input(e *tcell.EventKey)
engine.Drawable engine.Drawable

View file

@ -2,7 +2,6 @@ package ui
import ( import (
"mvvasilev/last_light/engine" "mvvasilev/last_light/engine"
engine1 "mvvasilev/last_light/engine"
"unicode/utf8" "unicode/utf8"
"github.com/gdamore/tcell/v2" "github.com/gdamore/tcell/v2"
@ -45,12 +44,12 @@ func (w *UIWindow) MoveTo(x int, y int) {
} }
func (w *UIWindow) Position() engine1.Position { func (w *UIWindow) Position() engine.Position {
return w.box.Position() return w.box.Position()
} }
func (w *UIWindow) Size() engine1.Size { func (w *UIWindow) Size() engine.Size {
return engine1.SizeOf(0, 0) return engine.SizeOf(0, 0)
} }
func (w *UIWindow) Draw(v views.View) { func (w *UIWindow) Draw(v views.View) {