public static uint GetTerrainMapId(PhaseShift phaseShift, Map map, float x, float y) { if (phaseShift.VisibleMapIds.Empty()) { return(map.GetId()); } if (phaseShift.VisibleMapIds.Count == 1) { return(phaseShift.VisibleMapIds.First().Key); } GridCoord gridCoord = GridDefines.ComputeGridCoord(x, y); uint gx = ((MapConst.MaxGrids - 1) - gridCoord.X_coord); uint gy = ((MapConst.MaxGrids - 1) - gridCoord.Y_coord); foreach (var visibleMap in phaseShift.VisibleMapIds) { if (map.HasChildMapGridFile(visibleMap.Key, gx, gy)) { return(visibleMap.Key); } } return(map.GetId()); }
public bool ExistMapAndVMap(uint mapid, float x, float y) { GridCoord p = GridDefines.ComputeGridCoord(x, y); uint gx = (MapConst.MaxGrids - 1) - p.X_coord; uint gy = (MapConst.MaxGrids - 1) - p.Y_coord; return(Map.ExistMap(mapid, gx, gy) && Map.ExistVMap(mapid, gx, gy)); }
public bool ExistMapAndVMap(uint mapid, float x, float y) { GridCoord p = GridDefines.ComputeGridCoord(x, y); uint gx = 63 - p.x_coord; uint gy = 63 - p.y_coord; return(Map.ExistMap(mapid, gx, gy) && Map.ExistVMap(mapid, gx, gy)); }
public static uint GetTerrainMapId(PhaseShift phaseShift, Map map, float x, float y) { if (phaseShift.VisibleMapIds.Empty()) { return(map.GetId()); } if (phaseShift.VisibleMapIds.Count == 1) { return(phaseShift.VisibleMapIds.First().Key); } GridCoord gridCoord = GridDefines.ComputeGridCoord(x, y); uint gx = (uint)((MapConst.MaxGrids - 1) - gridCoord.x_coord); uint gy = (uint)((MapConst.MaxGrids - 1) - gridCoord.y_coord); uint gxbegin = Math.Max(gx - 1, 0); uint gxend = Math.Min(gx + 1, MapConst.MaxGrids); uint gybegin = Math.Max(gy - 1, 0); uint gyend = Math.Min(gy + 1, MapConst.MaxGrids); foreach (var itr in phaseShift.VisibleMapIds) { for (uint gxi = gxbegin; gxi < gxend; ++gxi) { for (uint gyi = gybegin; gyi < gyend; ++gyi) { if (map.HasGridMap(itr.Key, gxi, gyi)) { return(itr.Key); } } } } return(map.GetId()); }