Ernio Posted October 4, 2015 Posted October 4, 2015 ...EntityPlayer#damageEntity(DamageSource damageSrc, float damageAmount) : 1135 - 1138 if (damageAmount < 3.4028235E37F) { this.addStat(StatList.damageTakenStat, Math.round(damageAmount * 10.0F)); } If the damage taken is high enough, you will not receive "damageTaken" statistic? I mean, seriously - why would there be such statement there? Damage taken is damage taken, doesn't matter how much. Is this next "wtf vanilla" stuff? EDIT: Before you start asking: I am heavily modifying damaging/armor systems, need to recreate some vanilla behaviours. Quote 1.7.10 is no longer supported by forge, you are on your own.
Choonster Posted October 4, 2015 Posted October 4, 2015 3.4028235E37F is equivalent to Float.MAX_VALUE / 10 , so multiplying it by 10.0F produces Float.MAX_VALUE . Anything larger than that would overflow. I'm not entirely sure why it's multiplied by 10 before rounding to an integer or why it doesn't use a double instead of a float to store the pre-rounded value. Quote Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.
Ernio Posted October 4, 2015 Author Posted October 4, 2015 Jesus Christ, Mother's mercy, God save The Queen, Long live The King. I missed "E" symbol. (to be fair I didn't look much). Vanilla 1, Ernio 0... Quote 1.7.10 is no longer supported by forge, you are on your own.
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.