r/nontoxic

▲ 10 r/nontoxic+1 crossposts

Creating a plastic-free / dye-free / organic cotton watch band!

I’ve been down a “how do I reduce microplastics and harmful chemicals from my everyday life” rabbit hole lately. One thing I realized I wear all day (and that has plastic) is the band on my Apple Watch. Decided to make my own with organic cotton - zero plastics or dyes used and very comfortable! Going to be making them available to the public soon! Curious if anyone else would consider wearing this?

I don’t love stainless steel and leather for all-day use.

reddit.com
u/cupajoe_70 — 22 hours ago
▲ 0 r/nontoxic+2 crossposts

Why is my player slightly bouncing when I hold jump?

I have two scripts for the playre:

PLAYER STATE SCRIPT:

using UnityEditor.UI;

using UnityEngine;

// ===== BASE STATE CLASS =====

public abstract class PlayerState

{

protected PlayerController controller;

public PlayerState(PlayerController controller)

{

this.controller = controller;

}

public virtual void Enter() { }

public virtual void Update() { } // Most of the time Update() handles state switching

public virtual void FixedUpdate() { }

public virtual void Exit() { }

// ===== UTILITY CLASSES (Classes that are used by multiple states) =====

protected void ChangeToIdleCondition()

{

// Transition to idle if no move input

if (controller.GetMoveInput().magnitude < 0.1)

{

controller.ChangeState(new IdleState(controller));

}

}

protected void ChangeToMoveCondition()

{

// Transition to move if move input

if (controller.GetMoveInput().magnitude > 0f && controller.IsGrounded())

{

controller.ChangeState(new MoveState(controller));

}

}

protected void ChangeToJumpCondition()

{

// Transition to Jump if jump input and player is grounded

if (controller.GetJumpInput() && controller.IsGrounded())

{

controller.ChangeState(new JumpState(controller));

}

}

protected void MovePlayer()

{

float currentSpeed = controller.GetSprintInput() ? controller.GetPlayerSprintSpeed() : controller.GetPlayerSpeed();

Transform cameraTransform = controller.GetCameraTransform();

Vector3 cameraForward = cameraTransform.forward;

Vector3 cameraRight = cameraTransform.right;

cameraForward.y = 0f;

cameraRight.y = 0f;

cameraForward.Normalize();

cameraRight.Normalize();

Vector2 moveInput = controller.GetMoveInput();

Vector3 moveDirection = (cameraForward * moveInput.y + cameraRight * moveInput.x).normalized;

controller.GetRigidbody().linearVelocity = new Vector3(moveDirection.x * currentSpeed, controller.GetRigidbody().linearVelocity.y, moveDirection.z * currentSpeed);

}

protected void ApplyDownwardsForce()

{

if (!controller.IsGrounded())

{

controller.GetRigidbody().AddForce(Vector3.down * controller.GetPlayerDownwardsForce());

}

}

}

// ===== IDLE STATE CLASS =====

public class IdleState : PlayerState

{

public IdleState(PlayerController controller) : base(controller) { }

public override void Enter()

{

// Stop movement when entering idle

controller.GetRigidbody().linearVelocity = Vector3.zero;

}

public override void Update()

{

ChangeToMoveCondition();

ChangeToJumpCondition();

}

public override void FixedUpdate()

{

ApplyDownwardsForce();

}

}

// ===== MOVING STATE CLASS (Handles sprinting as well) =====

public class MoveState : PlayerState

{

public MoveState(PlayerController controller) : base(controller) { }

public override void Update()

{

ChangeToIdleCondition();

ChangeToJumpCondition();

}

public override void FixedUpdate()

{

MovePlayer();

ApplyDownwardsForce();

}

}

// ===== JUMP STATE CLASS =====

public class JumpState : PlayerState

{

public JumpState(PlayerController controller) : base(controller) { }

public override void Enter()

{

// Apply jump force

controller.GetRigidbody().linearVelocity = new Vector3(controller.GetRigidbody().linearVelocity.x, controller.GetPlayerJumpHeight(), controller.GetRigidbody().linearVelocity.z);

}

public override void Update()

{

if (controller.IsGrounded())

{

ChangeToIdleCondition();

ChangeToMoveCondition();

}

}

public override void FixedUpdate()

{

MovePlayer();

}

}

PLAYER CONTROLLER SCRIPT

using UnityEngine;

using UnityEngine.InputSystem;

public class PlayerController : MonoBehaviour

{

// ===== VARIABLES =====

[Header("Movement Settings")]

[SerializeField] float playerSpeed = 5f;

[SerializeField] float playerSprintSpeed = 10f;

[SerializeField] private float playerDownwardsForce = 50f;

[SerializeField] private float playerJumpHeight = 10f;

[Header("Ground Check Settings")]

public Transform groundCheck;

public LayerMask groundLayer;

[SerializeField] private float groundCheckRadius = 0.2f;

[Header("Camera")]

public Transform orientation;

PlayerInput playerInput;

InputAction moveAction;

Rigidbody rb;

private bool isGrounded;

Vector2 moveInput;

// STATE MACHINE

private PlayerState currentState;

void Start()

{

// Initialize variables...

rb = GetComponent<Rigidbody>();

playerInput = GetComponent<PlayerInput>();

moveAction = playerInput.actions.FindAction("Movement");

// Initialize to IDLE state

ChangeState(new IdleState(this));

}

void Update()

{

// Read input

if (moveAction != null)

{

moveInput = moveAction.ReadValue<Vector2>();

}

// Ground Check

isGrounded = Physics.Raycast(groundCheck.position, Vector3.down, groundCheckRadius);

currentState.Update();

}

private void FixedUpdate()

{

currentState.FixedUpdate();

}

// ===== STATE MACHINE CORE =====

public void ChangeState(PlayerState newState)

{

currentState?.Exit();

currentState = newState;

currentState.Enter();

}

// ===== PUBLIC GETTERS (states read from here) =====

public Vector2 GetMoveInput() => moveInput;

public bool IsGrounded() => isGrounded;

public Rigidbody GetRigidbody() => rb;

public Transform GetCameraTransform() => orientation;

public Transform GetPlayerTransform() => transform;

public float GetPlayerSpeed() => playerSpeed;

public float GetPlayerSprintSpeed() => playerSprintSpeed;

public float GetPlayerDownwardsForce() => playerDownwardsForce;

public float GetPlayerJumpHeight() => playerJumpHeight;

public bool GetSprintInput() => playerInput.actions.FindAction("Sprinting").ReadValue<float>() == 1f;

public bool GetJumpInput() => playerInput.actions.FindAction("Jumping").ReadValue<float>() == 1f;

}

u/ShanCoder11 — 2 days ago

Nontoxic toilet paper that won’t financially ruin me?

We currently buy the generic that is $15 for 18 rolls with 400 2-ply sheets per roll. Anything that is somewhat comparable that is truly a better/nontoxic switch? There is an overwhelming amount of toilet paper options lol

Also. When looking online.. most that state they are nontoxic are 3-ply. I didn’t even know that existed lol. Is this because the individual ply is thinner than the average buttwipe?

reddit.com
u/2078AEB — 3 days ago

Humble Deodorant - Fragrance?

I bought a third stick of Humble deodorant and it now lists fragrance and says it’s from essential oils - how legit is this? Is fragrance from essential oils just as bad as fragrance?

I tend to never buy things with that word. I’m really disappointed in the brand. There has to be a reason they now must include that word in their marketing/design.

reddit.com
u/000fleur — 1 day ago

Non-toxic laundry sanitizer?

I’m sooo new to all of this, as I just had a baby and I’m looking to start making some swaps. Our current laundry product lineup is already pretty good (as I have sensitive skin), but we do use Lysol laundry sanitizer for my husband’s scrubs (he works in an emergency department). I’ve always wondered if it’s actually necessary, as I feel that soap, vinegar, and warm/ hot water gets our laundry about as clean as it’s going to get. Is sanitizer necessary? And if so, is there a safer alternative? Thanks in advance!

reddit.com
u/Icy_Lettuce_7383 — 3 days ago

White noise sound machine

Currently I put my iPad between my husband and I and I KNOWWWW it’s so bad lol. Help me find something better!!

reddit.com
u/2078AEB — 3 days ago

Swapping socks

What are you all doing to find natural fiber socks? I’ve started going down the rabbit hole like everybody else and it’s a bit overwhelming!

reddit.com
u/Flat-Finance6859 — 4 days ago

Make up swaps

My next task to work on is all my make up. I don’t wear much. I prefer creams!

Sunscreen, preferably tinted as i basically use it as a foundation base.

Mascara, brown and washable

Blush

Highlight (preferably a powder in this)

Contour

reddit.com
u/2078AEB — 3 days ago

Does anyone use the henna guys ? My hair is currently brown with gray. I can't use any chemicals so I want to try henna. I'm torn between like a wine burgundy or fire engine red. Not sure which one would come out better.

reddit.com
u/passionateunicorn — 1 day ago

Matcha

I want to start making my own matcha. It save money and better quality. The stuff at DUNKIN Donut is horrible. Have gotten worst over the years.

Where can I buy the matcha tools? I want one that is non toxic. I.e no plastic, or lead. Price is not a problem as long as it not over $100.

reddit.com
u/growthandgoal — 3 days ago

Pet safe cleaning products

Hey!! So I have been wanting to make my own natural cleaning products but I want recipes that are pet safe. I am in love with citrus smells but the essential oils are toxic to animals, what are recipes I can do that are safe but have a citrus smell or smell fruity in a way? I was looking at linen sprays, window cleaners, etc stuff like that.

I also wondered if I made my own clothes soap for the washer, can I put citrus essential oils in that because it will essentially wash away? Or will that be dangerous? Thanks!!

Also let me know your favorite cleaning recipes, window sprays, detergent, dishwasher soaps, sprays, air fresheners etc!!

reddit.com
u/Chinchillas_123 — 4 days ago

Makeup/Skin Prep

Help! I’m struggling with my makeup. It looks great when I put it on then separates through the day. Maybe it’s skin prep? What products do you use?

reddit.com
u/ccf2023 — 4 days ago