public static Map Parse(WZProperty mapEntry, Map result) { if (mapEntry == null) { return(null); } WZProperty mapInfo = mapEntry.Resolve("info"); Task loadLadders = Task.Run(() => { List <LadderRope> ladderRopes = new List <LadderRope>(); foreach (WZProperty entry in mapEntry.Resolve("ladderRope").Children) { ladderRopes.Add(LadderRope.Parse(entry)); } result.LadderRopes = ladderRopes; }); ParseInfo(result, mapEntry, mapInfo); ParseFootholds(result, mapEntry); ParseLife(result, mapEntry); Task.WaitAll(loadLadders); return(result); }
public static LadderRope Parse(WZProperty entry) { LadderRope result = new LadderRope(); foreach (WZProperty prop in entry.Children) { if (prop.Name == "x") { result.x = prop.ResolveFor <int>() ?? 0; } if (prop.Name == "y1") { result.y1 = prop.ResolveFor <int>() ?? 0; } if (prop.Name == "y2") { result.y2 = prop.ResolveFor <int>() ?? 0; } if (prop.Name == "l") { result.IsLadder = prop.ResolveFor <bool>() ?? false; } } return(result); }