use of net.dehydration.access.ThirstManagerAccess in project EnvironmentZ by Globox1997.
the class TemperatureAspects method hotEnvironment.
public static void hotEnvironment(PlayerEntity playerEntity) {
if (((PlayerEnvAccess) playerEntity).isHotEnvAffected()) {
if (!playerEntity.hasStatusEffect(EffectInit.COOLING) && OverheatingEffect.wearsArmor(playerEntity) && !playerEntity.isTouchingWaterOrRain() && playerEntity.world.isSkyVisible(playerEntity.getBlockPos()) && playerEntity.world.isDay()) {
dehydrationTimer++;
if (FabricLoader.getInstance().isModLoaded("dehydration")) {
if (dehydrationTimer % ConfigInit.CONFIG.overheating_dehydration_timer == 0) {
ThirstManager thirstManager = ((ThirstManagerAccess) playerEntity).getThirstManager(playerEntity);
thirstManager.addDehydration(ConfigInit.CONFIG.overheating_dehydration_thirst);
}
}
if (playerEntity.hasStatusEffect(EffectInit.WET) && dehydrationTimer % ConfigInit.CONFIG.wet_bonus_malus == 0) {
dehydrationTimer -= 1;
}
if (dehydrationTimer >= (ConfigInit.CONFIG.overheating_tick_interval)) {
if (FabricLoader.getInstance().isModLoaded("dehydration")) {
ThirstManager thirstManager = ((ThirstManagerAccess) playerEntity).getThirstManager(playerEntity);
if (thirstManager.getThirstLevel() < 14) {
playerEntity.addStatusEffect(new StatusEffectInstance(EffectInit.OVERHEATING, ConfigInit.CONFIG.overheating_damage_effect_time, 0, false, false, true));
}
} else {
playerEntity.addStatusEffect(new StatusEffectInstance(EffectInit.OVERHEATING, ConfigInit.CONFIG.overheating_damage_effect_time, 0, false, false, true));
}
dehydrationTimer = 0;
}
} else if (dehydrationTimer > 0) {
dehydrationTimer = 0;
}
}
}
Aggregations