/**************************************************************************/
/*  unity_exporter.h                                                      */
/**************************************************************************/
/*                         This file is part of:                          */
/*                          AETHEX ENGINE                                 */
/*                     https://aethex.foundation                          */
/**************************************************************************/
/* Copyright (c) 2026-present AeThex Labs.                                */
/**************************************************************************/

#ifndef AETHEX_UNITY_EXPORTER_H
#define AETHEX_UNITY_EXPORTER_H

#include "platform_exporter.h"

// Exports AeThex projects to Unity C# format
class AeThexUnityExporter : public AeThexPlatformExporter {
	GDCLASS(AeThexUnityExporter, AeThexPlatformExporter);

protected:
	static void _bind_methods();
	
	String _convert_to_csharp(const String &p_source);
	String _generate_csharp_class(const String &p_name, const String &p_body);

public:
	virtual AeThexExportConfig::Platform get_platform() const override { return AeThexExportConfig::PLATFORM_UNITY; }
	virtual String get_platform_name() const override { return "Unity"; }
	virtual String get_file_extension() const override { return "cs"; }
	
	virtual ExportResult compile_script(const String &p_source, String &r_output) override;

	AeThexUnityExporter();
	~AeThexUnityExporter();
};

#endif // AETHEX_UNITY_EXPORTER_H
