예제 #1
0
    public void M_SaveUnitToFile(string unitName, UnitModule unitModuleToSave)
    {
        SavedModule unitToSave = SaveSubModules(unitModuleToSave);
        string      jsonString = JsonUtility.ToJson(unitToSave);

        SaveToFile(unitName, jsonString);
    }
예제 #2
0
    // Use this for initialization
    void Start()
    {
        GameObject gameUtils = GameObject.Find("GameUtils");

        m_saveLoadHandler = gameUtils.GetComponent <SaveLoadHandler>();
        m_unitBuilder     = gameUtils.GetComponent <UnitBuilder>();
        string      unitToLoad  = m_thisUnit.ToString();
        SavedModule savedUnit   = m_saveLoadHandler.M_LoadUnitFromFile(unitToLoad);
        GameObject  spawnedUnit = m_unitBuilder.M_BuildUnit(savedUnit, transform);

        spawnedUnit.GetComponent <BaseUnit>().m_alignment = m_alignment;
    }
예제 #3
0
    SavedModule SaveSubModules(UnitModule currentModule)
    {
        SavedModule moduleToSave = new SavedModule();

        moduleToSave.moduleType = currentModule.m_moduleType.ToString();
        foreach (UnitSubModule module in currentModule.m_modules.Values)
        {
            SavedModule subModule = SaveSubModules(module);
            subModule.attachedToIndex = module.m_attachedToIndex;
            moduleToSave.modules.Add(subModule);
        }
        return(moduleToSave);
    }
예제 #4
0
    public SavedModule M_LoadUnitFromFile(string unitName)
    {
        string jsonString = LoadFromFile(m_unitSaveFolder + unitName + m_fileFormat);

        SavedModule unitToLoad = JsonUtility.FromJson <SavedModule>(jsonString);

        return(unitToLoad);

        //////// This stuff should be in showroom manager, or buildroom
        //GameObject newUnit = m_unitBuilder.M_BuildUnit((ModuleType)Enum.Parse(typeof(ModuleType), unitToLoad.moduleType), m_spawnPosition);
        //Destroy(m_currentVehicle);
        //m_currentVehicle = newUnit;
        //m_currentHardpoint = null;
    }
예제 #5
0
    GameObject BuildSubModule(SavedModule moduleToBuild, GameObject parent)
    {
        GameObject newModuleObject = M_BuildModule(Helpers.StringToModuleType(moduleToBuild.moduleType), FindHardpointByIndex(parent, moduleToBuild.attachedToIndex));

        for (int i = 0; i < moduleToBuild.modules.Count; i++)
        {
            GameObject subModule       = BuildSubModule(moduleToBuild.modules[i], newModuleObject);
            BaseWeapon subModuleWeapon = subModule.GetComponent <BaseWeapon>();
            if (subModuleWeapon)
            {
                newModuleObject.GetComponent <UnitModule>().m_weapons.Add(subModuleWeapon);
            }
        }
        return(newModuleObject);
    }
예제 #6
0
    public GameObject M_BuildUnit(SavedModule unit, Transform spawnPosition)
    {
        GameObject newUnit = M_BuildUnit((ModuleType)System.Enum.Parse(typeof(ModuleType), unit.moduleType), spawnPosition);
        int        count   = unit.modules.Count;

        for (int i = 0; i < unit.modules.Count; i++)
        {
            GameObject subModule       = BuildSubModule(unit.modules[i], newUnit);
            BaseWeapon subModuleWeapon = subModule.GetComponent <BaseWeapon>();
            if (subModuleWeapon)
            {
                newUnit.GetComponent <UnitModule>().m_weapons.Add(subModuleWeapon);
            }
        }
        return(newUnit);
    }