示例#1
0
 public void StartDryerCycle()
 {
     if (state == DryerState.DoorClosed)
     {
         state = DryerState.Running;
         StartCoroutine(DryerCycle());
     }
 }
示例#2
0
    protected override void Start()
    {
        areaPrefab = (GameObject)Resources.Load("DryerArea");

        HasGravity = true;
        base.Start();

        contents      = new List <Garment>();
        state         = DryerState.DoorClosed;
        dryerSetting  = DryerSetting.High;
        lintTrapClean = true;
    }
示例#3
0
 public void ToggleDoor()
 {
     if (state == DryerState.DoorClosed || state == DryerState.Done)
     {
         state = DryerState.DoorOpen;
         DoorOpens();
     }
     else if (state == DryerState.DoorOpen)
     {
         state = DryerState.DoorClosed;
         DoorCloses();
     }
 }
示例#4
0
    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;
    }