diff --git a/src/grid/mod.rs b/src/grid/mod.rs index 16a8262..d25b846 100644 --- a/src/grid/mod.rs +++ b/src/grid/mod.rs @@ -56,10 +56,10 @@ impl Grid { (GridElement::Air,GridElement::Water { amount: water_amount, force }) => { let moved_amount = water_amount.min(transfer_amount); let remaining_amount = water_amount-moved_amount; - to_new_value = Some(GridElement::Water { amount: moved_amount, force }); - from_new_value = if remaining_amount == 0 {Some(GridElement::Air)} else {Some(GridElement::Water { amount: remaining_amount, force: from_force })}; + to_new_value = Some(GridElement::Water { amount: moved_amount, force: from_force }); + from_new_value = if remaining_amount == 0 {Some(GridElement::Air)} else {Some(GridElement::Water { amount: remaining_amount, force })}; }, - (GridElement::Water { amount: mut to_amount, force: to_force }, GridElement::Water { amount: mut from_amount, force: _ }) => { + (GridElement::Water { amount: mut to_amount, force: to_force }, GridElement::Water { amount: mut from_amount, force }) => { let transfer_amount = from_amount.min(transfer_amount); let delta = MAX_FLUID_AMOUNT - to_amount; if delta < transfer_amount { @@ -72,7 +72,7 @@ impl Grid { } let resulting_force = to_force.midpoint(from_force); to_new_value = Some(GridElement::Water { amount: to_amount, force: resulting_force }); - from_new_value = if from_amount == 0 {Some(GridElement::Air)} else {Some(GridElement::Water { amount: from_amount, force: resulting_force })}; + from_new_value = if from_amount == 0 {Some(GridElement::Air)} else {Some(GridElement::Water { amount: from_amount, force: force })}; }, (GridElement::Drain, GridElement::Water { amount: from_amount, force }) => { let transfer_amount = from_amount.min(transfer_amount); diff --git a/src/simulation.rs b/src/simulation.rs index c96590e..761dcc0 100644 --- a/src/simulation.rs +++ b/src/simulation.rs @@ -71,7 +71,7 @@ pub fn tick(mut grid: ResMut, options: Res) { from: vector, to: main_vector.as_uvec3(), amount: main_amount, - with_force: main_vector.as_vec3() * (main_amount as f32) } + with_force: resulting_force * (main_amount as f32) } ); transfer_amount -= main_amount; } @@ -92,9 +92,8 @@ pub fn tick(mut grid: ResMut, options: Res) { from: vector, to: side_vector.as_uvec3(), amount: side_amount, - with_force: side_vector.as_vec3() * (side_amount as f32) } + with_force: lookup_vector.as_vec3() * (side_amount as f32) } ); - transfer_amount -= side_amount; } } }