private void AssignTileControls(IBlueprintBuilder builder, IActivateableWorldObject[,] tiles, ControlAssigner controlAssigner) { foreach (var coordinate in tiles.GetCoordinates()) { controlAssigner.AssignTileControl(tiles.Get(coordinate), coordinate); } }
public PipeBuildController(MasterController masterController, IBlueprintBuilder blueprintBuilder, CoordinatePair selectedLink) { this.masterController = masterController; this.blueprintBuilder = blueprintBuilder; this.selectedLink = selectedLink; }
public BasicController(MasterController masterController, PipeBuildController pipeBuildController, IBlueprintBuilder blueprintBuilder) { this.masterController = masterController; this.pipeBuildController = pipeBuildController; this.blueprintBuilder = blueprintBuilder; }
private ControlAssigner CreateController(IBlueprintBuilder builder, ITableHighlighter tableHighlighter) { var controllerFactory = new ControllerFactory(); var controller = controllerFactory.CreateController(builder, tableHighlighter); var controlAssigner = new ControlAssigner(controller); return(controlAssigner); }
private WorldObjectBitNumberFactoryPicker CreateEdgeFactory(IBlueprintBuilder builder) { var baseEdgeFactories = new IFactory <IWorldObject> [2]; baseEdgeFactories[0] = new WorldObjectFactory(roundEdgeFactory); baseEdgeFactories[1] = new WorldObjectFactory(closedEdgeFactory); return(new WorldObjectBitNumberFactoryPicker(baseEdgeFactories, new EdgeBlocksNumberGenerator(builder))); }
public FancyViewModel CreateViewModel(IBlueprintBuilder builder, IRectangleSection fittingRectangle) { var tiles = tilesFactory.CreateTiles(builder.Dimensions, fittingRectangle); var detailsUpdaters = CreateDetailsUpdaters(builder, tiles); var viewModel = new FancyViewModel(detailsUpdaters); builder.AttachObserver(viewModel); return(viewModel); }
public IController CreateController(IBlueprintBuilder blueprintBuilder, ITableHighlighter tableHighlighter) { var controller = new MasterController(null, null, tableHighlighter); var pipeBuildController = new PipeBuildController(controller, blueprintBuilder, new CoordinatePair()); var basicController = new BasicController(controller, pipeBuildController, blueprintBuilder); controller.BaseController = basicController; controller.Reset(); return(controller); }
private IDetailsViewUpdater CreateCornerUpdater(IBlueprintBuilder builder, IControlAssigner controlAssigner, IWorldObject[,] tiles, Coordinate direction) { var cornerDetails = new IWorldObject[builder.Dimensions.Y, builder.Dimensions.X]; var cornerFactory = CreateCornerFactory(builder); var cornerUpdates = CornerUpdates(direction); return(new BlockDetailsViewUpdater( builder, tiles, cornerDetails, cornerFactory, controlAssigner, cornerUpdates)); }
public ViewModel CreateViewModel(IBlueprintBuilder builder, IRectangleSection fittingRectangle) { var tiles = tilesFactory.CreateTiles(builder.Dimensions, fittingRectangle); var objectTable = CreateObjectTable(tiles); var controlAssigner = CreateController(builder, new TableHighlighter(objectTable)); AssignTileControls(builder, tiles, controlAssigner); var viewModel = CreateViewModel(builder, objectTable, controlAssigner, CreateShipComponentsFactories()); builder.AttachObserver(viewModel); return(viewModel); }
public BlockDetailsViewUpdater(IBlueprintBuilder blueprintBuilder, IWorldObject[,] tiles, IWorldObject[,] details, IFacingContextWorldObjectFactory detailFactory, IControlAssigner controller, IEnumerable <FacingPosition> relativeDetailUpdates) { this.blueprintBuilder = blueprintBuilder; this.tiles = tiles; this.details = details; this.detailFactory = detailFactory; this.controller = controller; this.relativeDetailUpdates = relativeDetailUpdates; }
private List <IDetailsViewUpdater> CreateDetailsUpdaters(IBlueprintBuilder builder, IActivateableWorldObject[,] tiles) { var controlAssigner = CreateController(builder, new TableHighlighter(null)); var detailsUpdaters = new List <IDetailsViewUpdater>(); foreach (var direction in Coordinates.Directions) { detailsUpdaters.Add(CreateCornerUpdater(builder, controlAssigner, tiles, direction)); detailsUpdaters.Add(CreateEdgeUpdater(builder, controlAssigner, tiles, direction)); } detailsUpdaters.Add(CreateCoreUpdater(builder, controlAssigner, tiles)); return(detailsUpdaters); }
private IDetailsViewUpdater CreateCoreUpdater(IBlueprintBuilder builder, IControlAssigner controlAssigner, IWorldObject[,] tiles) { var coreDetails = new IWorldObject[builder.Dimensions.Y, builder.Dimensions.X]; var coreUpdates = new List <FacingPosition>(); coreUpdates.Add(new FacingPosition(Coordinates.Zero, Coordinates.Zero)); return(new BlockDetailsViewUpdater(builder, tiles, coreDetails, new IgnoreFacingContextWorldObjectFactory(new WorldObjectFactory(blockCoreFactory)), controlAssigner, coreUpdates)); }
private WorldObjectBitNumberFactoryPicker CreateCornerFactory(IBlueprintBuilder builder) { var baseCornerFactories = new IFactory <IWorldObject> [8]; baseCornerFactories[0] = new WorldObjectFactory(roundCornerFactory); baseCornerFactories[1] = new WorldObjectFactory(straightUpCornerFactory); baseCornerFactories[2] = new WorldObjectFactory(straightRightCornerFactory); baseCornerFactories[3] = new WorldObjectFactory(diagonalMissingCornerFactory); baseCornerFactories[4] = new WorldObjectFactory(roundCornerFactory); baseCornerFactories[5] = new WorldObjectFactory(outsideUpCornerFactory); baseCornerFactories[6] = new WorldObjectFactory(outsideRightCornerFactory); baseCornerFactories[7] = new WorldObjectFactory(closedCornerFactory); return(new WorldObjectBitNumberFactoryPicker(baseCornerFactories, new CornerBlocksNumberGenerator(builder))); }
private IDetailsViewUpdater CreateEdgeUpdater(IBlueprintBuilder builder, IControlAssigner controlAssigner, IWorldObject[,] tiles, Coordinate direction) { var edgeDetails = new IWorldObject[builder.Dimensions.Y, builder.Dimensions.X]; var edgeUpdates = new List <FacingPosition>(); edgeUpdates.Add(new FacingPosition(direction, Coordinates.Zero)); edgeUpdates.Add(new FacingPosition(direction, -direction)); var edgeFactory = CreateEdgeFactory(builder); return(new BlockDetailsViewUpdater(builder, tiles, edgeDetails, edgeFactory, controlAssigner, edgeUpdates)); }
public ViewModel(IBlueprintBuilder builder, ObjectTable objectTable, IFactory <IActivateableWorldObject> blockFactory, IFactory <IActivateableWorldObject, IShipComponent> shipComponentFactory, IFactory <IActivateableWorldObject> pipeLinkFactory, IFactory <IWorldObject, ICurve> pipeFactory, IControlAssigner controller) { this.builder = builder; this.objectTable = objectTable; this.blockFactory = blockFactory; this.shipComponentFactory = shipComponentFactory; this.pipeLinkFactory = pipeLinkFactory; this.pipeFactory = pipeFactory; this.controller = controller; }
private ViewModel CreateViewModel( IBlueprintBuilder builder, ObjectTable objectTable, ControlAssigner controlAssigner, IFactory <IActivateableWorldObject>[] shipComponentsFactories) { var viewModel = new ViewModel( builder, objectTable, new ActivateableWorldObjectFactory(blockFactory), new ViewDetailsFactory <IActivateableWorldObject, IShipComponent>(componentDetails, shipComponentsFactories), new ActivateableWorldObjectFactory(pipeLinkFactory), new CurveWorldObjectFactory(pipeFactory), controlAssigner); return(viewModel); }
public void RemoveAdditionalSetups(IBlueprintBuilder blueprintBuilder) { return; }
public void RemoveAdditionalSetups(IBlueprintBuilder blueprintBuilder) { blueprintBuilder.RemoveRestrictor(this); }
public CornerBlocksNumberGenerator(IBlueprintBuilder blueprintBuilder) { this.blueprintBuilder = blueprintBuilder; }
public void BlockFactoryIndexChanged(IBlueprintBuilder blueprintBuilder, int index) { throw new NotImplementedException(); }
public void RestrictorRemoved(IBlueprintBuilder blueprintBuilder, IBlockRestrictor restrictor) { throw new NotImplementedException(); }
private AspectRatioRectangleSection CreateViewRectangle( IBlueprintBuilder blueprintBuilder, IRectangleSection containingRectangle) { return(new AspectRatioRectangleSection( blueprintBuilder.Dimensions.ToVector2(), containingRectangle)); }