void surroundingCheck(Vector3 pos, InserterData inserterData, Inserter inserter) { // inserter check // generator to belt // belt to storage // generator to storage // assembler to storage // generator to assembler // get inserter's surrounding Vector3[] offsets = new Vector3[4] { Vector3.left, Vector3.right, Vector3.forward, Vector3.back }; RaycastHit hit; ISimData[] adjacentTypes = new ISimData[4]; for (int i = 0; i < 4; ++i) { if (Physics.Raycast(pos + offsets[i] + Vector3.up * 2f, Vector3.down, out hit, 2f, LayerMask.GetMask("Default"))) { ISimView simData = hit.collider.GetComponent <ISimView>(); adjacentTypes[i] = simData.getTarget(); } } for (int i = 0; i < 4; ++i) { ProducerData generator = adjacentTypes[i] as ProducerData; if (generator != null) { BeltData belt = adjacentTypes[(i + 2) % 4] as BeltData; if (belt != null) { } inserterData.expectedItemId = generator.itemId; inserterData.source = generator; inserterData.target = belt; inserterData.targetPos = 0f; inserterData.source = (ISimData)generator; inserterData.target = (ISimData)belt; inserterData.targetPos = 0f; inserter.head = generator.ToString(); if (belt != null) { inserter.head = belt.ToString(); } } } }
public SimController(ISimModel model, ISimView view) { this.model = model; this.view = view; this.simulating = true; }
public SimController(ISimModel model, ISimView view) { this.model = model; this.view = view; this.view.AddListener(this); }