public void CreateBlueprintBuilderView( IFactory <IRenderable> tileObjectFactory, IFactory <IRenderable> blockRenderableFactory, IFactory <IRenderable> shipComponentsFactory, IFactory <IRenderable> emptyComponentsFactory, IFactory <IRenderable> pipeLinkFactory, IFactory <IRenderable, ICurve> pipeFactory, IEnumerable <IFactory <IRenderable> > blockIconRenderableFactories, IRectangleSection fullRectangle) { var shipComponentDetails = new Details <IShipComponent>(); var blockDetails = new Details <IBlock>(); var observableBlueprintBuilder = CreateBlueprintBuilder(boardSize, shipComponentDetails, blockDetails); var fittingRectangle = CreateViewRectangle(observableBlueprintBuilder, fullRectangle); CreateUserInterface(blockIconRenderableFactories); var tilesFactory = new ViewModelTilesFactory(new ActivateableWorldObjectFactory(tileObjectFactory)); var blueprintViewModelFactory = new ViewModelFactory( tilesFactory, blockRenderableFactory, shipComponentsFactory, emptyComponentsFactory, pipeLinkFactory, pipeFactory, shipComponentDetails); blueprintViewModelFactory.CreateViewModel(observableBlueprintBuilder, fittingRectangle); }
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 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 IActivateableWorldObject[,] CreateTiles(Coordinate dimensions, IRectangleSection fittingRectangle) { var tiles = new IActivateableWorldObject[dimensions.Y, dimensions.X]; var tileRects = fittingRectangle.Section.Split(dimensions); var coordinateRectangle = new CoordinateRectangle(Coordinates.Zero, dimensions); foreach (var coordinate in coordinateRectangle.Points) { tiles.Set(coordinate, tileFactory.Create()); tiles.Get(coordinate).Position = tileRects.Get(coordinate).Center; tiles.Get(coordinate).Scale = tileRects.Get(coordinate).Dimensions; } return(tiles); }
public MarginRectangleSection(Vector2 margin, IRectangleSection baseRectangleSection) { this.margin = margin; this.baseRectangleSection = baseRectangleSection; }
public AspectRatioRectangleSection(Vector2 aspectRatio, IRectangleSection baseRectangleSection) { this.aspectRatio = aspectRatio; this.baseRectangleSection = baseRectangleSection; }
private AspectRatioRectangleSection CreateViewRectangle( IBlueprintBuilder blueprintBuilder, IRectangleSection containingRectangle) { return(new AspectRatioRectangleSection( blueprintBuilder.Dimensions.ToVector2(), containingRectangle)); }