AtomicWork.d.ts 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. /// <reference path="Atomic.d.ts" />
  2. /// <reference path="ToolCore.d.ts" />
  3. /// <reference path="Editor.d.ts" />
  4. /// <reference path="AtomicPlayer.d.ts" />
  5. declare module Atomic {
  6. export function print(...args: any[]);
  7. export var platform: string;
  8. // subsystems
  9. export var engine: Engine;
  10. export var graphics: Graphics;
  11. export var renderer: Renderer;
  12. export var cache: ResourceCache;
  13. export var input: Input;
  14. export var fileSystem: FileSystem;
  15. export var network: Network;
  16. export var ui: UI;
  17. export var audio: Audio;
  18. export var player: AtomicPlayer.Player;
  19. export var editorMode: Editor.EditorMode;
  20. // end subsystems
  21. // Base interface for events, contains eventType string and callback
  22. interface EventMetaData {
  23. _eventType: string;
  24. _callback: any;
  25. }
  26. interface NativeEvent extends EventMetaData { }
  27. interface ScriptEvent extends EventMetaData { }
  28. // typed callback generic
  29. type EventCallback<T extends EventMetaData> = (data: T) => void;
  30. export function ScriptEvent<T extends Atomic.EventMetaData>(eventType: string, callback: Atomic.EventCallback<T>): Atomic.EventMetaData;
  31. export interface PathInfo {
  32. pathName: string;
  33. fileName: string;
  34. ext: string;
  35. }
  36. export interface Ray {
  37. /** Ray origin */
  38. origin: Atomic.Vector3;
  39. /** Ray direction */
  40. direction: Atomic.Vector3;
  41. }
  42. export interface Camera {
  43. getScreenRay(x: number, y: number): Atomic.Ray;
  44. }
  45. export interface Octree {
  46. /**
  47. * Cast a ray returing a single hit
  48. * @param {Atomic.Ray} ray
  49. * @param {Atomic.RayQueryLevel} level defaults to Atomic.RAY_TRIANGLE
  50. * @param {number} maxDistance defaults to Atomic.M_INFINITY
  51. * @param {number} drawableFlags defaults to Atomic.DRAWABLE_ANY
  52. * @param {number} viewMask defaults to Atomic.DEFAULT_VIEWMASK
  53. * @return {Atomic.RayQueryResult}
  54. */
  55. rayCastSingle(ray: Atomic.Ray, level?: Atomic.RayQueryLevel, maxDistance?: number, drawableFlags?: number, viewMask?: number):Atomic.RayQueryResult;
  56. /**
  57. * Cast a ray returning all hits
  58. * @param {Atomic.Ray} ray
  59. * @param {Atomic.RayQueryLevel} level defaults to Atomic.RAY_TRIANGLE
  60. * @param {number} maxDistance defaults to Atomic.M_INFINITY
  61. * @param {number} drawableFlags defaults to Atomic.DRAWABLE_ANY
  62. * @param {number} viewMask defaults to Atomic.DEFAULT_VIEWMASK
  63. * @return {Atomic.RayQueryResult}
  64. */
  65. rayCast(ray: Atomic.Ray, level?: Atomic.RayQueryLevel, maxDistance?: number, drawableFlags?: number, viewMask?: number):Atomic.RayQueryResult[];
  66. }
  67. export interface RayQueryResult {
  68. /** Hit position in world space. */
  69. position: Atomic.Vector3;
  70. /** Hit normal in world space. Negation of ray direction if per-triangle data not available. */
  71. normal: Atomic.Vector3;
  72. /** Hit texture position */
  73. textureUV: Atomic.Vector2;
  74. /** Distance from ray origin. */
  75. distance:number;
  76. /** Drawable. */
  77. drawable: any;
  78. /** Scene node. */
  79. node: Atomic.Node;
  80. /** Drawable specific subobject if applicable. */
  81. subObject: number;
  82. }
  83. export interface AttributeInfo {
  84. type: VariantType;
  85. name: string;
  86. mode: number; // AM_*
  87. defaultValue: string;
  88. enumNames: string[];
  89. resourceTypeName: string;
  90. dynamic: boolean;
  91. tooltip: string;
  92. }
  93. export interface ShaderParameter {
  94. name: string;
  95. value: any;
  96. valueString: string;
  97. typeName: string;
  98. type: VariantType;
  99. }
  100. export function getArguments(): Array<string>;
  101. export function getEngine(): Engine;
  102. export function getInput(): Input;
  103. export function getGraphics(): Graphics;
  104. export function getFileSystem(): FileSystem;
  105. export function getResourceCache(): ResourceCache;
  106. export function getRenderer(): Atomic.Renderer;
  107. export function getNetwork(): Atomic.Network;
  108. export function getUI(): Atomic.UI;
  109. export function assert();
  110. export function js_module_read_file(path: string);
  111. export function openConsoleWindow();
  112. export function script(script: string): boolean;
  113. export function destroy(node: Atomic.Node): boolean;
  114. export function destroy(scene: Atomic.Scene): boolean;
  115. export function destroy(component: Atomic.JSComponent): boolean;
  116. export function getParentPath(path: string): string;
  117. export function getPath(path: string): string;
  118. export function addTrailingSlash(path: string): string;
  119. export function getExtension(path: string): string;
  120. export function splitPath(path: string): PathInfo;
  121. }
  122. declare module ToolCore {
  123. export var toolEnvironment: ToolEnvironment;
  124. export var toolSystem: ToolSystem;
  125. export var assetDatabase: AssetDatabase;
  126. export var licenseSystem: LicenseSystem;
  127. export var buildSystem: BuildSystem;
  128. export var netProjectSystem: NETProjectSystem;
  129. export function getToolEnvironment(): ToolEnvironment;
  130. export function getToolSystem(): ToolSystem;
  131. export function getAssetDatabase(): AssetDatabase;
  132. export function getLicenseSystem(): LicenseSystem;
  133. }