public void Init()
            {
                StructureRepository structureRepository = TestHelpers.CreateStructureRepositoryContainingRoad();
                IPlacementManager   placementManager    = Substitute.For <IPlacementManager>();

                _tempObject = new GameObject();
                placementManager.CreateGhostStructure(default, default).ReturnsForAnyArgs(_tempObject);
Exemple #2
0
 public BuildingManager(int cellSize, int width, int length, IPlacementManager placementManager, StructureRepository structureRepository, IResourceManager resourceManager)
 {
     this.grid                = new GridStructure(cellSize, width, length);
     this.placementManager    = placementManager;
     this.structureRepository = structureRepository;
     StructureModificationFactory.PrepareFactory(structureRepository, grid, placementManager, resourceManager);
 }
        public void Init()
        {
            StructureRepository structureRepository = TestHelpers.CreateStructureRepositoryContainingRoad();
            IPlacementManager   placementManager    = Substitute.For <IPlacementManager>();
            IResourceManager    resourceManager     = Substitute.For <IResourceManager>();

            resourceManager.CanIBuyIt(default, default, default).Returns(true);
Exemple #4
0
 public BuildingManager(GridStructure grid, IPlacementManager placementManager, StructureRepository structureRepository, IResourceManager resourceManager)
 {
     _grid = grid;
     this._placementManager    = placementManager;
     this._structureRepository = structureRepository;
     StructureModificationFactory.PrepareFactory(structureRepository, _grid, placementManager, resourceManager);
 }
Exemple #5
0
        public TileSpawnPanel(Size size, IResourceManager resourceManager, IPlacementManager placementManager)
            : base("Tile Spawn Panel", size, resourceManager)
        {
            _resourceManager = resourceManager;
            _placementManager = placementManager;

            _tileList = new ScrollableContainer("tilespawnlist", new Size(200, 400), _resourceManager)
                            {Position = new Point(5, 5)};
            components.Add(_tileList);

            var searchLabel = new Label("Tile Search:", "CALIBRI", _resourceManager) {Position = new Point(210, 0)};
            components.Add(searchLabel);

            _tileSearchTextbox = new Textbox(125, _resourceManager) {Position = new Point(210, 20)};
            _tileSearchTextbox.OnSubmit += tileSearchTextbox_OnSubmit;
            components.Add(_tileSearchTextbox);

            _clearLabel = new Label("[Clear Filter]", "CALIBRI", _resourceManager)
                              {
                                  DrawBackground = true,
                                  DrawBorder = true,
                                  Position = new Point(210, 55)
                              };

            _clearLabel.Clicked += ClearLabelClicked;
            _clearLabel.BackgroundColor = Color.Gray;
            components.Add(_clearLabel);

            BuildTileList();

            Position = new Point((int) (Gorgon.CurrentRenderTarget.Width/2f) - (int) (ClientArea.Width/2f),
                                 (int) (Gorgon.CurrentRenderTarget.Height/2f) - (int) (ClientArea.Height/2f));
            _placementManager.PlacementCanceled += PlacementManagerPlacementCanceled;
        }
Exemple #6
0
        public TileSpawnWindow(Vector2i size)
            : base("Tile Spawn Panel", size)
        {
            _placementManager = IoCManager.Resolve <IPlacementManager>();

            _tileList = new ScrollableContainer(new Vector2i(200, 400));
            _tileList.LocalPosition   = new Vector2i(5, 5);
            _tileList.BorderColor     = Color4.Black;
            _tileList.BackgroundColor = Color4.White;
            Container.AddControl(_tileList);

            var searchLabel = new Label("Tile Search:", "CALIBRI");

            searchLabel.LocalPosition = new Vector2i(210, 0);
            Container.AddControl(searchLabel);

            var tileSearchTextbox = new Textbox(125);

            tileSearchTextbox.LocalPosition = new Vector2i(210, 20);
            tileSearchTextbox.OnSubmit     += tileSearchTextbox_OnSubmit;
            Container.AddControl(tileSearchTextbox);

            //TODO: This needs to be a button.
            _clearLabel = new Label("[Clear Filter]", "CALIBRI");
            _clearLabel.BackgroundColor = Color4.Gray;
            _clearLabel.DrawBackground  = true;
            _clearLabel.DrawBorder      = true;
            _clearLabel.LocalPosition   = new Vector2i(210, 55);
            _clearLabel.Clicked        += ClearLabelClicked;
            Container.AddControl(_clearLabel);

            BuildTileList();

            _placementManager.PlacementCanceled += PlacementManagerPlacementCanceled;
        }
Exemple #7
0
 public StructureModificationHelper(StructureRepository structureRepository, GridStructure grid, IPlacementManager placementManager, IResourceManager resourceManager)
 {
     this._structureRepository = structureRepository;
     this._grid             = grid;
     this._placementManager = placementManager;
     this._resourceManager  = resourceManager;
     _structureData         = ScriptableObject.CreateInstance <NullStructureSO>();
 }
        public EntitySpawnWindow(IPlacementManager placementManager,
                                 IPrototypeManager prototypeManager,
                                 IResourceCache resourceCache)
        {
            this.placementManager = placementManager;
            this.prototypeManager = prototypeManager;
            this.resourceCache    = resourceCache;

            PerformLayout();
        }
        public TileSpawnWindow(ITileDefinitionManager tileDefinitionManager, IPlacementManager placementManager,
                               IResourceCache resourceCache)
        {
            __tileDefinitionManager = tileDefinitionManager;
            _placementManager       = placementManager;
            _resourceCache          = resourceCache;

            PerformLayout();

            Title = "Place Tiles";
        }
Exemple #10
0
 protected State(IDictionary<Type, object> managers)
 {
     StateManager = (IStateManager) managers[typeof (IStateManager)];
     NetworkManager = (INetworkManager) managers[typeof (INetworkManager)];
     ResourceManager = (IResourceManager) managers[typeof (IResourceManager)];
     UserInterfaceManager = (IUserInterfaceManager) managers[typeof (IUserInterfaceManager)];
     MapManager = (IMapManager) managers[typeof (IMapManager)];
     PlayerManager = (IPlayerManager) managers[typeof (IPlayerManager)];
     ConfigurationManager = (IConfigurationManager) managers[typeof (IConfigurationManager)];
     PlacementManager = (IPlacementManager) managers[typeof (IPlacementManager)];
     KeyBindingManager = (IKeyBindingManager) managers[typeof (IKeyBindingManager)];
 }
Exemple #11
0
 protected State(IDictionary <Type, object> managers)
 {
     StateManager         = (IStateManager)managers[typeof(IStateManager)];
     NetworkManager       = (IClientNetManager)managers[typeof(IClientNetManager)];
     ResourceCache        = (IResourceCache)managers[typeof(IResourceCache)];
     UserInterfaceManager = (IUserInterfaceManager)managers[typeof(IUserInterfaceManager)];
     MapManager           = (IMapManager)managers[typeof(IMapManager)];
     PlayerManager        = (IPlayerManager)managers[typeof(IPlayerManager)];
     ConfigurationManager = (IConfigurationManager)managers[typeof(IConfigurationManager)];
     PlacementManager     = (IPlacementManager)managers[typeof(IPlacementManager)];
     KeyBindingManager    = (IKeyBindingManager)managers[typeof(IKeyBindingManager)];
 }
        public EscapeMenu(IClientConsole console,
                          ITileDefinitionManager tileDefinitionManager,
                          IPlacementManager placementManager,
                          IPrototypeManager prototypeManager,
                          IResourceCache resourceCache,
                          IConfigurationManager configSystem)
        {
            _configSystem           = configSystem;
            _console                = console;
            __tileDefinitionManager = tileDefinitionManager;
            _placementManager       = placementManager;
            _prototypeManager       = prototypeManager;
            _resourceCache          = resourceCache;

            PerformLayout();
        }
        public TileSpawnPanel(Size size, IResourceManager resourceManager, IPlacementManager placementManager)
            : base("Tile Spawn Panel", size, resourceManager)
        {
            _resourceManager  = resourceManager;
            _placementManager = placementManager;

            _tileList = new ScrollableContainer("tilespawnlist", new Size(200, 400), _resourceManager)
            {
                Position = new Point(5, 5)
            };
            components.Add(_tileList);

            var searchLabel = new Label("Tile Search:", "CALIBRI", _resourceManager)
            {
                Position = new Point(210, 0)
            };

            components.Add(searchLabel);

            _tileSearchTextbox = new Textbox(125, _resourceManager)
            {
                Position = new Point(210, 20)
            };
            _tileSearchTextbox.OnSubmit += tileSearchTextbox_OnSubmit;
            components.Add(_tileSearchTextbox);

            _clearLabel = new Label("[Clear Filter]", "CALIBRI", _resourceManager)
            {
                DrawBackground = true,
                DrawBorder     = true,
                Position       = new Point(210, 55)
            };

            _clearLabel.Clicked        += ClearLabelClicked;
            _clearLabel.BackgroundColor = Color.Gray;
            components.Add(_clearLabel);

            BuildTileList();

            Position = new Point((int)(Gorgon.CurrentRenderTarget.Width / 2f) - (int)(ClientArea.Width / 2f),
                                 (int)(Gorgon.CurrentRenderTarget.Height / 2f) - (int)(ClientArea.Height / 2f));
            _placementManager.PlacementCanceled += PlacementManagerPlacementCanceled;
        }
        public EscapeMenu(IClientConsole console,
                          ITileDefinitionManager tileDefinitionManager,
                          IPlacementManager placementManager,
                          IPrototypeManager prototypeManager,
                          IResourceCache resourceCache,
                          IConfigurationManager configSystem, ILocalizationManager localizationManager)
        {
            _configSystem           = configSystem;
            _localizationManager    = localizationManager;
            _console                = console;
            __tileDefinitionManager = tileDefinitionManager;
            _placementManager       = placementManager;
            _prototypeManager       = prototypeManager;
            _resourceCache          = resourceCache;

            IoCManager.InjectDependencies(this);

            PerformLayout();
        }
Exemple #15
0
        public TileSpawnPanel(Vector2i size, IResourceCache resourceCache, IPlacementManager placementManager)
            : base("Tile Spawn Panel", size, resourceCache)
        {
            _placementManager = placementManager;

            _tileList = new ScrollableContainer("tilespawnlist", new Vector2i(200, 400), _resourceCache)
            {
                Position = new Vector2i(5, 5)
            };
            components.Add(_tileList);

            var searchLabel = new Label("Tile Search:", "CALIBRI", _resourceCache)
            {
                Position = new Vector2i(210, 0)
            };

            components.Add(searchLabel);

            _tileSearchTextbox = new Textbox(125, _resourceCache)
            {
                Position = new Vector2i(210, 20)
            };
            _tileSearchTextbox.OnSubmit += tileSearchTextbox_OnSubmit;
            components.Add(_tileSearchTextbox);

            _clearLabel = new Label("[Clear Filter]", "CALIBRI", _resourceCache)
            {
                DrawBackground = true,
                DrawBorder     = true,
                Position       = new Vector2i(210, 55)
            };

            _clearLabel.Clicked        += ClearLabelClicked;
            _clearLabel.BackgroundColor = new SFML.Graphics.Color(128, 128, 128);
            components.Add(_clearLabel);

            BuildTileList();

            Position = new Vector2i((int)(CluwneLib.CurrentRenderTarget.Size.X / 2f) - (int)(ClientArea.Width / 2f),
                                    (int)(CluwneLib.CurrentRenderTarget.Size.Y / 2f) - (int)(ClientArea.Height / 2f));
            _placementManager.PlacementCanceled += PlacementManagerPlacementCanceled;
        }
Exemple #16
0
        public TileSpawnWindow(ITileDefinitionManager tileDefinitionManager, IPlacementManager placementManager,
                               IResourceCache resourceCache)
        {
            __tileDefinitionManager = tileDefinitionManager;
            _placementManager       = placementManager;
            _resourceCache          = resourceCache;

            var vBox = new VBoxContainer();

            Contents.AddChild(vBox);
            var hBox = new HBoxContainer();

            vBox.AddChild(hBox);
            SearchBar = new LineEdit {
                PlaceHolder = "Search", SizeFlagsHorizontal = SizeFlags.FillExpand
            };
            SearchBar.OnTextChanged += OnSearchBarTextChanged;
            hBox.AddChild(SearchBar);

            ClearButton = new Button {
                Text = "Clear"
            };
            ClearButton.OnPressed += OnClearButtonPressed;
            hBox.AddChild(ClearButton);

            TileList = new ItemList {
                SizeFlagsVertical = SizeFlags.FillExpand
            };
            TileList.OnItemSelected   += TileListOnOnItemSelected;
            TileList.OnItemDeselected += TileListOnOnItemDeselected;
            vBox.AddChild(TileList);

            BuildTileList();

            _placementManager.PlacementChanged += OnPlacementCanceled;

            Title = "Place Tiles";
            SearchBar.GrabKeyboardFocus();
        }
        public StateManager(IConfigurationManager configurationManager, INetworkManager networkManager,
                            IUserInterfaceManager userInterfaceManager,
                            IResourceManager resourceManager, IMapManager mapManager, IPlayerManager playerManager,
                            IPlacementManager placementManager, IKeyBindingManager keyBindingManager)
        {
            _managers = new Dictionary <Type, object>
            {
                { typeof(INetworkManager), networkManager },
                { typeof(IUserInterfaceManager), userInterfaceManager },
                { typeof(IResourceManager), resourceManager },
                { typeof(IMapManager), mapManager },
                { typeof(IPlayerManager), playerManager },
                { typeof(IConfigurationManager), configurationManager },
                { typeof(IPlacementManager), placementManager },
                { typeof(IKeyBindingManager), keyBindingManager },
                { typeof(IStateManager), this }
            };

            _loadedStates = new Dictionary <Type, IState>();
            CurrentState  = null;

            playerManager.RequestedStateSwitch += HandleStateChange;
        }
        public EscapeMenu(IClientConsole console,
                          ITileDefinitionManager tileDefinitionManager,
                          IPlacementManager placementManager,
                          IPrototypeManager prototypeManager,
                          IResourceCache resourceCache,
                          IConfigurationManager configSystem, ILocalizationManager localizationManager)
        {
            _configSystem           = configSystem;
            _localizationManager    = localizationManager;
            _console                = console;
            __tileDefinitionManager = tileDefinitionManager;
            _placementManager       = placementManager;
            _prototypeManager       = prototypeManager;
            _resourceCache          = resourceCache;

            IoCManager.InjectDependencies(this);

            _sandboxManager.AllowedChanged      += AllowedChanged;
            _conGroupController.ConGroupUpdated += UpdateSpawnButtonStates;

            PerformLayout();

            UpdateSpawnButtonStates();
        }
Exemple #19
0
 public static void PrepareFactory(StructureRepository structureRepository, GridStructure grid, IPlacementManager placementManager, IResourceManager resourceManager)
 {
     singleStructurePlacementHelper = new SingleStructurePlacementHelper(structureRepository, grid, placementManager, resourceManager);
     structureDemolitionHelper      = new StructureDemolitionHelper(structureRepository, grid, placementManager, resourceManager);
     roadStructurePlacementHelper   = new RoadPlacementModificationHelper(structureRepository, grid, placementManager, resourceManager);
     zonePlacementHelper            = new ZonePlacementHelper(structureRepository, grid, placementManager, Vector3.zero, resourceManager);
 }
        public EntitySpawnPanel(Vector2i size, IResourceManager resourceManager, IPlacementManager placementManager)
            : base("Entity Spawn Panel", size, resourceManager)
        {
            _resourceManager  = resourceManager;
            _placementManager = placementManager;

            _entityList = new ScrollableContainer("entspawnlist", new Vector2i(200, 400), _resourceManager)
            {
                Position = new Vector2i(5, 5)
            };
            components.Add(_entityList);

            var searchLabel = new Label("Entity Search:", "CALIBRI", _resourceManager)
            {
                Position = new Vector2i(210, 0)
            };

            components.Add(searchLabel);

            _entSearchTextbox = new Textbox(125, _resourceManager)
            {
                Position = new Vector2i(210, 20)
            };
            _entSearchTextbox.OnSubmit += entSearchTextbox_OnSubmit;
            components.Add(_entSearchTextbox);

            _clearLabel = new Label("[Clear Filter]", "CALIBRI", _resourceManager)
            {
                DrawBackground = true,
                DrawBorder     = true,
                Position       = new Vector2i(210, 55)
            };

            _overLabel = new Label("Override Placement:", "CALIBRI", _resourceManager)
            {
                Position = _clearLabel.Position + new Vector2i(0, _clearLabel.ClientArea.Height + 15)
            };

            components.Add(_overLabel);

            var initOpts = new List <string>();

            initOpts.AddRange(new[]
            {
                "None",
                "AlignNone",
                "AlignFree",
                "AlignSimilar",
                "AlignTileAny",
                "AlignTileEmpty",
                "AlignTileNonSolid",
                "AlignTileSolid",
                "AlignWall",
                "AlignWallTops"
            });

            _lstOverride = new Listbox(150, 125, resourceManager, initOpts);
            _lstOverride.SelectItem("None");
            _lstOverride.ItemSelected += _lstOverride_ItemSelected;
            _lstOverride.Position      = _overLabel.Position + new Vector2i(0, _overLabel.ClientArea.Height);
            components.Add(_lstOverride);

            _clearLabel.Clicked        += ClearLabelClicked;
            _clearLabel.BackgroundColor = new SFML.Graphics.Color(128, 128, 128);
            components.Add(_clearLabel);

            _eraserButton = new ImageButton
            {
                ImageNormal = "erasericon",
                Position    =
                    new Vector2i(_clearLabel.Position.X + _clearLabel.ClientArea.Width + 5,
                                 _clearLabel.Position.Y)
            };

            //eraserButton.Position = new Vector2i(clearLabel.ClientArea.Right + 5, clearLabel.ClientArea.Top); Clientarea not updating properly. FIX THIS
            _eraserButton.Clicked += EraserButtonClicked;
            components.Add(_eraserButton);

            BuildEntityList();

            Position = new Vector2i((int)(CluwneLib.CurrentRenderTarget.Size.X / 2f) - (int)(ClientArea.Width / 2f),
                                    (int)(CluwneLib.CurrentRenderTarget.Size.Y / 2f) - (int)(ClientArea.Height / 2f));
            _placementManager.PlacementCanceled += PlacementManagerPlacementCanceled;
        }
 public ZonePlacementHelper(StructureRepository structureRepository, GridStructure grid, IPlacementManager placementManager, Vector3 mapBottomLeftCorner, IResourceManager resourceManager)
     : base(structureRepository, grid, placementManager, resourceManager)
 {
     this._mapBottomLeftCorner = mapBottomLeftCorner;
 }
        public EntitySpawnWindow(IPlacementManager placementManager,
                                 IPrototypeManager prototypeManager,
                                 IResourceCache resourceCache,
                                 ILocalizationManager loc)
        {
            this.placementManager = placementManager;
            this.prototypeManager = prototypeManager;
            this.resourceCache    = resourceCache;

            _loc = loc;

            Size  = new Vector2(250.0f, 300.0f);
            Title = _loc.GetString("Entity Spawn Panel");

            Contents.AddChild(MainVBox = new VBoxContainer
            {
                Children =
                {
                    new HBoxContainer
                    {
                        Children =
                        {
                            (SearchBar              = new LineEdit
                            {
                                MouseFilter         = MouseFilterMode.Stop,
                                SizeFlagsHorizontal = SizeFlags.FillExpand,
                                PlaceHolder         = _loc.GetString("Search")
                            }),

                            (ClearButton            = new Button
                            {
                                Disabled            = true,
                                Text                = _loc.GetString("Clear"),
                            })
                        }
                    },
                    new ScrollContainer
                    {
                        CustomMinimumSize = new Vector2(200.0f, 0.0f),
                        SizeFlagsVertical = SizeFlags.FillExpand,
                        Children          =
                        {
                            (PrototypeList         = new VBoxContainer
                            {
                                MouseFilter        = MouseFilterMode.Ignore,
                                SeparationOverride =                      2,
                            })
                        }
                    },
                    new HBoxContainer
                    {
                        Children =
                        {
                            (EraseButton            = new Button
                            {
                                ToggleMode          = true,
                                Text                = _loc.GetString("Erase Mode")
                            }),

                            (OverrideMenu           = new OptionButton
                            {
                                ToggleMode          = false,
                                SizeFlagsHorizontal = SizeFlags.FillExpand,
                                ToolTip             = _loc.GetString("Override placement")
                            })
                        }
                    }
                }
            });

            for (var i = 0; i < initOpts.Length; i++)
            {
                OverrideMenu.AddItem(initOpts[i], i);
            }

            EraseButton.OnToggled       += OnEraseButtonToggled;
            OverrideMenu.OnItemSelected += OnOverrideMenuItemSelected;
            SearchBar.OnTextChanged     += OnSearchBarTextChanged;
            ClearButton.OnPressed       += OnClearButtonPressed;

            BuildEntityList();

            this.placementManager.PlacementCanceled += OnPlacementCanceled;
        }
 public RoadPlacementModificationHelper(StructureRepository structureRepository, GridStructure grid, IPlacementManager placementManager, IResourceManager resourceManager)
     : base(structureRepository, grid, placementManager, resourceManager)
 {
 }
Exemple #24
0
 public static void PrepareFactory(StructureRepository structureRepository, GridStructure grid, IPlacementManager placementManager, IResourceManager resourceManager)
 {
     _manufacturerPlacementHelper    = new ManufacturerPlacementHelper(structureRepository, grid, placementManager, resourceManager);
     _singleStructurePlacementHelper = new SingleStructurePlacementHelper(structureRepository, grid, placementManager, resourceManager);
     _structureRemovalHelper         = new StructureRemovalHelper(structureRepository, grid, placementManager, resourceManager);
     _strutureUpgradeHelper          = new StructureUpgradeHelper(structureRepository, grid, placementManager, resourceManager);
     _roadStructurePlacementHelper   = new RoadPlacementModificationHelper(structureRepository, grid, placementManager, resourceManager);
     _zonePlacementHelper            = new ZonePlacementHelper(structureRepository, grid, placementManager, Vector3.zero, resourceManager);
 }
Exemple #25
0
 public ManufacturerPlacementHelper(StructureRepository structureRepository, GridStructure grid, IPlacementManager placementManager, IResourceManager resourceManager)
     : base(structureRepository, grid, placementManager, resourceManager)
 {
 }
Exemple #26
0
 public static void ModifyRoadCellsOnTheGrid(Dictionary <Vector3Int, GameObject> neighboursDictionar, StructureBaseSO structureData, Dictionary <Vector3Int, GameObject> structuresToBeModified, GridStructure grid, IPlacementManager placementManager)
 {
     foreach (var keyValuePair in neighboursDictionar)
     {
         grid.RemoveStructureFromTheGrid(keyValuePair.Key);
         placementManager.DestroySingleStructure(keyValuePair.Value);
         var roadStructure = GetCorrectRoadPrefab(keyValuePair.Key, structureData, structuresToBeModified, grid);
         var structure     = placementManager.PlaceStructureOnTheMap(keyValuePair.Key, roadStructure.RoadPrefab, roadStructure.RoadPrefabRotation);
         grid.PlaceStructureOnTheGrid(structure, keyValuePair.Key, GameObject.Instantiate(structureData));
     }
     neighboursDictionar.Clear();
 }
Exemple #27
0
 public StructureDemolitionHelper(StructureRepository structureRepository, GridStructure grid, IPlacementManager placementManager, IResourceManager resourceManager) : base(structureRepository, grid, placementManager, resourceManager)
 {
 }
        public EntitySpawnPanel(Size size, IResourceManager resourceManager, IPlacementManager placementManager)
            : base("Entity Spawn Panel", size, resourceManager)
        {
            _resourceManager = resourceManager;
            _placementManager = placementManager;

            _entityList = new ScrollableContainer("entspawnlist", new Size(200, 400), _resourceManager)
                              {Position = new Point(5, 5)};
            components.Add(_entityList);

            var searchLabel = new Label("Entity Search:", "CALIBRI", _resourceManager) {Position = new Point(210, 0)};
            components.Add(searchLabel);

            _entSearchTextbox = new Textbox(125, _resourceManager) {Position = new Point(210, 20)};
            _entSearchTextbox.OnSubmit += entSearchTextbox_OnSubmit;
            components.Add(_entSearchTextbox);

            _clearLabel = new Label("[Clear Filter]", "CALIBRI", _resourceManager)
                              {
                                  DrawBackground = true,
                                  DrawBorder = true,
                                  Position = new Point(210, 55)
                              };

            _overLabel = new Label("Override Placement:", "CALIBRI", _resourceManager)
                             {
                                 Position = _clearLabel.Position + new Size(0, _clearLabel.ClientArea.Height + 15)
                             };

            components.Add(_overLabel);

            var initOpts = new List<string>();

            initOpts.AddRange(new[]
                                  {
                                      "None",
                                      "AlignNone",
                                      "AlignFree",
                                      "AlignSimilar",
                                      "AlignTileAny",
                                      "AlignTileEmpty",
                                      "AlignTileNonSolid",
                                      "AlignTileSolid",
                                      "AlignWall",
                                      "AlignWallTops"
                                  });

            _lstOverride = new Listbox(150, 125, resourceManager, initOpts);
            _lstOverride.SelectItem("None");
            _lstOverride.ItemSelected += _lstOverride_ItemSelected;
            _lstOverride.Position = _overLabel.Position + new Size(0, _overLabel.ClientArea.Height);
            components.Add(_lstOverride);

            _clearLabel.Clicked += ClearLabelClicked;
            _clearLabel.BackgroundColor = Color.Gray;
            components.Add(_clearLabel);

            _eraserButton = new ImageButton
                                {
                                    ImageNormal = "erasericon",
                                    Position =
                                        new Point(_clearLabel.Position.X + _clearLabel.ClientArea.Width + 5,
                                                  _clearLabel.Position.Y)
                                };

            //eraserButton.Position = new Point(clearLabel.ClientArea.Right + 5, clearLabel.ClientArea.Top); Clientarea not updating properly. FIX THIS
            _eraserButton.Clicked += EraserButtonClicked;
            components.Add(_eraserButton);

            BuildEntityList();

            Position = new Point((int) (CluwneLib.CurrentRenderTarget.Size.X/2f) - (int) (ClientArea.Width/2f),
                                 (int) (CluwneLib.CurrentRenderTarget.Size.Y/2f) - (int) (ClientArea.Height/2f));
            _placementManager.PlacementCanceled += PlacementManagerPlacementCanceled;
        }
Exemple #29
0
        public EntitySpawnWindow(Vector2i size)
            : base("Entity Spawn Panel", size)
        {
            _placementManager = IoCManager.Resolve <IPlacementManager>();

            _entityList = new ScrollableContainer(new Vector2i(200, 400));
            _entityList.LocalPosition = new Vector2i(5, 5);
            Container.AddControl(_entityList);

            var searchLabel = new Label("Entity Search:", "CALIBRI");

            searchLabel.LocalPosition = new Vector2i(210, 0);
            Container.AddControl(searchLabel);

            var entSearchTextbox = new Textbox(125);

            entSearchTextbox.LocalPosition = new Vector2i(210, 20);
            entSearchTextbox.OnSubmit     += entSearchTextbox_OnSubmit;
            Container.AddControl(entSearchTextbox);

            _clearLabel = new Label("[Clear Filter]", "CALIBRI");
            _clearLabel.DrawBackground  = true;
            _clearLabel.DrawBorder      = true;
            _clearLabel.LocalPosition   = new Vector2i(210, 55);
            _clearLabel.Clicked        += ClearLabelClicked;
            _clearLabel.BackgroundColor = Color.Gray;
            Container.AddControl(_clearLabel);

            var overLabel = new Label("Override Placement:", "CALIBRI");

            overLabel.LocalPosition = new Vector2i(0, 15);
            overLabel.Alignment     = ControlAlignments.Bottom;
            _clearLabel.AddControl(overLabel);

            var initOpts = new List <string>();

            initOpts.AddRange(new[]
            {
                "PlaceFree",
                "PlaceNearby",
                "SnapgridCenter",
                "SnapgridBorder",
                "AlignSimilar",
                "AlignTileAny",
                "AlignTileEmpty",
                "AlignTileNonSolid",
                "AlignTileSolid",
                "AlignWall",
            });

            _lstOverride = new Listbox(140, 125, initOpts);
            _lstOverride.ItemSelected += _lstOverride_ItemSelected;
            _lstOverride.SelectItem("PlaceFree");
            _lstOverride.LocalPosition = new Vector2i(0, 0);
            _lstOverride.Alignment     = ControlAlignments.Bottom;
            overLabel.AddControl(_lstOverride);

            _eraserButton               = new ImageButton();
            _eraserButton.ImageNormal   = "erasericon";
            _eraserButton.LocalPosition = new Vector2i(5, 0);
            _eraserButton.Alignment     = ControlAlignments.Right;
            _clearLabel.AddControl(_eraserButton);
            _eraserButton.Clicked += EraserButtonClicked;

            BuildEntityList();

            _placementManager.PlacementCanceled += PlacementManagerPlacementCanceled;
        }