Example #1
0
        public RailDockPoint(RailGroup railGroup, RailBase railItem, TrackDockPoint trackDockPoint)
        {
            this.DebugIndex = debugIndex++;

            this.Id             = Guid.NewGuid();
            this.RailItem       = railGroup;
            this.RailItemIntern = railItem;
            //this.trackDockPoint = trackDockPoint;
            this.DebugDockPointIndex = trackDockPoint.DebugIndex;
            this.DockType            = trackDockPoint.DockType;

            this.angle    = trackDockPoint.Angle;
            this.position = trackDockPoint.Position;
        }
Example #2
0
        public override RailBase Clone()
        {
            var clone = new RailGroup()
            {
                DebugIndex = globalDebugIndex++,
                Position   = this.Position,
                Angle      = this.Angle,
                Layer      = this.Layer,
                //DockPoints = this.DockPoints.Select(d => d.Clone()).ToList(),
                Rails = this.Rails.Select(r => (RailItem)r.Clone()).ToList()
            };

            clone.DockPoints = this.DockPoints.Select(d => d.Clone(clone)).ToList();
            return(clone);
        }
Example #3
0
        public RailDockPoint Clone(RailGroup railGroup, RailBase railItem)
        {
            var clone = new RailDockPoint()
            {
                Id                  = Guid.NewGuid(),
                RailItem            = railGroup,
                RailItemIntern      = railItem,
                DebugDockPointIndex = this.DebugDockPointIndex,
                DockType            = this.DockType,
                angle               = this.angle,
                position            = this.position
                                      // at this time a cone has no dock
            };

            if (IsDocked)
            {
                DockPointCloneDictionary.Add(this, clone);
            }

            return(clone);
        }
Example #4
0
        //public void Update(RailGroup railGroup, RailBase railItem, TrackDockPoint trackDockPoint)
        //{
        //    this.RailItem = railGroup;
        //    this.RailItemIntern = railItem;
        //    //this.trackDockPoint = trackDockPoint;
        //    this.DebugDockPointIndex = trackDockPoint.DebugIndex;
        //    this.DockType = trackDockPoint.DockType;

        //    this.angle = trackDockPoint.Angle;
        //    this.position = trackDockPoint.Position;
        //}

        //public void Group(RailBase railbase)
        //{
        //    this.RailItem = railbase;
        //    this.RailItemIntern = railbase;
        //}

        public void Group(RailGroup railGroup)
        {
            this.RailItem = railGroup;
            this.RailItemIntern.DockPoints.Remove(this);
        }