private static void ParseSalvageType(string path) { lua = new Lua(); lua.RegisterFunction("StartSalvageConfig", null, typeof(HWData).GetMethod("StartSalvageConfig")); lua.DoFile(path); string name = Path.GetFileNameWithoutExtension(path).ToLower(); float pixelSize = 1; float resourceValue = 0; Vector4 pixelColor = Vector4.Zero; foreach (KeyValuePair <object, object> de in salvageConfig) { switch (de.Key.ToString()) { case "pixelSize": string text = de.Value.ToString(); text = text.Replace(",", "."); pixelSize = float.Parse(text, InvariantCulture); break; case "resourceValue": text = de.Value.ToString(); text = text.Replace(",", "."); resourceValue = float.Parse(text, InvariantCulture); break; case "pixelColour": pixelColor = LuaMap.LuaTableToVector4((LuaTable)de.Value); break; } } SalvageType existingType = null; foreach (SalvageType type in SalvageType.SalvageTypes) { if (type.Name == name) { existingType = type; break; } } //Check if a type with that name already exists (because of multiple data paths) if (existingType == null) { new SalvageType(name, pixelSize, resourceValue, pixelColor); } else { //Overwrite existing style existingType.Name = name; existingType.PixelSize = pixelSize; existingType.ResourceValue = resourceValue; existingType.PixelColor = pixelColor; } }
public Salvage(SalvageType type, Vector3 position, Vector3 rotation, float multiplier) : base(position, rotation) { Type = type; Rotation = rotation; Multiplier = multiplier; CreateMesh(); Salvages.Add(this); AllowRotation = true; }
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { if (value is string) { SalvageType type = SalvageType.GetTypeFromName((string)value); if (type != null) { return(type); } else { return(SalvageType.SalvageTypes[0]); } } return(base.ConvertFrom(context, culture, value)); }
public static void AddSalvage(string type, LuaTable position, float resources, float rotX, float rotY, float rotZ, float unknown) { Vector3 pos = LuaTableToVector3(position); Vector3 rot = Vector3.Zero; rot.X = rotX; rot.Y = rotY; rot.Z = rotZ; string newType = type.ToLower(); SalvageType salvageType = SalvageType.GetTypeFromName(newType); if (salvageType == null) { new Problem(ProblemTypes.WARNING, "Salvage type \"" + newType + "\" not found. Skipping salvage."); return; } new Salvage(salvageType, pos, rot, resources); }