@@ -30,8 +30,8 @@ function Physics (mcData, world) {
30
30
const soulsandId = blocksByName . soul_sand . id
31
31
const honeyblockId = blocksByName . honey_block ? blocksByName . honey_block . id : - 1 // 1.15+
32
32
const webId = blocksByName . cobweb ? blocksByName . cobweb . id : blocksByName . web . id
33
- const waterId = blocksByName . water . id
34
- const lavaId = blocksByName . lava . id
33
+ const waterIds = [ blocksByName . water . id , blocksByName . flowing_water ? blocksByName . flowing_water . id : - 1 ]
34
+ const lavaIds = [ blocksByName . lava . id , blocksByName . flowing_lava ? blocksByName . flowing_lava . id : - 1 ]
35
35
const ladderId = blocksByName . ladder . id
36
36
const vineId = blocksByName . vine . id
37
37
const waterLike = new Set ( )
@@ -475,13 +475,13 @@ function Physics (mcData, world) {
475
475
}
476
476
}
477
477
478
- function isMaterialInBB ( world , queryBB , type ) {
478
+ function isMaterialInBB ( world , queryBB , types ) {
479
479
const cursor = new Vec3 ( 0 , 0 , 0 )
480
480
for ( cursor . y = Math . floor ( queryBB . minY ) ; cursor . y <= Math . floor ( queryBB . maxY ) ; cursor . y ++ ) {
481
481
for ( cursor . z = Math . floor ( queryBB . minZ ) ; cursor . z <= Math . floor ( queryBB . maxZ ) ; cursor . z ++ ) {
482
482
for ( cursor . x = Math . floor ( queryBB . minX ) ; cursor . x <= Math . floor ( queryBB . maxX ) ; cursor . x ++ ) {
483
483
const block = world . getBlock ( cursor )
484
- if ( block && block . type === type ) return true
484
+ if ( block && types . includes ( block . type ) ) return true
485
485
}
486
486
}
487
487
}
@@ -496,7 +496,7 @@ function Physics (mcData, world) {
496
496
if ( ! block ) return - 1
497
497
if ( waterLike . has ( block . type ) ) return 0
498
498
if ( block . getProperties ( ) . waterlogged ) return 0
499
- if ( block . type !== waterId ) return - 1
499
+ if ( ! waterIds . includes ( block . type ) ) return - 1
500
500
const meta = block . metadata
501
501
return meta >= 8 ? 0 : meta
502
502
}
@@ -543,7 +543,7 @@ function Physics (mcData, world) {
543
543
for ( cursor . z = Math . floor ( bb . minZ ) ; cursor . z <= Math . floor ( bb . maxZ ) ; cursor . z ++ ) {
544
544
for ( cursor . x = Math . floor ( bb . minX ) ; cursor . x <= Math . floor ( bb . maxX ) ; cursor . x ++ ) {
545
545
const block = world . getBlock ( cursor )
546
- if ( block && ( block . type === waterId || waterLike . has ( block . type ) || block . getProperties ( ) . waterlogged ) ) {
546
+ if ( block && ( waterIds . includes ( block . type ) || waterLike . has ( block . type ) || block . getProperties ( ) . waterlogged ) ) {
547
547
const waterLevel = cursor . y + 1 - getLiquidHeightPcent ( block )
548
548
if ( Math . ceil ( bb . maxY ) >= waterLevel ) waterBlocks . push ( block )
549
549
}
@@ -579,7 +579,7 @@ function Physics (mcData, world) {
579
579
const lavaBB = getPlayerBB ( pos ) . contract ( 0.1 , 0.4 , 0.1 )
580
580
581
581
entity . isInWater = isInWaterApplyCurrent ( world , waterBB , vel )
582
- entity . isInLava = isMaterialInBB ( world , lavaBB , lavaId )
582
+ entity . isInLava = isMaterialInBB ( world , lavaBB , lavaIds )
583
583
584
584
// Reset velocity component if it falls under the threshold
585
585
if ( Math . abs ( vel . x ) < physics . negligeableVelocity ) vel . x = 0
0 commit comments