Renderer/assets/Scripts/server/chunk/chunkgeneratormanager.ts
austin cc60818e35
All checks were successful
studiorailgun/Renderer/pipeline/head This commit looks good
js chunkgen + fixes + scriptengine work
2024-11-09 20:04:44 -05:00

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
}
}