12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- 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
- }
|