public TMXTileGroup(XMLElement element) { name = element.GetAttribute("name", null); width = element.GetIntAttribute("width", 0); height = element.GetIntAttribute("height", 0); objects = new List<TMXTile>(); XMLElement propsElement = element.GetChildrenByName("properties"); if (propsElement != null) { List<XMLElement> properties = propsElement.List("property"); if (properties != null) { props = new TMXProperty(); for (int p = 0; p < properties.Count; p++) { XMLElement propElement = properties[p]; string name_0 = propElement.GetAttribute("name", null); string value_ren = propElement.GetAttribute("value", null); props.SetProperty(name_0, value_ren); } } } List<XMLElement> objectNodes = element.List("object"); for (int i = 0; i < objectNodes.Count; i++) { XMLElement objElement = objectNodes[i]; TMXTile obj0 = new TMXTile(objElement); obj0.index = i; CollectionUtils.Add(objects, obj0); } }
private static NSObject ParseObject(XMLElement n) { String type = n.GetName(); if (type.Equals("dict",StringComparison.InvariantCultureIgnoreCase)) { NSDictionary dict = new NSDictionary(); List<XMLElement> children = n.List(); for (int i = 0; i < children.Count; i += 2) { XMLElement key = (XMLElement)children[i + 0]; XMLElement val = (XMLElement) children[i + 1]; dict.Put(key.GetContents(), ParseObject(val)); } return dict; } else if (type.Equals("array",StringComparison.InvariantCultureIgnoreCase)) { List<XMLElement> children = n.List(); NSArray array = new NSArray(children.Count); for (int i = 0; i < children.Count; i++) { array.SetValue(i, ParseObject((XMLElement) children[i])); } return array; } else if (type.Equals("true",StringComparison.InvariantCultureIgnoreCase) || type.Equals("yes",StringComparison.InvariantCultureIgnoreCase)) { return new NSNumber(true); } else if (type.Equals("false",StringComparison.InvariantCultureIgnoreCase) || type.Equals("no",StringComparison.InvariantCultureIgnoreCase)) { return new NSNumber(false); } else if (type.Equals("integer",StringComparison.InvariantCultureIgnoreCase)) { return new NSNumber(n.GetContents()); } else if (type.Equals("real",StringComparison.InvariantCultureIgnoreCase)) { return new NSNumber(n.GetContents()); } else if (type.Equals("string",StringComparison.InvariantCultureIgnoreCase)) { return new NSString(n.GetContents()); } else if (type.Equals("data",StringComparison.InvariantCultureIgnoreCase)) { return new NSData(n.GetContents()); } else if (type.Equals("range",StringComparison.InvariantCultureIgnoreCase)) { List<XMLElement> children = n.List(); if (children.Count == 2) { XMLElement key = (XMLElement) children[0]; XMLElement val = (XMLElement) children[1]; return new NSRange(Int32.Parse(key.GetContents()), Int32.Parse(val.GetContents())); } } return null; }
private void Set(XMLElement Pack) { this.fileName = Pack.GetAttribute("file", null); this.name = Pack.GetAttribute("name", fileName); int r = Pack.GetIntAttribute("r", -1); int g = Pack.GetIntAttribute("g", -1); int b = Pack.GetIntAttribute("b", -1); int a = Pack.GetIntAttribute("a", -1); if (r != -1 && g != -1 && b != -1 && a != -1) { colorMask = new LColor(r, g, b, a); } if (fileName != null) { List<XMLElement> blocks = Pack.List("block"); foreach (XMLElement e in blocks) { PackEntry entry = new PackEntry(null); int id = e.GetIntAttribute("id", count); entry.id = id; entry.fileName = e.GetAttribute("name", null); entry.bounds.left = e.GetIntAttribute("left", 0); entry.bounds.top = e.GetIntAttribute("top", 0); entry.bounds.right = e.GetIntAttribute("right", 0); entry.bounds.bottom = e.GetIntAttribute("bottom", 0); if (entry.fileName != null) { temps.Put(entry.fileName, entry); } else { temps.Put(Convert.ToString(id), entry); } count++; } this.packing = false; this.packed = true; } this.useAlpha = true; }
public TMXTileSet(TMXTiledMap map, XMLElement element, bool loadImage) { this.map = map; this.name = element.GetAttribute("name", null); this.firstGID = element.GetIntAttribute("firstgid", 0); string source = element.GetAttribute("source", ""); if (!"".Equals(source)) { try { Stream ins0 = Resources.OpenStream(map.GetTilesLocation() + "/" + source); XMLDocument doc = XMLParser.Parse(ins0); XMLElement docElement = doc.GetRoot(); element = docElement; } catch (Exception e) { Loon.Utils.Debug.Log.Exception(e); throw new Exception(this.map.tilesLocation + "/" + source); } } string tileWidthString = element.GetAttribute("tilewidth", ""); string tileHeightString = element.GetAttribute("tileheight", ""); if (tileWidthString.Length == 0 || tileHeightString.Length == 0) { throw new Exception( "tileWidthString.length == 0 || tileHeightString.length == 0"); } tileWidth = Int32.Parse(tileWidthString); tileHeight = Int32.Parse(tileHeightString); string sv = element.GetAttribute("spacing", ""); if ((sv != null) && (!"".Equals(sv))) { tileSpacing = Int32.Parse(sv); } string mv = element.GetAttribute("margin", ""); if ((mv != null) && (!"".Equals(mv))) { tileMargin = Int32.Parse(mv); } List<XMLElement> list = element.List("image"); XMLElement imageNode = list[0]; string fileName = imageNode.GetAttribute("source", null); LColor trans = null; string t = imageNode.GetAttribute("trans", null); if ((t != null) && (t.Length > 0)) { trans = new LColor(((uint)Convert.ToInt32(t, 16))); } if (loadImage) { string path = map.GetTilesLocation() + "/" + fileName; LTexture image; if (trans != null) { image = TextureUtils.FilterColor(path, trans); } else { image = LTextures.LoadTexture(path); } SetTileSetImage(image); } List<XMLElement> elements = element.List("tile"); for (int i = 0; i < elements.Count; i++) { XMLElement tileElement = elements[i]; int id = tileElement.GetIntAttribute("id", 0); id += firstGID; TMXProperty tileProps = new TMXProperty(); XMLElement propsElement = tileElement .GetChildrenByName("properties"); List<XMLElement> properties = propsElement.List("property"); for (int p = 0; p < properties.Count; p++) { XMLElement propElement = properties[p]; string name_1 = propElement.GetAttribute("name", null); string value_ren = propElement.GetAttribute("value", null); tileProps.SetProperty(name_1, value_ren); } CollectionUtils.Put(props, id, tileProps); } }