Пример #1
0
        private void Initialize()
        {
            TechTypeHelpers.Initialize();
            ARSeaBreezeFCS32Awake_Patcher.AddEventHandlerIfMissing(AlertedNewSeaBreezePlaced);
            ARSeaBreezeFCS32Destroy_Patcher.AddEventHandlerIfMissing(AlertedSeaBreezeDestroyed);
            if (FoodManager == null)
            {
                FoodManager = gameObject.AddComponent <FoodManager>();
                FoodManager.Initialize(this);
            }

            if (StorageManager == null)
            {
                StorageManager = new SCStorageManager();
                StorageManager.Initialize(this);
            }

            if (GasManager == null)
            {
                GasManager = new GasManager();
                GasManager.Initialize(this);
            }

            if (PowerManager == null)
            {
                PowerManager = new PowerManager();
                PowerManager.Initialize(this);
                StartCoroutine(UpdatePowerState());
            }

            AnimationManager = gameObject.GetComponent <AnimationManager>();

            if (DisplayManager == null)
            {
                DisplayManager = gameObject.AddComponent <SCDisplayManager>();
            }

            if (ColorManager == null)
            {
                ColorManager = gameObject.AddComponent <ColorManager>();
                ColorManager.Initialize(gameObject, SeaCookerBuildable.BodyMaterial);
            }

            if (AudioManager == null)
            {
                AudioManager = new AudioManager(gameObject.GetComponent <FMOD_CustomLoopingEmitter>());
                //InvokeRepeating(nameof(UpdateAudio), 0, 1);
            }

            if (PlayerInteraction == null)
            {
                PlayerInteraction = gameObject.GetComponent <PlayerInteraction>();
            }

            PlayerInteraction.Initialize(this);

            //FindHabitat();

            IsInitialized = true;
        }
Пример #2
0
    public void Construct(
        CurrencyManager currencyManager,
        UserWalletManager userWalletManager,
        TradableAssetManager tradableAssetManager,
        TradableAssetPriceManager tradableAssetPriceManager,
        EthereumTransactionButtonManager ethereumTransactionButtonManager,
        EtherBalanceObserver etherBalanceObserver,
        GasPriceObserver gasPriceObserver,
        UpdateManager updateManager,
        DynamicDataCache dynamicDataCache,
        PeriodicUpdateManager periodicUpdateManager,
        ContactsManager contactsManager,
        ButtonClickObserver buttonClickObserver,
        RestrictedAddressManager restrictedAddressManager)
    {
        this.ethereumTransactionButtonManager = ethereumTransactionButtonManager;
        this.userWalletManager   = userWalletManager;
        this.dynamicDataCache    = dynamicDataCache;
        this.buttonClickObserver = buttonClickObserver;

        Asset   = new AssetManager(tradableAssetManager, etherBalanceObserver, updateManager, assetSymbol, assetBalance, assetImage);
        Gas     = new GasManager(tradableAssetManager, tradableAssetPriceManager, currencyManager, gasPriceObserver, periodicUpdateManager, advancedModeToggle, transactionSpeedSlider, gasLimitField, gasPriceField, transactionFee);
        Address = new AddressManager(addressField, contactName, contactsManager, restrictedAddressManager);
        Amount  = new AmountManager(currencyManager, tradableAssetPriceManager, maxToggle, maxText, amountField, currencyText, oppositeCurrencyAmountText, currencyButton, assetSymbol.text);

        Gas.SetupDependencies(Amount);
        Amount.SetupDependencies(Gas, Asset);

        simpleModeSelectableFields.Add(addressField.InputFieldBase);
        simpleModeSelectableFields.Add(amountField.InputFieldBase);

        advancedModeSelectableFields.AddRange(simpleModeSelectableFields);
        advancedModeSelectableFields.Add(gasLimitField.InputFieldBase);
        advancedModeSelectableFields.Add(gasPriceField.InputFieldBase);
    }
Пример #3
0
        public ServerMapManager(byte mapSize, ServerGameManager context)
        {
            Debug.Log("Map Manager: Initializing map manager");
            MapGenerator gen = new MapGenerator(mapSize);

            Map = gen.GetMap();

            Pathfinder = new ServerPathfinder();
            Pathfinder.SetByteMap(Map);
            TileTriggerGrid    = new TriggerGrid(mapSize);
            TileOccupationGrid = new OccupationGrid(mapSize);
            TileGasManager     = new GasManager(this);
            GameManager        = context;
            //DebugPrintMap();
        }
Пример #4
0
    public void Construct(
        TradableAssetPriceManager tradableAssetPriceManager,
        CurrencyManager currencyManager,
        LockPRPSManager lockPRPSManager,
        LockedPRPSManager lockedPRPSManager,
        GasPriceObserver gasPriceObserver,
        EtherBalanceObserver etherBalanceObserver,
        Hodler hodlerContract,
        UserWalletManager userWalletManager,
        ButtonClickObserver buttonClickObserver)
    {
        this.lockedPRPSManager    = lockedPRPSManager;
        this.etherBalanceObserver = etherBalanceObserver;
        this.userWalletManager    = userWalletManager;
        this.hodlerContract       = hodlerContract;
        this.buttonClickObserver  = buttonClickObserver;
        etherBalanceObserver.SubscribeObservable(this);
        buttonClickObserver.SubscribeObservable(this);

        Gas    = new GasManager(tradableAssetPriceManager, currencyManager, lockPRPSManager, gasPriceObserver, slider, transactionFeeText, this);
        Amount = new AmountManager(lockPRPSManager, maxToggle, amountInputField, prpsBalanceText, dubiBalanceText, dubiRewardText, tooltipItems[2]);
        Time   = new TimeManager(Amount, threeMonthsButton, sixMonthsButton, twelveMonthsButton, dubiRewardText);

        if (lockPRPSManager.PRPSBalance == 0)
        {
            maxToggle.SetInteractable(false);
            maxText.color = UIColors.LightGrey;
        }

        bool showTooltips = SecurePlayerPrefs.GetBool(PlayerPrefConstants.SETTING_SHOW_TOOLTIPS);

        foreach (TooltipItem tooltip in tooltipItems)
        {
            if (showTooltips)
            {
                tooltip.PopupManager = popupManager;
            }
            else if (tooltip.infoIcon)
            {
                tooltip.gameObject.SetActive(false);
            }
            else
            {
                tooltip.enabled = false;
            }
        }
    }
Пример #5
0
        private void OnEnable()
        {
            if (_runStartUpOnEnable)
            {
                if (!IsInitialized)
                {
                    Initialize();
                }

                if (DisplayManager != null)
                {
                    DisplayManager.Setup(this);
                    _runStartUpOnEnable = false;
                }

                if (_fromSave)
                {
                    if (_savedData == null)
                    {
                        ReadySaveData();
                    }

                    AutoChooseSeabreeze = _savedData.AutoChooseSeabreeze;
                    GasManager.SetEquipment(_savedData.TankType);
                    GasManager.SetTankLevel(_savedData.FuelLevel);
                    ColorManager.SetColorFromSave(_savedData.BodyColor.Vector4ToColor());
                    StorageManager.LoadExportContainer(_savedData.Export);
                    StorageManager.LoadInputContainer(_savedData.Input);
                    StorageManager.SetExportToSeabreeze(_savedData.ExportToSeaBreeze);
                    FoodManager.LoadRunningState(_savedData);
                    SelectedSeaBreezeID = string.IsNullOrEmpty(_savedData.CurrentSeaBreezeID) ? string.Empty : _savedData.CurrentSeaBreezeID;
                    DisplayManager.UpdateSeaBreezes();
                    QuickLogger.Info($"Loaded {Mod.FriendlyName}");
                }

                _runStartUpOnEnable = false;
            }
        }
Пример #6
0
        internal void Save(SaveData saveData)
        {
            var prefabIdentifier = GetComponent <PrefabIdentifier>();
            var id = prefabIdentifier.Id;

            if (_savedData == null)
            {
                _savedData = new SaveDataEntry();
            }
            _savedData.ID                  = id;
            _savedData.FuelLevel           = GasManager.GetTankLevel();
            _savedData.TankType            = GasManager.CurrentFuel;
            _savedData.BodyColor           = ColorManager.GetColor().ColorToVector4();
            _savedData.Export              = StorageManager.GetExportContainer();
            _savedData.Input               = StorageManager.GetInputContainer();
            _savedData.ExportToSeaBreeze   = StorageManager.GetExportToSeabreeze();
            _savedData.CurrentSeaBreezeID  = SelectedSeaBreezeID;
            _savedData.AutoChooseSeabreeze = AutoChooseSeabreeze;
            FoodManager.SaveRunningState(_savedData);


            saveData.Entries.Add(_savedData);
        }
Пример #7
0
        /// <summary>
        /// Sets up the dependencies for the this instance of the AmountManager.
        /// </summary>
        /// <param name="gasManager"> The GasManager dependency. </param>
        /// <param name="assetManager"> The AssetManager dependency. </param>
        public void SetupDependencies(GasManager gasManager, AssetManager assetManager)
        {
            this.gasManager   = gasManager;
            this.assetManager = assetManager;

            priceFound = tradableAssetPriceManager.GetPrice(assetManager.ActiveAsset.AssetSymbol) > 0;

            currencyButton.interactable = priceFound;
            currencyButton.GetComponent <Image>().color = priceFound ? new Color(1f, 1f, 1f) : UIColors.LightGrey;
            currencyText.color = priceFound ? UIColors.White : UIColors.LightGrey;
            if (!priceFound)
            {
                oppositeCurrencyAmountText.text = "(Price not found)";
            }

            gasManager.OnGasChanged            += MaxChanged;
            assetManager.OnAssetBalanceChanged += MaxChanged;

            if (MaxSendableAmount == 0)
            {
                maxToggle.SetInteractable(false);
                maxText.GetComponent <TextMeshProUGUI>().color = UIColors.LightGrey;
            }
        }
 public virtual void ShiftGas(int originCompartment, int destinationCompartment, float volume)
 {
     GasManager.PumpGas(originCompartment, destinationCompartment, compartments: Compartments.ToList(), volume: volume);
 }