UNPKG

il2cpp-dump-analyzer-mcp

Version:

Agentic RAG system for analyzing IL2CPP dump.cs files from Unity games

105 lines (104 loc) 3.7 kB
/** * 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 {};