39 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import { loggerScripts } from '/Scripts/compiler/host_access'
 | 
						|
import { Client, NamespaceClient } from '/Scripts/client/client'
 | 
						|
import { HookManager } from '/Scripts/engine/hooks/hook-manager'
 | 
						|
import { SceneLoader } from '/Scripts/engine/scene/scene-loader'
 | 
						|
import { Engine } from '/Scripts/types/engine'
 | 
						|
import { clientHooks } from '/Scripts/client/clienthooks'
 | 
						|
import { ChunkGeneratorManager } from '/Scripts/server/chunk/chunkgeneratormanager'
 | 
						|
 | 
						|
/**
 | 
						|
 * The core engine values
 | 
						|
 */
 | 
						|
export const engine: Engine = {
 | 
						|
    classes: {},
 | 
						|
    singletons: {},
 | 
						|
    hookManager: new HookManager(),
 | 
						|
    sceneLoader: new SceneLoader(),
 | 
						|
    chunkGeneratorManager: new ChunkGeneratorManager(),
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * Called when the script engine first initializes
 | 
						|
 */
 | 
						|
export const ENGINE_onInit = () => {
 | 
						|
    loggerScripts.INFO('Script Engine Beginning Initialization')
 | 
						|
 | 
						|
    //load namespaces
 | 
						|
    let client: NamespaceClient = Client
 | 
						|
    engine.sceneLoader.engine = engine
 | 
						|
    engine.hookManager.engine = engine
 | 
						|
    engine.chunkGeneratorManager.engine = engine
 | 
						|
 | 
						|
    //load global hooks
 | 
						|
    clientHooks.forEach(hook => {
 | 
						|
        engine.hookManager.registerGlobalHook(hook,false)
 | 
						|
    })
 | 
						|
 | 
						|
    loggerScripts.INFO('Script Engine Initialized')
 | 
						|
}
 |