Core/Misc: Some refactoring

Port From (https://github.com/TrinityCore/TrinityCore/commit/94a79bac7a06aa0f931e9d651928de7eea0a8b5c)
This commit is contained in:
hondacrx
2022-01-06 20:07:26 -05:00
parent e51b775636
commit d2ba807c20
19 changed files with 585 additions and 477 deletions
@@ -209,7 +209,7 @@ namespace Game.Chat
if (data != null)
{
data.rotation.toEulerAnglesZYX(out float yaw, out float pitch, out float roll);
handler.SendSysMessage(CypherStrings.SpawninfoSpawnidLocation, data.spawnId, data.spawnPoint.GetPositionX(), data.spawnPoint.GetPositionY(), data.spawnPoint.GetPositionZ());
handler.SendSysMessage(CypherStrings.SpawninfoSpawnidLocation, data.SpawnId, data.SpawnPoint.GetPositionX(), data.SpawnPoint.GetPositionY(), data.SpawnPoint.GetPositionZ());
handler.SendSysMessage(CypherStrings.SpawninfoRotation, yaw, pitch, roll);
}
+3 -3
View File
@@ -645,9 +645,9 @@ namespace Game.Chat.Commands
return false;
}
if (!GridDefines.IsValidMapCoord(goData.spawnPoint) || Global.ObjectMgr.IsTransportMap(goData.spawnPoint.GetMapId()))
if (!GridDefines.IsValidMapCoord(goData.MapId, goData.SpawnPoint) || Global.ObjectMgr.IsTransportMap(goData.MapId))
{
handler.SendSysMessage(CypherStrings.InvalidTargetCoord, goData.spawnPoint.GetPositionX(), goData.spawnPoint.GetPositionY(), goData.spawnPoint.GetMapId());
handler.SendSysMessage(CypherStrings.InvalidTargetCoord, goData.SpawnPoint.GetPositionX(), goData.SpawnPoint.GetPositionY(), goData.MapId);
return false;
}
@@ -657,7 +657,7 @@ namespace Game.Chat.Commands
else
player.SaveRecallPosition(); // save only in non-flight case
player.TeleportTo(goData.spawnPoint);
player.TeleportTo(new WorldLocation(goData.MapId, goData.SpawnPoint));
return true;
}
+23 -17
View File
@@ -580,31 +580,37 @@ namespace Game.Chat.Commands
uint zoneId = player.GetZoneId();
string zoneName = GetZoneName(zoneId, locale);
for (SpawnObjectType type = 0; type < SpawnObjectType.Max; type++)
for (SpawnObjectType type = 0; type < SpawnObjectType.NumSpawnTypes; type++)
{
if (range != 0)
handler.SendSysMessage(CypherStrings.ListRespawnsRange, type, range);
else
handler.SendSysMessage(CypherStrings.ListRespawnsZone, type, zoneName, zoneId);
handler.SendSysMessage(CypherStrings.ListRespawnsListheader);
List<RespawnInfo> respawns = new();
map.GetRespawnInfo(respawns, (SpawnObjectTypeMask)(1 << (int)type));
foreach (RespawnInfo ri in respawns)
{
SpawnData data = Global.ObjectMgr.GetSpawnData(ri.type, ri.spawnId);
SpawnMetadata data = Global.ObjectMgr.GetSpawnMetadata(ri.type, ri.spawnId);
if (data == null)
continue;
uint respawnZoneId = map.GetZoneId(PhasingHandler.EmptyPhaseShift, data.spawnPoint);
if (range != 0)
uint respawnZoneId = 0;
SpawnData edata = data.ToSpawnData();
if (edata != null)
{
if (!player.IsInDist(data.spawnPoint, range))
continue;
}
else
{
if (zoneId != respawnZoneId)
continue;
respawnZoneId = map.GetZoneId(PhasingHandler.EmptyPhaseShift, edata.SpawnPoint);
if (range != 0)
{
if (!player.IsInDist(edata.SpawnPoint, range))
continue;
}
else
{
if (zoneId != respawnZoneId)
continue;
}
}
uint gridY = ri.gridId / MapConst.MaxGrids;
@@ -652,28 +658,28 @@ namespace Game.Chat.Commands
foreach (var pair in Global.ObjectMgr.GetAllCreatureData())
{
SpawnData data = pair.Value;
if (data.spawnPoint.GetMapId() != mapId)
if (data.MapId != mapId)
continue;
CreatureTemplate cTemp = Global.ObjectMgr.GetCreatureTemplate(data.Id);
if (cTemp == null)
continue;
if (showAll || data.spawnPoint.IsInDist2d(player, 5000.0f))
handler.SendSysMessage($"Type: {data.type} | SpawnId: {data.spawnId} | Entry: {data.Id} ({cTemp.Name}) | X: {data.spawnPoint.GetPositionX():3} | Y: {data.spawnPoint.GetPositionY():3} | Z: {data.spawnPoint.GetPositionZ():3}");
if (showAll || data.SpawnPoint.IsInDist2d(player, 5000.0f))
handler.SendSysMessage($"Type: {data.type} | SpawnId: {data.SpawnId} | Entry: {data.Id} ({cTemp.Name}) | X: {data.SpawnPoint.GetPositionX():3} | Y: {data.SpawnPoint.GetPositionY():3} | Z: {data.SpawnPoint.GetPositionZ():3}");
}
foreach (var pair in Global.ObjectMgr.GetAllGameObjectData())
{
SpawnData data = pair.Value;
if (data.spawnPoint.GetMapId() != mapId)
if (data.MapId != mapId)
continue;
GameObjectTemplate goTemp = Global.ObjectMgr.GetGameObjectTemplate(data.Id);
if (goTemp == null)
continue;
if (showAll || data.spawnPoint.IsInDist2d(player, 5000.0f))
handler.SendSysMessage($"Type: {data.type} | SpawnId: {data.spawnId} | Entry: {data.Id} ({goTemp.name}) | X: {data.spawnPoint.GetPositionX():3} | Y: {data.spawnPoint.GetPositionY():3} | Z: {data.spawnPoint.GetPositionZ():3}");
if (showAll || data.SpawnPoint.IsInDist2d(player, 5000.0f))
handler.SendSysMessage($"Type: {data.type} | SpawnId: {data.SpawnId} | Entry: {data.Id} ({goTemp.name}) | X: {data.SpawnPoint.GetPositionX():3} | Y: {data.SpawnPoint.GetPositionY():3} | Z: {data.SpawnPoint.GetPositionZ():3}");
}
return true;
}
+5 -5
View File
@@ -172,7 +172,7 @@ namespace Game.Chat
CreatureData data = Global.ObjectMgr.GetCreatureData(target.GetSpawnId());
if (data != null)
handler.SendSysMessage(CypherStrings.NpcinfoPhases, data.phaseId, data.phaseGroup);
handler.SendSysMessage(CypherStrings.NpcinfoPhases, data.PhaseId, data.PhaseGroup);
PhasingHandler.PrintToChat(handler, target.GetPhaseShift());
@@ -233,14 +233,14 @@ namespace Game.Chat
return false;
}
if (player.GetMapId() != data.spawnPoint.GetMapId())
if (player.GetMapId() != data.MapId)
{
handler.SendSysMessage(CypherStrings.CommandCreatureatsamemap, lowguid);
return false;
}
Global.ObjectMgr.RemoveCreatureFromGrid(lowguid, data);
data.spawnPoint.Relocate(player);
data.SpawnPoint.Relocate(player);
Global.ObjectMgr.AddCreatureToGrid(lowguid, data);
// update position in DB
@@ -659,9 +659,9 @@ namespace Game.Chat
{
ulong guid = map.GenerateLowGuid(HighGuid.Creature);
CreatureData data = Global.ObjectMgr.NewOrExistCreatureData(guid);
data.spawnId = guid;
data.SpawnId = guid;
data.Id = id;
data.spawnPoint.Relocate(chr.GetTransOffsetX(), chr.GetTransOffsetY(), chr.GetTransOffsetZ(), chr.GetTransOffsetO());
data.SpawnPoint.Relocate(chr.GetTransOffsetX(), chr.GetTransOffsetY(), chr.GetTransOffsetZ(), chr.GetTransOffsetO());
data.spawnGroupData = new();
Creature creaturePassenger = trans.CreateNPCPassenger(guid, data);