private ItemsManager.Context getNextContext() { int nextContext = -1; if (directionClockwise) nextContext = ((int)currentContext + 1) % 4; else nextContext = ((int)currentContext - 1 + 4) % 4; return (ItemsManager.Context) nextContext; }
private ItemsManager.Context getNextContext() { int nextContext = -1; if (directionClockwise) { nextContext = ((int)currentContext + 1) % 4; } else { nextContext = ((int)currentContext - 1 + 4) % 4; } return((ItemsManager.Context)nextContext); }
// Update is called once per frame void Update() { switch (state) { case State.Start: startContext = getContextFromPosition(transform.position); currentContext = startContext; nextContext = getNextContext(); Debug.Log("Start Context: " + startContext); Debug.Log("Next Context: " + nextContext); state = State.WaitingForItemClicks; break; case State.WaitingForItemClicks: if (itemsManager.haveAllObjectsBeenClicked()) { state = State.Done; } else if (itemsManager.haveObjectsInContextBeenClicked(currentContext)) { //Open the correct door doorManager.setDoorState(doorOrder[doorManager.getDoorIndexFromContextBoundary(currentContext, nextContext)], true); state = State.WaitingForNextContext; } break; case State.WaitingForNextContext: ItemsManager.Context positionContext = getContextFromPosition(transform.position); if (positionContext == nextContext) { doorManager.setDoorState(doorOrder[doorManager.getDoorIndexFromContextBoundary(currentContext, nextContext)], false); currentContext = nextContext; nextContext = getNextContext(); Debug.Log("Start Context: " + currentContext); Debug.Log("Next Context: " + nextContext); state = State.WaitingForItemClicks; } break; case State.Done: DoorState[] doorStates = doorManager.GetAllDoors(); foreach (DoorState d in doorStates) { d.gameObject.GetComponent <MeshRenderer>().material.color = Color.black; } break; } }
// Update is called once per frame void Update() { switch (state) { case State.Start: startContext = getContextFromPosition(transform.position); currentContext = startContext; nextContext = getNextContext(); Debug.Log("Start Context: " + startContext); Debug.Log("Next Context: " + nextContext); state = State.WaitingForItemClicks; break; case State.WaitingForItemClicks: if (itemsManager.haveAllObjectsBeenClicked()) state = State.Done; else if (itemsManager.haveObjectsInContextBeenClicked(currentContext)) { //Open the correct door doorManager.setDoorState(doorOrder[doorManager.getDoorIndexFromContextBoundary(currentContext, nextContext)], true); state = State.WaitingForNextContext; } break; case State.WaitingForNextContext: ItemsManager.Context positionContext = getContextFromPosition(transform.position); if (positionContext == nextContext) { doorManager.setDoorState(doorOrder[doorManager.getDoorIndexFromContextBoundary(currentContext, nextContext)], false); currentContext = nextContext; nextContext = getNextContext(); Debug.Log("Start Context: " + currentContext); Debug.Log("Next Context: " + nextContext); state = State.WaitingForItemClicks; } break; case State.Done: break; } }
public string getDoorNameFromContextBoundary(ItemsManager.Context startContext, ItemsManager.Context endContext) { if (startContext == ItemsManager.Context.Blue && endContext == ItemsManager.Context.Red) { return("Door_BLU"); } if (startContext == ItemsManager.Context.Red && endContext == ItemsManager.Context.Green) { return("Door_RED"); } if (startContext == ItemsManager.Context.Green && endContext == ItemsManager.Context.Yellow) { return("Door_GRN"); } if (startContext == ItemsManager.Context.Yellow && endContext == ItemsManager.Context.Blue) { return("Door_YLW"); } if (startContext == ItemsManager.Context.Red && endContext == ItemsManager.Context.Blue) { return("Door_BLU"); } if (startContext == ItemsManager.Context.Green && endContext == ItemsManager.Context.Red) { return("Door_RED"); } if (startContext == ItemsManager.Context.Yellow && endContext == ItemsManager.Context.Green) { return("Door_GRN"); } if (startContext == ItemsManager.Context.Blue && endContext == ItemsManager.Context.Yellow) { return("Door_YLW"); } return(""); }
public int getDoorIndexFromContextBoundary(ItemsManager.Context startContext, ItemsManager.Context endContext) { return(getDoorIndexByObjectName(getDoorNameFromContextBoundary(startContext, endContext))); }