private void MainWindowOnNetworkItemAdded(object sender, EventArgs e) { // Previous item's offset so that we can try to separate this one from previous one without overlapping var prevOffset = SelectedRoadTypes.Any() ? SelectedRoadTypes.Last().HorizontalOffset : 0; var netInfo = ToolsModifierControl.GetTool <NetTool>().Prefab; var item = new NetTypeItem(netInfo, prevOffset + netInfo.m_halfWidth * 2, 0, false); SelectedRoadTypes.Add(item); _mainWindow.AddItem(item); NetManagerDetour.NetworksCount = SelectedRoadTypes.Count; }
public void RenderList() { // Remove items foreach (UINetTypeItem child in m_items) { Destroy(child); } m_items.Clear(); // Add items int index = 0; foreach (NetTypeItem item in list) { DebugUtils.Log($"rendering item {index} {item.netInfo} at {item.offset}"); var comp = AddUIComponent <UINetTypeItem>(); comp.netInfo = item.netInfo; comp.offset = item.offset; comp.index = index++; //comp.RenderItem(); comp.OnDeleteCallback = () => { // remove item from list list.RemoveAt(comp.index); RenderList(); Changed(); }; comp.OnChangedCallback = () => { //item.offset = comp.offset; NetTypeItem i = list[comp.index]; i.offset = comp.offset; DebugUtils.Message($"OnChangedCallback {comp.index} now at {item.offset}"); Changed(); }; m_items.Add(comp); } m_space.BringToFront(); }
public override void Start() { LoadResources(); name = "PRT_OptionsPanel"; atlas = ResourceLoader.GetAtlas("Ingame"); backgroundSprite = "GenericPanel"; color = new Color32(206, 206, 206, 255); size = new Vector2(400, 52); relativePosition = new Vector2(8, 92); padding = new RectOffset(8, 8, 8, 8); autoLayoutPadding = new RectOffset(0, 4, 0, 0); autoLayoutDirection = LayoutDirection.Vertical; m_parallel = AddTool("Anarchy", "Toggle parallel road tool test", false); m_nettoolSelection = AddUIComponent <UILabel>(); m_nettoolSelection.name = "PRT_NetToolSelectionLabel"; m_nettoolSelection.textAlignment = UIHorizontalAlignment.Center; m_nettoolSelection.textScale = 1.2f; m_nettoolSelection.text = "Select a network"; m_nettoolSelection.autoSize = false; m_nettoolSelection.width = 400 + 8 * 4; m_nettoolSelection.autoHeight = false; m_nettoolSelection.height = 60; m_addMoreNetworks = CreateAddButton(m_nettoolSelection, "Add", "Add this network to the selection", (c, p) => { // TODO: added networks should also be removable or, as for now, once you add another network you can't removed it anymore // TODO: UI MUST be fixed before release, current one sucks. var selected = new NetTypeItem(netToolSelection, netToolSelection.m_halfWidth); ParallelRoadTool.SelectedRoadTypes.Add(selected); // TODO: update UI }); m_networks = new List <UINetTypeItem> { // TODO: add current selection item }; UpdateOptions(); autoLayout = true; }
public override void Start() { name = "PRT_NetList"; padding = new RectOffset(4, 4, 4, 0); size = new Vector2(450 - 8 * 2, 200); autoLayoutPadding = new RectOffset(0, 0, 0, 4); autoFitChildrenVertically = true; autoLayout = true; autoLayoutDirection = LayoutDirection.Vertical; backgroundSprite = "GenericPanel"; color = Color.black; m_items = new List <UINetTypeItem>(); m_currentTool = AddUIComponent <UINetTypeItem>(); m_currentTool.isCurrentItem = true; m_currentTool.OnAddCallback = () => { DebugUtils.Log("Adding item to list"); // get sum of current offsets float prevOffset = 0; if (list.Count() > 0) { prevOffset = list.Last().offset; } NetInfo netInfo = PrefabCollection <NetInfo> .FindLoaded(m_currentTool.netInfo.name); DebugUtils.Log($"{m_currentTool.netInfo} halfWidth: {m_currentTool.netInfo.m_halfWidth}"); NetTypeItem item = new NetTypeItem(netInfo, prevOffset + netInfo.m_halfWidth * 2); list.Add(item); RenderList(); Changed(); }; m_space = AddUIComponent <UIPanel>(); m_space.size = new Vector2(1, 1); }
public void AddItem(NetTypeItem item) { _mainWindow.AddItem(item); }