Example #1
0
        public static void SetDefaultConfigFromFile()
        {
            string file = @"scripts\GlowingBrakes\Configs\defaultConfig.xml";

            if (File.Exists(file))
            {
                XmlSerializer serializer = new XmlSerializer(typeof(VehicleConfig));
                try
                {
                    FileStream fs     = new FileStream(file, FileMode.Open);
                    XmlReader  reader = new XmlTextReader(fs);
                    if (serializer.CanDeserialize(reader))
                    {
                        // why do i need to cast if it should already be able to figure out the return type
                        loadedDefaultConfig = (VehicleConfig)serializer.Deserialize(reader);
                        Logger.Log(Logger.Level.INFO, "Using custom defaultConfig.xml");
                    }
                    reader.Close();
                    fs.Close();
                }
                catch (Exception e)
                {
                    Logger.Log(Logger.Level.ERROR, $"{file} Read error: {e.Message}");
                    Logger.Log(Logger.Level.WARN, "Using hardcoded defaults");
                }
            }
            else
            {
                Logger.Log(Logger.Level.INFO, "No defaultConfig.xml found - using hardcoded defaults");
                Logger.Log(Logger.Level.INFO, "Default config written to defaultConfig.xml, check it out!");
                Utility.WriteDefaultsFile();
            }
        }
Example #2
0
        public static void WriteDefaultsFile()
        {
            Logger.Log(Logger.Level.INFO, "Writing a default config.");
            VehicleConfig cfg        = new VehicleConfig();
            XmlSerializer serializer = new XmlSerializer(typeof(VehicleConfig));
            TextWriter    writer     = new StreamWriter(@"scripts\GlowingBrakes\Configs\defaultConfig.xml");

            serializer.Serialize(writer, cfg);
            writer.Close();
        }
Example #3
0
        public GlowingBrakesMain()
        {
            Logger.Clear();
            Logger.Log(Logger.Level.INFO, $"Glowing Brakes {Utility.Version}");
            Logger.Log(Logger.Level.INFO, $"Game version {Game.Version}");
            _glowVehicles   = new List <GlowVehicle>();
            _vehicleConfigs = new List <VehicleConfig>();
            _timer          = new Timer(500);
            Tick           += OnTick;
            Aborted        += OnAbort;

            VehicleConfig.SetDefaultConfigFromFile();
            ReadConfigs();
            VehicleExtensions.InitializeOffsets(GlowingBrakes.Settings.Get());
        }
Example #4
0
        // config is passed as reference, right?
        public GlowVehicle(Vehicle vehicle, List <VehicleConfig> configs)
        {
            bool found = false;

            foreach (var config in configs)
            {
                if (Game.GenerateHash(config.Model) == vehicle.Model)
                {
                    _config = config;
                    found   = true;
                    break;
                }
            }
            if (!found)
            {
                _config = new VehicleConfig();
            }

            _vehicle     = vehicle;
            CurrVelocity = Function.Call <Vector3>(Hash.GET_ENTITY_SPEED_VECTOR, Vehicle, true);
            LastVelocity = CurrVelocity;
            Acceleration = (CurrVelocity - LastVelocity) / Game.LastFrameTime;
        }