public BadMechanic(Conveyer conveyer) { locker = new object(); this.conveyer = conveyer; TimeOfRepairing = 3000; Message = "Конвейер отремонтирован за " + TimeOfRepairing + " милисекунд"; conveyer.AskMechanic += Repair; }
static void DoInConveyer() { Conveyer.Job[] jobs = new Conveyer.Job[] { FastIncrementer, MediumIncrementer, SlowIncrementer }; Conveyer conveyer = new Conveyer(jobs); //int[] init = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; object[][] init = new object[][] { new object[] { 1, 1 }, new object[] { 1, 2 }, new object[] { 1, 3 }, new object[] { 1, 4 }, new object[] { 1, 5 }, new object[] { 1, 6 }, new object[] { 1, 7 } }; for (int i = 0; i < init.Length; i++) { conveyer.WriteNext(init[i]); Console.WriteLine("Основной поток: поставил задачу на конвейер"); } for (int i = 0; i < init.Length; i++) { while (true) { if (conveyer.HasNextResult()) { object[] resultArr = (object[])conveyer.ReadNextResult(); int result = (int)resultArr[0]; int takNum = (int)resultArr[1]; Console.WriteLine("Основной поток: данные получены о задаче " + takNum + " в " + DateTime.Now); Console.WriteLine("Result " + (i + 1) + ": " + result); break; } } } conveyer.StopConveyer(); }
private void Start() { conveyer = this.GetComponent <Conveyer>(); this.name = "Factory"; }
private void FixedUpdate() { if (_pressedE && !Bottle) { var colliders = new Collider[16]; var size = Physics.OverlapSphereNonAlloc(transform.position, raycastRadius, colliders); Bottle bottleToGrab = null; if (size > 0) { Collider bottleCollider = null; for (var i = 0; i < size; i++) { var col = colliders[i]; if (col.GetComponent <Bottle>()) { Debug.Log("detect bottle"); if (!bottleCollider) { Debug.Log("get bottle"); bottleToGrab = col.GetComponent <Bottle>(); bottleCollider = col; } if (bottleCollider && Vector3.Distance(transform.position, bottleCollider.transform.position) > Vector3.Distance(transform.position, col.transform.position)) { bottleToGrab = col.GetComponent <Bottle>(); bottleCollider = col; } } } } if (bottleToGrab) { // todo do something to bottle // let's pass in a transform point to hold the bottle bottleToGrab.Grab(bottleHoldPoint); Bottle = bottleToGrab; } _pressedE = false; } else if (_pressedE && Bottle) { // find the nearest conveyor var colliders = new Collider[16]; var size = Physics.OverlapSphereNonAlloc(transform.position, raycastRadius, colliders); Conveyer conveyerToUse = null; Collider convenyerCollider = null; if (size > 0) { Debug.Log("number found: " + size); for (var i = 0; i < size; i++) { var col = colliders[i]; var conveyer = col.GetComponent <Conveyer>(); if (conveyer) { if (!convenyerCollider) { conveyerToUse = conveyer; convenyerCollider = col; } if (convenyerCollider && Vector3.Distance(transform.position, convenyerCollider.transform.position) > Vector3.Distance(transform.position, col.transform.position)) { conveyerToUse = conveyer; convenyerCollider = col; } } } } if (conveyerToUse) { var bottleToPlace = Bottle; bottleToPlace.Drop(convenyerCollider.bounds.center + new Vector3(0, convenyerCollider.bounds.center.y + 0.4f)); Bottle = null; } _pressedE = false; } body.MovePosition(transform.position + (_currentMovement * Time.fixedDeltaTime)); _currentMovement = Vector3.zero; }
private void Start() { this.name = "Collector"; conveyer = this.GetComponent <Conveyer>(); conveyer.resource = deposit.resource; }
public void New(Conveyer conveyer) { Player.main.lanes.Add(this); lanePos = conveyer.transform.position.x; }
public void New(Conveyer conveyer) { Player.main.lanes.Add(this); lanePos = conveyer.GetComponent <RectTransform>().anchoredPosition.x; }
public ConveyerTests() { feedFactory = new FeedFactory(); conveyer = new Conveyer(feedFactory); }
private void GetBottleInput() { if (Input.GetKeyDown(KeyCode.E)) { var position = transform.position + capsuleCollider.center; if (!Bottle) { var size = Physics.OverlapSphereNonAlloc(position, raycastRadius, _colliders); Bottle bottleToGrab = null; if (size > 0) { Collider bottleCollider = null; for (var i = 0; i < size; i++) { var col = _colliders[i]; if (col.GetComponent <Bottle>()) { Debug.Log("detect bottle"); if (!bottleCollider) { Debug.Log("get bottle"); bottleToGrab = col.GetComponent <Bottle>(); bottleCollider = col; } if (bottleCollider && Vector3.Distance(position, bottleCollider.transform.position) > Vector3.Distance(position, col.transform.position)) { bottleToGrab = col.GetComponent <Bottle>(); bottleCollider = col; } } } } if (bottleToGrab) { // let's pass in a transform point to hold the bottle bottleToGrab.Grab(bottleHoldPoint); Bottle = bottleToGrab; } } else if (Bottle) { // find the nearest conveyor var size = Physics.OverlapSphereNonAlloc(position, raycastRadius, _colliders); Conveyer conveyerToUse = null; Collider convenyerCollider = null; if (size > 0) { Debug.Log("number found: " + size); for (var i = 0; i < size; i++) { var col = _colliders[i]; var conveyer = col.GetComponent <Conveyer>(); if (conveyer && conveyer.canPutBottleOn) { if (!convenyerCollider) { conveyerToUse = conveyer; convenyerCollider = col; } else if (Vector3.Distance(position, convenyerCollider.transform.position) > Vector3.Distance(position, col.transform.position)) { conveyerToUse = conveyer; convenyerCollider = col; } } // bottle stops placement else if (col.GetComponent <Bottle>()) { conveyerToUse = null; break; } } } if (conveyerToUse) { var bottleToPlace = Bottle; bottleToPlace.Drop(convenyerCollider.bounds.center + new Vector3(0, convenyerCollider.bounds.center.y + 0.5f)); Bottle = null; } } } }