ui starting, menu screen, ingame help

This commit is contained in:
2019-11-08 03:36:26 +03:00
parent 4532320ce3
commit cb7718860a
11 changed files with 271 additions and 40 deletions

View File

@ -14,18 +14,24 @@ type GameScreen struct {
state *gamestate.GameState
vp *mainwindow.ViewPort
controller *ecs.Controller
scm *types.ScreenManager
}
func NewGameScreen(mw *mainwindow.MainWindow, state *gamestate.GameState, viewPort *mainwindow.ViewPort, controller *ecs.Controller) *GameScreen {
return &GameScreen{mw: mw, state: state, vp: viewPort, controller: controller}
func NewGameScreen(mw *mainwindow.MainWindow, state *gamestate.GameState, viewPort *mainwindow.ViewPort, controller *ecs.Controller, scm *types.ScreenManager) *GameScreen {
ts := &GameScreen{mw: mw, state: state, vp: viewPort, controller: controller, scm: scm}
renderMobs := systems.MobRenderSystem{EntityController: ts.controller}
ts.controller.AddSystem(renderMobs, 1)
return ts
}
func (ts *GameScreen) UseEcs() bool { return true }
func (ts *GameScreen) Enter() {
renderMobs := systems.MobRenderSystem{EntityController: ts.controller}
ts.controller.AddSystem(renderMobs, 1)
ts.mw.GetLayer("overlay").ClearArea(0, ts.mw.H - 3, 30, 3)
ts.mw.GetLayer("overlay").WithColor("#77777777").
Print(1, ts.mw.H - 2, "Press [color=white]?[/color] for help")
}
func (ts *GameScreen) Exit() {
ts.mw.GetLayer("base").ClearArea(1, ts.mw.H -2, 30, 1)
//remove what we dont need
}
@ -56,6 +62,9 @@ func (ts *GameScreen) HandleInput(input string) {
case "n", "3":
ts.walk(ts.state, 1, 1)
break
case "Shift+/":
ts.scm.SetScreenByName("help")
break
default:
ts.mw.GetLayer("base").ClearArea(0, 3, 40, 1)
ts.mw.GetLayer("base").Print(1, 3, "Key: "+input)