Structuring Your Code
To keep the project organized, we'll use three scripts:
- Gemini.ts: The core logic for our AI. This file will be responsible for building requests to the Gemini API, sending them, and processing the responses.
- importsForEvents.ts: A bridge file required by Construct. It imports our module so that its functions can be called from the event sheet scripting environment.
- main.ts: The project's entry point, executed on startup. We'll use it to initialize global variables, like a convenient reference to Construct's runtime object.
The setup for importsForEvents.ts and main.ts is minimal.
importsForEvents.ts contains a single line to import our functions:
import * as Gemini from "./Gemini.js";
We mainly need main.ts to make Construct's runtime variable easily accessible throughout the project:
declare global {
var runtime: IRuntime;
}
runOnStartup(async (runtime: IRuntime) => {
globalThis.runtime = runtime;
})