public void UpdateWaypointPosition(Management.Parking.ParkingRevealIndex parkingRevealIndex) { Vector3 oldPosition = entryGate.transform.position; for (int i = 0; i < newPositionsForEntryWaypoints.Length; ++i) { if (newPositionsForEntryWaypoints[i].parkingRevealIndex == parkingRevealIndex) { entryGate.transform.position = new Vector3(newPositionsForEntryWaypoints[i].newPosition.x, entryGate.transform.position.y, entryGate.transform.position.z); pathpointTowardsEntryGate.position = new Vector3(newPositionsForEntryWaypoints[i].newPosition.x, pathpointTowardsEntryGate.transform.position.y, pathpointTowardsEntryGate.transform.position.z); } } if (OnEntryGatePositionUpdated != null) { OnEntryGatePositionUpdated(oldPosition, entryGate.position /*New Position*/); } oldPosition = exitGate.position; for (int i = 0; i < newPositionsForExitWaypoints.Length; ++i) { if (newPositionsForExitWaypoints[i].parkingRevealIndex == parkingRevealIndex) { exitGate.transform.position = new Vector3(newPositionsForExitWaypoints[i].newPosition.x, exitGate.transform.position.y, exitGate.transform.position.z); pathpointTowardsExitGate.position = new Vector3(newPositionsForExitWaypoints[i].newPosition.x, pathpointTowardsExitGate.transform.position.y, pathpointTowardsExitGate.transform.position.z); } } if (OnExitGatePositionUpdated != null) { OnExitGatePositionUpdated(oldPosition, exitGate.position); } }
bool AnalyzeSingleLineCondition(string conditionStr, Management.Parking.ParkingRevealIndex parkingRevealIndex) { string[] decodedCondition = DecodeTheCondition(conditionStr); bool isTrue = decodedCondition[1].ToUpper() == "TRUE"; Parking.ParkingRevealIndex checkParkingRevealIndex = (Parking.ParkingRevealIndex)System.Enum.Parse(typeof(Parking.ParkingRevealIndex), decodedCondition[0]); if (checkParkingRevealIndex == parkingRevealIndex) { return(isTrue); } return(false); }
public void Reveal(Management.Parking.ParkingRevealIndex parkingRevealIndex) { bool isAndConditionCheck = false; List <bool> values = new List <bool>(); string[] conditionString = GetLinesFromCondition(condition, out isAndConditionCheck); for (int i = 0; i < conditionString.Length; ++i) { values.Add(AnalyzeSingleLineCondition(conditionString[i], parkingRevealIndex)); } bool isConditionMeet = isAndConditionCheck ? values.TrueForAll((val) => val == true) : values.Contains(true); if (isConditionMeet) { gameObject.SetActive(result == Result.UNHIDE); } }