Core/Objects: use the actual collision height of players and creatures to get more accurate liquid status results

Port From (https://github.com/TrinityCore/TrinityCore/commit/d5daa2ad49a5a5d23ec4fae7508998ff9b1b6ad1)
This commit is contained in:
hondacrx
2021-11-29 17:27:43 -05:00
parent 2079cd1094
commit 356bbb8823
3 changed files with 9 additions and 4 deletions
+7 -1
View File
@@ -823,7 +823,13 @@ namespace Game.Entities
Log.outError(LogFilter.Unit, $"Creature.Create: given coordinates for creature (guidlow {guidlow}, entry {entry}) are not valid ({pos})");
return false;
}
UpdatePositionData();
{
// area/zone id is needed immediately for ZoneScript::GetCreatureEntry hook before it is known which creature template to load (no model/scale available yet)
PositionFullTerrainStatus positionData = new();
GetMap().GetFullTerrainStatusForPosition(GetPhaseShift(), GetPositionX(), GetPositionY(), GetPositionZ(), positionData, LiquidHeaderTypeFlags.AllLiquids, MapConst.DefaultCollesionHeight);
ProcessPositionDataChanged(positionData);
}
// Allow players to see those units while dead, do it here (mayby altered by addon auras)
if (cinfo.TypeFlags.HasAnyFlag(CreatureTypeFlags.GhostVisible))