예제 #1
0
        void initialize_db()
        {
            // if settings database does not exist, generate it
            if (Directory.Exists(cotangent.CCOptions.SettingsDBPath) == false)
            {
                populate_defaults();
                SettingsSerializer serializer = new SettingsSerializer();
                serializer.GenerateSettingsFolder(this, cotangent.CCOptions.SettingsDBPath);
                reset_db();
            }

            try {
                DebugUtil.Log("Reading settings database from {0}", cotangent.CCOptions.SettingsDBPath);
                populate_from_disk(cotangent.CCOptions.SettingsDBPath);
            } catch (Exception e) {
                DebugUtil.Log("MachineDatabase: fatal exception restoring : " + e.Message);
                if (FPlatform.InUnityEditor())
                {
                    throw;
                }
            }

            // [TODO] sync w/ new known settings?
            List <MachinePreset> new_defaults = populate_defaults();

            foreach (var preset in new_defaults)
            {
                SettingsSerializer serializer  = new SettingsSerializer();
                Manufacturer       mfg         = FindManufacturerByUUID(preset.Settings.BaseMachine.ManufacturerUUID);
                MachineModel       model       = FindModelByUUID(mfg, preset.Settings.BaseMachine.ModelUUID);
                string             machinePath = serializer.CreateNewSettingsFolder(this, mfg, model, cotangent.CCOptions.SettingsDBPath);
                preset.SourcePath = Path.Combine(machinePath, preset.Settings.Identifier + ".txt");
                serializer.StoreSettings(this, preset, true);
            }
        }
예제 #2
0
        public MachineModel CreateManufacturer(string mfgName, string mfgUUID, string defaultMachineUUID)
        {
            Manufacturer new_mfg = new Manufacturer()
            {
                Name = mfgName, UUID = mfgUUID
            };

            add_manufacturer(new_mfg);

            MachinePreset preset = new MachinePreset(new GenericPrinterSettings(mfgName, mfgUUID, defaultMachineUUID));

            MachineModel model = new MachineModel()
            {
                Name    = "Unknown", UUID = defaultMachineUUID,
                Presets = new List <MachinePreset>()
                {
                    preset
                }
            };

            add_machine(new_mfg, model);

            SettingsSerializer serializer  = new SettingsSerializer();
            string             machinePath = serializer.CreateNewSettingsFolder(this, new_mfg, model, cotangent.CCOptions.SettingsDBPath);

            preset.Settings.Identifier = "Defaults";
            preset.Settings.BaseMachine.ManufacturerName = mfgName;
            preset.Settings.BaseMachine.ManufacturerUUID = mfgUUID;
            preset.Settings.BaseMachine.ModelIdentifier  = "(Unknown)";
            preset.Settings.BaseMachine.ModelUUID        = defaultMachineUUID;

            preset.SourcePath = Path.Combine(machinePath, "Default.txt");
            serializer.StoreSettings(this, preset, true);

            model.Presets.Add(preset);
            model.DefaultPreset = preset;

            return(model);
        }