diff --git a/src/generated/resources/data/anvilcraft/loot_table/blocks/large_fluid_tank.json b/src/generated/resources/data/anvilcraft/loot_table/blocks/large_fluid_tank.json index a70719bb2..6122e3b75 100644 --- a/src/generated/resources/data/anvilcraft/loot_table/blocks/large_fluid_tank.json +++ b/src/generated/resources/data/anvilcraft/loot_table/blocks/large_fluid_tank.json @@ -16,7 +16,7 @@ "block": "anvilcraft:large_fluid_tank", "condition": "minecraft:block_state_property", "properties": { - "half": "bottom_center" + "half": "mid_center" } } ], diff --git a/src/generated/resources/data/anvilcraft/tags/item/compress_item.json b/src/generated/resources/data/anvilcraft/tags/item/compress_item.json index 875c66c23..47a5a5c71 100644 --- a/src/generated/resources/data/anvilcraft/tags/item/compress_item.json +++ b/src/generated/resources/data/anvilcraft/tags/item/compress_item.json @@ -2,6 +2,7 @@ "values": [ "minecraft:snow_block", "minecraft:white_wool", + "anvilcraft:heavy_iron_block", "#c:ingots", "#c:storage_blocks" ] diff --git a/src/main/java/dev/dubhe/anvilcraft/api/sound/SoundHelper.java b/src/main/java/dev/dubhe/anvilcraft/api/sound/SoundHelper.java index 5eda66e6c..b84343066 100644 --- a/src/main/java/dev/dubhe/anvilcraft/api/sound/SoundHelper.java +++ b/src/main/java/dev/dubhe/anvilcraft/api/sound/SoundHelper.java @@ -22,7 +22,7 @@ public boolean shouldMute(@Nullable Level level, ResourceLocation sound, Vec3 po if (level == null) return false; return this.eventListeners.computeIfAbsent(level.dimension(), k -> new CopyOnWriteArrayList<>()) .stream() - .allMatch(it -> it.shouldMute(sound, pos)); + .anyMatch(it -> it.shouldMute(sound, pos)); } public void register(Level level, ISoundEventListener eventListener) { diff --git a/src/main/java/dev/dubhe/anvilcraft/block/LargeFluidTankBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/LargeFluidTankBlock.java index f8cfe9d8e..38e937d43 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/LargeFluidTankBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/LargeFluidTankBlock.java @@ -12,6 +12,7 @@ import net.minecraft.world.ItemInteractionResult; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.EntityBlock; @@ -94,4 +95,14 @@ protected ItemInteractionResult useItemOn( return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; } + + @Override + protected float getShadeBrightness(BlockState state, BlockGetter level, BlockPos pos) { + return 1.0F; + } + + @Override + protected boolean propagatesSkylightDown(BlockState state, BlockGetter level, BlockPos pos) { + return true; + } } diff --git a/src/main/java/dev/dubhe/anvilcraft/block/sliding/PoweredSlidingRailBlock.java b/src/main/java/dev/dubhe/anvilcraft/block/sliding/PoweredSlidingRailBlock.java index fcec98845..b350819b1 100644 --- a/src/main/java/dev/dubhe/anvilcraft/block/sliding/PoweredSlidingRailBlock.java +++ b/src/main/java/dev/dubhe/anvilcraft/block/sliding/PoweredSlidingRailBlock.java @@ -214,7 +214,8 @@ private boolean isPowered(Level level, BlockPos pos) { @Override public void stepOn(Level level, BlockPos pos, BlockState state, Entity entity) { - if (!level.getEntitiesOfClass(MagnetizedNodeEntity.class, new AABB(pos)).isEmpty()) return; + boolean magnetizedNodeExist = !level.getEntitiesOfClass(MagnetizedNodeEntity.class, new AABB(pos)).isEmpty(); + if (entity.getType() == EntityType.ITEM && magnetizedNodeExist) return; if (entity.getType() != EntityType.ITEM && !(entity instanceof LivingEntity)) return; boolean isSneakPlayer = entity instanceof Player player && player.isShiftKeyDown(); if (!state.getValue(POWERED)) { diff --git a/src/main/java/dev/dubhe/anvilcraft/data/tags/ItemTagLoader.java b/src/main/java/dev/dubhe/anvilcraft/data/tags/ItemTagLoader.java index 3359cc812..bd17b9d62 100644 --- a/src/main/java/dev/dubhe/anvilcraft/data/tags/ItemTagLoader.java +++ b/src/main/java/dev/dubhe/anvilcraft/data/tags/ItemTagLoader.java @@ -207,6 +207,7 @@ public static void init(RegistrateTagsProvider provider) { provider.addTag(ModItemTags.COMPRESS_ITEM) .add(findResourceKey(Items.SNOW_BLOCK)) .add(findResourceKey(Items.WHITE_WOOL)) + .add(findResourceKey(ModBlocks.HEAVY_IRON_BLOCK.asItem())) .addTag(Tags.Items.INGOTS) .addTag(Tags.Items.STORAGE_BLOCKS); diff --git a/src/main/java/dev/dubhe/anvilcraft/init/block/ModBlocks.java b/src/main/java/dev/dubhe/anvilcraft/init/block/ModBlocks.java index ede302f0b..fb1f6af08 100644 --- a/src/main/java/dev/dubhe/anvilcraft/init/block/ModBlocks.java +++ b/src/main/java/dev/dubhe/anvilcraft/init/block/ModBlocks.java @@ -1797,7 +1797,7 @@ public class ModBlocks { LargeFluidTankBlock::new ) .initialProperties(() -> Blocks.IRON_BLOCK) - .properties(p -> p.isSuffocating(ModBlocks::never).isSuffocating(ModBlocks::never).noOcclusion().isValidSpawn(Blocks::never)) + .properties(p -> p.isSuffocating(ModBlocks::never).noOcclusion().isValidSpawn(Blocks::never)) .loot(SimpleMultiPartBlock::loot) .item(SimpleMultiPartBlockItem::new) .properties((properties) -> properties.stacksTo(16))