AtomicWork.d.ts 11 KB

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