public void CheckZone(Object Obj) { Zone_Info Info = GetZone(Obj.XOffset, Obj.YOffset); if (Info != null && Info != Obj.Zone.Info) { AddObject(Obj, Info.ZoneId); } CellMgr CurCell = Obj._Cell; CellMgr NewCell = GetCell(Obj.XOffset, Obj.YOffset); if (NewCell != null && NewCell != CurCell) { if (CurCell != null) // Si l'objet est sur un cell, on le supprime { CurCell.RemoveObject(Obj); } NewCell.AddObject(Obj); // On l'ajoute dans le nouveau cell } }
public ushort CheckZone(Object obj) { Zone_Info info = GetZone(obj.XOffset, obj.YOffset); if (info != null && info != obj.Zone.Info) { AddObject(obj, info.ZoneId); } CellMgr curCell = obj._Cell; CellMgr newCell = GetCell(obj.XOffset, obj.YOffset); if (newCell == null || newCell == curCell) { return(info?.ZoneId ?? 0); } curCell?.RemoveObject(obj); newCell.AddObject(obj); // On l'ajoute dans le nouveau cell return(info?.ZoneId ?? 0); }