public void Init() { StructureRepository structureRepository = TestHelpers.CreateStructureRepositoryContainingRoad(); IPlacementManager placementManager = Substitute.For <IPlacementManager>(); _tempObject = new GameObject(); placementManager.CreateGhostStructure(default, default).ReturnsForAnyArgs(_tempObject);
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);
public BuildingManager(GridStructure grid, IPlacementManager placementManager, StructureRepository structureRepository, IResourceManager resourceManager) { _grid = grid; this._placementManager = placementManager; this._structureRepository = structureRepository; StructureModificationFactory.PrepareFactory(structureRepository, _grid, placementManager, resourceManager); }
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 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; }
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"; }
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)]; }
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(); }
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; }
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(); }
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) { }
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); }
public ManufacturerPlacementHelper(StructureRepository structureRepository, GridStructure grid, IPlacementManager placementManager, IResourceManager resourceManager) : base(structureRepository, grid, placementManager, resourceManager) { }
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(); }
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; }
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; }