Leaky tanks

- Fix backtank's not correctly saving their air level
This commit is contained in:
IThundxr 2025-02-03 21:13:18 -05:00
parent b4f837257a
commit 5f529d16b7
Failed to generate hash of commit
2 changed files with 8 additions and 8 deletions

View file

@ -7,8 +7,8 @@ import com.simibubi.create.AllBlockEntityTypes;
import com.simibubi.create.AllDataComponents;
import com.simibubi.create.AllEnchantments;
import com.simibubi.create.AllShapes;
import com.simibubi.create.content.kinetics.base.HorizontalKineticBlock;
import com.simibubi.create.api.schematic.requirement.ISpecialBlockItemRequirement;
import com.simibubi.create.content.kinetics.base.HorizontalKineticBlock;
import com.simibubi.create.content.schematics.requirement.ItemRequirement;
import com.simibubi.create.content.schematics.requirement.ItemRequirement.ItemUseType;
import com.simibubi.create.foundation.block.IBE;
@ -48,6 +48,7 @@ import net.minecraft.world.level.storage.loot.parameters.LootContextParams;
import net.minecraft.world.phys.BlockHitResult;
import net.minecraft.world.phys.shapes.CollisionContext;
import net.minecraft.world.phys.shapes.VoxelShape;
import net.neoforged.neoforge.common.util.FakePlayer;
public class BacktankBlock extends HorizontalKineticBlock implements IBE<BacktankBlockEntity>, SimpleWaterloggedBlock, ISpecialBlockItemRequirement {
@ -131,16 +132,15 @@ public class BacktankBlock extends HorizontalKineticBlock implements IBE<Backtan
if (!(blockEntity instanceof BacktankBlockEntity bbe))
return lootDrops;
DataComponentPatch components = bbe.getComponentPatch();
DataComponentPatch components = bbe.getComponentPatch()
.forget(c -> c.equals(AllDataComponents.BACKTANK_AIR));
if (components.isEmpty())
return lootDrops;
return lootDrops.stream()
.map(stack -> {
if (!(stack.getItem() instanceof BacktankItem))
return stack;
return new ItemStack(stack.getItemHolder(), stack.getCount(), components);
.peek(stack -> {
if (stack.getItem() instanceof BacktankItem)
stack.applyComponents(components);
})
.toList();
}

View file

@ -146,7 +146,7 @@ public class BacktankBlockEntity extends KineticBlockEntity implements Nameable
@Override
protected void applyImplicitComponents(DataComponentInput componentInput) {
airLevel = componentInput.getOrDefault(AllDataComponents.BACKTANK_AIR, 0);
setAirLevel(componentInput.getOrDefault(AllDataComponents.BACKTANK_AIR, 0));
}
@Override