# Sandbox.Clutter.ClutterGridSystem

Game object system that manages clutter generation.
Handles infinite streaming layers and executes generation jobs.

- Kind: class
- Namespace: `Sandbox.Clutter`
- Assembly: `Sandbox.Engine`
- Inherits: [Sandbox.GameObjectSystem](/api/Sandbox.GameObjectSystem)
- Modifiers: sealed

## Constructors

- [`ClutterGridSystem`](/api/Sandbox.Clutter.ClutterGridSystem/.ctor)

## Properties

- [`Storage`](/api/Sandbox.Clutter.ClutterGridSystem/Storage): Storage for painted clutter model instances. Serialized with the scene - this is the source of truth for painted clutter.

## Methods

- [`ClearAllPainted`](/api/Sandbox.Clutter.ClutterGridSystem/ClearAllPainted): Clears all painted clutter (both model instances from storage and prefab GameObjects). Does not affect clutter owned by ClutterComponent volumes.
- [`ClearComponent`](/api/Sandbox.Clutter.ClutterGridSystem/ClearComponent): Clears all tiles for a specific component.
- [`Dispose`](/api/Sandbox.Clutter.ClutterGridSystem/Dispose)
- [`Erase`](/api/Sandbox.Clutter.ClutterGridSystem/Erase): Erase instances. Rebuilds on next frame update. Erases both model batches and prefab GameObjects.
- [`Flush`](/api/Sandbox.Clutter.ClutterGridSystem/Flush): Flush painted changes and rebuild visual batches immediately.
- [`InvalidateTileAt`](/api/Sandbox.Clutter.ClutterGridSystem/InvalidateTileAt): Invalidates the tile at the given world position for a component, causing it to regenerate.
- [`InvalidateTilesInBounds`](/api/Sandbox.Clutter.ClutterGridSystem/InvalidateTilesInBounds): Invalidates all tiles within the given bounds for a component, causing them to regenerate.
- [`Paint`](/api/Sandbox.Clutter.ClutterGridSystem/Paint): Paint instance. Rebuilds on next frame update. Models are batched, Prefabs become GameObjects.
