public void OnStorageChanged(Vector3I minChanged, Vector3I maxChanged, MyStorageDataTypeFlags dataChanged) { ProfilerShort.Begin("MyVoxelMap::storage_RangeChanged"); minChanged = Vector3I.Clamp(minChanged, m_storageMin, m_storageMax); maxChanged = Vector3I.Clamp(maxChanged, m_storageMin, m_storageMax); Debug.Assert(minChanged.IsInsideInclusive(ref m_storageMin, ref m_storageMax) && maxChanged.IsInsideInclusive(ref m_storageMin, ref m_storageMax)); // Physics doesn't care about materials, just shape of things. if ((dataChanged & MyStorageDataTypeFlags.Content) != 0 && Physics != null) { Physics.InvalidateRange(minChanged, maxChanged); } ProfilerShort.End(); }
/// <summary> /// Invalidates voxel cache /// </summary> /// <param name="minChanged">Inclusive min</param> /// <param name="maxChanged">Inclusive max</param> private void storage_RangeChanged(Vector3I minChanged, Vector3I maxChanged, MyStorageDataTypeFlags dataChanged) { ProfilerShort.Begin("MyVoxelMap::storage_RangeChanged"); Debug.Assert(minChanged.IsInsideInclusive(ref m_storageMin, ref m_storageMax) && maxChanged.IsInsideInclusive(ref m_storageMin, ref m_storageMax)); // Physics doesn't care about materials, just shape of things. if ((dataChanged & MyStorageDataTypeFlags.Content) != 0 && Physics != null) { Physics.InvalidateRange(minChanged, maxChanged); } if (Render is MyRenderComponentVoxelMap) { (Render as MyRenderComponentVoxelMap).InvalidateRange(minChanged, maxChanged); } ProfilerShort.End(); }