package main import ( "fmt" door "git.red-green.com/RedGreen/doorgo" ) type Editor struct { World *World Camera *Camera Pos *Vec2 } func NewEditor(w *World, cam_size, pos *Vec2) *Editor { e := &Editor{ World: w, Camera: &Camera{ Size: cam_size.Clone(), }, Pos: pos.Clone(), } if w == nil || cam_size == nil || pos == nil { return nil } return e } func (e *Editor) TileMenu() *door.Menu { m := &door.Menu{ Chosen: 0, SelectedR: door.MakeMenuRender(door.ColorText("BRI WHI ON BLU"), door.ColorText("BRI WHI ON BLU"), door.ColorText("BRI WHI ON BLU"), door.ColorText("BRI WHI ON BLU")), UnselectedR: door.MakeMenuRender(door.ColorText("BRI BLA ON BLA"), door.ColorText("BRI CYA ON BLA"), door.ColorText("BRI WHI ON BLA"), door.ColorText("WHI ON BLA")), Panel: door.Panel{ X: 1, Y: 1, Width: door.Width - 2, Style: door.SINGLE, BorderColor: door.ColorText("BRI CYA ON BLA"), Title: " Tiles ", TitleColor: door.ColorText("BRI WHI ON BLA"), TitleOffset: 4, }, } if len(e.World.TileIndex.Tiles) != 0 { for idx, t := range e.World.TileIndex.Tiles { if t == nil { continue } m.AddSelection(fmt.Sprintf("%d", idx), fmt.Sprintf("'%s' in '%s'", t.Symbol, t.Color)) } } m.AddSelection("A", "Add Tile") return m }