diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/tags/Tags.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/tags/Tags.kt index 78fbc2d3c..c31990cbe 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/tags/Tags.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/tags/Tags.kt @@ -36,12 +36,6 @@ fun addTags(tagsProvider: TagsProvider) { tagsProvider.wires.add("copper", MItems.COPPER_WIRING) tagsProvider.wires.add("gold", MItems.GOLD_WIRING) - tagsProvider.items.appender(ItemTags.FREEZE_IMMUNE_WEARABLES) - .add(MItems.TRITANIUM_BOOTS) - .add(MItems.TRITANIUM_PANTS) - .add(MItems.TRITANIUM_CHESTPLATE) - .add(MItems.TRITANIUM_HELMET) - tagsProvider.requiresPickaxe( MBlocks.MATTER_CABLE, MBlocks.STORAGE_CABLE diff --git a/src/main/java/ru/dbotthepony/mc/otm/mixin/MixinLivingEntity.java b/src/main/java/ru/dbotthepony/mc/otm/mixin/MixinLivingEntity.java new file mode 100644 index 000000000..8f4aae057 --- /dev/null +++ b/src/main/java/ru/dbotthepony/mc/otm/mixin/MixinLivingEntity.java @@ -0,0 +1,30 @@ +package ru.dbotthepony.mc.otm.mixin; + +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.entity.LivingEntity; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; +import ru.dbotthepony.mc.otm.registry.MItems; + +@Mixin(LivingEntity.class) +public class MixinLivingEntity { + @Inject( + method = "canFreeze()Z", + at = @At("HEAD"), + cancellable = true) + public void canFreeze(CallbackInfoReturnable hook) { + if (((Object) this) instanceof LivingEntity entity) { + boolean flag = + entity.getItemBySlot(EquipmentSlot.HEAD).is(MItems.INSTANCE.getTRITANIUM_HELMET()) && + entity.getItemBySlot(EquipmentSlot.CHEST).is(MItems.INSTANCE.getTRITANIUM_CHESTPLATE()) && + entity.getItemBySlot(EquipmentSlot.LEGS).is(MItems.INSTANCE.getTRITANIUM_PANTS()) && + entity.getItemBySlot(EquipmentSlot.FEET).is(MItems.INSTANCE.getTRITANIUM_BOOTS()) + ; + + if (flag) + hook.setReturnValue(false); + } + } +} diff --git a/src/main/resources/overdrive_that_matters.mixins.json b/src/main/resources/overdrive_that_matters.mixins.json index 07c4b2a7f..7559f932a 100644 --- a/src/main/resources/overdrive_that_matters.mixins.json +++ b/src/main/resources/overdrive_that_matters.mixins.json @@ -6,6 +6,7 @@ "minVersion": "0.8", "refmap": "overdrive_that_matters.refmap.json", "mixins": [ - "MixinPatchProjectileFinder" + "MixinPatchProjectileFinder", + "MixinLivingEntity" ] }