// Function from file: tgstation.dme
        public override bool relaymove(Mob user = null, int?direction = null)
        {
            Obj_Structure_TransitTube_Station station = null;
            Obj_Structure_TransitTube         tube    = null;


            if (user is Mob && user.client != null)
            {
                if (!Lang13.Bool(Lang13.FindIn(typeof(Obj_Structure_TransitTube), this.loc)))
                {
                    user.loc = this.loc;
                    user.client.Move(Map13.GetStep(this.loc, direction ?? 0), direction ?? 0);
                    user.reset_perspective(null);
                }

                if (!this.moving)
                {
                    foreach (dynamic _a in Lang13.Enumerate(this.loc, typeof(Obj_Structure_TransitTube_Station)))
                    {
                        station = _a;


                        if (station.directions().Contains(this.dir))
                        {
                            if (!station.pod_moving)
                            {
                                if (direction == station.dir)
                                {
                                    if (station.icon_state == "open")
                                    {
                                        user.loc = this.loc;
                                        user.client.Move(Map13.GetStep(this.loc, direction ?? 0), direction ?? 0);
                                        user.reset_perspective(null);
                                    }
                                    else
                                    {
                                        station.open_animation();
                                    }
                                }
                                else if (station.directions().Contains(direction))
                                {
                                    this.dir = direction ?? 0;
                                    station.launch_pod();
                                }
                            }
                            return(false);
                        }
                    }

                    foreach (dynamic _b in Lang13.Enumerate(this.loc, typeof(Obj_Structure_TransitTube)))
                    {
                        tube = _b;


                        if (tube.directions().Contains(this.dir))
                        {
                            if (tube.has_exit(direction))
                            {
                                this.dir = direction ?? 0;
                                return(false);
                            }
                        }
                    }
                }
            }
            return(false);
        }