40 lines
		
	
	
		
			998 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			998 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { TestGen } from "/Scripts/server/chunk/generators/testgen"
 | |
| import { Engine } from "/Scripts/types/engine"
 | |
| import { ChunkGenerator, VoxelFunction } from "/Scripts/types/host/server/chunk/chunkgenerator"
 | |
| 
 | |
| 
 | |
| 
 | |
| /**
 | |
|  * Manages all the chunk generators defined script-side
 | |
|  */
 | |
| export class ChunkGeneratorManager {
 | |
| 
 | |
|     /**
 | |
|      * The parent engine object
 | |
|      */
 | |
|     engine: Engine
 | |
| 
 | |
|     /**
 | |
|      * The list of registered chunk generators
 | |
|      */
 | |
|     readonly registeredGenerators: ChunkGenerator[] = [
 | |
|         TestGen,
 | |
|     ]
 | |
| 
 | |
|     /**
 | |
|      * Gets the voxel function for the tag
 | |
|      * @param tag The tag
 | |
|      * @returns The voxel function if it exists, null otherwise
 | |
|      */
 | |
|     readonly getVoxelFunction = (tag: string): VoxelFunction => {
 | |
|         let rVal: VoxelFunction = null
 | |
|         this.registeredGenerators.forEach(generator => {
 | |
|             if(generator.getTag() === tag){
 | |
|                 rVal = generator.getVoxelFunction(this.engine)
 | |
|             }
 | |
|         })
 | |
|         return rVal
 | |
|     }
 | |
| 
 | |
| }
 |