private void GrabGarmentFromContainer(Garment garment)
    {
        LaundryGarment laundryGarment = garment.CreateLaundryGarment(cursor.transform.position, cursor.transform.rotation, activeWorkStation.laundryTaskArea.transform);

        target = laundryGarment;
        Grab();
    }
 private void Grab()
 {
     if (target != null)
     {
         grabbedObject = target;
         target.OnGrab();
     }
 }
Exemplo n.º 3
0
 private void DisplayMistakeToast(LaundryObject laundryObject)
 {
     if (laundryObject is LaundryGarment laundryGarment)
     {
         Garment garment = laundryGarment.garment;
         if (garment.Ruined)
         {
             if (!GarmentBurned && garment.Burned)
             {
                 //Garment burned
                 GarmentBurned = true;
                 ToastManager.instance.SayLine("Watch out with that iron! Keep it movin', and don't overdo it!", 1.0f);
             }
             if (!SynthMelted && garment.Melted)
             {
                 //Synth melted
                 SynthMelted = true;
                 ToastManager.instance.SayLine("Did ya melt some synthetic fabric? Smells like burnt hair in there!", 1.0f);
             }
             if (!LowOnlyTorn && garment.Torn && garment.fabric.dryingRestrictions == DryingRestrictions.LowOnly)
             {
                 //LowOnlyTorn
                 LowOnlyTorn = true;
                 ToastManager.instance.SayLine("Wow, those are messed up. Maybe use a lower TUMBLE setting next time!", 1.0f);
             }
             if (!HangOnlyTorn && garment.Torn && garment.fabric.dryingRestrictions == DryingRestrictions.HangDryOnly)
             {
                 //HangOnlyTorn
                 HangOnlyTorn = true;
                 ToastManager.instance.SayLine("Hey, that's delicate! Don't put it in the dryer, or it'll get shredded!", 1.0f);
             }
             if (!WhiteDyed && garment.Dyed)
             {
                 //WhiteDyed
                 WhiteDyed = true;
                 ToastManager.instance.SayLine("Say... that was white before you washed it, wasn't it?", 1.0f);
                 ToastManager.instance.SayLine("When doin' a HOT WASH, don't forget to separate the WHITE clothes from the COLORED ones!", 1.0f);
             }
             if (!WoolShrunk && garment.Shrunk)
             {
                 //WoolShrunk
                 WoolShrunk = true;
                 ToastManager.instance.SayLine("Whoops, looks like the COLD water shrunk the WOOL... Be careful!", 1.0f);
             }
         }
     }
 }
Exemplo n.º 4
0
    private void OnTriggerStay2D(Collider2D collision)
    {
        LaundryObject laundryObject = collision.GetComponentInParent <LaundryObject>();

        if (laundryObject != null)
        {
            if (LaundryTaskController.instance.grabbedObject == null || LaundryTaskController.instance.grabbedObject.GetInstanceID() != laundryObject.GetInstanceID())
            {
                if (col.bounds.Contains(laundryObject.transform.position))
                {
                    collision.attachedRigidbody.gravityScale = -FloatSpeed;
                }
                else
                {
                    collision.attachedRigidbody.gravityScale = 1.0f;
                }
            }
        }
    }
Exemplo n.º 5
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        LaundryObject laundryObject = collision.GetComponentInParent <LaundryObject>();

        AudioManager.instance.PlaySound(SoundName.SplashGarment);
    }
    // Update is called once per frame
    void Update()
    {
        if (!Locked && TimeManager.instance.timeScale != 0 && Time.timeScale != 0)
        {
            //Inputs
            interactInput     = Input.GetButtonDown("TaskInteract");
            interactInputHeld = Input.GetButton("TaskInteract");
            inspectInputDown  = Input.GetButtonDown("Inspect");
            inspectInputHeld  = Input.GetButton("Inspect");
            backInput         = Input.GetButtonDown("Back");

            moveXInput = Mathf.Lerp(moveXInput, Input.GetAxis("TaskHorizontal"), snappiness * Time.deltaTime);
            moveYInput = Mathf.Lerp(moveYInput, Input.GetAxis("TaskVertical"), snappiness * Time.deltaTime);
            Vector2 moveInput    = new Vector2(moveXInput, moveYInput);
            Vector2 displacement = moveInput * SettingsManager.instance.MouseSensitivity * CursorSpeed;

            //Cursor movement
            if (displacement.magnitude > 0.0006f) //accounts for floating point uncertainty; prevents drift
            {
                cursor.position += new Vector3(displacement.x, displacement.y, 0.0f);
            }

            //Cursor clamping
            float clampedX = Mathf.Clamp(cursor.position.x, worldBottomLeft.x, worldTopRight.x);
            float clampedY = Mathf.Clamp(cursor.position.y, worldBottomLeft.y, worldTopRight.y);
            cursor.position = new Vector2(clampedX, clampedY);

            //Interact vs Grab
            if (interactInput)
            {
                if (DelayGrabCoroutine != null)
                {
                    StopCoroutine(DelayGrabCoroutine);
                }
                DelayGrabCoroutine = DelayGrab();
                StartCoroutine(DelayGrabCoroutine);
            }

            //Inspect
            if (inspectInputDown)
            {
                Inspect();
            }

            //Drag grabbed object
            if (grabbedObject != null)
            {
                grabbedObject.Drag(cursor.position);
            }

            //Grab & Release
            if (grabbedObject != null && !interactInputHeld)
            {
                Release();
            }

            //Back out
            if (backInput)
            {
                BackOut();
            }

            //Hover
            interactionType = InteractionType.None;

            target = GetTarget();
            if (target != null)
            {
                InspectableTarget = target.gameObject.layer == LayerMask.NameToLayer("LaundryGarment") || target.gameObject.layer == LayerMask.NameToLayer("Basket");
                target.OnHover(cursor.position);
                if (interactInputHeld || inspectInputHeld)
                {
                    cursorSpriteRenderer.sprite = defaultCursorSprite;
                }
                else
                {
                    cursorSpriteRenderer.sprite = targetCursorSprite;
                    interactionType             = target.GetInteractionType();
                }
            }
            else
            {
                InspectableTarget           = false;
                cursorSpriteRenderer.sprite = defaultCursorSprite;
            }

            //If the target is inspectable, show the magnifying glass icon
            InspectableIcon.enabled = InspectableTarget;

            //Show a contextual interaction icon
            if (interactionType == InteractionType.None)
            {
                InteractionIcon.enabled = false;
            }
            else
            {
                InteractionIcon.sprite  = InteractionIconSprites[(int)interactionType];
                InteractionIcon.enabled = true;
            }
        }
    }
 private void Release()
 {
     grabbedObject.OnRelease();
     grabbedObject = null;
 }