public MovingState(Vector3 destination, bool canMoveToLadder = true) { m_destination = destination; m_canMoveToLadder = canMoveToLadder; m_scaffolding = LevelManager.Instance.Building.Scaffolding; }
// Use this for initialization void Start() { color = gameObject.GetComponent <MeshRenderer> ().materials [0].color; boundaries = GetComponents <BoxCollider> (); constructionChecker = 0; mr = gameObject.GetComponent <MeshRenderer> (); scaffold = gameObject.GetComponentInChildren <Scaffolding> (); }
public virtual void OnScaffoldingComplete(Scaffolding scaffolding) { _builders.Remove(scaffolding); Destroy(scaffolding.gameObject); BuildNext(); }
protected override void CancelScaffolding(Scaffolding scaffolding) { if (Network.isServer) { NetworkServerCancelScaffolding(Network.player, scaffolding.networkView.viewID); } else { networkView.RPC("NetworkServerCancelScaffolding", RPCMode.Server, Network.player, scaffolding.networkView.viewID); } }
private void Climb() { Scaffolding scaffolding = LevelManager.Instance.Building.Scaffolding; Vector3 ladderEndPos = scaffolding.GetLadderDestinationPos(Artist.Transform.position.y, m_destination.y - Artist.NavMeshAgent.height); Vector3 destination = ladderEndPos + Vector3.up * Artist.NavMeshAgent.baseOffset; Artist.Transform.DOMove(destination, 1f / Artist.NavMeshAgent.speed).SetEase(Ease.Linear).OnComplete(() => { m_artistState = new MovingState(m_destination, false); }); }
public override void OnScaffoldingComplete(Scaffolding scaffolding) { scaffolding.gameObject.networkView.RPC("NetworkDestroy", RPCMode.All); destroyed.Add(scaffolding.networkView.viewID); _builders.Remove(scaffolding); BuildNext(); if (buildCount <= 0) { ClearBuffer(); } }
void Update() { Vector2 inputPoint; if (Camera.main.GetComponent<CameraController>().cameraType == CameraType.FirstPerson) inputPoint = new Vector2(Screen.width/2, Screen.height/2); else inputPoint = Input.mousePosition; Ray ray = Camera.main.ScreenPointToRay(inputPoint); RaycastHit hit; if (Physics.Raycast(ray, out hit, Mathf.Infinity, _scaffoldingLayer)) { if (_selected) _selected.isHighlightedForDestroy = false; _selected = hit.collider.GetComponent<Scaffolding>(); _selected.isHighlightedForDestroy = true; if (Input.GetMouseButtonDown(0)) { CancelScaffolding(_selected); _selected = null; } } else { if (_selected) _selected.isHighlightedForDestroy = false; _selected = null; } }
public void TrackScaffolding(Scaffolding scaffolding) { scaffolding.owner = this; _builders.Add(scaffolding); }
void Awake() { instance = this; }
protected virtual void CancelScaffolding(Scaffolding scaffolding) { scaffolding.OnComplete(); }
static void Main(string[] args) { var generator = new Scaffolding(); generator.Run(args); }