func registerBasicConditions() { registry_name := "conditions-basic_conditions" base.RemoveRegistry(registry_name) base.RegisterRegistry(registry_name, make(map[string]*BasicConditionDef)) base.RegisterAllObjectsInDir(registry_name, filepath.Join(base.GetDataDir(), "conditions", "basic_conditions"), ".json", "json") names := base.GetAllNamesInRegistry(registry_name) for _, name := range names { cname := name f := func() Condition { c := BasicCondition{Defname: cname} base.GetObject(registry_name, &c) return &c } condition_makers[name] = f } }
func MakeUiSelectMap(gp *GamePanel) (gui.Widget, <-chan string, error) { var ui UiSelectMap datadir := base.GetDataDir() err := base.LoadAndProcessObject(filepath.Join(datadir, "ui", "select_map", "config.json"), "json", &ui.layout) if err != nil { return nil, nil, err } ui.region.Dx = 1024 ui.region.Dy = 768 var options []hui.Option // TODO: may want to reload the registry on this one? If we want to pik up // new changes to files that is. for _, name := range base.GetAllNamesInRegistry("houses") { var mo MapOption mo.house_def = house.MakeHouseFromName(name) mo.layout = &ui.layout options = append(options, &mo) } out := make(chan string, 2) chooser := hui.MakeRosterChooser(options, hui.SelectExactlyOne, func(m map[int]bool) { var index int base.Log().Printf("On complete: %v", m) for index = range m { out <- options[index].(*MapOption).house_def.Name base.Log().Printf("Sent '%s'", options[index].(*MapOption).house_def.Name) break } base.Log().Printf("Closing") close(out) }, nil) ui.chooser = chooser return &ui, out, nil }
func GetAllFurnitureNames() []string { return base.GetAllNamesInRegistry("furniture") }
func GetAllWallTextureNames() []string { return base.GetAllNamesInRegistry("wall_textures") }
func GetAllGearNames() []string { return base.GetAllNamesInRegistry("gear") }
func GetAllDoorNames() []string { return base.GetAllNamesInRegistry("doors") }
func GetAllRoomNames() []string { return base.GetAllNamesInRegistry("rooms") }