il2cpp-dump-analyzer-mcp
Version:
Agentic RAG system for analyzing IL2CPP dump.cs files from Unity games
105 lines (104 loc) • 3.7 kB
TypeScript
/**
* Unity MonoBehaviour Template Generator for IL2CPP MonoBehaviour classes
* Generates Unity-ready MonoBehaviour scripts with proper lifecycle methods and serialization
*/
import { CodeGenerationRequest, GenerationOptions, ValidationResult } from './types';
import { BaseGenerator } from './base-generator';
import { IL2CPPField, IL2CPPMethod } from '../parser/enhanced-types';
/**
* Parsed MonoBehaviour data for code generation
*/
interface ParsedMonoBehaviourData {
name: string;
namespace: string;
fullName: string;
baseClass: string;
interfaces: string[];
fields: IL2CPPField[];
methods: IL2CPPMethod[];
serializableFields: IL2CPPField[];
lifecycleMethods: IL2CPPMethod[];
customMethods: IL2CPPMethod[];
typeDefIndex: number;
usings: Set<string>;
unityVersion?: string;
}
/**
* Generator for Unity MonoBehaviour templates from IL2CPP MonoBehaviour classes
*/
export declare class MonoBehaviourGenerator extends BaseGenerator {
/**
* Unity lifecycle methods with their metadata
*/
private readonly unityLifecycleMethods;
/**
* Validate the generation request for MonoBehaviour template generation
* @param request Code generation request
* @returns Validation result
*/
protected validateRequest(request: CodeGenerationRequest): Promise<ValidationResult>;
/**
* Parse the IL2CPP MonoBehaviour source entity
* @param request Code generation request
* @returns Parsed MonoBehaviour data
*/
protected parseSourceEntity(request: CodeGenerationRequest): Promise<ParsedMonoBehaviourData>;
/**
* Generate Unity MonoBehaviour template code from parsed data
* @param parsedEntity Parsed MonoBehaviour data
* @param options Generation options
* @returns Generated C# MonoBehaviour code
*/
protected generateCode(parsedEntity: ParsedMonoBehaviourData, options: GenerationOptions): Promise<string>;
/**
* Check if a field should be serializable in Unity
* @param field IL2CPP field to check
* @returns True if field should be serializable
*/
private isSerializableField;
/**
* Check if a type is serializable by Unity
* @param type Type string to check
* @returns True if type is Unity serializable
*/
private isUnitySerializableType;
/**
* Check if a method name is a Unity lifecycle method
* @param methodName Method name to check
* @returns True if it's a Unity lifecycle method
*/
private isUnityLifecycleMethod;
/**
* Generate serializable fields with SerializeField attributes
* @param fields Array of serializable fields
* @param options Generation options
* @param indent Indentation string
* @returns Generated field code
*/
private generateSerializableFields;
/**
* Generate non-serializable fields
* @param fields Array of non-serializable fields
* @param options Generation options
* @param indent Indentation string
* @returns Generated field code
*/
private generateNonSerializableFields;
/**
* Generate Unity lifecycle methods
* @param parsedEntity Parsed MonoBehaviour data
* @param options Generation options
* @param indent Indentation string
* @returns Generated lifecycle method code
*/
private generateUnityLifecycleMethods;
/**
* Generate custom methods from the original IL2CPP class
* @param methods Array of custom methods
* @param options Generation options
* @param indent Indentation string
* @returns Generated custom method code
*/
private generateCustomMethods;
}
export {};