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;
        }
Exemple #2
0
        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();
        }
Exemple #3
0
        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;
        }
Exemple #4
0
        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);
 }