package org.studiorailgun.sim.config;

import org.studiorailgun.sim.config.creature.CreatureDefManager;
import org.studiorailgun.sim.config.space.LocationDefinitionManager;
import org.studiorailgun.sim.config.space.RegionDefinitionManager;

/**
 * Config data for the simulator
 */
public class Config {
    
    /**
     * Manages the creature definitions
     */
    CreatureDefManager creatureDefManager;

    /**
     * Manages the location definitions
     */
    LocationDefinitionManager locationDefinitionManager;

    /**
     * Manages the region definitions
     */
    RegionDefinitionManager regionDefinitionManager;

    /**
     * Initializes the config object
     * @return The config object
     */
    public static Config init(){
        Config rVal = new Config();

        
        //load sim data
        rVal.regionDefinitionManager = RegionDefinitionManager.loadManager();
        rVal.locationDefinitionManager = LocationDefinitionManager.loadManager();
        rVal.creatureDefManager = CreatureDefManager.loadManager();

        return rVal;
    }

    public CreatureDefManager getCreatureDefManager() {
        return creatureDefManager;
    }

    public LocationDefinitionManager getLocationDefinitionManager() {
        return locationDefinitionManager;
    }

    public RegionDefinitionManager getRegionDefinitionManager() {
        return regionDefinitionManager;
    }

    

}
