package components import ( "encoding/json" "fmt" coreobjects "github.com/DegustatorPonos/RuinesOfRafdolon/CoreObjects" settings "github.com/DegustatorPonos/RuinesOfRafdolon/Settings" rl "github.com/gen2brain/raylib-go/raylib" ) var Resources ResourceManager type ResourceManager struct { LoadedPackages map[string]*settings.AppVersion Textures TextrueManager Objects map[string]*coreobjects.DynamicObject Worlds map[string]*World } func InitManager() { Resources = ResourceManager{ LoadedPackages: make(map[string]*settings.AppVersion), Worlds: make(map[string]*World), Objects: make(map[string]*coreobjects.DynamicObject), Textures: TextrueManager{ Textures: make([]*rl.Texture2D, 0), NameToId: make(map[string]uint64), }, } } func (base *ResourceManager) RegisterObject(PackageName string, obejctName string, new *coreobjects.DynamicObject) error { var displayName = fmt.Sprintf("%s/%s", PackageName, obejctName) if _, exists := base.Objects[displayName]; exists { return fmt.Errorf("Failed to register the obejct: another obejct with that name already exists") } base.Objects[displayName] = new return nil } func (base *ResourceManager) String() string { var outp, jsonErr = json.Marshal(base) if jsonErr != nil { return fmt.Sprintf("Failed to parse settings: %s", jsonErr.Error()) } return string(outp) }