public Rail(LevelIO.ObjectInfo info, SM3DWorldZone zone, out bool loadLinks) : base(PathPointsFromRailPointsEntry(info.PropertyEntries["RailPoints"])) { ID = info.ID; if (zone != null) { zone.SubmitRailID(ID); } ObjType = (RailObjType)Enum.Parse(typeof(RailObjType), info.ClassName); if (ObjType == RailObjType.RailWithMoveParameter) { IsReverseCoord = info.PropertyEntries["IsReverseCoord"].Parse(); } IsLadder = info.PropertyEntries["IsLadder"].Parse(); Closed = info.PropertyEntries["IsClosed"].Parse(); zone?.SubmitRailID(ID); loadLinks = false; //We don't expect Rails to have Links }
/// <summary> /// Creates a new rail for 3DW /// </summary> /// <param name="pathPoints">List of Path Points to use in this rail</param> /// <param name="iD">ID Of the rail</param> /// <param name="isClosed">Is the path closed?</param> /// <param name="isLadder">Unknown</param> /// <param name="isReverseCoord">Reverses the order the rails are in</param> /// <param name="railObjType"><see cref="RailObjType"/></param> public Rail(List <PathPoint> pathPoints, string iD, bool isClosed, bool isLadder, bool isReverseCoord, RailObjType railObjType, SM3DWorldZone zone) : base(pathPoints) { ID = iD; Closed = isClosed; IsLadder = isLadder; IsReverseCoord = isReverseCoord; ObjType = railObjType; zone?.SubmitRailID(ID); }