Fix? temperature for Ad Astra
This commit is contained in:
		| @ -1,32 +1,31 @@ | ||||
| package ru.bitheaven.createairfabric.mixin; | ||||
|  | ||||
| import earth.terrarium.ad_astra.common.config.AdAstraConfig; | ||||
| import earth.terrarium.ad_astra.common.entity.system.EntityTemperatureSystem; | ||||
| import earth.terrarium.ad_astra.common.item.armor.NetheriteSpaceSuit; | ||||
| import earth.terrarium.ad_astra.common.registry.ModTags; | ||||
| import earth.terrarium.adastra.common.items.armor.NetheriteSpaceSuitItem; | ||||
| import earth.terrarium.adastra.common.tags.ModItemTags; | ||||
| import earth.terrarium.adastra.common.systems.TemperatureApiImpl; | ||||
| 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.Redirect; | ||||
|  | ||||
| @Mixin(EntityTemperatureSystem.class) | ||||
| @Mixin(TemperatureApiImpl.class) | ||||
| public abstract class EntityTemperatureSystemMixin { | ||||
|     @Redirect(at = @At(value = "INVOKE", target = "Learth/terrarium/ad_astra/common/entity/system/EntityTemperatureSystem;burnEntity(Lnet/minecraft/world/entity/LivingEntity;)V"), | ||||
|             method = "temperatureTick(Lnet/minecraft/world/entity/LivingEntity;Lnet/minecraft/server/level/ServerLevel;)V") | ||||
|     private static void redirectTemperatureTick(LivingEntity entity) { | ||||
|     @Redirect(at = @At(value = "INVOKE", target = "Learth/terrarium/adastra/common/systems/TemperatureApiImpl;burnEntity(Lnet/minecraft/world/entity/LivingEntity;)V"), | ||||
|             method = "entityTick(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/entity/LivingEntity;)V") | ||||
|     private void redirectTemperatureTick(TemperatureApiImpl instance, LivingEntity entity) { | ||||
|         boolean createNetherite = true; | ||||
|         createNetherite &= entity.getItemBySlot(EquipmentSlot.HEAD).getItem().isFireResistant(); | ||||
|         createNetherite &= entity.getItemBySlot(EquipmentSlot.CHEST).getItem().isFireResistant(); | ||||
|         createNetherite &= entity.getItemBySlot(EquipmentSlot.LEGS).is(ModTags.HEAT_RESISTANT) | ||||
|                 || entity.getItemBySlot(EquipmentSlot.LEGS).getItem() instanceof NetheriteSpaceSuit | ||||
|         createNetherite &= entity.getItemBySlot(EquipmentSlot.LEGS).is(ModItemTags.HEAT_RESISTANT_ARMOR) | ||||
|                 || entity.getItemBySlot(EquipmentSlot.LEGS).getItem() instanceof NetheriteSpaceSuitItem | ||||
|                 || entity.getItemBySlot(EquipmentSlot.LEGS).getItem().isFireResistant(); | ||||
|         createNetherite &= entity.getItemBySlot(EquipmentSlot.FEET).is(ModTags.HEAT_RESISTANT) | ||||
|                 || entity.getItemBySlot(EquipmentSlot.FEET).getItem() instanceof NetheriteSpaceSuit | ||||
|         createNetherite &= entity.getItemBySlot(EquipmentSlot.FEET).is(ModItemTags.HEAT_RESISTANT_ARMOR) | ||||
|                 || entity.getItemBySlot(EquipmentSlot.FEET).getItem() instanceof NetheriteSpaceSuitItem | ||||
|                 || entity.getItemBySlot(EquipmentSlot.FEET).getItem().isFireResistant(); | ||||
|  | ||||
|         if(!createNetherite) { | ||||
|             entity.hurt(entity.damageSources().onFire(), (float) AdAstraConfig.heatDamage); | ||||
|             entity.hurt(entity.damageSources().onFire(), 6); | ||||
|             entity.setSecondsOnFire(10); | ||||
|         } | ||||
|     } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user