public void Init(World world, Vector3Int pos) { this.world = world; this.pos = pos; stateManager = new ChunkStateManagerClient(this); if (world != null) { logic = world.config.randomUpdateFrequency > 0.0f ? new ChunkLogic(this) : null; if (GeometryHandler == null) { GeometryHandler = new ChunkRenderGeometryHandler(this, world.renderMaterials); } if (ChunkColliderGeometryHandler == null) { ChunkColliderGeometryHandler = new ChunkColliderGeometryHandler(this, world.physicsMaterials); } } else { if (GeometryHandler == null) { GeometryHandler = new ChunkRenderGeometryHandler(this, null); } if (ChunkColliderGeometryHandler == null) { ChunkColliderGeometryHandler = new ChunkColliderGeometryHandler(this, null); } } WorldBounds = new AABB( pos.x, pos.y, pos.z, pos.x + m_sideSize, pos.y + m_sideSize, pos.z + m_sideSize ); minBounds = maxBounds = 0; minBoundsC = maxBoundsC = 0; Reset(); blocks.Init(); stateManager.Init(); }