protected virtual void buildSaveData(IkadnWriter writer) { var baseSettings = new IkonComposite(BaseSettingsTag); baseSettings.Add(LanguageKey, new IkonText(this.LanguageId)); baseSettings.Add(LastGameKey, this.LastGame.BuildSaveData()); baseSettings.Compose(writer); }
static void Main(string[] args) { if (args.Length < 1) { Console.WriteLine("Usage: TextureAtlas <folder> [options]"); return; } else { ReadParameters(args); } var builder = new AtlasBuilder( items.Select(x => new KeyValuePair <string, Size>(x.Key, x.Value.Size)).ToArray(), margin, new Size(width, heigth) ); var atlasIkon = new IkonComposite(compositeTag); var atlasImage = new Bitmap(width, heigth); using (Graphics g = Graphics.FromImage(atlasImage)) foreach (var x in builder.Build()) { Console.WriteLine(x.Key + " " + x.Value); string[] nameParams = x.Key.Split('-'); var bounds = x.Value; foreach (var param in nameParams) { if (param.StartsWith("hStretch")) { int amount; if (!int.TryParse(param.Substring("hStretch".Length), out amount)) { amount = 1; } bounds.Inflate(-amount, 0); } } var textureCoords = new IkonArray(); textureCoords.Add(serializeRectangle(bounds.Left, bounds.Top)); textureCoords.Add(serializeRectangle(bounds.Right, bounds.Top)); textureCoords.Add(serializeRectangle(bounds.Right, bounds.Bottom)); textureCoords.Add(serializeRectangle(bounds.Left, bounds.Bottom)); atlasIkon.Add(nameParams[0], textureCoords); var destRect = new Rectangle(x.Value.Location, x.Value.Size); g.DrawImage(items[x.Key], destRect); } using (var outStream = new StreamWriter(outputIkonPath)) { var writer = new IkadnWriter(outStream); atlasIkon.Compose(writer); } atlasImage.Save(outputImagePath, ImageFormat.Png); }
protected override void buildSaveData(IkadnWriter writer) { base.buildSaveData(writer); var settings = new IkonComposite(WinformsSettingsTag); settings.Add(GuiScaleKey, new IkonFloat(this.GuiScale)); settings.Add(FpsBusyWaitKey, new IkonInteger((int)this.FramerateBusySpinUsage)); settings.Add(FpsKey, new IkonInteger(this.Framerate)); settings.Add(FpsUnlimitedKey, new IkonInteger(this.UnlimitedFramerate ? 1 : -1)); settings.Add(VSyncKey, new IkonInteger(this.VSync ? 1 : -1)); settings.Add(ReportTechnologyKey, new IkonInteger(this.ReportTechnology ? 1 : -1)); settings.Compose(writer); }
protected override void buildSaveData(IkadnWriter writer) { base.buildSaveData(writer); var settings = new IkonComposite(WinformsSettingsTag) { { GuiScaleKey, new IkonFloat(this.GuiScale) }, { FpsBusyWaitKey, new IkonInteger((int)this.FramerateBusySpinUsage) }, { FpsKey, new IkonInteger(this.Framerate) }, { FpsUnlimitedKey, new IkonInteger(this.UnlimitedFramerate ? 1 : -1) }, { VSyncKey, new IkonInteger(this.VSync ? 1 : -1) }, { ReportContactKey, new IkonInteger(this.ReportContact ? 1 : -1) }, { ReportTechnologyKey, new IkonInteger(this.ReportTechnology ? 1 : -1) }, { ShowScanRangeKey, new IkonInteger(this.ShowScanRange ? 1 : -1) } }; settings.Compose(writer); }