ToolCore.hx 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477
  1. package atomic;
  2. @:native("Atomic")
  3. extern enum PlatformID {
  4. PLATFORMID_UNDEFINED;
  5. PLATFORMID_WINDOWS;
  6. PLATFORMID_MAC;
  7. PLATFORMID_ANDROID;
  8. PLATFORMID_IOS;
  9. PLATFORMID_WEB;
  10. }
  11. //Atomic Haxe Definitions
  12. extern class ToolCore {
  13. public static var PROJECTFILE_VERSION: Int;
  14. }
  15. //----------------------------------------------------
  16. // MODULE: ToolCore
  17. //----------------------------------------------------
  18. @:native("Atomic.ToolEnvironment")
  19. extern class ToolEnvironment extends AObject {
  20. var rootSourceDir: String;
  21. var rootBuildDir: String;
  22. var editorBinary: String;
  23. var playerBinary: String;
  24. var toolBinary: String;
  25. var coreDataDir: String;
  26. var playerDataDir: String;
  27. var editorDataDir: String;
  28. var deploymentDataDir: String;
  29. var projectTemplatesDir: String;
  30. var examplesDir: String;
  31. var devConfigFilename: String;
  32. function new();
  33. function initFromPackage(): Bool;
  34. function initFromJSON(?atomicTool: Bool): Bool;
  35. // Root source and build directories for development source tree builds
  36. function setRootSourceDir(sourceDir: String): Void;
  37. function setRootBuildDir(buildDir: String, ?setBinaryPaths: Bool): Void;
  38. function getRootSourceDir(): String;
  39. function getRootBuildDir(): String;
  40. // Binaries
  41. function getEditorBinary(): String;
  42. function getPlayerBinary(): String;
  43. function getToolBinary(): String;
  44. // Resource directories
  45. function getCoreDataDir(): String;
  46. function getPlayerDataDir(): String;
  47. function getEditorDataDir(): String;
  48. // Data directories
  49. function getDeploymentDataDir(): String;
  50. function getProjectTemplatesDir(): String;
  51. function getExamplesDir(): String;
  52. function getDevConfigFilename(): String;
  53. function dump(): Void;
  54. }
  55. @:native("Atomic.ToolSystem")
  56. extern class ToolSystem extends AObject {
  57. var project: Project;
  58. var dataPath: String;
  59. var currentPlatform: Platform;
  60. function new();
  61. function loadProject(fullpath: String): Bool;
  62. function getProject(): Project;
  63. function closeProject(): Void;
  64. function getDataPath(): String;
  65. function setDataPath(path: String): Void;
  66. function registerPlatform(platform: Platform): Void;
  67. function getPlatformByID(platform: PlatformID): Platform;
  68. function getPlatformByName(name: String): Platform;
  69. function setCurrentPlatform(platform: PlatformID): Void;
  70. function getCurrentPlatform(): Platform;
  71. function setCLI(): Void;
  72. function isCLI(): Bool;
  73. }
  74. @:native("Atomic.Project")
  75. extern class Project extends AObject {
  76. var resourcePath: String;
  77. var componentsPath: String;
  78. var scriptsPath: String;
  79. var modulesPath: String;
  80. var projectPath: String;
  81. var projectFilePath: String;
  82. var userPrefsFullPath: String;
  83. var buildSettingsFullPath: String;
  84. var version: String;
  85. // Construct.
  86. function new();
  87. function load(fullpath: String): Bool;
  88. function save(fullpath: String): Void;
  89. // Paths
  90. function getResourcePath(): String;
  91. function setResourcePath(resourcePath: String): Void;
  92. function getComponentsPath(): String;
  93. function getScriptsPath(): String;
  94. function getModulesPath(): String;
  95. function isComponentsDirOrFile(fullPath: String): Bool;
  96. function isScriptsDirOrFile(fullPath: String): Bool;
  97. function isModulesDirOrFile(fullPath: String): Bool;
  98. function addPlatform(platformID: PlatformID): Void;
  99. function containsPlatform(platformID: PlatformID): Bool;
  100. function removePlatform(platformID: PlatformID): Void;
  101. function isDirty(): Bool;
  102. function setDirty(): Void;
  103. function getProjectPath(): String;
  104. function getProjectFilePath(): String;
  105. function getUserPrefsFullPath(): String;
  106. function getBuildSettingsFullPath(): String;
  107. function getVersion(): String;
  108. function setVersion(version: String): Void;
  109. function saveBuildSettings(): Void;
  110. function loadBuildSettings(): Bool;
  111. function saveUserPrefs(): Void;
  112. function loadUserPrefs(): Bool;
  113. }
  114. @:native("Atomic.ProjectFile")
  115. extern class ProjectFile extends AObject {
  116. // Construct.
  117. function new();
  118. function save(project: Project): Void;
  119. function load(project: Project): Bool;
  120. function writeNewProject(fullpath: String): Void;
  121. }
  122. @:native("Atomic.Platform")
  123. extern class Platform extends AObject {
  124. var name: String;
  125. var platformID: PlatformID;
  126. function new();
  127. function getName(): String;
  128. function getPlatformID(): PlatformID;
  129. }
  130. @:native("Atomic.PlatformMac")
  131. extern class PlatformMac extends Platform {
  132. function new();
  133. @:overload(function(): String{})
  134. override function getName(): String;
  135. @:overload(function(): PlatformID{})
  136. override function getPlatformID(): PlatformID;
  137. }
  138. @:native("Atomic.PlatformWeb")
  139. extern class PlatformWeb extends Platform {
  140. function new();
  141. @:overload(function(): String{})
  142. override function getName(): String;
  143. @:overload(function(): PlatformID{})
  144. override function getPlatformID(): PlatformID;
  145. }
  146. @:native("Atomic.PlatformWindows")
  147. extern class PlatformWindows extends Platform {
  148. function new();
  149. @:overload(function(): String{})
  150. override function getName(): String;
  151. @:overload(function(): PlatformID{})
  152. override function getPlatformID(): PlatformID;
  153. }
  154. @:native("Atomic.Command")
  155. extern class Command extends AObject {
  156. function new();
  157. function parse(command: String): Bool;
  158. function run(): Void;
  159. function finished(): Void;
  160. function error(errorMsg: String): Void;
  161. function cancel(): Void;
  162. function requiresProjectLoad(): Bool;
  163. function requiresLicenseValidation(): Bool;
  164. }
  165. @:native("Atomic.PlayCmd")
  166. extern class PlayCmd extends Command {
  167. function new();
  168. @:overload(function(): Void{})
  169. override function run(): Void;
  170. }
  171. @:native("Atomic.OpenAssetImporter")
  172. extern class OpenAssetImporter extends AObject {
  173. var errorMessage: String;
  174. var importNode: Atomic.Node;
  175. var startTime: Float;
  176. var endTime: Float;
  177. var scale: Float;
  178. var exportAnimations: Bool;
  179. var verboseLog: Bool;
  180. function new();
  181. function load(assetPath: String): Bool;
  182. function getErrorMessage(): String;
  183. function exportModel(outName: String, ?animName: String, ?animationOnly: Bool): Bool;
  184. function setImportNode(node: Atomic.Node): Void;
  185. function setStartTime(startTime: Float): Void;
  186. function setEndTime(endTime: Float): Void;
  187. function setScale(scale: Float): Void;
  188. function setExportAnimations(exportAnimations: Bool): Void;
  189. function setVerboseLog(verboseLog: Bool): Void;
  190. }
  191. @:native("Atomic.Asset")
  192. extern class Asset extends AObject {
  193. var guid: String;
  194. var name: String;
  195. var path: String;
  196. var extension: String;
  197. var relativePath: String;
  198. var cachePath: String;
  199. var resource: Atomic.Resource;
  200. var importerType: String;
  201. var importerTypeName: String;
  202. var importer: AssetImporter;
  203. var parent: Asset;
  204. var dirty: Bool;
  205. var fileTimestamp: Int;
  206. var dotAssetFilename: String;
  207. // Construct.
  208. function new();
  209. function import(): Bool;
  210. function preload(): Bool;
  211. function setPath(path: String): Bool;
  212. function getGUID(): String;
  213. function getName(): String;
  214. function getPath(): String;
  215. function getExtension(): String;
  216. // Get the path relative to project
  217. function getRelativePath(): String;
  218. function getCachePath(): String;
  219. function getResource(): Atomic.Resource;
  220. function getImporterType(): String;
  221. function getImporterTypeName(): String;
  222. function getImporter(): AssetImporter;
  223. function postImportError(message: String): Void;
  224. function getParent(): Asset;
  225. function setDirty(dirty: Bool): Void;
  226. function isDirty(): Bool;
  227. // Get the last timestamp as seen by the AssetDatabase
  228. function getFileTimestamp(): Int;
  229. // Sets the time stamp to the asset files current time
  230. function updateFileTimestamp(): Void;
  231. function getDotAssetFilename(): String;
  232. function isFolder(): Bool;
  233. function load(): Bool;
  234. function save(): Bool;
  235. }
  236. @:native("Atomic.AssetDatabase")
  237. extern class AssetDatabase extends AObject {
  238. var cachePath: String;
  239. // Construct.
  240. function new();
  241. function getAssetByGUID(guid: String): Asset;
  242. function getAssetByPath(path: String): Asset;
  243. function getAssetByCachePath(cachePath: String): Asset;
  244. function generateAssetGUID(): String;
  245. function registerGUID(guid: String): Void;
  246. function getCachePath(): String;
  247. function deleteAsset(asset: Asset): Void;
  248. function scan(): Void;
  249. function getResourceImporterName(resourceTypeName: String): String;
  250. function getDotAssetFilename(path: String): String;
  251. }
  252. @:native("Atomic.AssetImporter")
  253. extern class AssetImporter extends AObject {
  254. var asset: Asset;
  255. var resource: Atomic.Resource;
  256. // Construct.
  257. function new(asset: Asset);
  258. function setDefaults(): Void;
  259. function preload(): Bool;
  260. function getAsset(): Asset;
  261. function getResource(): Atomic.Resource;
  262. function requiresCacheFile(): Bool;
  263. }
  264. @:native("Atomic.AudioImporter")
  265. extern class AudioImporter extends AssetImporter {
  266. // Construct.
  267. function new(asset: Asset);
  268. @:overload(function(): Void{})
  269. override function setDefaults(): Void;
  270. }
  271. @:native("Atomic.JavascriptImporter")
  272. extern class JavascriptImporter extends AssetImporter {
  273. // Construct.
  274. function new(asset: Asset);
  275. @:overload(function(): Void{})
  276. override function setDefaults(): Void;
  277. function isComponentFile(): Bool;
  278. @:overload(function(): Atomic.Resource{})
  279. override function getResource(): Atomic.Resource;
  280. }
  281. @:native("Atomic.MaterialImporter")
  282. extern class MaterialImporter extends AssetImporter {
  283. // Construct.
  284. function new(asset: Asset);
  285. @:overload(function(): Void{})
  286. override function setDefaults(): Void;
  287. function saveMaterial(): Void;
  288. }
  289. @:native("Atomic.AnimationImportInfo")
  290. extern class AnimationImportInfo extends AObject {
  291. var name: String;
  292. var startTime: Float;
  293. var endTime: Float;
  294. function new();
  295. function getName(): String;
  296. function getStartTime(): Float;
  297. function getEndTime(): Float;
  298. function setName(name: String): Void;
  299. function setStartTime(time: Float): Void;
  300. function setEndTime(time: Float): Void;
  301. }
  302. @:native("Atomic.ModelImporter")
  303. extern class ModelImporter extends AssetImporter {
  304. var scale: Float;
  305. var importAnimations: Bool;
  306. var animationCount: Int;
  307. // Construct.
  308. function new(asset: Asset);
  309. @:overload(function(): Void{})
  310. override function setDefaults(): Void;
  311. function getScale(): Float;
  312. function setScale(scale: Float): Void;
  313. function getImportAnimations(): Bool;
  314. function setImportAnimations(importAnimations: Bool): Void;
  315. function getAnimationCount(): Int;
  316. function setAnimationCount(count: Int): Void;
  317. @:overload(function(): Atomic.Resource{})
  318. override function getResource(): Atomic.Resource;
  319. function getAnimationInfo(index: Int): AnimationImportInfo;
  320. }
  321. @:native("Atomic.PrefabImporter")
  322. extern class PrefabImporter extends AssetImporter {
  323. // Construct.
  324. function new(asset: Asset);
  325. @:overload(function(): Void{})
  326. override function setDefaults(): Void;
  327. @:overload(function(): Bool{})
  328. override function preload(): Bool;
  329. }
  330. @:native("Atomic.TextureImporter")
  331. extern class TextureImporter extends AssetImporter {
  332. // Construct.
  333. function new(asset: Asset);
  334. @:overload(function(): Void{})
  335. override function setDefaults(): Void;
  336. }
  337. @:native("Atomic.LicenseSystem")
  338. extern class LicenseSystem extends AObject {
  339. var key: String;
  340. var email: String;
  341. // Construct.
  342. function new();
  343. function initialize(): Void;
  344. function licenseWindows(): Bool;
  345. function licenseMac(): Bool;
  346. function licenseAndroid(): Bool;
  347. function licenseIOS(): Bool;
  348. function licenseHTML5(): Bool;
  349. function licenseModule3D(): Bool;
  350. // Returns whether there are any platform licenses available
  351. function isStandardLicense(): Bool;
  352. // Returns true if request to deactivate is made
  353. function deactivate(): Bool;
  354. function resetLicense(): Void;
  355. function loadLicense(): Bool;
  356. // Basic key validation
  357. function validateKey(key: String): Bool;
  358. // Activate on server
  359. function requestServerActivation(key: String): Void;
  360. function getKey(): String;
  361. function generateMachineID(): String;
  362. function getEmail(): String;
  363. function licenseAgreementConfirmed(): Void;
  364. }