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);
            }
        }
示例#2
0
        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);
        }
示例#3
0
        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);
            }
        }