// creates a new menu item private BuildMenuItem CreateMenuItem(BuildingBase buildingBase) { BuildMenuItem item = Instantiate(menuItemPrefab, scrollZone); item.SetupItem(buildingBase, BuildManager.instance.SelectBuild); return(item); }
void Start() { craftingManager = GameObject.Find("GameManager").GetComponent <CraftingManager>(); recipes = new List <BuildMenuItem>(); // Loop through all recipes foreach (CraftingRecipe craftingRecipe in craftingManager.buildables) { BuildMenuItem item = Instantiate(buildMenuItem, gameObject.transform); item.Init(craftingRecipe); recipes.Add(item); } }
private void Place() { /* * Accept the position of the scheme */ BuildMenuItem bmi = scheme.GetComponent <BuildMenuItem>(); bmi.AcceptScheme(prefab); prefab = null; scheme = null; isPlacing = false; schemeYRotation = 0.0f; }
private void StartPlacing(BuildMenuItem item) { buildController.StartPlacing(item.gameObject); Close(); }
public override void OnUpdate() { if (Instance.HeightPerRow <= 0) { Instance.HeightPerRow = Element.ButtonHeight; } WorldSide localSide = World_AIW2.Instance.GetLocalPlayerSide(); if (localSide == null) { return; } ArcenUI_ImageButtonSet elementAsType = (ArcenUI_ImageButtonSet)Element; if (elementAsType != null) { } //prevent compiler warning Window_InGameBuildTypeIconMenu windowController = (Window_InGameBuildTypeIconMenu)Element.Window.Controller; if (windowController != null) { } //prevent compiler warning if (Instance.LastMenuIndex != Window_InGameBuildTabMenu.Instance.CurrentMenuIndex || Instance.LastTypeIndex != Instance.CurrentTypeIndex) { Instance.LastMenuIndex = Window_InGameBuildTabMenu.Instance.CurrentMenuIndex; Instance.LastTypeIndex = Instance.CurrentTypeIndex; for (int i = 0; i < Instance.LastShownItems.Count; i++) { Instance.LastShownItems[i].Clear(); } GameEntity entity = World_AIW2.Instance.GetEntityByID(Window_InGameBuildTabMenu.Instance.EntityID); if (entity != null && entity.TypeData.BuildMenus.Count > 0) { int highestRowReached = 0; if (Instance.LastMenuIndex >= entity.TypeData.BuildMenus.Count) { Instance.LastMenuIndex = 0; Window_InGameBuildTabMenu.Instance.CurrentMenuIndex = 0; } BuildMenu menu = entity.TypeData.BuildMenus[Instance.LastMenuIndex]; if (menu != null) { float aspectRatioAdjustedButtonWidth = this.Element.ButtonWidth; float aspectRatioAdjustedButtonHeight = this.Element.ButtonHeight; if (ArcenUI.Instance.PixelsPerPercent_X != ArcenUI.Instance.PixelsPerPercent_Y) { aspectRatioAdjustedButtonWidth *= ArcenUI.Instance.PixelsPerPercent_Y / ArcenUI.Instance.PixelsPerPercent_X; } //int totalColumns = Mathf.FloorToInt( this.Element.Width / aspectRatioAdjustedButtonWidth ); int currentImageListIndex = 0; int shownColumnCount = 0; for (int typeIndex = 0; typeIndex < menu.Columns.Count; typeIndex++) { List <BuildMenuItem> column = menu.Columns[typeIndex]; int buttonsInColumn = 0; for (int markIndex = 0; markIndex < column.Count; markIndex++) { BuildMenuItem menuItem = column[markIndex]; if (menuItem.EntityDataOrNull == null) { continue; } if (localSide.GetCanBuildAtAll(menuItem.EntityDataOrNull) != ArcenRejectionReason.Unknown) { continue; } buttonsInColumn = markIndex + 1; } highestRowReached = Math.Max(highestRowReached, buttonsInColumn); } for (int typeIndex = 0; typeIndex < menu.Columns.Count; typeIndex++) { if (Instance.LastShownItems.Count <= typeIndex) { Instance.LastShownItems.Add(new List <bItem>()); } List <bItem> lastShownItemList = Instance.LastShownItems[typeIndex]; bool haveShownAnythingInThisColumn = false; List <BuildMenuItem> column = menu.Columns[typeIndex]; if (column.Count <= 0) { continue; } for (int markIndex = 0; markIndex < column.Count; markIndex++) { if (lastShownItemList.Count <= markIndex) { lastShownItemList.Add(null); } BuildMenuItem menuItem = column[markIndex]; if (menuItem.EntityDataOrNull == null) { continue; } if (localSide.GetCanBuildAtAll(menuItem.EntityDataOrNull) != ArcenRejectionReason.Unknown) { continue; } haveShownAnythingInThisColumn = true; bItem item = null; if (currentImageListIndex < this.Element.Images.Count) { item = Element.Images[currentImageListIndex].Controller as bItem; currentImageListIndex++; } else { item = new bItem(); Vector2 dummy = Mat.V2_Zero; Vector2 size; size.x = aspectRatioAdjustedButtonWidth; size.y = aspectRatioAdjustedButtonHeight; Element.AddImageButton(item, size, dummy); currentImageListIndex = Element.Images.Count; } item.ColumnIndex = shownColumnCount; lastShownItemList[markIndex] = item; float effectiveX = shownColumnCount * aspectRatioAdjustedButtonWidth; float effectiveY = ((highestRowReached - 1) - markIndex) * aspectRatioAdjustedButtonHeight; item.TypeDoingTheBuilding = entity.TypeData; item.SetTypeToBuild(menuItem.EntityDataOrNull); item.Element.Alignment.XAlignment.Offset = effectiveX; item.Element.Alignment.YAlignment.Offset = effectiveY; item.Element.UpdatePositionAndSize(); } if (haveShownAnythingInThisColumn) { shownColumnCount++; } } //hide any extras for (int i = currentImageListIndex; i < this.Element.Images.Count; i++) { bItem item = this.Element.Images[i].Controller as bItem; item.SetTypeToBuild(null); item.TypeDoingTheBuilding = null; } } if (Instance.HeightPerRow > 0) { float currentExpansion = Instance.Window.SubContainer.Height - Instance.HeightPerRow; float targetExpansion = Instance.HeightPerRow * (highestRowReached - 1); float deltaExpansion = targetExpansion - currentExpansion; if (deltaExpansion != 0) { Instance.Window.SubContainer.Height = Instance.HeightPerRow * highestRowReached; } } } } }
public override void OnUpdate() { WorldSide localSide = World_AIW2.Instance.GetLocalSide(); if (localSide == null) { return; } ArcenUI_ButtonSet elementAsType = (ArcenUI_ButtonSet)Element; Window_InGameBuildMenu windowController = (Window_InGameBuildMenu)Element.Window.Controller; if (windowController.MenuIndexChangedSinceLastButtonSetUpdate) { elementAsType.ClearButtons(); GameEntity entity = World_AIW2.Instance.GetEntityByID(windowController.EntityID); if (entity != null && entity.TypeData.BuildMenus.Count > 0) { if (windowController.LastMenuIndex >= entity.TypeData.BuildMenus.Count) { windowController.LastMenuIndex = 0; } BuildMenu menu = entity.TypeData.BuildMenus[windowController.LastMenuIndex]; if (menu != null) { int shownColumnCount = 0; for (int x = 0; x < menu.Columns.Count; x++) { bool haveShownAnythingInThisColumn = false; List <BuildMenuItem> column = menu.Columns[x]; for (int y = 0; y < column.Count; y++) { BuildMenuItem item = column[y]; if (item.EntityDataOrNull != null && localSide.GetCanBuildAtAll(item.EntityDataOrNull) != ArcenRejectionReason.Unknown) { continue; } haveShownAnythingInThisColumn = true; bBuildItem newButtonController = new bBuildItem(entity.TypeData, item); newButtonController.ItemMenuIndex = windowController.LastMenuIndex; newButtonController.ItemColumnIndex = x; newButtonController.ItemIndex = y; Vector2 offset; offset.x = shownColumnCount * elementAsType.ButtonWidth; offset.y = y * elementAsType.ButtonHeight; Vector2 size; size.x = elementAsType.ButtonWidth; size.y = elementAsType.ButtonHeight; elementAsType.AddButton(newButtonController, size, offset); } if (haveShownAnythingInThisColumn) { shownColumnCount++; } } } } elementAsType.ActuallyPutItemsBackInPoolThatAreStillCleared(); windowController.MenuIndexChangedSinceLastButtonSetUpdate = false; } }
public bBuildItem(GameEntityTypeData TypeDoingTheBuilding, BuildMenuItem Item) { this.TypeDoingTheBuilding = TypeDoingTheBuilding; this.Item = Item; }
public override void OnUpdate() { WorldSide localSide = World_AIW2.Instance.GetLocalPlayerSide(); if (localSide == null) { return; } ArcenUI_ButtonSet elementAsType = (ArcenUI_ButtonSet)Element; Window_InGameBuildTypeMenu windowController = (Window_InGameBuildTypeMenu)Element.Window.Controller; if (windowController != null) { } //prevent compiler warning if (Window_InGameBuildTypeMenu.Instance.LastMenuIndex != Window_InGameBuildTabMenu.Instance.CurrentMenuIndex) { Window_InGameBuildTypeMenu.Instance.LastMenuIndex = Window_InGameBuildTabMenu.Instance.CurrentMenuIndex; elementAsType.ClearButtons(); GameEntity entity = World_AIW2.Instance.GetEntityByID(Window_InGameBuildTabMenu.Instance.EntityID); if (entity != null && entity.TypeData.BuildMenus.Count > 0) { if (Window_InGameBuildTypeMenu.Instance.LastMenuIndex >= entity.TypeData.BuildMenus.Count) { Window_InGameBuildTypeMenu.Instance.LastMenuIndex = 0; Window_InGameBuildTabMenu.Instance.CurrentMenuIndex = 0; } BuildMenu menu = entity.TypeData.BuildMenus[Window_InGameBuildTypeMenu.Instance.LastMenuIndex]; if (menu != null) { int shownColumnCount = 0; for (int x = 0; x < menu.Columns.Count; x++) { bool haveShownAnythingInThisColumn = false; List <BuildMenuItem> column = menu.Columns[x]; if (column.Count <= 0) { continue; } for (int y = 0; y < column.Count; y++) { BuildMenuItem item = column[y]; haveShownAnythingInThisColumn = true; bItem newButtonController = new bItem(entity.TypeData, item); newButtonController.ItemMenuIndex = Window_InGameBuildTypeMenu.Instance.LastMenuIndex; newButtonController.ItemTypeIndex = x; newButtonController.ItemIndex = y; Vector2 offset; offset.x = shownColumnCount * elementAsType.ButtonWidth; offset.y = 0; Vector2 size; size.x = elementAsType.ButtonWidth; size.y = elementAsType.ButtonHeight; elementAsType.AddButton(newButtonController, size, offset); } if (haveShownAnythingInThisColumn) { shownColumnCount++; } } } } elementAsType.ActuallyPutItemsBackInPoolThatAreStillCleared(); } }
/// <summary> /// Invoked when preference menu should be displayed. /// </summary> /// <param name="control">open menu on click.</param> public void AddPreferenceMenu(Control control) { System.Windows.Controls.ContextMenu cm = new System.Windows.Controls.ContextMenu(); control.MouseDown += delegate { if (cm.Items.Count > 0) { cm.Items.Clear(); } JSConsoleEnable = jsConsole.consoleStatus; if (JSConsoleEnable) { cm.Items.Add(BuildMenuItem.Build("Run JavaScript...", true, false, delegate { JSConsoleEnable = jsConsole.runJSConsole(JSConsoleEnable); })); } else if (!JSConsoleEnable) { cm.Items.Add(BuildMenuItem.Build("Close JavaScript Console", true, false, delegate { JSConsoleEnable = jsConsole.runJSConsole(JSConsoleEnable); })); } cm.Items.Add(BuildMenuItem.Build("Get HTML", true, false, delegate { TextBox textBox = new TextBox(); textBox.IsReadOnly = true; textBox.Text = browser.GetHTML(); textBox.SelectionStart = 0; textBox.TextWrapping = TextWrapping.WrapWithOverflow; textBox.HorizontalScrollBarVisibility = ScrollBarVisibility.Auto; textBox.VerticalScrollBarVisibility = ScrollBarVisibility.Auto; Window window = new Window(); window.Owner = Window.GetWindow((FrameworkElement)browserView); window.WindowStartupLocation = WindowStartupLocation.CenterOwner; window.Title = "Get HTML"; window.Height = 600; window.Width = 850; window.Content = textBox; window.ShowDialog(); })); cm.Items.Add(BuildMenuItem.Build("Popup Windows", true, false, delegate { browser.LoadURL("http://www.popuptest.com/"); })); cm.Items.Add(BuildMenuItem.Build("Upload File", true, false, delegate { browser.LoadURL("http://www.cs.tut.fi/~jkorpela/forms/file.html#example"); })); cm.Items.Add(BuildMenuItem.Build("Download File", true, false, delegate { browser.LoadURL("http://cloud.teamdev.com/downloads/dotnetbrowser/dotnetbrowser-1.8.2.zip"); })); cm.Items.Add(BuildMenuItem.Build("JavaScript Dialogs", true, false, delegate { browser.LoadURL("http://www.javascripter.net/faq/alert.htm"); })); cm.Items.Add(BuildMenuItem.Build("PDF Viewer", true, false, delegate { browser.LoadURL("http://www.orimi.com/pdf-test.pdf"); })); cm.Items.Add(BuildMenuItem.Build("Adobe Flash", true, false, delegate { browser.LoadURL("https://helpx.adobe.com/flash-player.html"); })); cm.Items.Add(BuildMenuItem.Build("Google Maps", true, false, delegate { browser.LoadURL("https://www.google.com.ua/maps"); })); cm.Items.Add(BuildMenuItem.Build("HTML5 Video", true, false, delegate { browser.LoadURL("https://www.w3.org/2010/05/video/mediaevents.html"); })); cm.Items.Add(BuildMenuItem.Build("Zoom In", true, false, delegate { browser.ZoomIn(); })); cm.Items.Add(BuildMenuItem.Build("Zoom Out", true, false, delegate { browser.ZoomOut(); })); cm.Items.Add(BuildMenuItem.Build("Actual size", true, false, delegate { browser.ZoomReset(); })); cm.Items.Add(BuildMenuItem.Build("Proxy Settings", true, false, delegate { ProxyConfigForm proxyConfigForm = new ProxyConfigForm(browserView); proxyConfigForm.Show(); })); cm.Items.Add(BuildMenuItem.Build("Save Web Page...", true, false, delegate { SaveWebPage(); })); cm.Items.Add(BuildMenuItem.Build("Clear Cache", true, false, delegate { if (!browser.URL.Contains("http://refreshyourcache.com/en/cache-test/")) { browser.LoadURL("http://refreshyourcache.com/en/cache-test/"); InfoMessageBox.Show((FrameworkElement)browserView, "Test page loaded. Press\n\"OK\" to clear the cache.", "Test page"); } browser.CacheStorage.ClearCache(); browser.ReloadIgnoringCache(); InfoMessageBox.Show((FrameworkElement)browserView, "Cache is cleared successfully", "Clear Cache"); })); //Child menu for MenuItem Preferences BrowserPreferencesMenu browserPreferencesMenu = new BrowserPreferencesMenu(browserView); cm.Items.Add(browserPreferencesMenu.PreferencesItem()); //Child menu for MenuItem Execute Command BrowserExecuteCommandMenu browserExecuteCommandMenu = new BrowserExecuteCommandMenu(browserView); cm.Items.Add(browserExecuteCommandMenu.ExecuteCommandItem()); cm.Items.Add(BuildMenuItem.Build("Print...", true, false, delegate { Nullable <Boolean> print = false; PrintDialog dlgPrint = new PrintDialog(); print = dlgPrint.ShowDialog(); string printerName = dlgPrint.PrintQueue.Name; if (print == true) { browser.PrintHandler = new MyPDFPrintHandler((printSettings) => { printSettings.PrinterName = printerName; dlgPrint.UserPageRangeEnabled = true; if (printSettings.PrinterName.Contains("PDF")) { string fileName = String.Empty; if (SaveToPDF(browser.Title, out fileName)) { printSettings.PDFFilePath = fileName; printSettings.PrintToPDF = true; } } else { printSettings.PrintToPDF = false; printSettings.PaperSize = PaperSize.DEFAULT; } printSettings.PrintBackgrounds = true; return(printSettings); }); browser.Print(); } })); cm.Items.Add(new Separator()); cm.Items.Add(BuildMenuItem.Build("More Features...", true, false, delegate { browser.LoadURL("http://dotnetbrowser-support.teamdev.com/documentation"); })); cm.Items.Add(new Separator()); cm.Items.Add(BuildMenuItem.Build("About WPFDotNetBrowser Demo", true, false, delegate { AboutDemo(); })); cm.IsOpen = true; }; }