Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 3
0
 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);
        }
Ejemplo n.º 7
0
        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));
        }
Ejemplo n.º 9
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);
        }
Ejemplo n.º 10
0
 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));
        }
Ejemplo n.º 15
0
 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;
 }
Ejemplo n.º 16
0
        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);
        }
Ejemplo n.º 17
0
 public void RemoveAdditionalSetups(IBlueprintBuilder blueprintBuilder)
 {
     return;
 }
Ejemplo n.º 18
0
 public void RemoveAdditionalSetups(IBlueprintBuilder blueprintBuilder)
 {
     blueprintBuilder.RemoveRestrictor(this);
 }
 public CornerBlocksNumberGenerator(IBlueprintBuilder blueprintBuilder)
 {
     this.blueprintBuilder = blueprintBuilder;
 }
Ejemplo n.º 20
0
 public void BlockFactoryIndexChanged(IBlueprintBuilder blueprintBuilder, int index)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 21
0
 public void RestrictorRemoved(IBlueprintBuilder blueprintBuilder, IBlockRestrictor restrictor)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 22
0
 private AspectRatioRectangleSection CreateViewRectangle(
     IBlueprintBuilder blueprintBuilder, IRectangleSection containingRectangle)
 {
     return(new AspectRatioRectangleSection(
                blueprintBuilder.Dimensions.ToVector2(), containingRectangle));
 }