Exemplo n.º 1
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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;
 }
Exemplo n.º 6
0
 public AspectRatioRectangleSection(Vector2 aspectRatio, IRectangleSection baseRectangleSection)
 {
     this.aspectRatio          = aspectRatio;
     this.baseRectangleSection = baseRectangleSection;
 }
Exemplo n.º 7
0
 private AspectRatioRectangleSection CreateViewRectangle(
     IBlueprintBuilder blueprintBuilder, IRectangleSection containingRectangle)
 {
     return(new AspectRatioRectangleSection(
                blueprintBuilder.Dimensions.ToVector2(), containingRectangle));
 }