minecraft-src/net/minecraft/world/item/component/DamageResistant.java
2025-07-04 02:00:41 +03:00

24 lines
1 KiB
Java

package net.minecraft.world.item.component;
import com.mojang.serialization.Codec;
import com.mojang.serialization.codecs.RecordCodecBuilder;
import net.minecraft.core.registries.Registries;
import net.minecraft.network.RegistryFriendlyByteBuf;
import net.minecraft.network.codec.StreamCodec;
import net.minecraft.tags.TagKey;
import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.damagesource.DamageType;
public record DamageResistant(TagKey<DamageType> types) {
public static final Codec<DamageResistant> CODEC = RecordCodecBuilder.create(
instance -> instance.group(TagKey.hashedCodec(Registries.DAMAGE_TYPE).fieldOf("types").forGetter(DamageResistant::types))
.apply(instance, DamageResistant::new)
);
public static final StreamCodec<RegistryFriendlyByteBuf, DamageResistant> STREAM_CODEC = StreamCodec.composite(
TagKey.streamCodec(Registries.DAMAGE_TYPE), DamageResistant::types, DamageResistant::new
);
public boolean isResistantTo(DamageSource damageSource) {
return damageSource.is(this.types);
}
}