public void PairUp(GarmentSock other) { pairedSock = other; AudioManager.instance.PlaySound(SoundName.Fold1 + currentFoldingStep); currentFoldingStep = 1; other.currentFoldingStep = 1; }
public GarmentSock SeparatePair() { GarmentSock sock = pairedSock; pairedSock = null; AudioManager.instance.PlaySound(SoundName.Fold1 + currentFoldingStep); currentFoldingStep = 0; sock.currentFoldingStep = 0; return(sock); }
public GarmentSock(GarmentSock other) : base(other) { this.fabric = other.fabric; this.color = other.color; this.cleanliness = other.cleanliness; this.humidity = other.humidity; this.pressed = other.pressed; this.folded = other.folded; this.shrunk = other.shrunk; this.dyed = other.dyed; this.melted = other.melted; this.torn = other.torn; this.burned = other.burned; this.customerID = other.customerID; this.currentFoldingStep = other.currentFoldingStep; this.size = other.size; this.foldingSteps = other.foldingSteps; this.laundryGarmentPrefab = other.laundryGarmentPrefab; this.type = other.type; }
private void PlaceGarmentOnBoard(LaundryGarment laundryGarment) { //Unfold garment if folded //If pair of socks, separate them, then spawn the extra sock as a LaundryGarment if (laundryGarment.garment is GarmentSock && laundryGarment.garment.Folded) { GarmentSock sock = (GarmentSock)laundryGarment.garment; GarmentSock other = sock.SeparatePair(); other.CreateLaundryGarment(laundryGarment.transform.position, laundryGarment.transform.rotation, laundryGarment.transform.parent); } laundryGarment.garment.currentFoldingStep = 0; ironingBoard.garmentOnBoard = laundryGarment.garment; AudioManager.instance.PlaySound(laundryGarment.garment.fabric.dropSound); laundryGarment.ReturnToPool(); garmentRenderer.UpdateAppearance(); pressingProgress = 0.0f; burnTimer = 0.0f; graceTimer = 0.0f; }
public static Basket GetRandomBasket() { Basket basket = new Basket(); //Determine number of garments int numberOfGarments = UnityEngine.Random.Range(instance.MinimumNumberOfGarments, instance.MaximumNumberOfGarments + 1); List <Garment> garments = new List <Garment>(); //Generate the garments for (int i = 0; i < numberOfGarments;) { //Determine fabricType int fabricIndex = instance.WeightedFabricIndices[UnityEngine.Random.Range(0, instance.WeightedFabricIndices.Length)]; FabricType fabricType = instance.LaundryGenerationParameters[fabricIndex].fabric; //Determine garmentType int garmentTypeIndex = UnityEngine.Random.Range(0, instance.LaundryGenerationParameters[fabricIndex].garmentType.Length); GarmentType garmentType = instance.LaundryGenerationParameters[fabricIndex].garmentType[garmentTypeIndex]; //Instantiate garment Garment garment = null; switch (garmentType) { case GarmentType.Top: garment = new GarmentTop(new Fabric(fabricType), GarmentColor.RandomColor()); break; case GarmentType.Pants: garment = new GarmentPants(new Fabric(fabricType), GarmentColor.RandomColor()); break; case GarmentType.Sock: garment = new GarmentSock(new Fabric(fabricType), GarmentColor.RandomColor()); break; case GarmentType.Underwear: garment = new GarmentUnderwear(new Fabric(fabricType), GarmentColor.RandomColor()); break; case GarmentType.Dress: garment = new GarmentDress(new Fabric(fabricType), GarmentColor.RandomColor()); break; case GarmentType.Skirt: garment = new GarmentSkirt(new Fabric(fabricType), GarmentColor.RandomColor()); break; case GarmentType.Shirt: garment = new GarmentShirt(new Fabric(fabricType), GarmentColor.RandomColor()); break; default: Debug.LogError("Unknown garment type"); break; } i += garment.size; garments.Add(garment); if (garment is GarmentSock) { Garment otherSock = new GarmentSock((GarmentSock)garment); garments.Add(otherSock); i += otherSock.size; } } //Shuffle clothing to separate socks int n = garments.Count; while (n > 1) { n--; int k = UnityEngine.Random.Range(0, n + 1); Garment value = garments[k]; garments[k] = garments[n]; garments[n] = value; } foreach (Garment garment in garments) { basket.AddGarment(garment); } return(basket); }
private IEnumerator WashCycle() { bool containsColoredGarments = false; AudioManager.instance.PlaySound(SoundName.MachineStart); List <Garment> garmentsToBeAdded = new List <Garment>(); foreach (Garment garment in contents) { //Unfold garments if they are folded if (garment is GarmentSock && garment.Folded) { GarmentSock other = ((GarmentSock)garment).SeparatePair(); other.currentFoldingStep = 0; other.Dry = false; garmentsToBeAdded.Add(other); } garment.currentFoldingStep = 0; garment.Dry = false; if (garment.Colored()) { containsColoredGarments = true; } } //Put separated socks in machine foreach (Garment garment in garmentsToBeAdded) { contents.Add(garment); } if (autoCompleteFlag) { AudioManager.instance.PlaySoundLoop(SoundName.RunningWM, 6.0f); yield return(new WaitForLaundromatSeconds(6.0f)); autoCompleteFlag = false; } else { AudioManager.instance.PlaySoundLoop(SoundName.RunningWM, WashCycleTime); yield return(new WaitForLaundromatSeconds(WashCycleTime)); } foreach (Garment garment in contents) { if (!garment.Colored() && washSetting == WashSetting.Hot && containsColoredGarments) { garment.color = GarmentColor.Pink; garment.Dyed = true; } if (garment.fabric.washingRestrictions == WashingRestrictions.HandWashOnly) { garment.Torn = true; } if (garment.fabric.washingRestrictions == WashingRestrictions.ColdOnly && washSetting == WashSetting.Hot) { garment.Melted = true; } if (garment.fabric.washingRestrictions == WashingRestrictions.HotOnly && washSetting == WashSetting.Cold) { garment.Shrunk = true; } if (Detergent) { garment.Clean = true; if (garment.fabric.washingRestrictions == WashingRestrictions.NoDetergent) { garment.Dyed = true; } } else if (!Detergent) { if (garment.fabric.washingRestrictions == WashingRestrictions.NoDetergent) { garment.Clean = true; } } } Detergent = false; state = WashingMachineState.Done; }
private IEnumerator DryerCycle() { float cycleTime = 0.0f; if (dryerSetting == DryerSetting.High) { cycleTime = 10.0f; } else if (dryerSetting == DryerSetting.Low) { cycleTime = 20.0f; } if (!lintTrapClean) { cycleTime += 10.0f; } AudioManager.instance.PlaySound(SoundName.MachineStart); List <Garment> garmentsToBeAdded = new List <Garment>(); foreach (Garment garment in contents) { //Unfold garments if they are folded if (garment is GarmentSock && garment.Folded) { GarmentSock other = ((GarmentSock)garment).SeparatePair(); other.currentFoldingStep = 0; garmentsToBeAdded.Add(other); } garment.currentFoldingStep = 0; } //Put separated socks in machine foreach (Garment garment in garmentsToBeAdded) { contents.Add(garment); } if (autoCompleteFlag) { AudioManager.instance.PlaySoundLoop(SoundName.RunningDryer, 6.0f); yield return(new WaitForLaundromatSeconds(6.0f)); autoCompleteFlag = false; } else { AudioManager.instance.PlaySoundLoop(SoundName.RunningDryer, cycleTime); yield return(new WaitForLaundromatSeconds(cycleTime)); } foreach (Garment garment in contents) { if ((garment.fabric.dryingRestrictions == DryingRestrictions.LowOnly && dryerSetting == DryerSetting.High) || (garment.fabric.dryingRestrictions == DryingRestrictions.HighOnly && dryerSetting == DryerSetting.Low) || garment.fabric.dryingRestrictions == DryingRestrictions.HangDryOnly) { garment.Torn = true; } garment.Dry = true; } if (contents.Count > 0) { lintTrapClean = false; } state = DryerState.Done; }