private static TdfNode ToTdfNode(Tdf weapon) { var n = new TdfNode(weapon.ID); n.Entries["ID"] = TdfConvert.ToStringInfo(weapon.WeaponId); n.Entries["Name"] = TdfConvert.ToStringInfo(weapon.Name); n.Entries["Range"] = TdfConvert.ToStringInfo(weapon.Range); n.Entries["Reloadtime"] = TdfConvert.ToStringInfo(weapon.Reloadtime); n.Entries["Weaponvelocity"] = TdfConvert.ToStringInfo(weapon.Weaponvelocity); n.Entries["Areaofeffect"] = TdfConvert.ToStringInfo(weapon.Areaofeffect); n.Entries["Burst"] = TdfConvert.ToStringInfo(weapon.Burst); n.Entries["BurstRate"] = TdfConvert.ToStringInfo(weapon.BurstRate); n.Entries["EnergyPerShot"] = TdfConvert.ToStringInfo(weapon.EnergyPerShot); n.Entries["Accuracy"] = TdfConvert.ToStringInfo(weapon.Accuracy); n.Entries["StartVelocity"] = TdfConvert.ToStringInfo(weapon.StartVelocity); n.Entries["WeaponAcceleration"] = TdfConvert.ToStringInfo(weapon.WeaponAcceleration); n.Entries["WeaponTimer"] = TdfConvert.ToStringInfo(weapon.WeaponTimer); n.Entries["Tolerance"] = TdfConvert.ToStringInfo(weapon.Tolerance); n.Entries["EdgeEffectiveness"] = TdfConvert.ToStringInfo(weapon.EdgeEffectiveness); n.Entries["Color1"] = TdfConvert.ToStringInfo(weapon.Color); n.Entries["Color2"] = TdfConvert.ToStringInfo(weapon.Color2); n.Entries["SprayAngle"] = TdfConvert.ToStringInfo(weapon.SprayAngle); n.Entries["PitchTolerance"] = TdfConvert.ToStringInfo(weapon.PitchTolerance); n.Entries["MinBarrelAngle"] = TdfConvert.ToStringInfo(weapon.MinBarrelAngle); var damage = new TdfNode("DAMAGE"); damage.Entries["DEFAULT"] = TdfConvert.ToStringInfo(weapon.Default); n.Keys["DAMAGE"] = damage; return(n); }
public static void WriteWeaponTdfFile(Tdf weapon) { TdfNode sourceRoot; using (var f = new StreamReader(weapon.File, Encoding.GetEncoding(1252))) { sourceRoot = TdfNode.LoadTdf(f); } var targetWeaponInfo = ToTdfNode(weapon); var instructions = TdfCompare.ComputePropertyMapping(sourceRoot.Keys[weapon.ID], targetWeaponInfo, 1); if (sourceRoot.Keys[weapon.ID].Keys.ContainsKey("DAMAGE")) { instructions.AddRange(TdfCompare.ComputePropertyMapping(sourceRoot.Keys[weapon.ID].Keys["DAMAGE"], targetWeaponInfo.Keys["DAMAGE"], 2)); } TdfCompare.PerformInstructions(weapon.File, instructions); }
private static Tdf ToTdf(string file, TdfNode weaponInfo) { var tdf = new Tdf(); tdf.File = file; tdf.ID = weaponInfo.Name; tdf.WeaponId = weaponInfo.GetStringOrDefault("ID"); tdf.Name = weaponInfo.GetStringOrDefault("Name"); tdf.Range = weaponInfo.GetDoubleOrDefault("Range"); tdf.Reloadtime = weaponInfo.GetDoubleOrDefault("Reloadtime"); tdf.Weaponvelocity = weaponInfo.GetDoubleOrDefault("Weaponvelocity"); tdf.Areaofeffect = weaponInfo.GetDoubleOrDefault("Areaofeffect"); tdf.Burst = weaponInfo.GetDoubleOrDefault("Burst"); tdf.BurstRate = weaponInfo.GetDoubleOrDefault("BurstRate"); tdf.EnergyPerShot = weaponInfo.GetDoubleOrDefault("EnergyPerShot"); tdf.Accuracy = weaponInfo.GetDoubleOrDefault("Accuracy"); tdf.StartVelocity = weaponInfo.GetDoubleOrDefault("StartVelocity"); tdf.WeaponAcceleration = weaponInfo.GetDoubleOrDefault("WeaponAcceleration"); tdf.WeaponTimer = weaponInfo.GetDoubleOrDefault("WeaponTimer"); tdf.Tolerance = weaponInfo.GetDoubleOrDefault("Tolerance"); tdf.EdgeEffectiveness = weaponInfo.GetDoubleOrDefault("EdgeEffectiveness"); tdf.Color = weaponInfo.GetStringOrDefault("Color"); tdf.Color2 = weaponInfo.GetStringOrDefault("Color2"); tdf.SprayAngle = weaponInfo.GetDoubleOrDefault("SprayAngle"); tdf.PitchTolerance = weaponInfo.GetDoubleOrDefault("PitchTolerance"); tdf.MinBarrelAngle = weaponInfo.GetDoubleOrDefault("MinBarrelAngle"); if (weaponInfo.Keys.TryGetValue("DAMAGE", out var damageInfo)) { tdf.Default = damageInfo.GetDoubleOrDefault("DEFAULT"); } tdf.Changed = false; return(tdf); }