コード例 #1
0
        private void OnLoadDisplay(DisplayData data)
        {
            if (_isBeingDestroyed)
            {
                return;
            }

            _grid.ClearPage();

            var grouped = _mono.Storage.GetItemsWithin();

            if (data.EndPosition > grouped.Count)
            {
                data.EndPosition = grouped.Count;
            }

            for (int i = data.StartPosition; i < data.EndPosition; i++)
            {
                GameObject buttonPrefab = Instantiate(data.ItemsPrefab);

                if (buttonPrefab == null || data.ItemsGrid == null)
                {
                    if (buttonPrefab != null)
                    {
                        QuickLogger.Debug("Destroying Tab", true);
                        Destroy(buttonPrefab);
                    }
                    return;
                }

                var item = grouped.ElementAt(i);
                LoadDisplay(data, item.Key, item.Value);
            }
            _grid.UpdaterPaginator(grouped.Count);
        }
コード例 #2
0
        private void OnLoadItemsGrid(DisplayData data)
        {
            try
            {
                if (_isBeingDestroyed)
                {
                    return;
                }

                QuickLogger.Debug($"OnLoadBaseItemsGrid : {data.ItemsGrid}", true);

                _itemsGrid.ClearPage();


                var grouped = _mono.DeepDrillerContainer.GetItemsWithin();


                if (data.EndPosition > grouped.Count)
                {
                    data.EndPosition = grouped.Count;
                }

                for (int i = data.StartPosition; i < data.EndPosition; i++)
                {
                    GameObject buttonPrefab = Instantiate(data.ItemsPrefab);

                    if (buttonPrefab == null || data.ItemsGrid == null)
                    {
                        if (buttonPrefab != null)
                        {
                            Destroy(buttonPrefab);
                        }
                        return;
                    }

                    buttonPrefab.transform.SetParent(data.ItemsGrid.transform, false);
                    var amount = buttonPrefab.GetComponentInChildren <Text>();
                    amount.text = grouped.ElementAt(i).Value.ToString();
                    var itemBTN = buttonPrefab.AddComponent <InterfaceButton>();
                    itemBTN.ButtonMode     = InterfaceButtonMode.Background;
                    itemBTN.STARTING_COLOR = _startColor;
                    itemBTN.HOVER_COLOR    = _hoverColor;
                    itemBTN.BtnName        = "ItemBTN";
                    itemBTN.TextLineOne    = string.Format(FCSDeepDrillerBuildable.TakeFormatted(), Language.main.Get(grouped.ElementAt(i).Key));
                    itemBTN.Tag            = grouped.ElementAt(i).Key;
                    itemBTN.OnButtonClick  = OnButtonClick;

                    uGUI_Icon trashIcon = InterfaceHelpers.FindGameObject(buttonPrefab, "Icon").AddComponent <uGUI_Icon>();
                    trashIcon.sprite = SpriteManager.Get(grouped.ElementAt(i).Key);
                }
                _itemsGrid.UpdaterPaginator(grouped.Count());
            }
            catch (Exception e)
            {
                QuickLogger.Error("Error Caught");
                QuickLogger.Error($"Error Message: {e.Message}");
                QuickLogger.Error($"Error StackTrace: {e.StackTrace}");
            }
        }
コード例 #3
0
        private void OnLoadProgrammingGrid(DisplayData data)
        {
            try
            {
                if (_isBeingDestroyed)
                {
                    return;
                }

                QuickLogger.Debug($"OnLoadProgrammingGrid : {data.ItemsGrid}", true);

                _programmingGrid.ClearPage();


                var grouped = _mono.UpgradeManager.Upgrades;


                if (data.EndPosition > grouped.Count)
                {
                    data.EndPosition = grouped.Count;
                }

                for (int i = data.StartPosition; i < data.EndPosition; i++)
                {
                    GameObject buttonPrefab = Instantiate(data.ItemsPrefab);

                    if (buttonPrefab == null || data.ItemsGrid == null)
                    {
                        if (buttonPrefab != null)
                        {
                            Destroy(buttonPrefab);
                        }
                        return;
                    }

                    buttonPrefab.transform.SetParent(data.ItemsGrid.transform, false);
                    var upgradeText = buttonPrefab.GetComponentInChildren <Text>();
                    upgradeText.text = grouped.ElementAt(i).Format();

                    var deleteButton = GameObjectHelpers.FindGameObject(buttonPrefab, "DeleteBTN")?.GetComponent <Button>();
                    deleteButton?.onClick.AddListener(Test);
                    var function = grouped.ElementAt(i);
                    deleteButton?.onClick.AddListener(() => { _mono.UpgradeManager.DeleteFunction(function); });

                    var activateButton = GameObjectHelpers.FindGameObject(buttonPrefab, "ActivationBTN")?.GetComponent <Button>();
                    activateButton?.onClick.AddListener(Test);
                    activateButton?.onClick.AddListener(() => { function.ToggleUpdate(); });
                }

                _programmingGrid.UpdaterPaginator(grouped.Count);
            }
            catch (Exception e)
            {
                QuickLogger.Error("Error Caught");
                QuickLogger.Error($"Error Message: {e.Message}");
                QuickLogger.Error($"Error StackTrace: {e.StackTrace}");
            }
        }
コード例 #4
0
        private void OnLoadDnaGrid(DisplayData info)
        {
            _dnaGrid.ClearPage();

            var grouped = _mono.HydroHarvContainer.Items.ToList();

            if (info.EndPosition > grouped.Count)
            {
                info.EndPosition = grouped.Count;
            }

            for (int i = info.StartPosition; i < info.EndPosition; i++)
            {
                var techType = grouped[i].Key;

                GameObject buttonPrefab = Instantiate(info.ItemsPrefab);

                if (buttonPrefab == null || info.ItemsGrid == null)
                {
                    if (buttonPrefab != null)
                    {
                        Destroy(buttonPrefab);
                    }
                    return;
                }

                buttonPrefab.transform.SetParent(info.ItemsGrid.transform, false);
                buttonPrefab.GetComponentInChildren <Text>().text = grouped[i].Value.ToString();

                var mainButton = buttonPrefab.FindChild("MainButton");

                var mainBTN = mainButton.AddComponent <ItemButton>();
                mainBTN.Mode           = ButtonMode.Take;
                mainBTN.Type           = techType;
                mainBTN.ButtonMode     = InterfaceButtonMode.Background;
                mainBTN.STARTING_COLOR = _startColor;
                mainBTN.HOVER_COLOR    = _hoverColor;
                mainBTN.OnButtonClick  = _mono.HydroHarvContainer.RemoveItemFromContainer;

                uGUI_Icon icon = InterfaceHelpers.FindGameObject(mainButton, "Icon").AddComponent <uGUI_Icon>();
                icon.sprite = SpriteManager.Get(techType);

                var deleteButton = buttonPrefab.FindChild("DeleteBTN");

                var deleteBTN = deleteButton.AddComponent <ItemButton>();
                deleteBTN.ButtonMode     = InterfaceButtonMode.Background;
                deleteBTN.Mode           = ButtonMode.Delete;
                deleteBTN.Type           = techType;
                deleteBTN.STARTING_COLOR = _startColor;
                deleteBTN.HOVER_COLOR    = _hoverColor;
                deleteBTN.OnButtonClick  = _mono.HydroHarvContainer.DeleteItemFromContainer;

                uGUI_Icon trashIcon = InterfaceHelpers.FindGameObject(deleteButton, "Icon").AddComponent <uGUI_Icon>();
                trashIcon.sprite = SpriteManager.Get(TechType.Trashcans);
            }
        }
コード例 #5
0
        private void OnLoadItemsGrid(DisplayData data)
        {
            try
            {
                if (_isBeingDestroyed)
                {
                    return;
                }

                QuickLogger.Debug($"OnLoadItemsGrid : {data.ItemsGrid}", true);

                _grid.ClearPage();

                var grouped = _mono.PowerManager.GetItemsWithin().ToList();

                if (data.EndPosition > grouped.Count())
                {
                    data.EndPosition = grouped.Count();
                }

                for (int i = data.StartPosition; i < data.EndPosition; i++)
                {
                    GameObject buttonPrefab = Instantiate(data.ItemsPrefab);

                    if (buttonPrefab == null || data.ItemsGrid == null)
                    {
                        if (buttonPrefab != null)
                        {
                            Destroy(buttonPrefab);
                        }
                        return;
                    }

                    buttonPrefab.transform.SetParent(data.ItemsGrid.transform, false);
                    uGUI_Icon icon = InterfaceHelpers.FindGameObject(buttonPrefab, "Icon").AddComponent <uGUI_Icon>();
                    icon.sprite = SpriteManager.Get(grouped.ElementAt(i));
                }
                UpdateItemCount(grouped.Count(), _mono.PowerManager.MaxSlots);
                _grid.UpdaterPaginator(grouped.Count());
            }
            catch (Exception e)
            {
                QuickLogger.Error("Error Caught");
                QuickLogger.Error($"Error Message: {e.Message}");
                QuickLogger.Error($"Error StackTrace: {e.StackTrace}");
            }
        }
コード例 #6
0
        private void OnLoadItemsGrid(DisplayData data)
        {
            if (_isBeingDestroyed)
            {
                return;
            }

            _trackedButtons.Clear();

            _itemGrid.ClearPage();

            var grouped = new List <Filter>();

            QuickLogger.Debug("Load Filters");

            foreach (var filter in _filters)
            {
                if (!filter.IsCategory())
                {
                    grouped.Add(filter);
                }
            }

            if (data.EndPosition > grouped.Count)
            {
                data.EndPosition = grouped.Count;
            }

            for (int i = data.StartPosition; i < data.EndPosition; i++)
            {
                GameObject buttonPrefab = Instantiate(data.ItemsPrefab);

                if (buttonPrefab == null || data.ItemsGrid == null)
                {
                    if (buttonPrefab != null)
                    {
                        QuickLogger.Debug("Destroying Tab", true);
                        Destroy(buttonPrefab);
                    }
                    return;
                }

                CreateFilterButton(data, buttonPrefab, grouped, i);
            }
            _itemGrid.UpdaterPaginator(grouped.Count);
            UpdateCheckMarks();
        }
コード例 #7
0
        private void OnLoadDisplay(DisplayData data)
        {
            QuickLogger.Debug("Loading SeaBreeze Display");

            _sbList.Clear();

            var items = _mono.SeaBreezes.Keys;


            if (data.EndPosition > items.Count)
            {
                data.EndPosition = items.Count;
            }

            _seaBreezeGrid.ClearPage();

            for (int i = data.StartPosition; i < data.EndPosition; i++)
            {
                var unit = _mono.SeaBreezes.Values.ElementAt(i);
                var unitNameController = unit;
                var unitName           = unitNameController.GetName();
                unitNameController.SubscribeToNameChange(OnLabelChanged);

                GameObject itemDisplay = Instantiate(data.ItemsPrefab);

                itemDisplay.transform.SetParent(data.ItemsGrid.transform, false);
                var text = itemDisplay.transform.Find("Text").GetComponent <Text>();
                text.text = unitName;

                var itemButton = itemDisplay.AddComponent <CustomToggle>();
                itemButton.ButtonMode     = InterfaceButtonMode.TextColor;
                itemButton.Tag            = unit;
                itemButton.TextComponent  = text;
                itemButton.OnButtonClick += OnButtonClick;
                itemButton.BtnName        = "SeaBreeze";
                unitNameController.SetNameControllerTag(itemButton);
                _sbList.Add(itemButton);
                UpdateCheckedSB();
                QuickLogger.Debug($"Added Unit {unitName}");
            }

            _seaBreezeGrid.UpdaterPaginator(items.Count);
        }
コード例 #8
0
        private void OnLoadDisplay(DisplayData info)
        {
            _oxGrid.ClearPage();

            var grouped = _mono.TrackedDevices.ToList();

            if (info.EndPosition > grouped.Count)
            {
                info.EndPosition = grouped.Count;
            }

            for (int i = info.StartPosition; i < info.EndPosition; i++)
            {
                GameObject buttonPrefab = Instantiate(info.ItemsPrefab);

                if (buttonPrefab == null || info.ItemsGrid == null)
                {
                    if (buttonPrefab != null)
                    {
                        Destroy(buttonPrefab);
                    }

                    return;
                }

                buttonPrefab.transform.SetParent(info.ItemsGrid.transform, false);
                //buttonPrefab.GetComponentInChildren<Text>().text = grouped[i].Value.ToString();

                var mainButton = buttonPrefab.FindChild("PingBTN");
                var mainBTN    = mainButton.AddComponent <OxStationItemButton>();
                mainBTN.Tag             = grouped[i].Value;
                mainBTN.OxstationOxygen = InterfaceHelpers.FindGameObject(buttonPrefab, "Oxygen_Preloader_Bar_Front").GetComponent <Image>();
                mainBTN.OxstationHealth = InterfaceHelpers.FindGameObject(buttonPrefab, "Health_Preloader_Bar_Front").GetComponent <Image>();
                mainBTN.UpdateDisplay();
                mainBTN.ButtonMode     = InterfaceButtonMode.Background;
                mainBTN.STARTING_COLOR = _pingBTNStartColor;
                mainBTN.HOVER_COLOR    = _pingBTNHoverColor;
                mainBTN.OnButtonClick  = OnButtonClick;
                mainBTN.BtnName        = "PingBTN";
            }

            _oxGrid.UpdaterPaginator(grouped.Count);
        }
コード例 #9
0
        private void OnLoadDisplay(EatableType eatableType, GameObject itemPrefab, GameObject itemsGrid, int stPos, int endPos)
        {
            switch (eatableType)
            {
            case EatableType.Rotten:
                var rottenList = _mono.FridgeComponent.FridgeItems.Where(x => x.IsRotten()).ToList();
                _trashPage.ClearPage();
                CreateFoodItem(itemPrefab, itemsGrid, stPos, endPos, rottenList, _trashPage, EatableType.Rotten);
                break;

            case EatableType.Food:
                var freshList = _mono.FridgeComponent.FridgeItems.Where(x => x.GetFoodValue() > 0 && !x.IsRotten()).ToList();
                _foodPage.ClearPage();
                CreateFoodItem(itemPrefab, itemsGrid, stPos, endPos, freshList, _foodPage, EatableType.Food);
                break;

            case EatableType.Drink:
                var drinkList = _mono.FridgeComponent.FridgeItems.Where(x => x.GetFoodValue() <= 0 && x.GetWaterValue() > 0).ToList();
                _waterPage.ClearPage();
                CreateFoodItem(itemPrefab, itemsGrid, stPos, endPos, drinkList, _waterPage, EatableType.Drink);
                break;
            }
        }
コード例 #10
0
        private void OnLoadFilterGrid(DisplayData data)
        {
            _filterGrid.ClearPage();

            _grouped = _mono.GetFilters();

            if (_grouped == null)
            {
                return;
            }

            QuickLogger.Debug("Load Filters");

            if (data.EndPosition > _grouped.Count)
            {
                data.EndPosition = _grouped.Count;
            }

            for (int i = data.StartPosition; i < data.EndPosition; i++)
            {
                GameObject buttonPrefab = Instantiate(data.ItemsPrefab);

                if (buttonPrefab == null || data.ItemsGrid == null)
                {
                    if (buttonPrefab != null)
                    {
                        QuickLogger.Debug("Destroying Tab", true);
                        Destroy(buttonPrefab);
                    }
                    return;
                }

                CreateButton(data, buttonPrefab, _grouped, i, true);
            }
            _filterGrid.UpdaterPaginator(_grouped.Count);
        }
コード例 #11
0
        private void OnLoadOperationsGrid(DisplayData data)
        {
            try
            {
                if (_isBeingDestroyed || _mono == null || _mono?.Manager == null)
                {
                    return;
                }

                _operationsGrid.ClearPage();

                var grouped = BaseManager.Operations;

                if (grouped == null)
                {
                    QuickLogger.Debug("Grouped returned null canceling operation");
                    return;
                }

                //if (!string.IsNullOrEmpty(_toCurrentSearchString?.Trim()))
                //{
                //    grouped = grouped.Where(p => p.Value.UnitID.StartsWith(_toCurrentSearchString.Trim(), StringComparison.OrdinalIgnoreCase)).ToDictionary(p => p.Key, p => p.Value);
                //}

                if (data.EndPosition > grouped.Count)
                {
                    data.EndPosition = grouped.Count;
                }

                if (data.ItemsGrid?.transform == null)
                {
                    QuickLogger.Debug("Grid returned null canceling operation");
                    return;
                }

                for (int i = data.StartPosition; i < data.EndPosition; i++)
                {
                    var connectable = grouped.ElementAt(i);

                    if (connectable.FromDevice == null || connectable.ToDevice == null)
                    {
                        continue;
                    }

                    GameObject buttonPrefab = Instantiate(data.ItemsPrefab);

                    if (buttonPrefab == null || data.ItemsGrid == null)
                    {
                        if (buttonPrefab != null)
                        {
                            QuickLogger.Debug("Destroying Tab", true);
                            Destroy(buttonPrefab);
                        }
                        return;
                    }

                    buttonPrefab.transform.SetParent(data.ItemsGrid.transform, false);
                    var button = buttonPrefab.AddComponent <OperationInterfaceButton>();

                    button.BtnName     = "OperationBTN";
                    button.Tag         = null;
                    button.TextLineOne = $"{connectable.FromDevice.UnitID} => {Language.main.Get(connectable.TechType)} => {connectable.ToDevice.UnitID}";
                    //buttonPrefab.GetComponentInChildren<Text>().text = connectable.Value.UnitID;
                    uGUI_Icon icon = InterfaceHelpers.FindGameObject(InterfaceHelpers.FindGameObject(buttonPrefab, "FromIcon"), "Image").AddComponent <uGUI_Icon>();
                    icon.sprite = connectable.FromDevice.IsBase() ? SpriteManager.Get(TechType.BaseRoom) : SpriteManager.Get(connectable.FromDevice.GetTechType());

                    uGUI_Icon icon1 = InterfaceHelpers.FindGameObject(InterfaceHelpers.FindGameObject(buttonPrefab, "TechTypeIcon"), "Image").AddComponent <uGUI_Icon>();
                    icon1.sprite = SpriteManager.Get(connectable.TechType);

                    uGUI_Icon icon2 = InterfaceHelpers.FindGameObject(InterfaceHelpers.FindGameObject(buttonPrefab, "ToIcon"), "Image").AddComponent <uGUI_Icon>();
                    icon2.sprite = connectable.ToDevice.IsBase() ? SpriteManager.Get(TechType.BaseRoom) : SpriteManager.Get(connectable.ToDevice.GetTechType());

                    var deleteBTN = buttonPrefab.GetComponentInChildren <Button>();
                    deleteBTN.onClick.AddListener(() => { _mono.Manager.DeleteOperator(connectable); });
                }

                _operationsGrid.UpdaterPaginator(grouped.Count);
            }
            catch (Exception e)
            {
                QuickLogger.Error("Error Caught");
                QuickLogger.Error($"Error Message: {e.Message}");
                QuickLogger.Error($"Error StackTrace: {e.StackTrace}");
            }
        }
コード例 #12
0
        private void OnLoadBaseGrid(DisplayData data)
        {
            try
            {
                if (_isBeingDestroyed || _baseGrid == null || _mono?.SubRoot == null)
                {
                    return;
                }

                _baseGrid.ClearPage();

                var grouped = BaseManager.Managers;

                if (grouped == null)
                {
                    QuickLogger.Debug("Grouped returned null canceling operation");
                    return;
                }

                if (data.EndPosition > grouped.Count)
                {
                    data.EndPosition = grouped.Count;
                }

                if (data.ItemsGrid?.transform == null)
                {
                    QuickLogger.Debug("Items Grid returned null canceling operation");
                    return;
                }

                if (_baseGrid.GetCurrentPage() < 2)
                {
                    CreateButton(data, Instantiate(data.ItemsPrefab), new ButtonData {
                        Manager = _mono.Manager
                    }, ButtonType.Home, AuxPatchers.Home(), "BaseBTN");
                    CreateButton(data, Instantiate(data.ItemsPrefab), new ButtonData(), ButtonType.None, AuxPatchers.GoToVehicles(), "VehiclesPageBTN");
                }

                // QuickLogger.Debug($"Bases Count: {grouped.Count}");
                //QuickLogger.Debug($"Bases Antenna: {_mono.Manager.GetCurrentBaseAntenna()}");

                if (_mono.Manager.GetCurrentBaseAntenna() != null || _mono.Manager.Habitat.isCyclops)
                {
                    for (int i = data.StartPosition; i < data.EndPosition; i++)
                    {
                        //QuickLogger.Debug($"Hab{grouped[i].Habitat} || AS{grouped[i].Habitat.gameObject.activeSelf} || TN{grouped[i].InstanceID == _mono.Manager.InstanceID} || HAN {grouped[i].HasAntenna()} || VIS {grouped[i].IsVisible} || Instance ID : {grouped[i].InstanceID}");
                        if (grouped[i].Habitat == null || !grouped[i].Habitat.gameObject.activeSelf || grouped[i].InstanceID == _mono.Manager.InstanceID || !grouped[i].HasAntenna() || !grouped[i].IsVisible)
                        {
                            continue;
                        }
                        //QuickLogger.Debug($"Adding Base {grouped[i].InstanceID}");

                        GameObject buttonPrefab = Instantiate(data.ItemsPrefab);

                        if (buttonPrefab == null || data.ItemsGrid == null)
                        {
                            if (buttonPrefab != null)
                            {
                                QuickLogger.Debug("Destroying Tab", true);
                                Destroy(buttonPrefab);
                            }
                            return;
                        }

                        QuickLogger.Debug($"Adding Base: {grouped[i].GetBaseName()}", true);
                        CreateButton(data, buttonPrefab, new ButtonData {
                            Manager = grouped[i]
                        }, ButtonType.Base, grouped[i].GetBaseName().TruncateWEllipsis(30), "BaseBTN");
                    }
                }
                else
                {
                    QuickLogger.Debug("GetCurrentBaseAntenna most likely is null");
                }

                _baseGrid.UpdaterPaginator(grouped.Count);
            }
            catch (Exception e)
            {
                QuickLogger.Error("Error Caught");
                QuickLogger.Error($"Error Message: {e.Message}");
                QuickLogger.Error($"Error StackTrace: {e.StackTrace}");
            }
        }
コード例 #13
0
        private void OnLoadBaseItemsGrid(DisplayData data)
        {
            try
            {
                if (_isBeingDestroyed)
                {
                    return;
                }

                QuickLogger.Debug($"OnLoadBaseItemsGrid : {data.ItemsGrid}", true);

                _baseItemsGrid.ClearPage();

                if (_currentBase == null)
                {
                    return;
                }

                var grouped = _currentBase.GetItemsWithin().OrderBy(x => x.Key).ToList();

                if (!string.IsNullOrEmpty(_currentSearchString?.Trim()))
                {
                    grouped = grouped.Where(p => Language.main.Get(p.Key).StartsWith(_currentSearchString.Trim(), StringComparison.OrdinalIgnoreCase)).ToList();
                }

                QuickLogger.Debug($"Grouped Count = {grouped.Count} || Search: {_currentSearchString}", true);


                if (data.EndPosition > grouped.Count)
                {
                    data.EndPosition = grouped.Count;
                }

                for (int i = data.StartPosition; i < data.EndPosition; i++)
                {
                    GameObject buttonPrefab = Instantiate(data.ItemsPrefab);

                    if (buttonPrefab == null || data.ItemsGrid == null)
                    {
                        if (buttonPrefab != null)
                        {
                            Destroy(buttonPrefab);
                        }
                        return;
                    }

                    buttonPrefab.transform.SetParent(data.ItemsGrid.transform, false);
                    var amount = buttonPrefab.GetComponentInChildren <Text>();
                    amount.text = grouped.ElementAt(i).Value.ToString();
                    var itemBTN = buttonPrefab.AddComponent <InterfaceButton>();
                    itemBTN.ButtonMode     = InterfaceButtonMode.Background;
                    itemBTN.STARTING_COLOR = _startColor;
                    itemBTN.HOVER_COLOR    = _hoverColor;
                    itemBTN.BtnName        = "ItemBTN";
                    itemBTN.TextLineOne    = string.Format(AuxPatchers.TakeFormatted(), Language.main.Get(grouped.ElementAt(i).Key));
                    itemBTN.Tag            = grouped.ElementAt(i).Key;
                    itemBTN.OnButtonClick  = OnButtonClick;

                    uGUI_Icon trashIcon = InterfaceHelpers.FindGameObject(buttonPrefab, "Icon").AddComponent <uGUI_Icon>();
                    trashIcon.sprite = SpriteManager.Get(grouped.ElementAt(i).Key);
                }
                _counter.text = _currentBase.GetTotalString();
                _baseItemsGrid.UpdaterPaginator(grouped.Count());
            }
            catch (Exception e)
            {
                QuickLogger.Error("Error Caught");
                QuickLogger.Error($"Error Message: {e.Message}");
                QuickLogger.Error($"Error StackTrace: {e.StackTrace}");
            }
        }
コード例 #14
0
        private void OnLoadVehicleContainersGrid(DisplayData data)
        {
            try
            {
                if (_isBeingDestroyed)
                {
                    return;
                }
                _vehicleContainersGrid?.ClearPage();

                var grouped = DSSHelpers.GetVehicleContainers(_currentVehicle);

                if (grouped == null)
                {
                    return;
                }

                QuickLogger.Debug($"Vehicle Count to process: {grouped.Count}");

                if (data.EndPosition > grouped.Count)
                {
                    data.EndPosition = grouped.Count;
                }

                if (data.ItemsGrid?.transform == null)
                {
                    return;
                }

                QuickLogger.Debug($"Adding Vehicles");


                for (int i = data.StartPosition; i < data.EndPosition; i++)
                {
                    if (grouped[i] == null)
                    {
                        continue;
                    }

                    GameObject buttonPrefab = Instantiate(data.ItemsPrefab);

                    if (buttonPrefab == null || data.ItemsGrid == null)
                    {
                        if (buttonPrefab != null)
                        {
                            QuickLogger.Debug("Destroying Tab", true);
                            Destroy(buttonPrefab);
                        }
                        return;
                    }

                    CreateButton(data, buttonPrefab, new ButtonData {
                        Container = grouped[i]
                    }, ButtonType.Container, i.ToString(), "VehicleContainerBTN");
                }

                _vehicleContainersGrid?.UpdaterPaginator(grouped.Count);
            }
            catch (Exception e)
            {
                QuickLogger.Error("Error Caught");
                QuickLogger.Error($"Error Message: {e.Message}");
                QuickLogger.Error($"Error StackTrace: {e.StackTrace}");
            }
        }
コード例 #15
0
        private void OnLoadVehicleGrid(DisplayData data)
        {
            try
            {
                if (_vehicleGrid == null)
                {
                    return;
                }
                _vehicleGrid.ClearPage();

                var grouped = _mono?.Manager?.DockingManager?.Vehicles;

                if (grouped == null)
                {
                    return;
                }

                if (data.EndPosition > grouped.Count)
                {
                    data.EndPosition = grouped.Count;
                }

                if (data.ItemsGrid?.transform == null)
                {
                    return;
                }

                QuickLogger.Debug($"Adding Vehicles");

                for (int i = data.StartPosition; i < data.EndPosition; i++)
                {
                    if (grouped[i] == null)
                    {
                        continue;
                    }

                    GameObject buttonPrefab = Instantiate(data.ItemsPrefab);

                    if (buttonPrefab == null || data.ItemsGrid == null)
                    {
                        if (buttonPrefab != null)
                        {
                            QuickLogger.Debug("Destroying Tab", true);
                            Destroy(buttonPrefab);
                        }
                        return;
                    }

                    QuickLogger.Debug($"Creating Vehicle Button: {grouped[i].GetName()}");
                    CreateButton(data, buttonPrefab, new ButtonData {
                        Vehicle = grouped[i]
                    }, ButtonType.Vehicle, grouped[i].GetName(), "VehicleBTN");
                }

                _vehicleGrid.UpdaterPaginator(grouped.Count);
            }
            catch (Exception e)
            {
                QuickLogger.Error("Error Caught");
                QuickLogger.Error($"Error Message: {e.Message}");
                QuickLogger.Error($"Error StackTrace: {e.StackTrace}");
            }
        }
コード例 #16
0
        private void OnLoadVisibilityGrid(DisplayData data)
        {
            try
            {
                if (_isBeingDestroyed || _mono == null || _mono?.Manager == null)
                {
                    return;
                }

                _visibilityGrid.ClearPage();


                var grouped = _mono.Manager.FCSConnectables;

                if (grouped == null)
                {
                    QuickLogger.Debug("Grouped returned null canceling operation");
                    return;
                }

                if (!string.IsNullOrEmpty(_visibilityCurrentSearchString?.Trim()))
                {
                    grouped = grouped.Where(p => p.Value.UnitID.StartsWith(_visibilityCurrentSearchString.Trim(), StringComparison.OrdinalIgnoreCase)).ToDictionary(p => p.Key, p => p.Value);
                }

                if (data.EndPosition > grouped.Count)
                {
                    data.EndPosition = grouped.Count;
                }

                if (data.ItemsGrid?.transform == null)
                {
                    QuickLogger.Debug("Grid returned null canceling operation");
                    return;
                }

                for (int i = data.StartPosition; i < data.EndPosition; i++)
                {
                    var connectable = grouped.ElementAt(i);

                    if (connectable.Value.IsBase() || !connectable.Value.CanBeVisible())
                    {
                        continue;
                    }

                    GameObject buttonPrefab = Instantiate(data.ItemsPrefab);

                    if (buttonPrefab == null || data.ItemsGrid == null)
                    {
                        if (buttonPrefab != null)
                        {
                            QuickLogger.Debug("Destroying Tab", true);
                            Destroy(buttonPrefab);
                        }
                        return;
                    }

                    QuickLogger.Debug($"Adding Unit: {connectable.Value.UnitID}", true);

                    buttonPrefab.transform.SetParent(data.ItemsGrid.transform, false);
                    var button = buttonPrefab.AddComponent <OperationInterfaceButton>();
                    button.BtnName = "VisibilityItemBTN";
                    button.Tag     = new OperatorButtonData {
                        Button = button, Connectable = connectable.Value
                    };
                    button.TextLineOne   = $"Make {Language.main.Get(connectable.Value.GetTechType())} visible to the terminal";
                    button.OnButtonClick = OnButtonClick;
                    button.SetCheck(connectable.Value.IsVisible);
                    buttonPrefab.GetComponentInChildren <Text>().text = connectable.Value.UnitID;
                    uGUI_Icon icon = InterfaceHelpers.FindGameObject(buttonPrefab, "Icon").AddComponent <uGUI_Icon>();
                    icon.sprite = connectable.Value.IsBase() ? SpriteManager.Get(TechType.BaseRoom) : SpriteManager.Get(connectable.Value.GetTechType());
                }

                _visibilityGrid.UpdaterPaginator(grouped.Count);
            }
            catch (Exception e)
            {
                QuickLogger.Error("Error Caught");
                QuickLogger.Error($"Error Message: {e.Message}");
                QuickLogger.Error($"Error StackTrace: {e.StackTrace}");
            }
        }
コード例 #17
0
        private void OnLoadDisplay(DisplayData data)
        {
            List <FCSController> items = null;

            if (SelectedTab == QTTabs.Global)
            {
                items = BaseManager.GlobalUnits.Where(x => x != _mono).ToList();
            }
            else if (SelectedTab == QTTabs.Intra)
            {
                items = _mono.Manager.BaseUnits.Where(x => x != _mono).ToList();
            }

            if (items == null)
            {
                QuickLogger.Error <QTDisplayManager>("Items list returned null");
                return;
            }

            if (data.EndPosition > items.Count)
            {
                data.EndPosition = items.Count;
            }

            _teleportGrid.ClearPage();

            for (int i = data.StartPosition; i < data.EndPosition; i++)
            {
                var unit     = items[i];
                var unitName = unit.GetName();

                if (unit == _mono)
                {
                    continue;
                }

                GameObject itemDisplay = Instantiate(data.ItemsPrefab);
                var        statusLBL   = InterfaceHelpers.FindGameObject(itemDisplay, "Status_LBL");

                if (itemDisplay == null || data.ItemsGrid == null)
                {
                    if (itemDisplay != null)
                    {
                        Destroy(itemDisplay);
                    }
                    return;
                }

                itemDisplay.transform.SetParent(data.ItemsGrid.transform, false);
                var textField = itemDisplay.transform.Find("Location_LBL").gameObject;
                var text      = textField.GetComponent <Text>();
                text.text = unitName;

                var statusUpdater = itemDisplay.AddComponent <ItemDisplayStatusHandler>();
                statusUpdater.Initialize((QuantumTeleporterController)unit, textField, statusLBL, this, MaxInteractionRange);

                var itemButton = itemDisplay.AddComponent <InterfaceButton>();
                itemButton.ButtonMode          = InterfaceButtonMode.TextColor;
                itemButton.Tag                 = unit;
                itemButton.TextComponent       = text;
                itemButton.OnButtonClick      += OnButtonClick;
                itemButton.BtnName             = "Unit";
                itemButton.MaxInteractionRange = MaxInteractionRange;

                QuickLogger.Debug($"Added Unit {unitName}");
            }

            _teleportGrid.UpdaterPaginator(items.Count);
        }
コード例 #18
0
        private void OnLoadItemsGrid(DisplayData data)
        {
            if (_isBeingDestroyed || _mono == null || _mono?.Manager == null)
            {
                return;
            }

            _itemTechTypeGrid.ClearPage();
            _itemTechTypeList.Clear();

            var grouped = Mod.AllTechTypes;

            if (grouped == null)
            {
                QuickLogger.Debug("Grouped returned null canceling operation");
                return;
            }

            if (!string.IsNullOrEmpty(_itemCurrentSearchString?.Trim()))
            {
                grouped = grouped.Where(p => Language.main.Get(p).StartsWith(_itemCurrentSearchString.Trim(), StringComparison.OrdinalIgnoreCase)).ToList();
            }

            if (data.EndPosition > grouped.Count)
            {
                data.EndPosition = grouped.Count;
            }

            QuickLogger.Debug($"1");

            if (data.ItemsGrid?.transform == null)
            {
                QuickLogger.Debug("Grid returned null canceling operation");
                return;
            }
            QuickLogger.Debug($"2");

            for (int i = data.StartPosition; i < data.EndPosition; i++)
            {
                GameObject buttonPrefab = GameObject.Instantiate(DSSModelPrefab.OperatorItemPrefab);

                if (buttonPrefab == null || data.ItemsGrid == null)
                {
                    if (buttonPrefab != null)
                    {
                        QuickLogger.Debug("Destroying Tab", true);
                        Destroy(buttonPrefab);
                    }
                    return;
                }

                var button = buttonPrefab.AddComponent <OperationInterfaceButton>();
                if (grouped[i] == _itemTechType)
                {
                    button.SetCheck(true);
                }
                buttonPrefab.transform.SetParent(data.ItemsGrid.transform, false);
                button.BtnName       = "ItemTechBTN";
                button.OnButtonClick = OnButtonClick;
                button.Tag           = new OperatorButtonData {
                    Button = button, TechType = grouped[i]
                };
                button.TextLineOne = $"Send {Language.main.Get(grouped[i])}";
                buttonPrefab.GetComponentInChildren <Text>().text = Language.main.Get(grouped[i]);
                uGUI_Icon icon = InterfaceHelpers.FindGameObject(buttonPrefab, "Icon").AddComponent <uGUI_Icon>();
                icon.sprite = SpriteManager.Get(grouped[i]);
                _itemTechTypeList.Add(button);
            }

            _itemTechTypeGrid.UpdaterPaginator(grouped.Count);
        }
コード例 #19
0
        private void OnLoadAutoCraftGrid(DisplayData data)
        {
            try
            {
                if (_isBeingDestroyed || _mono == null || _mono?.Manager == null)
                {
                    return;
                }

                _autoCraftingGrid.ClearPage();

                var grouped = BaseManager.Crafts;

                if (grouped == null)
                {
                    QuickLogger.Debug("Grouped returned null canceling operation");
                    return;
                }

                //if (!string.IsNullOrEmpty(_toCurrentSearchString?.Trim()))
                //{
                //    grouped = grouped.Where(p => p.Value.UnitID.StartsWith(_toCurrentSearchString.Trim(), StringComparison.OrdinalIgnoreCase)).ToDictionary(p => p.Key, p => p.Value);
                //}

                if (data.EndPosition > grouped.Count)
                {
                    data.EndPosition = grouped.Count;
                }

                if (data.ItemsGrid?.transform == null)
                {
                    QuickLogger.Debug("Grid returned null canceling operation");
                    return;
                }

                for (int i = data.StartPosition; i < data.EndPosition; i++)
                {
                    var craft = grouped.ElementAt(i);

                    GameObject buttonPrefab = Instantiate(data.ItemsPrefab);

                    if (buttonPrefab == null || data.ItemsGrid == null)
                    {
                        if (buttonPrefab != null)
                        {
                            QuickLogger.Debug("Destroying Tab", true);
                            Destroy(buttonPrefab);
                        }
                        return;
                    }

                    buttonPrefab.transform.SetParent(data.ItemsGrid.transform, false);

                    uGUI_Icon icon = InterfaceHelpers.FindGameObject(buttonPrefab, "Icon").AddComponent <uGUI_Icon>();
                    icon.sprite = SpriteManager.Get(craft.TechType);

                    var deleteBTN = InterfaceHelpers.FindGameObject(buttonPrefab, "Delete")?.AddComponent <InterfaceButton>();
                    if (deleteBTN != null)
                    {
                        deleteBTN.BtnName        = "AutoCraftItemDeleteBTN";
                        deleteBTN.TextLineOne    = AuxPatchers.Delete();
                        deleteBTN.STARTING_COLOR = _startColor;
                        deleteBTN.HOVER_COLOR    = _hoverColor;
                        deleteBTN.OnButtonClick  = delegate
                        {
                            BaseManager.DeleteAutoCraft(craft);
                            Refresh();
                        };
                    }

                    var buttonText = buttonPrefab.GetComponentInChildren <Text>();
                    buttonText.text = Language.main.Get(craft.TechType);

                    var checkbox = buttonPrefab.GetComponentInChildren <Toggle>();
                    checkbox.isOn = craft.IsCraftable;
                    checkbox.onValueChanged.AddListener((value) =>
                    {
                        craft.IsCraftable = value;
                    });

                    var craftBTN = InterfaceHelpers.FindGameObject(buttonPrefab, "AutocraftBTN")?.AddComponent <InterfaceButton>();

                    if (craftBTN != null)
                    {
                        craftBTN.BtnName        = "AutoCraftItemDeleteBTN";
                        craftBTN.TextLineOne    = AuxPatchers.Craft();
                        craftBTN.STARTING_COLOR = _startColor;
                        craftBTN.HOVER_COLOR    = _hoverColor;
                        craftBTN.OnButtonClick  = delegate { BaseManager.PerformCraft(craft); };
                    }
                }

                _autoCraftingGrid.UpdaterPaginator(grouped.Count);
            }
            catch (Exception e)
            {
                QuickLogger.Error("Error Caught");
                QuickLogger.Error($"Error Message: {e.Message}");
                QuickLogger.Error($"Error StackTrace: {e.StackTrace}");
            }
        }