// Invokes on touch and sets block value public void SelectBlockToMine() { isMining = false; blockPosition = csGlobal.g_mousePosition; Collider2D hitInfo = Physics2D.OverlapPoint(blockPosition); if (_gridBehavior.CanAchive(blockPosition)) { if (hitInfo && hitInfo.CompareTag("Ore")) { block = hitInfo.GetComponent <OreDurability>(); SelectionController.SetSelection(block.transform.position, false); SetInfoActive(true); minedOreName.text = Constants.oresNames[block.oreStats.index]; minedOreHealth.value = block.currentDurability / block.oreStats.durability; } else { block = null; SetInfoActive(false); } } }
public static int SetCracking(OreDurability oreDurability) { // TODO: work with it (it doesn't work properly). This log will help // Debug.Log($"ore durability{oreDurability.currentDurability / oreDurability.maxDurability}: {_crackingState}"); var _crackingState = Constants.crackingStagesAmount - 1 - Mathf.FloorToInt(((oreDurability.currentDurability / oreDurability.maxDurability * 100) / (100 / Constants.crackingStagesAmount))); // undamaged if (_crackingState < 0) { return(_crackingState); } if (_crackingState != oreDurability._currentCrackingState) { if (oreDurability._currentCrackingState == 0) { _currentGO = Instantiate(_newGO, oreDurability.transform.position, Quaternion.identity, oreDurability.transform); } else { _currentGO = oreDurability.transform.GetChild(0).gameObject; } _currentGO.GetComponent <SpriteRenderer>().sprite = _crackingSprites[_crackingState]; } return(_crackingState); }