public SerializableSortedList<int, Layer> MapGlitchLayers(@object layerObj) { var list = new SerializableSortedList<int, Layer>(); foreach (var obj in layerObj.object1) { var layer = new Layer { ZIndex = Convert.ToInt32([email protected](x => x.id == "z").Value), Name = [email protected](x => x.id == "name").Value, Filters = MapGlitchFilters(obj.object1.Single(x => x.id == "filtersNEW")), Height = Convert.ToInt32([email protected](x => x.id == "h").Value), Width = Convert.ToInt32([email protected](x => x.id == "w").Value), Visible = true, }; layer.Items = MapGlitchItems(obj.object1.Single(x => x.id == "decos"), layer); list.Add(layer.ZIndex, layer); } return list; }
public SerializableSortedList<int, LayerItem> MapGlitchItems(@object decos, Layer layer) { var items = new SerializableSortedList<int, LayerItem>(); //FIX middleground items, they are handle a bit different; var middleGroundFixX = 0; var middleGroundFixY = 0; if (layer.Name == "middleground") { middleGroundFixX = layer.Width /2; middleGroundFixY = layer.Height; } foreach (var obj in decos.object1) { var item = new LayerItem { Height = Convert.ToInt32([email protected](x => x.id == "h").Value), Width = Convert.ToInt32([email protected](x => x.id == "w").Value), X = Convert.ToInt32([email protected](x => x.id == "x").Value) + middleGroundFixX, Y = Convert.ToInt32([email protected](x => x.id == "y").Value) + middleGroundFixY, ZIndex = Convert.ToInt32([email protected](x => x.id == "z").Value), Name = obj.str.Single(x => x.id == "name").Value, SpriteClass = String.Format("{0}.png", obj.str.Single(x => x.id == "sprite_class").Value), Visible = true, }; var rotate = [email protected](x => x.id == "r"); if (rotate != null) { item.Rotate = Convert.ToInt32(rotate.Value); } if (obj.@bool != null) { var flip = [email protected](x => x.id == "h_flip"); if (flip != null) { item.Flip = Convert.ToBoolean(flip.Value); } } items.Add(item.ZIndex, item); } return items; }