AtomicWork.d.ts 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445
  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 function getGitRevision():string;
  8. export var platform: string;
  9. // subsystems
  10. export var engine: Engine;
  11. export var graphics: Graphics;
  12. export var renderer: Renderer;
  13. export var cache: ResourceCache;
  14. export var input: Input;
  15. export var fileSystem: FileSystem;
  16. export var network: Network;
  17. export var ui: UI;
  18. export var audio: Audio;
  19. export var player: AtomicPlayer.Player;
  20. export var editorMode: Editor.EditorMode;
  21. // end subsystems
  22. export interface PathInfo {
  23. pathName: string;
  24. fileName: string;
  25. ext: string;
  26. }
  27. export interface ScreenModeEvent {
  28. width: number;
  29. height: number;
  30. fullscreen: boolean;
  31. resizable: boolean;
  32. borderless: boolean;
  33. }
  34. export interface Ray {
  35. /** Ray origin */
  36. origin: Atomic.Vector3;
  37. /** Ray direction */
  38. direction: Atomic.Vector3;
  39. }
  40. export interface Camera {
  41. getScreenRay(x: number, y: number): Atomic.Ray;
  42. }
  43. export interface Octree {
  44. /**
  45. * Cast a ray returing a single hit
  46. * @param {Atomic.Ray} ray
  47. * @param {Atomic.RayQueryLevel} level defaults to Atomic.RAY_TRIANGLE
  48. * @param {number} maxDistance defaults to Atomic.M_INFINITY
  49. * @param {number} drawableFlags defaults to Atomic.DRAWABLE_ANY
  50. * @param {number} viewMask defaults to Atomic.DEFAULT_VIEWMASK
  51. * @return {Atomic.RayQueryResult}
  52. */
  53. rayCastSingle(ray: Atomic.Ray, level?: Atomic.RayQueryLevel, maxDistance?: number, drawableFlags?: number, viewMask?: number):Atomic.RayQueryResult;
  54. /**
  55. * Cast a ray returning all hits
  56. * @param {Atomic.Ray} ray
  57. * @param {Atomic.RayQueryLevel} level defaults to Atomic.RAY_TRIANGLE
  58. * @param {number} maxDistance defaults to Atomic.M_INFINITY
  59. * @param {number} drawableFlags defaults to Atomic.DRAWABLE_ANY
  60. * @param {number} viewMask defaults to Atomic.DEFAULT_VIEWMASK
  61. * @return {Atomic.RayQueryResult}
  62. */
  63. rayCast(ray: Atomic.Ray, level?: Atomic.RayQueryLevel, maxDistance?: number, drawableFlags?: number, viewMask?: number):Atomic.RayQueryResult[];
  64. }
  65. export interface RayQueryResult {
  66. /** Hit position in world space. */
  67. position: Atomic.Vector3;
  68. /** Hit normal in world space. Negation of ray direction if per-triangle data not available. */
  69. normal: Atomic.Vector3;
  70. /** Hit texture position */
  71. textureUV: Atomic.Vector2;
  72. /** Distance from ray origin. */
  73. distance:number;
  74. /** Drawable. */
  75. drawable: any;
  76. /** Scene node. */
  77. node: Atomic.Node;
  78. /** Drawable specific subobject if applicable. */
  79. subObject: number;
  80. }
  81. export interface KeyDownEvent {
  82. // keycode
  83. key: number;
  84. // Atomic.QUAL_SHIFT, Atomic.QUAL_CTRL, Atomic.QUAL_ALT, Atomic.QUAL_ANY
  85. qualifiers: number;
  86. // mouse buttons down
  87. buttons: number;
  88. }
  89. export interface KeyUpEvent {
  90. // keycode
  91. key: number;
  92. // Atomic.QUAL_SHIFT, Atomic.QUAL_CTRL, Atomic.QUAL_ALT, Atomic.QUAL_ANY
  93. qualifiers: number;
  94. // mouse buttons down
  95. buttons: number;
  96. }
  97. export interface UIShortcutEvent {
  98. // keycode
  99. key: number;
  100. // Atomic.QUAL_SHIFT, Atomic.QUAL_CTRL, Atomic.QUAL_ALT, Atomic.QUAL_ANY
  101. qualifiers: number;
  102. }
  103. export interface UIListViewSelectionChangedEvent {
  104. refid: string;
  105. selected: boolean;
  106. }
  107. export interface NodeAddedEvent {
  108. scene: Atomic.Scene;
  109. parent: Atomic.Node;
  110. node: Atomic.Node;
  111. }
  112. export interface NodeRemovedEvent {
  113. scene: Atomic.Scene;
  114. parent: Atomic.Node;
  115. node: Atomic.Node;
  116. }
  117. export interface NodeNameChangedEvent {
  118. scene: Atomic.Scene;
  119. node: Atomic.Node;
  120. }
  121. export interface UIWidgetEvent {
  122. handler: UIWidget;
  123. target: UIWidget;
  124. type: number; /*UIWidgetEventType*/
  125. x: number;
  126. y: number;
  127. deltax: number;
  128. deltay: number;
  129. count: number;
  130. key: number;
  131. specialkey: number;
  132. modifierkeys: number;
  133. refid: string;
  134. touch: boolean;
  135. }
  136. export interface UIWidgetFocusChangedEvent {
  137. widget: UIWidget;
  138. focused: boolean;
  139. }
  140. export interface UIWidgetEditCompleteEvent {
  141. widget: UIWidget;
  142. }
  143. export interface UIWidgetDeletedEvent {
  144. widget: UIWidget;
  145. }
  146. export interface DragBeginEvent {
  147. source: UIWidget;
  148. dragObject: UIDragObject;
  149. }
  150. export interface DragEnterWidgetEvent {
  151. widget: UIWidget;
  152. dragObject: UIDragObject;
  153. }
  154. export interface DragExitWidgetEvent {
  155. widget: UIWidget;
  156. dragObject: UIDragObject;
  157. }
  158. export interface DragEndedEvent {
  159. target: UIWidget;
  160. dragObject: UIDragObject;
  161. }
  162. export interface TemporaryChangedEvent {
  163. serializable: Atomic.Serializable;
  164. }
  165. export interface ComponentAddedEvent {
  166. scene: Atomic.Scene;
  167. node: Atomic.Node;
  168. component: Atomic.Component;
  169. }
  170. export interface ComponentRemovedEvent {
  171. scene: Atomic.Scene;
  172. node: Atomic.Node;
  173. component: Atomic.Component;
  174. }
  175. export interface IPCJSErrorEvent {
  176. errorName: string;
  177. errorMessage: string;
  178. errorFileName: string;
  179. errorLineNumber: number;
  180. errorStack: string;
  181. }
  182. export interface IPCMessageEvent {
  183. message: string;
  184. value: number;
  185. }
  186. export interface AttributeInfo {
  187. type: VariantType;
  188. name: string;
  189. mode: number; // AM_*
  190. defaultValue: string;
  191. enumNames: string[];
  192. resourceTypeName: string;
  193. dynamic: boolean;
  194. }
  195. export interface ShaderParameter {
  196. name: string;
  197. value: any;
  198. valueString: string;
  199. typeName: string;
  200. type: VariantType;
  201. }
  202. export function getArguments(): Array<string>;
  203. export function getEngine(): Engine;
  204. export function getInput(): Input;
  205. export function getGraphics(): Graphics;
  206. export function getFileSystem(): FileSystem;
  207. export function getResourceCache(): ResourceCache;
  208. export function getRenderer(): Atomic.Renderer;
  209. export function getNetwork(): Atomic.Network;
  210. export function getUI(): Atomic.UI;
  211. export function assert();
  212. export function js_module_read_file(path: string);
  213. export function openConsoleWindow();
  214. export function script(script: string): boolean;
  215. export function destroy(node: Atomic.Node): boolean;
  216. export function destroy(scene: Atomic.Scene): boolean;
  217. export function destroy(component: Atomic.JSComponent): boolean;
  218. export function getParentPath(path: string): string;
  219. export function addTrailingSlash(path: string): string;
  220. export function getExtension(path: string): string;
  221. export function splitPath(path: string): PathInfo;
  222. }
  223. declare module Editor {
  224. export interface SceneNodeSelectedEvent {
  225. scene: Atomic.Scene;
  226. node: Atomic.Node;
  227. selected: boolean;
  228. quiet: boolean;
  229. }
  230. export interface SceneEditAddRemoveNodesEvent {
  231. end: boolean;
  232. }
  233. export interface SceneEditNodeAddedEvent {
  234. scene: Atomic.Scene;
  235. parent: Atomic.Node;
  236. node: Atomic.Node;
  237. }
  238. export interface SceneEditNodeRemovedEvent {
  239. scene: Atomic.Scene;
  240. parent: Atomic.Node;
  241. node: Atomic.Node;
  242. }
  243. export interface SceneEditComponentAddedRemovedEvent {
  244. scene: Atomic.Scene;
  245. node: Atomic.Node;
  246. component: Atomic.Component;
  247. removed: boolean;
  248. }
  249. export interface SceneEditStateChangeEvent {
  250. serializable: Atomic.Serializable;
  251. }
  252. export interface SceneEditNodeCreatedEvent {
  253. node: Atomic.Node;
  254. }
  255. export interface GizmoEditModeChangedEvent {
  256. mode: EditMode;
  257. }
  258. export interface GizmoAxisModeChangedEvent {
  259. mode: AxisMode;
  260. }
  261. }
  262. declare module ToolCore {
  263. export interface ResourceAddedEvent {
  264. guid: string;
  265. }
  266. export interface ResourceRemovedEvent {
  267. guid: string;
  268. }
  269. export interface LicenseDeactivationErrorEvent {
  270. message: string;
  271. }
  272. export interface AssetImportErrorEvent {
  273. path: string;
  274. guid: string;
  275. error: string;
  276. }
  277. export interface AssetRenamedEvent {
  278. asset: Asset;
  279. }
  280. export interface AssetMovedEvent {
  281. asset: Asset;
  282. oldPath: string;
  283. }
  284. export interface PlatformChangedEvent {
  285. platform: ToolCore.Platform;
  286. }
  287. export interface BuildOutputEvent {
  288. text: string;
  289. }
  290. export interface BuildCompleteEvent {
  291. platformID: number;
  292. message: string;
  293. success: boolean;
  294. buildFolder: string;
  295. }
  296. export var toolEnvironment: ToolEnvironment;
  297. export var toolSystem: ToolSystem;
  298. export var assetDatabase: AssetDatabase;
  299. export var licenseSystem: LicenseSystem;
  300. export var buildSystem: BuildSystem;
  301. export var netProjectSystem: NETProjectSystem;
  302. export function getToolEnvironment(): ToolEnvironment;
  303. export function getToolSystem(): ToolSystem;
  304. export function getAssetDatabase(): AssetDatabase;
  305. export function getLicenseSystem(): LicenseSystem;
  306. }