Skip to content

Commit d41de17

Browse files
committed
# 修改
## AbstractBarrage 现在弹幕可以配置是否处理 没有方块碰撞箱的方块(如草) # 修复 ## AbstractBarrage 修复当BarrageOptions设定acrossLiquid为true时也不能穿过液体的BUG
1 parent c3a635f commit d41de17

3 files changed

Lines changed: 13 additions & 5 deletions

File tree

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ loader_version=0.16.10
1010
fabric_kotlin_version=1.13.2+kotlin.2.1.20
1111

1212
# Mod Properties
13-
mod_version=1.8.1
13+
mod_version=1.8.2
1414
maven_group=cn.coostack
1515
archives_base_name=coo-particles-api
1616

src/main/kotlin/cn/coostack/cooparticlesapi/barrages/AbstractBarrage.kt

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,13 @@ abstract class AbstractBarrage(
5959
val block = world.getBlockState(blockPos)
6060
val result = BarrageHitResult()
6161
if (!block.isAir) {
62-
if (block.isLiquid && !options.acrossLiquid) {
63-
result.hitBlockState = block
64-
hit(result)
65-
} else if (!options.acrossBlock) {
62+
val shape = block.getCollisionShape(world, blockPos)
63+
if (block.isLiquid) {
64+
if (!options.acrossLiquid) {
65+
result.hitBlockState = block
66+
hit(result)
67+
}
68+
} else if (!options.acrossBlock && (!shape.isEmpty || !options.acrossEmptyCollectionShape)) {
6669
result.hitBlockState = block
6770
hit(result)
6871
}

src/main/kotlin/cn/coostack/cooparticlesapi/barrages/BarrageOption.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@ class BarrageOption {
1616
*/
1717
var acrossBlock = false
1818

19+
/**
20+
* 是否可以穿过类似 草 这种没有方块碰撞箱的方块
21+
*/
22+
var acrossEmptyCollectionShape = true
23+
1924
/**
2025
* 是否可以穿过液体
2126
* 如果为false则遇到液体会触发onHit方法

0 commit comments

Comments
 (0)