PEStationCtrl GetStation()
    {
        PEStationCtrl mousePickedStation = null;

        if (null != MousePicker.Instance.curPickObj && !MousePicker.Instance.curPickObj.Equals(null))
        {
            mousePickedStation = MousePicker.Instance.curPickObj as PEStationCtrl;
        }
        return(mousePickedStation);
    }
    public override bool OnPutDown()
    {
        PEStationCtrl mousePickedStation = GetStation();

        if (null != mousePickedStation)
        {
            RailwayOperate.Instance.RequestAutoCreateRoute(mousePickedStation.point.id, itemObjectId);
        }
        return(base.OnPutDown());
    }
    public override bool OnDragging(Ray cameraRay)
    {
        PEStationCtrl mousePickedStation = GetStation();

        if (null != mousePickedStation &&
            !mousePickedStation.isJoint &&
            PERailwayCtrl.CheckRoute(mousePickedStation.point))
        {
            rootGameObject.transform.position = mousePickedStation.station.mJointPoint.position;
            rootGameObject.transform.rotation = mousePickedStation.station.mJointPoint.rotation;
            return(true);
        }

        base.OnDragging(cameraRay);

        return(false);
    }
    protected override void CheckOperate()
    {
        if (null == mainPlayer || null == mRoute)
        {
            return;
        }
        if (PeInput.Get(PeInput.LogicFunction.InteractWithItem))
        {
            if (!GetGetOnGetOffEnable())
            {
                return;
            }

            if (mainPlayer.passengerCmpt.IsOnRail)
            {
                PEStationCtrl stationCtrl = stayStation.station.GetComponent <PEStationCtrl>();
                RailwayOperate.Instance.RequestGetOffTrain(mRoute.id, mainPlayer.Id, null != stationCtrl ? stationCtrl.getOffPos : transform.position + 2.5f * Vector3.up);
            }
            else
            {
                RailwayOperate.Instance.RequestGetOnTrain(mRoute.id, mainPlayer.Id);
            }
        }
    }