public IActionResult updateBaker(int id, [FromBody] Baker baker) { // make sure that the id of the path matches the baker object that was passed in if (id != baker.id) { return(BadRequest( new { error = $"Error, baker id must match route id" } )); } // make sure we are trying to update a REAL baker if (!_context.Bakers.Any(b => b.id == id)) { return(NotFound( new { error = $"Error, baker with id {id} not found" } )); } // looks ok! update the baker in the application context _context.Update(baker); _context.SaveChanges(); return(Ok(baker)); }
public NBakeService() { InitializeComponent(); Baker = new Baker(); }
public static void Main(string[] args) { //// Template Method ClothingStore clothingStore = new ClothingStore(); MobilePhoneStore mobilePhoneStore = new MobilePhoneStore(); clothingStore.Shopping(); mobilePhoneStore.Shopping(); //// Strategy Car auto = new Car(5, "Chevrolet", new PetrolMove()); auto.Move(); auto.Movable = new ElectricMove(); auto.Move(); //// Iterator var replies1 = new List <int>() { 1, 4, 7 }; var replies2 = new List <int>() { 2, 5, 8 }; var replies3 = new List <int>() { 3, 6, 9 }; var mas = new List <List <int> >() { replies1, replies2, replies3 }; var res = mas.Cartesian((x, y) => 10 * x + y); Console.WriteLine(string.Join("\n", res)); //// Builder // содаем объект пекаря Baker baker = new Baker(); // создаем билдер для ржаного хлеба BreadBuilder builder = new RyeBreadBuilder(); // выпекаем Bread ryeBread = baker.Bake(builder); Console.WriteLine(ryeBread.ToString()); // создаем билдер для пшеничного хлеба builder = new WheatBreadBuilder(); Bread wheatBread = baker.Bake(builder); Console.WriteLine(wheatBread.ToString()); //// Factory BreadFactory breadFactory = new RyeBreadFactory("ООО Хлебовал"); BreadF ryeBreadF = breadFactory.Create(); breadFactory = new WheatBreadFactory("Хлеб от Палыча"); BreadF wheatBreadF = breadFactory.Create(); ////ChainOfResponsibility Receiver receiver = new Receiver(false, true, true); PaymentHandler bankPaymentHandler = new BankPaymentHandler(); PaymentHandler moneyPaymentHnadler = new MoneyPaymentHandler(); PaymentHandler paypalPaymentHandler = new PayPalPaymentHandler(); bankPaymentHandler.Successor = paypalPaymentHandler; paypalPaymentHandler.Successor = moneyPaymentHnadler; ////ChainOfResponsibility with Delegate DelegateReceiver delegateReceiver = new DelegateReceiver(false, true, true); Pay pay = new Pay(); pay.Notify += Display; pay.BankPaymentHandler(delegateReceiver); Console.ReadLine(); }
// List<UUID> m_lastInventoryItemIDs = new List<UUID>(); public AvatarAppearance BakeAppearance(UUID agentID, int cof_version) { AvatarAppearance appearance = m_avatarService.GetAppearance(agentID); if (appearance == null) { MainConsole.Instance.Error("[ServerSide appearance]: Unable to retrieve avatar appearance for bake!"); return(new AvatarAppearance()); } List <BakeType> pendingBakes = new List <BakeType> (); InventoryFolderBase cof = m_inventoryService.GetFolderForType(agentID, InventoryType.Unknown, FolderType.CurrentOutfit); if (cof.Version < cof_version) { int i = 0; while (i < 10) { cof = m_inventoryService.GetFolderForType(agentID, InventoryType.Unknown, FolderType.CurrentOutfit); System.Threading.Thread.Sleep(100); if (cof.Version >= cof_version) { break; } i++; } } List <InventoryItemBase> items = m_inventoryService.GetFolderItems(agentID, cof.ID); foreach (InventoryItemBase itm in items) { MainConsole.Instance.Info("[ServerSide appearance]: Baking " + itm.Name); } for (int i = 0; i < Textures.Length; i++) { Textures [i] = new TextureData(); } WearableData alphaWearable = null; List <UUID> currentItemIDs = new List <UUID> (); foreach (InventoryItemBase itm in items) { if (itm.AssetType == (int)AssetType.Link) { UUID assetID = m_inventoryService.GetItemAssetID(agentID, itm.AssetID); if (appearance.Wearables.Any((w) => w.GetItem(assetID) != UUID.Zero)) { currentItemIDs.Add(assetID); //if (m_lastInventoryItemIDs.Contains(assetID)) // continue; WearableData wearable = new WearableData(); AssetBase asset = m_assetService.Get(assetID.ToString()); if (asset != null && asset.TypeAsset != AssetType.Object) { var assetData = new byte [asset.Data.Length]; asset.Data.CopyTo(assetData, 0); asset.Dispose(); wearable.Asset = new AssetClothing(assetID, assetData); if (wearable.Asset.Decode()) { wearable.AssetID = assetID; wearable.AssetType = wearable.Asset.AssetType; wearable.WearableType = wearable.Asset.WearableType; wearable.ItemID = itm.AssetID; if (wearable.WearableType == WearableType.Alpha) { alphaWearable = wearable; continue; } AppearanceManager.DecodeWearableParams(wearable, ref Textures); } } if (asset != null) // have asset but not an object { asset.Dispose(); } } } } /*foreach (UUID id in m_lastInventoryItemIDs) * { * if (!currentItemIDs.Contains(id)) * { * OpenMetaverse.AppearanceManager.WearableData wearable = new OpenMetaverse.AppearanceManager.WearableData(); * AssetBase asset = m_assetService.Get(id.ToString()); * if (asset != null && asset.TypeAsset != AssetType.Object) * { * wearable.Asset = new AssetClothing(id, asset.Data); * if (wearable.Asset.Decode()) * { * foreach (KeyValuePair<AvatarTextureIndex, UUID> entry in wearable.Asset.Textures) * { * int i = (int)entry.Key; * * Textures[i].Texture = null; * Textures[i].TextureID = UUID.Zero; * } * } * } * } * }*/ //m_lastInventoryItemIDs = currentItemIDs; for (int i = 0; i < Textures.Length; i++) { /*if (Textures[i].TextureID == UUID.Zero) * continue; * if (Textures[i].Texture != null) * continue;*/ AssetBase asset = m_assetService.Get(Textures [i].TextureID.ToString()); if (asset != null) { var assetData = new byte [asset.Data.Length]; asset.Data.CopyTo(assetData, 0); asset.Dispose(); Textures [i].Texture = new AssetTexture(Textures [i].TextureID, assetData); Textures [i].Texture.Decode(); } } for (int bakedIndex = 0; bakedIndex < AppearanceManager.BAKED_TEXTURE_COUNT; bakedIndex++) { AvatarTextureIndex textureIndex = AppearanceManager.BakeTypeToAgentTextureIndex((BakeType)bakedIndex); if (Textures [(int)textureIndex].TextureID == UUID.Zero) { // If this is the skirt layer and we're not wearing a skirt then skip it if (bakedIndex == (int)BakeType.Skirt && appearance.Wearables [(int)WearableType.Skirt].Count == 0) { continue; } pendingBakes.Add((BakeType)bakedIndex); } } int start = Environment.TickCount; List <UUID> newBakeIDs = new List <UUID> (); foreach (BakeType bakeType in pendingBakes) { UUID assetID = UUID.Zero; List <AvatarTextureIndex> textureIndices = AppearanceManager.BakeTypeToTextures(bakeType); Baker oven = new Baker(bakeType); for (int i = 0; i < textureIndices.Count; i++) { int textureIndex = (int)textureIndices [i]; TextureData texture = Textures [textureIndex]; texture.TextureIndex = (AvatarTextureIndex)textureIndex; if (alphaWearable != null) { if (alphaWearable.Asset.Textures.ContainsKey(texture.TextureIndex) && alphaWearable.Asset.Textures [texture.TextureIndex] != UUID.Parse("5748decc-f629-461c-9a36-a35a221fe21f")) { assetID = alphaWearable.Asset.Textures [texture.TextureIndex]; goto bake_complete; } } oven.AddTexture(texture); } oven.Bake(); byte [] assetData = oven.BakedTexture.AssetData; AssetBase newBakedAsset = new AssetBase(UUID.Random()); newBakedAsset.Data = assetData; newBakedAsset.TypeAsset = AssetType.Texture; newBakedAsset.Name = "ServerSideAppearance Texture"; newBakedAsset.Flags = AssetFlags.Deletable | AssetFlags.Collectable | AssetFlags.Rewritable | AssetFlags.Temporary; var faceTextureID = appearance.Texture.FaceTextures [(int)AppearanceManager.BakeTypeToAgentTextureIndex(bakeType)].TextureID; if (faceTextureID != UUID.Zero) { try { m_assetService.Delete(faceTextureID); } catch { MainConsole.Instance.ErrorFormat("[Serverside apperance]: Unable to delete asset {0} during bake", faceTextureID); } } assetID = m_assetService.Store(newBakedAsset); bake_complete: newBakeIDs.Add(assetID); MainConsole.Instance.WarnFormat("[ServerSide appearance]: Baked {0}", assetID); int place = (int)AppearanceManager.BakeTypeToAgentTextureIndex(bakeType); appearance.Texture.FaceTextures [place].TextureID = assetID; } MainConsole.Instance.ErrorFormat("[ServerSide appearance]: Baking took {0} ms", (Environment.TickCount - start)); appearance.Serial = cof_version + 1; cof = m_inventoryService.GetFolderForType(agentID, InventoryType.Unknown, FolderType.CurrentOutfit); if (cof.Version > cof_version) { //it changed during the baking... kill it with fire! return(null); } m_avatarService.SetAppearance(agentID, appearance); return(appearance); }
public Baker PutBaker(Baker baker) { throw new NotImplementedException(); }
public void DeleteBaker(Baker baker) { throw new NotImplementedException(); }
private void Add() { var id = ReadString("Input entry name"); if (_storage.FindData(id) != null) { Cancel("Person with this ID is already added. "); return; } Console.WriteLine("Input type:"); Console.WriteLine("1: Student"); Console.WriteLine("2: Baker"); Console.WriteLine("3: Entrepreneur"); var type = ReadNumber("Input type", 1, 3); var firstName = ReadString("First name"); var lastName = ReadString("Last name"); var birthDate = ReadString("Birth date"); DateTime date; while (!DateTime.TryParse(birthDate, out date)) { Console.WriteLine("Invalid date."); birthDate = ReadString("Birth date"); } var canSkydive = ReadBool("Can skydive?"); if (type == 1) { var grade = 0; while (grade < 1) { grade = ReadNumber("Input grade", 0, 9); } var studId = ReadString("Student ID (dddd/wwwwww)"); while (!Student.CheckStudentId(studId)) { Console.WriteLine( "Invalid student ID. Valid format: dddd/wwwwww where d is [0-9] and w is [a-zA-Z]"); studId = ReadString("Student ID"); } var stud = new Student(id); stud.FirstName = firstName; stud.LastName = lastName; stud.BirthDate = date; stud.Grade = (ushort)grade; stud.StudentId = studId; stud.CanDive = canSkydive; _studentTable.WriteListContent(new[] { stud }); var add = ReadBool("Confirm adding?"); if (add) { _storage.Add(stud); } } if (type == 2) { var baked = ReadNumber("Cakes baked", 0); var baker = new Baker(id); baker.FirstName = firstName; baker.LastName = lastName; baker.BirthDate = date; baker.CakesBaked = baked; baker.CanDive = canSkydive; _bakerTable.WriteListContent(new[] { baker }); var add = ReadBool("Confirm adding?"); if (add) { _storage.Add(baker); } } if (type == 3) { var income = ReadNumber("Monthly income"); var entrepreneur = new Entrepreneur(id); entrepreneur.FirstName = firstName; entrepreneur.LastName = lastName; entrepreneur.BirthDate = date; entrepreneur.MonthlyIncome = income; entrepreneur.CanDive = canSkydive; _entrepreneurTable.WriteListContent(new[] { entrepreneur }); var add = ReadBool("Confirm adding?"); if (add) { _storage.Add(entrepreneur); } } }
static void Main(string[] args) { #region Creational //-Factory Method- Developer dev = new PanelDeveloper("ООО КирпичСтрой"); House house2 = dev.Create(); dev = new WoodDeveloper("Частный застройщик"); House house = dev.Create(); //-Abstract Factory- GofPatterns.Creational.Hero elf = new GofPatterns.Creational.Hero(new ElfFactory()); elf.Hit(); elf.Run(); GofPatterns.Creational.Hero voin = new GofPatterns.Creational.Hero(new VoinFactory()); voin.Hit(); voin.Run(); //-Singleton- Computer comp = new Computer(); comp.Launch("Windows 8.1"); Console.WriteLine(comp.OS.Name); // у нас не получится изменить ОС, так как объект уже создан comp.OS = OS.getInstance("Windows 10"); //-Prototype- IFigure figure = new Rectangle(30, 40); IFigure clonedFigure = figure.Clone(); figure.GetInfo(); clonedFigure.GetInfo(); figure = new Circle(30); clonedFigure = figure.Clone(); figure.GetInfo(); clonedFigure.GetInfo(); //-Builder- // содаем объект пекаря Baker baker = new Baker(); // создаем билдер для ржаного хлеба BreadBuilder builder = new RyeBreadBuilder(); // выпекаем Bread ryeBread = baker.Bake(builder); Console.WriteLine(ryeBread.ToString()); // оздаем билдер для пшеничного хлеба builder = new WheatBreadBuilder(); Bread wheatBread = baker.Bake(builder); Console.WriteLine(wheatBread.ToString()); #endregion #region Behavioral //-Strategy- Car auto = new Car(4, "Volvo", new PetrolMove()); auto.Move(); auto.Movable = new ElectricMove(); auto.Move(); //-Observer- Stock stock = new Stock(); Bank bank = new Bank("ЮнитБанк", stock); Broker broker = new Broker("Иван Иваныч", stock); // имитация торгов stock.Market(); // брокер прекращает наблюдать за торгами broker.StopTrade(); // имитация торгов stock.Market(); //-Strategy- Pult pult = new Pult(); TV tv = new TV(); pult.SetCommand(new TVOnCommand(tv)); pult.PressButton(); pult.PressUndo(); Microwave microwave = new Microwave(); // 5000 - время нагрева пищи pult.SetCommand(new MicrowaveCommand(microwave, 5000)); pult.PressButton(); //-Iterator- Library library = new Library(); Reader reader = new Reader(); reader.SeeBooks(library); //-State- Water water = new Water(new LiquidWaterState()); water.Heat(); water.Frost(); water.Frost(); //-ChainOfResponsibility- Handler h1 = new ConcreteHandler1(); Handler h2 = new ConcreteHandler2(); h1.Successor = h2; h1.HandleRequest(2); //-Interpreter- Context context = new Context(); // определяем набор переменных int x = 5; int y = 8; int z = 2; // добавляем переменные в контекст context.SetVariable("x", x); context.SetVariable("y", y); context.SetVariable("z", z); // создаем объект для вычисления выражения x + y - z IExpression expression = new SubtractExpression( new AddExpression( new NumberExpression("x"), new NumberExpression("y") ), new NumberExpression("z") ); int result = expression.Interpret(context); Console.WriteLine("результат: {0}", result); //-Mediator- ManagerMediator mediator = new ManagerMediator(); Colleague customer = new CustomerColleague(mediator); Colleague programmer = new ProgrammerColleague(mediator); Colleague tester = new TesterColleague(mediator); mediator.Customer = customer; mediator.Programmer = programmer; mediator.Tester = tester; customer.Send("Есть заказ, надо сделать программу"); programmer.Send("Программа готова, надо протестировать"); tester.Send("Программа протестирована и готова к продаже"); //-Memento- GofPatterns.Behavioral.Hero hero = new GofPatterns.Behavioral.Hero(); hero.Shoot(); // делаем выстрел, осталось 9 патронов GameHistory game = new GameHistory(); game.History.Push(hero.SaveState()); // сохраняем игру hero.Shoot(); //делаем выстрел, осталось 8 патронов hero.RestoreState(game.History.Pop()); hero.Shoot(); //делаем выстрел, осталось 8 патронов //-Visitor- var structure = new Bank1(); structure.Add(new Person { Name = "Иван Алексеев", Number = "82184931" }); structure.Add(new Company { Name = "Microsoft", RegNumber = "ewuir32141324", Number = "3424131445" }); structure.Accept(new HtmlVisitor()); structure.Accept(new XmlVisitor()); #endregion #region Structural //-Decorator- Pizza pizza1 = new ItalianPizza(); pizza1 = new TomatoPizza(pizza1); // итальянская пицца с томатами Console.WriteLine("Название: {0}", pizza1.Name); Console.WriteLine("Цена: {0}", pizza1.GetCost()); Pizza pizza2 = new ItalianPizza(); pizza2 = new CheesePizza(pizza2);// итальянская пиццы с сыром Console.WriteLine("Название: {0}", pizza2.Name); Console.WriteLine("Цена: {0}", pizza2.GetCost()); Pizza pizza3 = new BulgerianPizza(); pizza3 = new TomatoPizza(pizza3); pizza3 = new CheesePizza(pizza3);// болгарская пиццы с томатами и сыром Console.WriteLine("Название: {0}", pizza3.Name); Console.WriteLine("Цена: {0}", pizza3.GetCost()); //-Adapter- // путешественник Driver driver = new Driver(); // машина Auto auto1 = new Auto(); // отправляемся в путешествие driver.Travel(auto1); // встретились пески, надо использовать верблюда Camel camel = new Camel(); // используем адаптер ITransport camelTransport = new CamelToTransportAdapter(camel); // продолжаем путь по пескам пустыни driver.Travel(camelTransport); //-Facade- TextEditor textEditor = new TextEditor(); Compiller compiller = new Compiller(); CLR clr = new CLR(); VisualStudioFacade ide = new VisualStudioFacade(textEditor, compiller, clr); Programmer programmer1 = new Programmer(); programmer1.CreateApplication(ide); //-Composite- Component fileSystem = new Directory("Файловая система"); // определяем новый диск Component diskC = new Directory("Диск С"); // новые файлы Component pngFile = new File("12345.png"); Component docxFile = new File("Document.docx"); // добавляем файлы на диск С diskC.Add(pngFile); diskC.Add(docxFile); // добавляем диск С в файловую систему fileSystem.Add(diskC); // выводим все данные fileSystem.Print(); Console.WriteLine(); // удаляем с диска С файл diskC.Remove(pngFile); // создаем новую папку Component docsFolder = new Directory("Мои Документы"); // добавляем в нее файлы Component txtFile = new File("readme.txt"); Component csFile = new File("Program.cs"); docsFolder.Add(txtFile); docsFolder.Add(csFile); diskC.Add(docsFolder); fileSystem.Print(); //-Proxy- using (IBook book = new BookStoreProxy()) { // читаем первую страницу Page page1 = book.GetPage(1); Console.WriteLine(page1.Text); // читаем вторую страницу Page page2 = book.GetPage(2); Console.WriteLine(page2.Text); // возвращаемся на первую страницу page1 = book.GetPage(1); Console.WriteLine(page1.Text); } //-Bridge- // создаем нового программиста, он работает с с++ Programmer1 freelancer = new FreelanceProgrammer(new CPPLanguage()); freelancer.DoWork(); freelancer.EarnMoney(); // пришел новый заказ, но теперь нужен c# freelancer.Language = new CSharpLanguage(); freelancer.DoWork(); freelancer.EarnMoney(); //-Flyweight- double longitude = 37.61; double latitude = 55.74; HouseFactory houseFactory = new HouseFactory(); for (int i = 0; i < 5; i++) { House1 panelHouse = houseFactory.GetHouse("Panel"); if (panelHouse != null) { panelHouse.Build(longitude, latitude); } longitude += 0.1; latitude += 0.1; } for (int i = 0; i < 5; i++) { House1 brickHouse = houseFactory.GetHouse("Brick"); if (brickHouse != null) { brickHouse.Build(longitude, latitude); } longitude += 0.1; latitude += 0.1; } #endregion }
private void pic_MouseClick(object sender, MouseEventArgs e) { PictureBox control = (PictureBox)sender; OpenFileDialog dialog = new OpenFileDialog(); // TODO: Setup a dialog.Filter for supported image types if (dialog.ShowDialog() == DialogResult.OK) { try { System.Drawing.Image image = System.Drawing.Image.FromFile(dialog.FileName); #region Dimensions Check if (control == picEyesBake) { // Eyes texture is 128x128 if (Width != 128 || Height != 128) { Bitmap resized = new Bitmap(128, 128, image.PixelFormat); Graphics graphics = Graphics.FromImage(resized); graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; graphics.DrawImage(image, 0, 0, 128, 128); image.Dispose(); image = resized; } } else { // Other textures are 512x512 if (Width != 128 || Height != 128) { Bitmap resized = new Bitmap(512, 512, image.PixelFormat); Graphics graphics = Graphics.FromImage(resized); graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; graphics.DrawImage(image, 0, 0, 512, 512); image.Dispose(); image = resized; } } #endregion Dimensions Check // Set the control image control.Image = image; } catch (Exception ex) { MessageBox.Show("Failed to load image: " + ex.Message); } } else { control.Image = null; } #region Baking Dictionary <int, float> paramValues = GetParamValues(); Dictionary <AvatarTextureIndex, AssetTexture> layers = new Dictionary <AvatarTextureIndex, AssetTexture>(); int textureCount = 0; if ((string)control.Tag == "Head") { if (picHair.Image != null) { layers.Add(AvatarTextureIndex.Hair, new AssetTexture(new ManagedImage((Bitmap)picHair.Image))); ++textureCount; } if (picHeadBodypaint.Image != null) { layers.Add(AvatarTextureIndex.HeadBodypaint, new AssetTexture(new ManagedImage((Bitmap)picHeadBodypaint.Image))); ++textureCount; } // Compute the head bake Baker baker = new Baker(BakeType.Head); foreach (KeyValuePair <AvatarTextureIndex, AssetTexture> kvp in layers) { AppearanceManager.TextureData tdata = new AppearanceManager.TextureData(); tdata.Texture = kvp.Value; baker.AddTexture(tdata); } baker.Bake(); if (baker.BakedTexture != null) { AssetTexture bakeAsset = baker.BakedTexture; // Baked textures use the alpha layer for other purposes, so we need to not use it bakeAsset.Image.Channels = ManagedImage.ImageChannels.Color; picHeadBake.Image = LoadTGAClass.LoadTGA(new MemoryStream(bakeAsset.Image.ExportTGA())); } else { MessageBox.Show("Failed to create the bake layer, unknown error"); } } else if ((string)control.Tag == "Upper") { if (picUpperBodypaint.Image != null) { layers.Add(AvatarTextureIndex.UpperBodypaint, new AssetTexture(new ManagedImage((Bitmap)picUpperBodypaint.Image))); ++textureCount; } if (picUpperGloves.Image != null) { layers.Add(AvatarTextureIndex.UpperGloves, new AssetTexture(new ManagedImage((Bitmap)picUpperGloves.Image))); ++textureCount; } if (picUpperUndershirt.Image != null) { layers.Add(AvatarTextureIndex.UpperUndershirt, new AssetTexture(new ManagedImage((Bitmap)picUpperUndershirt.Image))); ++textureCount; } if (picUpperShirt.Image != null) { layers.Add(AvatarTextureIndex.UpperShirt, new AssetTexture(new ManagedImage((Bitmap)picUpperShirt.Image))); ++textureCount; } if (picUpperJacket.Image != null) { layers.Add(AvatarTextureIndex.UpperJacket, new AssetTexture(new ManagedImage((Bitmap)picUpperJacket.Image))); ++textureCount; } // Compute the upper body bake Baker baker = new Baker(BakeType.UpperBody); foreach (KeyValuePair <AvatarTextureIndex, AssetTexture> kvp in layers) { AppearanceManager.TextureData tdata = new AppearanceManager.TextureData(); tdata.Texture = kvp.Value; baker.AddTexture(tdata); } baker.Bake(); if (baker.BakedTexture != null) { AssetTexture bakeAsset = baker.BakedTexture; // Baked textures use the alpha layer for other purposes, so we need to not use it bakeAsset.Image.Channels = ManagedImage.ImageChannels.Color; picUpperBodyBake.Image = LoadTGAClass.LoadTGA(new MemoryStream(bakeAsset.Image.ExportTGA())); } else { MessageBox.Show("Failed to create the bake layer, unknown error"); } } else if ((string)control.Tag == "Lower") { if (picLowerBodypaint.Image != null) { layers.Add(AvatarTextureIndex.LowerBodypaint, new AssetTexture(new ManagedImage((Bitmap)picLowerBodypaint.Image))); ++textureCount; } if (picLowerUnderpants.Image != null) { layers.Add(AvatarTextureIndex.LowerUnderpants, new AssetTexture(new ManagedImage((Bitmap)picLowerUnderpants.Image))); ++textureCount; } if (picLowerSocks.Image != null) { layers.Add(AvatarTextureIndex.LowerSocks, new AssetTexture(new ManagedImage((Bitmap)picLowerSocks.Image))); ++textureCount; } if (picLowerShoes.Image != null) { layers.Add(AvatarTextureIndex.LowerShoes, new AssetTexture(new ManagedImage((Bitmap)picLowerShoes.Image))); ++textureCount; } if (picLowerPants.Image != null) { layers.Add(AvatarTextureIndex.LowerPants, new AssetTexture(new ManagedImage((Bitmap)picLowerPants.Image))); ++textureCount; } // Compute the lower body bake Baker baker = new Baker(BakeType.LowerBody); foreach (KeyValuePair <AvatarTextureIndex, AssetTexture> kvp in layers) { AppearanceManager.TextureData tdata = new AppearanceManager.TextureData(); tdata.Texture = kvp.Value; baker.AddTexture(tdata); } baker.Bake(); if (baker.BakedTexture != null) { AssetTexture bakeAsset = baker.BakedTexture; // Baked textures use the alpha layer for other purposes, so we need to not use it bakeAsset.Image.Channels = ManagedImage.ImageChannels.Color; picLowerBodyBake.Image = LoadTGAClass.LoadTGA(new MemoryStream(bakeAsset.Image.ExportTGA())); } else { MessageBox.Show("Failed to create the bake layer, unknown error"); } } else if ((string)control.Tag == "Bake") { // Bake image has been set manually, no need to manually calculate a bake // FIXME: } #endregion Baking }
public CakeGame() { baker = new Baker(this); }