public bool Connect( ILogicControl first, ILogicControl second ) { Contract.Requires( first != null ); Contract.Requires( second != null ); var connector = this._connectionCommand.FirstOrDefault( s => s.Connect( first, second ) ); return connector != null; }
public bool Connect( ILogicControl first, ILogicControl second ) { var firstConnction = first as CarsInserter; var secondConnection = second as CarsInserter; if ( firstConnction == null || secondConnection == null ) { return false; } if ( firstConnction == secondConnection || this.AreConnected( firstConnction, secondConnection ) ) { return false; } var isFirstHigherThanSecond = this.IsHigher( firstConnction, secondConnection ); if ( isFirstHigherThanSecond ) { firstConnction.Connector.ConnectBeginBottomWith( secondConnection ); secondConnection.Connector.ConnectEndTopWith( firstConnction ); } else { firstConnction.Connector.ConnectBeginTopWith( secondConnection ); secondConnection.Connector.ConnectEndBottomWith( firstConnction ); } return true; }
public bool Connect( ILogicControl first, ILogicControl second ) { var carsInseerter = first as CarsInserter; var endRoadLaneEdge = second as RoadLaneBlock; if ( carsInseerter == null || endRoadLaneEdge == null ) { return false; } carsInseerter.Connector.ConnectStartFrom( endRoadLaneEdge ); endRoadLaneEdge.LeftEdge.Connector.ConnectEndOn( carsInseerter ); return true; }
public bool Connect(ILogicControl first, ILogicControl second) { var roadLaneEdge = first as RoadLaneBlock; var carsRemover = second as CarsRemover; if ( roadLaneEdge == null || carsRemover == null ) { return false; } roadLaneEdge.RightEdge.Connector.ConnectStartFrom( carsRemover ); carsRemover.Connector.ConnectEndOn( roadLaneEdge ); return true; }
public virtual bool Connect( ILogicControl first, ILogicControl second ) { var roadLaneEdge = first as RoadLaneBlock; var roadConnection = second as RoadConnection; if ( roadLaneEdge == null || roadConnection == null ) { return false; } roadLaneEdge.RightEdge.Connector.ConnectStartFrom( roadConnection ); roadConnection.Connector.ConnectBeginWith( roadLaneEdge.RightEdge ); return true; }
public virtual bool Connect( ILogicControl first, ILogicControl second ) { var roadJunctionEdge = first as JunctionEdge; var roadLaneEdge = second as RoadLaneBlock; if ( roadLaneEdge == null || roadJunctionEdge == null ) { return false; } roadJunctionEdge.Connector.ConnectBeginFrom( roadLaneEdge ); roadLaneEdge.LeftEdge.Connector.ConnectEndOn( roadJunctionEdge ); return true; }
public virtual bool Connect( ILogicControl first, ILogicControl second ) { var roadConnectionEdge = first as RoadConnection; var roadLaneEdge = second as RoadLaneBlock; if ( roadConnectionEdge == null || roadLaneEdge == null ) { return false; } // TODO Check it roadConnectionEdge.Connector.ConnectEndWith( roadLaneEdge.LeftEdge ); roadLaneEdge.LeftEdge.Connector.ConnectEndOn( roadConnectionEdge ); return true; }
private void LeftButtonClicked( XnaMouseState mouseState ) { var edges = this.FindControlAtPoint( mouseState.Location ); if ( edges == null ) { return; } if ( this._lastClickedEdges == null ) { this._lastClickedEdges = edges; this._lastClickedEdges.IsSelected = true; } else { this.Begin( this._lastClickedEdges, edges ); this._lastClickedEdges = null; } }
public bool Connect(ILogicControl first, ILogicControl second) { var firstEdge = first as SideRoadLaneEdge; if ( firstEdge == null ) { return false; } var secondEdge = second as SideRoadLaneEdge; if ( secondEdge == null ) { return false; } if ( this.AreConnectedInTheSamePlaces( firstEdge, secondEdge ) == false ) { return false; } firstEdge.Connector.ConnectChangeName( secondEdge ); secondEdge.Connector.ConnectChangeName( firstEdge ); return true; }
public bool Connect( ILogicControl first, ILogicControl second ) { var firstEdge = first as JunctionEdge; var secondEdge = second as JunctionEdge; if ( firstEdge == null || secondEdge == null ) { return false; } if ( this.AreConnected( firstEdge, secondEdge ) ) { return false; } if( firstEdge.Connector.JunctionEdge == secondEdge.Connector.JunctionEdge) { return false; } firstEdge.Connector.ConnectBeginFrom( secondEdge ); secondEdge.Connector.ConnectEndsOn( firstEdge ); return true; }
private void Begin( ILogicControl first, ILogicControl second ) { this._compositeConnectionCommand.Connect( first, second ); }
public void Stop() { this._mouseInformation.StopRecord(); this._lastClickedEdges = null; }