// Token: 0x06000CD7 RID: 3287 RVA: 0x0005E72C File Offset: 0x0005CB2C public void addCut(IShapeVolume cut) { this.cuts.Add(cut); if (!this.hasInstances) { return; } foreach (KeyValuePair <AssetReference <FoliageInstancedMeshInfoAsset>, FoliageInstanceList> keyValuePair in this.instances) { FoliageInstanceList value = keyValuePair.Value; for (int i = 0; i < value.matrices.Count; i++) { List <Matrix4x4> list = value.matrices[i]; List <bool> list2 = value.clearWhenBaked[i]; for (int j = list.Count - 1; j >= 0; j--) { if (cut.containsPoint(list[j].GetPosition())) { list.RemoveAt(j); list2.RemoveAt(j); } } } } }
public override int getInstanceCountInVolume(IShapeVolume volume) { Bounds worldBounds = volume.worldBounds; RegionBounds regionBounds = new RegionBounds(worldBounds); int num = 0; for (byte b = regionBounds.min.x; b <= regionBounds.max.x; b += 1) { for (byte b2 = regionBounds.min.y; b2 <= regionBounds.max.y; b2 += 1) { List <ResourceSpawnpoint> list = LevelGround.trees[(int)b, (int)b2]; foreach (ResourceSpawnpoint resourceSpawnpoint in list) { if (this.resource.isReferenceTo(resourceSpawnpoint.asset)) { if (volume.containsPoint(resourceSpawnpoint.point)) { num++; } } } } } return(num); }
public override int getInstanceCountInVolume(IShapeVolume volume) { Bounds worldBounds = volume.worldBounds; RegionBounds regionBounds = new RegionBounds(worldBounds); int num = 0; for (byte b = regionBounds.min.x; b <= regionBounds.max.x; b += 1) { for (byte b2 = regionBounds.min.y; b2 <= regionBounds.max.y; b2 += 1) { List <LevelObject> list = LevelObjects.objects[(int)b, (int)b2]; foreach (LevelObject levelObject in list) { if (this.obj.isReferenceTo(levelObject.asset)) { if (volume.containsPoint(levelObject.transform.position)) { num++; } } } } } return(num); }
// Token: 0x06000CAF RID: 3247 RVA: 0x0005D8AC File Offset: 0x0005BCAC public static void addCut(IShapeVolume cut) { Bounds worldBounds = cut.worldBounds; FoliageBounds foliageBounds = new FoliageBounds(worldBounds); for (int i = foliageBounds.min.x; i <= foliageBounds.max.x; i++) { for (int j = foliageBounds.min.y; j <= foliageBounds.max.y; j++) { FoliageCoord tileCoord = new FoliageCoord(i, j); FoliageTile orAddTile = FoliageSystem.getOrAddTile(tileCoord); orAddTile.addCut(cut); } } }
// Token: 0x06000C4A RID: 3146 RVA: 0x0005CB44 File Offset: 0x0005AF44 public override int getInstanceCountInVolume(IShapeVolume volume) { Bounds worldBounds = volume.worldBounds; FoliageBounds foliageBounds = new FoliageBounds(worldBounds); int num = 0; for (int i = foliageBounds.min.x; i <= foliageBounds.max.x; i++) { for (int j = foliageBounds.min.y; j <= foliageBounds.max.y; j++) { FoliageCoord tileCoord = new FoliageCoord(i, j); FoliageTile tile = FoliageSystem.getTile(tileCoord); if (tile != null) { if (!tile.hasInstances) { tile.readInstancesOnThread(); } FoliageInstanceList foliageInstanceList; if (tile.instances != null && tile.instances.TryGetValue(base.getReferenceTo <FoliageInstancedMeshInfoAsset>(), out foliageInstanceList)) { foreach (List <Matrix4x4> list in foliageInstanceList.matrices) { foreach (Matrix4x4 matrix in list) { if (volume.containsPoint(matrix.GetPosition())) { num++; } } } } } } } return(num); }
// Token: 0x06000C13 RID: 3091 public abstract int getInstanceCountInVolume(IShapeVolume volume);