private void MinerTick(MinerRemoteData miner, float interval)
        {
            switch (miner.MinerState)
            {
            case EMinerState.Idle:
                if (!string.IsNullOrEmpty(ShaftRemoteData.Manager))
                {
                    miner.MinerState = EMinerState.WalkingToMine;
                }
                break;

            case EMinerState.WalkingToMine:
                if ((miner.CurrentLocation += ShaftRemoteData.ShaftLevelData.WalkSpeed * interval) >= _staticDataModel.MetaData.MineLength)
                {
                    miner.MinerState = EMinerState.Mining;
                }
                break;

            case EMinerState.WalkingToBin:
                if ((miner.CurrentLocation -= ShaftRemoteData.ShaftLevelData.WalkSpeed * interval) <= 0)
                {
                    SetBinCash(ShaftRemoteData.BinCash + miner.MinedCash);
                    miner.MinedCash  = 0;
                    miner.MinerState = ShaftRemoteData.Manager == null ? EMinerState.Idle : EMinerState.WalkingToMine;
                }
                break;

            case EMinerState.Mining:
                miner.MinedCash += ShaftRemoteData.ShaftLevelData.MinningSpeed * interval;
                if (miner.MinedCash >= ShaftRemoteData.ShaftLevelData.WorkerCapacity)
                {
                    miner.MinedCash  = ShaftRemoteData.ShaftLevelData.WorkerCapacity;
                    miner.MinerState = EMinerState.WalkingToBin;
                }
                break;
            }
        }
 private void SetMinerPosition(CarrierView carrierView, MinerRemoteData minerRemoteData)
 {
     carrierView.RectTransform.anchoredPosition = new Vector2(_unitDistance * minerRemoteData.CurrentLocation, 0);
 }