public void ChangeAvatarPositionOnScene(IActionObjectAnchor anchor) { if (_anchors.Contains(anchor)) { _currentObject.ChangeAnchor(anchor); } }
private bool SearchObject(Vector2 inputPosition) { var hit = Physics2D.OverlapCircle(inputPosition, 0.1f); if (hit != null) { IActionObjectAnchor anchor = hit.GetComponent <IActionObjectAnchor>(); if (anchor != null) { if (_actionObjectSpawner.IsUsing) { _actionObjectSpawner.ChangeAvatarPositionOnScene(anchor); } else if (_spawnObjectSpawner.IsUsing) { _spawnObjectSpawner.ChangeAvatarPositionOnScene(anchor); } return(true); } else if (hit.GetComponent <ActionObject>() != null && !IsSpawnersUsing()) { _actionObjectSpawner.DeletedObject(hit.GetComponent <ActionObject>()); return(true); } else { return(false); } } else { return(false); } }
public void ChangeAnchor(IActionObjectAnchor anchor) { if (IsUpgrade() && !anchor.IsFree || !IsUpgrade() && anchor.IsFree) { ChangeCurrentAnchor(anchor); } }
protected virtual void FillingObjectSpawner(IGeneratedBy actionObject, IActionObjectAnchor anchor) { var avatar = Instantiate(actionObject.Avatar).GetComponent <Transform>(); _currentObject = new ObjectSpawnerData(actionObject, avatar); anchor = anchor ?? GetCorrectAnchorsArray().First(); _currentObject.ChangeAnchor(anchor); ToggleAnchors(); }
protected override void FillingObjectSpawner(IGeneratedBy actionObject, IActionObjectAnchor anchor) { var avatar = Instantiate(actionObject.Avatar).GetComponent <Transform>(); _currentObject = new ObjectSpawnerData(actionObject, avatar); if (_currentObject.IsUpgrade()) { anchor = _currenUpgradetAnchor != null ? _currenUpgradetAnchor : GetCorrectAnchorsArray().First(); } else { anchor = GetCorrectAnchorsArray().First(); } _currentObject.ChangeAnchor(anchor); ToggleAnchors(); }
public override void ConfirmSetObject() { if (IsUsing) { if (_currentObject.IsUpgrade()) { _currentObject.UsedUpgrade(false); _currenUpgradetAnchor = _currentObject.CurrentAnchor; } else { _currentObject.SetObjectOnScene(_spawnPool.GetObject() as ActionObject, false); Save(_levelName); } var anchors = _anchors.Where(a => !a.IsFree).ToArray(); anchors = anchors.Where(a => a.InstalledFacility.IsCanUpgrade()).ToArray(); if (anchors.Length == 0) { UsedMaxUpgrade?.Invoke(); } base.ConfirmSetObject(); } }
private void ChangeCurrentAnchor(IActionObjectAnchor anchor) { _anchor = anchor; Avatar.position = anchor.GetPosition(); }