public void DoChangeNextPoint(Railway.Point point, int nextID) { Railway.Point findPoint = Railway.Manager.Instance.GetPoint(nextID); if (null != findPoint && Railway.Manager.InvalId != findPoint.prePointId && Railway.Manager.InvalId == findPoint.nextPointId) { List <Railway.Point> pointList = new List <Railway.Point>(); pointList.Add(point); pointList.Add(findPoint); while (Railway.Manager.InvalId != findPoint.prePointId) { findPoint = Railway.Manager.Instance.GetPoint(findPoint.prePointId); pointList.Add(findPoint); } for (int i = 0; i < pointList.Count - 1; i++) { pointList[i].ChangeNextPoint(pointList[i + 1].id); } pointList[pointList.Count - 1].ChangeNextPoint(Railway.Manager.InvalId); } else { point.ChangeNextPoint(nextID); } if (null != Railway.Manager.Instance.pointChangedEventor) { Railway.Manager.Instance.pointChangedEventor.Dispatch(new Railway.Manager.PointChanged() { bAdd = false, point = point }); } }
void OnStationResidenceTimeChange(string text) { if (mSelectedStation != null && text.Length > 0) { PETimer time = PETimerUtil.GetTmpTimer(); time.Minute = Convert.ToDouble(text); if (time.Minute > 0) { Railway.Route route = Railway.Manager.Instance.GetRouteByPointId(mSelectedStation.mRailPointData.id); if (route != null) { route.SetStayTime(mSelectedStation.mRailPointData.id, Convert.ToSingle(time.Second)); } else { Railway.Point point = Railway.Manager.Instance.GetPoint(mSelectedStation.mRailPointData.id); point.stayTime = Convert.ToSingle(time.Second); } if (null != e_ResetPointTime) { e_ResetPointTime(mSelectedStation.mRailPointData.id, Convert.ToSingle(time.Second)); } } time.Second = mSelectedStation.mRailPointData.realStayTime; mRedestanceTime.text = ((int)time.Minute).ToString(); } }
public void DoChangePointRot(int pointID, Vector3 rot) { Railway.Point point = Railway.Manager.Instance.GetPoint(pointID); if (null != point) { point.rotation = rot; } }
public void DoResetPointName(int pointID, string name) { Railway.Point point = Railway.Manager.Instance.GetPoint(pointID); if (null != point) { point.name = name; } }
public void RemoveTrain(int packageIndex) { Railway.Point getPoint = railwayView.GetSelPoint(); if (null != getPoint) { /*Railway.Route route = */ Railway.Manager.Instance.GetRoute(getPoint.routeId); } }
public void RequestAddPoint(Vector3 pos, Railway.Point.EType type, int prePointId, int itemObjId) { RemoveItemFromPlayerPkg(itemObjId); Railway.Point point = DoAddPoint(pos, type, prePointId); if (point != null) { point.itemInstanceId = itemObjId; } }
void UpdateUnActiveLinks() { List <List <Railway.Point> > linkList = new List <List <Railway.Point> >(); List <Railway.Point> pointList = new List <Railway.Point>(); List <int> isolatePoints = Railway.Manager.Instance.GetIsolatePoint(); foreach (int pointID in isolatePoints) { pointList.Add(Railway.Manager.Instance.GetPoint(pointID)); } while (pointList.Count > 0) { List <Railway.Point> addList = new List <Railway.Point>(); Railway.Point opPoint = pointList[0]; addList.Add(opPoint); pointList.Remove(opPoint); Railway.Point findPoint = opPoint; while (Railway.Manager.InvalId != findPoint.prePointId) { findPoint = Railway.Manager.Instance.GetPoint(findPoint.prePointId); if (findPoint.id == opPoint.id) { break; } if (pointList.Remove(findPoint)) { addList.Insert(0, findPoint); } } findPoint = opPoint; while (Railway.Manager.InvalId != findPoint.nextPointId) { findPoint = Railway.Manager.Instance.GetPoint(findPoint.nextPointId); if (findPoint.id == opPoint.id) { break; } if (pointList.Remove(findPoint)) { addList.Add(findPoint); } } linkList.Add(addList); } if (railwayView != null) { railwayView.ReDrawDisRailLine(linkList); } }
public void DoResetPointTime(int pointID, float time) { Railway.Point point = Railway.Manager.Instance.GetPoint(pointID); if (point == null) { return; } point.stayTime = time; }
void SetSatationInfo(Railway.Point satation) { mTitleStationName.text = satation.name; mStationName.text = satation.name; PETimer rTime = PETimerUtil.GetTmpTimer(); rTime.Second = satation.realStayTime; int min = Convert.ToInt32(rTime.Minute); mRedestanceTime.text = min.ToString(); }
public void DoAutoCreateRoute(int pointID, int itemObjID) { Railway.Point point = Railway.Manager.Instance.GetPoint(pointID); DoCreateRoute(pointID, ""); DoSetRouteTrain(point.routeId, itemObjID); if (DoSetRouteTrain(point.routeId, itemObjID)) { RemoveItemFromPlayerPkg(itemObjID); } DoSetTrainToStation(point.routeId, pointID); }
void RPC_S2C_Raileway_NextPointChange(uLink.BitStream stream, uLink.NetworkMessageInfo info) { int pointId = stream.Read <int>(); int nextPointId = stream.Read <int> (); Railway.Point mOpPoint = Railway.Manager.Instance.GetPoint(pointId); if (mOpPoint != null) { RailwayOperate.Instance.DoChangeNextPoint(mOpPoint, nextPointId); } }
public void RequestChangeNextPoint(Railway.Point point, int nextID) { if (GameConfig.IsMultiMode) { if (null != PlayerNetwork.mainPlayer) { PlayerNetwork.mainPlayer.RPCServer(EPacketType.PT_InGame_Railway_NextPointChange, point.id, nextID); } } else { DoChangeNextPoint(point, nextID); } }
public bool IsPointInCompletedLine(int pointId) { Railway.Point point = Railway.Manager.Instance.GetPoint(pointId); if (point == null) { return(false); } Railway.Point header = Railway.Point.GetHeader(point); if (null == header) { return(false); } if (header.pointType != Railway.Point.EType.End) { return(false); } Railway.Point tail = Railway.Point.GetTail(point); if (null == tail) { return(false); } if (tail.pointType != Railway.Point.EType.End) { return(false); } bool ret = true; Railway.Point.Travel(header, (p) => { if (p != header && p != tail && p.pointType == Railway.Point.EType.End ) { ret = false; } if (p.routeId != Railway.Manager.InvalId) { ret = false; } }); return(ret); }
public Railway.Point DoAddPoint(Vector3 pos, Railway.Point.EType type, int prePointId, int pointId = -1) { Railway.Point point = Railway.Manager.Instance.GetPoint(prePointId); // Reverse Link if (null != point && Railway.Manager.InvalId == point.prePointId && Railway.Manager.InvalId != point.nextPointId) { Railway.Point.ReverseNext(point); } return(Railway.Manager.Instance.AddPoint(pos, prePointId, type, pointId)); }
void OnDeleteRoute(Railway.Point point) { Railway.Route route = Railway.Manager.Instance.GetRoute(point.routeId); if (null != route) { if (route.HasPassenger()) { MessageBox_N.ShowOkBox(UIMsgBoxInfo.RailwayDeleteNotice.GetString()); return; } RailwayOperate.Instance.RequestDeleteRoute(point.routeId); } }
public void UpdateSelectedStation() { if (null != mSelectedStation) { Railway.Point point = Railway.Manager.Instance.GetPoint(mSelectedStation.mRailPointData.id); if (point != null) { OnSeletedLine(point.routeId != Railway.Manager.InvalId, point.id); } else { ClearUIInfo(); } } }
public void RequestRemovePoint(int pointID) { if (GameConfig.IsMultiMode) { if (null != PlayerNetwork.mainPlayer) { PlayerNetwork.mainPlayer.RPCServer(EPacketType.PT_InGame_Railway_Recycle, pointID); } } else { Railway.Point removePoint = Railway.Manager.Instance.GetPoint(pointID); if (null != removePoint) { AddItemToPlayerPkg(removePoint.itemInstanceId); DoRemovePoint(pointID); } } }
bool TryLink() { mPrePoint = FindNearestIsolatePoint(mLinkPoint.position); if (mPrePoint == null) { BreakLink(); return(false); } m_LinkPos1 = mLinkPoint.position; m_LinkPos2 = mPrePoint.GetLinkPosition(); Transform preTran = mPrePoint.GetTrans(); //if can't link move higher bool getPos = false; for (int i = 0; i < MaxStepTime; ++i) { if (Railway.Manager.CheckLinkState(m_LinkPos1, m_LinkPos2, transform, preTran)) { getPos = true; EstablishSubLink(mLinkPoint.position, m_LinkPos2); transform.position += i * StepHeight * Vector3.up; EstablishLink(m_LinkPos1, m_LinkPos2); break; } m_LinkPos1 += StepHeight * Vector3.up; } if (!getPos) { BreakLink(); mPrePoint = null; return(false); } return(true); }
public void SetInfo(Railway.Point point) { if (null == point) { if (mPointGui.IsOpen()) { mPointGui.Hide(); } return; } if (!mPointGui.IsOpen()) { mPointGui.Show(); } mOpPoint = point; mNearPoints = Railway.Manager.Instance.GetNearPoint(mOpPoint); mLinkEnable.Clear(); for (int i = 0; i < mNearPoints.Count; i++) { if (mNearPoints[i].routeId != Railway.Manager.InvalId) { mLinkEnable.Add(false); } else { mLinkEnable.Add(mOpPoint.nextPointId != mNearPoints[i].id && mOpPoint.prePointId != mNearPoints[i].id && Railway.Manager.CheckLinkState(mOpPoint, mNearPoints[i]) ); } } mPointGui.PointName = mOpPoint.name; ResetPrePoint(); ResetNextPoint(); /*Railway.Route route = */ Railway.Manager.Instance.GetRouteByPointId(mOpPoint.id); }
public Railway.Route DoCreateRoute(int pointId, string routeName) { if (!IsPointInCompletedLine(pointId)) { return(null); } Railway.Point point = Railway.Manager.Instance.GetPoint(pointId); if (point == null) { return(null); } Railway.Point header = Railway.Point.GetHeader(point); if (header.pointType != Railway.Point.EType.End) { return(null); } List <int> pointList = new List <int>(); point = header; while (true) { if (null != point) { pointList.Add(point.id); point = point.GetNextPoint(); } else { break; } } return(Railway.Manager.Instance.CreateRoute(routeName, pointList.ToArray())); }
Railway.Point FindNearestIsolatePoint(Vector3 pos, float dis = Railway.Manager.JointMaxDistance) { Railway.Point retPoint = null; float minSqrDis = dis * dis; foreach (int pointId in isolatePoints) { Railway.Point point = Railway.Manager.Instance.GetPoint(pointId); if (null == point) { continue; } float sqrDis = (pos - point.GetLinkPosition()).sqrMagnitude; if (sqrDis < minSqrDis) { minSqrDis = sqrDis; retPoint = point; } } return(retPoint); }
public static bool CheckRoute(Railway.Point point) { if (point.routeId != Railway.Manager.InvalId) { return(false); } if (point.pointType == Railway.Point.EType.End) { Railway.Point findPoint = point; while (Railway.Manager.InvalId != findPoint.prePointId) { findPoint = Railway.Manager.Instance.GetPoint(findPoint.prePointId); if (findPoint == point) { return(false); } if (findPoint.pointType == Railway.Point.EType.End) { return(true); } } findPoint = point; while (Railway.Manager.InvalId != findPoint.nextPointId) { findPoint = Railway.Manager.Instance.GetPoint(findPoint.nextPointId); if (findPoint == point) { return(false); } if (findPoint.pointType == Railway.Point.EType.End) { return(true); } } } else { if (point.prePointId == Railway.Manager.InvalId || point.nextPointId == Railway.Manager.InvalId) { return(false); } Railway.Point startPoint = null; Railway.Point endPoint = null; Railway.Point findPoint = point; while (Railway.Manager.InvalId != findPoint.prePointId) { findPoint = Railway.Manager.Instance.GetPoint(findPoint.prePointId); if (findPoint == point) { return(false); } if (findPoint.pointType == Railway.Point.EType.End) { startPoint = findPoint; break; } } findPoint = point; while (Railway.Manager.InvalId != findPoint.nextPointId) { findPoint = Railway.Manager.Instance.GetPoint(findPoint.nextPointId); if (findPoint == point) { return(false); } if (findPoint.pointType == Railway.Point.EType.End) { endPoint = findPoint; break; } } return(null != startPoint && null != endPoint); } return(false); }
public void OnCreateRoute(Railway.Point point, string routeName) { RailwayOperate.Instance.RequestCreateRoute(point.id, routeName); }
public void Init(Railway.Point _mRailPointData) { mRailPointData = _mRailPointData; mSprStation = this.gameObject.GetComponent <UISprite>(); }