diff --git a/common/tan/core/TANTemperature.java b/common/tan/core/TANTemperature.java index 6f6f23555..cc523a701 100644 --- a/common/tan/core/TANTemperature.java +++ b/common/tan/core/TANTemperature.java @@ -2,7 +2,9 @@ package tan.core; import net.minecraft.block.Block; import tan.api.temperature.TemperatureRegistry; +import tan.temperaturemodifiers.TemperaturePlayerStateModifier; import tan.temperaturemodifiers.TemperatureSourceModifier; +import tan.temperaturemodifiers.TemperatureTimeModifier; public class TANTemperature { @@ -15,6 +17,8 @@ public class TANTemperature private static void registerTemperatureModifiers() { TemperatureRegistry.registerTemperatureModifier(new TemperatureSourceModifier()); + TemperatureRegistry.registerTemperatureModifier(new TemperatureTimeModifier()); + TemperatureRegistry.registerTemperatureModifier(new TemperaturePlayerStateModifier()); } private static void registerTemperatureSources() diff --git a/common/tan/stats/TemperatureStat.java b/common/tan/stats/TemperatureStat.java index 278f9f72b..d519e4de7 100644 --- a/common/tan/stats/TemperatureStat.java +++ b/common/tan/stats/TemperatureStat.java @@ -62,6 +62,10 @@ public class TemperatureStat extends TANStat { } + + System.out.println("Aimed Temp " + aimedTemperature); + System.out.println("Rain/Speed " + temperatureRainfall[1]); + System.out.println("Current Temp " + temperature); if (temperature != originalTemperature) { @@ -93,7 +97,10 @@ public class TemperatureStat extends TANStat averageAimedEnvironmentTemperature += ((biome.temperature / 2) * 20) + 27; - rainfall = (biome.rainfall / 2) / 10; + if (biome.rainfall != 0F) + { + rainfall = biome.rainfall / 2; + } environmentDivider++; } @@ -106,24 +113,6 @@ public class TemperatureStat extends TANStat return temperatureRainfall; } - public boolean isDay() - { - float celestialAngle = world.getCelestialAngle(0.0F); - - if (celestialAngle >= 0.75F && celestialAngle <= 1.0F || celestialAngle >= 0.0F && celestialAngle <= 0.25F) return true; - - return false; - } - - public boolean isNight() - { - float celestialAngle = world.getCelestialAngle(0.0F); - - if (celestialAngle >= 0.25F && celestialAngle <= 0.75F) return true; - - return false; - } - @Override public void setDefaults() { diff --git a/common/tan/temperaturemodifiers/TemperaturePlayerStateModifier.java b/common/tan/temperaturemodifiers/TemperaturePlayerStateModifier.java new file mode 100644 index 000000000..f1bca13e5 --- /dev/null +++ b/common/tan/temperaturemodifiers/TemperaturePlayerStateModifier.java @@ -0,0 +1,20 @@ +package tan.temperaturemodifiers; + +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.world.World; +import tan.api.temperature.ITemperatureModifier; + +public class TemperaturePlayerStateModifier implements ITemperatureModifier +{ + @Override + public float modifyTemperature(World world, EntityPlayerMP player) + { + float modifier = 0F; + + if (player.isSprinting()) modifier += 2.25F; + if (player.isWet()) modifier -= 2.5F; + if (player.isBurning()) modifier += 4F; + + return modifier; + } +} diff --git a/common/tan/temperaturemodifiers/TemperatureTimeModifier.java b/common/tan/temperaturemodifiers/TemperatureTimeModifier.java new file mode 100644 index 000000000..8a1dc37b4 --- /dev/null +++ b/common/tan/temperaturemodifiers/TemperatureTimeModifier.java @@ -0,0 +1,34 @@ +package tan.temperaturemodifiers; + +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.world.World; +import tan.api.temperature.ITemperatureModifier; + +public class TemperatureTimeModifier implements ITemperatureModifier +{ + @Override + public float modifyTemperature(World world, EntityPlayerMP player) + { + if (isNight(world)) return -2F; + + return 0F; + } + + public boolean isDay(World world) + { + float celestialAngle = world.getCelestialAngle(0.0F); + + if (celestialAngle >= 0.75F && celestialAngle <= 1.0F || celestialAngle >= 0.0F && celestialAngle <= 0.25F) return true; + + return false; + } + + public boolean isNight(World world) + { + float celestialAngle = world.getCelestialAngle(0.0F); + + if (celestialAngle >= 0.25F && celestialAngle <= 0.75F) return true; + + return false; + } +}