public ToolStripSkinColorTable(SystemContext InSystem) { CurrentSystem = InSystem; }
public void LoadFromDisk(SystemContext InSystemContext) { var fs = InSystemContext.GetFilesystem(); if (!fs.DirectoryExists("/Shiftum42/Skins/Loaded") || !fs.FileExists("/Shiftum42/Skins/Loaded/data.dat")) { fs.CreateDirectory("/Shiftum42/Skins/Loaded"); _skin = new Skin(); _skinimages = new Dictionary <string, Image>(); Console.WriteLine("No existing skin found. Writing default skin as Michael skin format..."); fs.WriteAllText("/Shiftum42/Skins/Loaded/data.dat", JsonConvert.SerializeObject(_skin)); } else { _skinimages.Clear(); Console.WriteLine("Existing skin found."); Console.WriteLine("Opening skin data..."); using (var stream = fs.OpenText("/Shiftum42/Skins/Loaded/data.dat")) { Console.WriteLine(" --> Determining skin format..."); // Michael format is JSON, Phil format is not. JSON must start with a "{". if (stream.Peek() == '{') { Console.WriteLine(" --> Detected Michael-formatted skin."); _skin = JsonConvert.DeserializeObject <Skin>(stream.ReadToEnd()); Console.WriteLine(" --> JSON skin data loaded."); } else { Console.WriteLine(" --> Detected Philip Skin."); Console.WriteLine(" --> Ladies and gentlemen, fasten your seatbelts. This is gonna f*****g suck."); LoadPhilipSkin(fs, stream); } } Console.WriteLine(" --> Done loading skin data file."); if (_skinimages.Keys.Count == 0) { Console.WriteLine(" --> Loading images..."); foreach (var path in fs.GetFiles("/Shiftum42/Skins/Loaded")) { if (!path.EndsWith("data.dat")) { var image = fs.LoadImage(path); string filenameWithoutExtension = Path.GetFileNameWithoutExtension(path); Console.WriteLine(" --> Loaded: {0}", path); Console.WriteLine(" --> Storing as: {0}", filenameWithoutExtension); _skinimages.Add(filenameWithoutExtension, image); } } } } }
public ToolStripSkinRenderer(SystemContext InSystem) : base(new ToolStripSkinColorTable(InSystem)) { CurrentSystem = InSystem; }