public void SelectAndBuildCar() { var filterPath = new string[Enum.GetValues(typeof(Utils.CarIndex)).Length]; var type = (Type)Utils.SelectProperty(typeRange.range); var color = (Color)Utils.SelectProperty(colorRange.range); var numPassengers = Utils.SelectProperty(numPassengersRange.range); Debug.Log("Type: " + type + ", Color: " + color + ", Numpass: "******"Model of Car: " + selectedCar.prefabPath); //Type Filter Path Utils.FillPath(filterPath, Utils.CarIndex.Type, Enum.GetName(typeof(Type), type), "Car Type Specification Error!"); //Color Filter Path Utils.FillPath(filterPath, Utils.CarIndex.Color, Enum.GetName(typeof(Color), color), "Car Type Specification Error!"); _car = new Car(type, color, numPassengers, selectedCar.prefabPath, Path.Combine(CarPath, Path.Combine(filterPath), selectedCar.prefabPath)); }
public void AssignSeating(Passenger passenger, bool driver = false) { var seatPosition = driver ? 0 : _passengers.Count; passenger.AssignSeat(_positions.seats[seatPosition]); var filterPath = new string[2]; //Select the animation prefab AnimationType[] viableAnimations = animations.Where(animation => { var viable = driver ? animation.seatRole == SeatRole.Driver : animation.seatRole == SeatRole.Passenger; return(viable); }).ToArray(); Utils.RangeInt animationRange = new Utils.RangeInt(0, viableAnimations.Length); int selectedAnimationIndex = Utils.SelectProperty(animationRange); Debug.Log(selectedAnimationIndex + " ||| " + viableAnimations.Length); AnimationType selectedAnimation = viableAnimations[selectedAnimationIndex]; Debug.Log("Animation of passenger: " + selectedAnimation.prefabPath); filterPath[0] = "Animators"; filterPath[1] = driver ? "Driver" : "Passenger"; passenger.ApplyAnimation(Path.Combine("Prefabs/Animations/", Path.Combine(filterPath), selectedAnimation.prefabPath)); var seating = new Tuple <Passenger, Seat>(passenger, _positions.seats[seatPosition]); _passengers.Add(seating); }
public Passenger SelectAndBuildPassenger(GameObject parent) { var gender = (Gender) Utils.SelectProperty(genderRange.range); Debug.Log("GENDER: " + gender); var age = (Age) Utils.SelectProperty(ageRange.range); Debug.Log("Age: " + age); //Select the passenger prefab PassengerType[] viablePassengers = passengers.Where(passenger => { var viable = passenger.gender == gender && passenger.age == age; foreach (var passengerName in _selectedPassengers) { if (!viable) break; viable = passengerName != passenger.prefabPath; } return viable; }).ToArray(); Utils.RangeInt passengerRange = new Utils.RangeInt(0, viablePassengers.Length); int selectedPassengerIndex = Utils.SelectProperty(passengerRange); Debug.Log(selectedPassengerIndex + " ||| " + viablePassengers.Length); PassengerType selectedPassenger = viablePassengers[selectedPassengerIndex]; _selectedPassengers.Add(selectedPassenger.prefabPath); Debug.Log("Passenger of Car: " + selectedPassenger.prefabPath); //Gender Filter Utils.FillPath(_filterPath, Utils.PassengerIndex.GENDER, Enum.GetName(typeof(Gender), gender), "Gender Specification Error!"); //Age Filter Utils.FillPath(_filterPath, Utils.PassengerIndex.AGE, Enum.GetName(typeof(Age), age), "Age Specification Error!"); return new Passenger(gender, age, selectedPassenger.prefabPath, parent, Path.Combine(PassengerPath, Path.Combine(_filterPath), selectedPassenger.prefabPath)); }