aboutsummaryrefslogtreecommitdiff
path: root/azalea-physics/src
diff options
context:
space:
mode:
authormat <git@matdoes.dev>2025-02-23 03:10:21 +0000
committermat <git@matdoes.dev>2025-02-23 03:10:21 +0000
commitf8130c3c92946d2293634ba4e252d6bc93026c3c (patch)
tree08fc6097137d7b4d31b692f4ba993b23acc64eb7 /azalea-physics/src
parent34f53baf85fb5c7163ec5d71a8ab9d45d3f271b6 (diff)
downloadazalea-drasl-f8130c3c92946d2293634ba4e252d6bc93026c3c.tar.xz
minor memory usage optimizations
Diffstat (limited to 'azalea-physics/src')
-rw-r--r--azalea-physics/src/fluids.rs14
1 files changed, 11 insertions, 3 deletions
diff --git a/azalea-physics/src/fluids.rs b/azalea-physics/src/fluids.rs
index 7a0c86a9..bbc044f6 100644
--- a/azalea-physics/src/fluids.rs
+++ b/azalea-physics/src/fluids.rs
@@ -5,6 +5,7 @@ use azalea_block::{
use azalea_core::{
direction::Direction,
position::{BlockPos, Vec3},
+ resource_location::ResourceLocation,
};
use azalea_entity::{InLoadedChunk, LocalEntity, Physics, Position};
use azalea_world::{Instance, InstanceContainer, InstanceName};
@@ -31,11 +32,18 @@ pub fn update_in_water_state_and_do_fluid_pushing(
update_in_water_state_and_do_water_current_pushing(&mut physics, &world, position);
+ // right now doing registries.dimension_type() clones the entire registry which
+ // is very inefficient, so for now we're doing this instead
+
let is_ultrawarm = world
.registries
- .dimension_type()
- .and_then(|d| d.map.get(instance_name).map(|d| d.ultrawarm))
- == Some(Some(true));
+ .map
+ .get(&ResourceLocation::new("minecraft:dimension_type"))
+ .and_then(|d| {
+ d.get(&**instance_name)
+ .map(|d| d.byte("ultrawarm") != Some(0))
+ })
+ .unwrap_or_default();
let lava_push_factor = if is_ultrawarm {
0.007
} else {