Browse Source

Added generating some variables in JSBHaxe.
Added hand written functions in packages for haxe

rsredsq 10 years ago
parent
commit
4a6ae60310

+ 27 - 0
Script/Haxe/Atomic.hx

@@ -694,6 +694,13 @@ extern enum FileMode {
 
 extern class Atomic {
 
+    public static var engine : Engine;
+    public static var graphics: Graphics;
+    public static var renderer: Renderer;
+    public static var cache: ResourceCache;
+    public static var input: Input;
+    public static var fileSystem: FileSystem;
+    public static var network: Network;
 
     public static var QUICKSORT_THRESHOLD: Int;
     public static var CONVERSION_BUFFER_LENGTH: Int;
@@ -1377,6 +1384,9 @@ extern class AObject extends RefCounted {
     @:overload(function(): Bool{})
     override function isObject(): Bool;
     function getTypeNameStatic(): String;
+      function sendEvent(eventType:String, ?data:Dynamic):Void;
+      @:overload(function(sender:AObject, eventType:String, callback:Dynamic->Void):Void{})
+      function subscribeToEvent(eventType:String, callback:Dynamic->Void):Void;
 
 }
 
@@ -1686,6 +1696,15 @@ extern class Node extends Animatable {
     function setScaleSilent(scale: Vector3): Void;
       // Set local transform silently without marking the node & child nodes dirty. Used by animation code.
     function setTransformSilent(position: Vector3, rotation: Quaternion, scale: Vector3): Void;
+      function saveXML(file:File):Bool;
+      function getChildrenWithName(name:String, ?recursive:Bool):Array<Node>;
+      function getChildrenWithComponent(componentType:String, ?recursive:Bool):Array<Node>;
+      function getComponents(?componentType:String, ?recursive:Bool):Array<Component>;
+      function getChildAtIndex(index:UInt):Node;
+      function createJSComponent(name:String, ?args:Dynamic):JSComponent;
+      function getJSComponent(name:String):JSComponent;
+      function createChildPrefab(childName:String, prefabPath:String):Node;
+      function loadPrefab(prefabPath:String):Bool;
 
 }
 
@@ -1825,6 +1844,7 @@ extern class Scene extends Node {
       // Prepare network update by comparing attributes and marking replication states dirty as necessary.
     @:overload(function(): Void{})
     override function prepareNetworkUpdate(): Void;
+      function getMainCamera():Camera;
 
 }
 
@@ -2406,6 +2426,9 @@ extern class Light extends Drawable {
     function isNegative(): Bool;
       // Return a divisor value based on intensity for calculating the sort value.
     function getIntensityDivisor(?attenuation: Float): Float;
+      function getShadowCascade():Array<Float>;
+      function setShadowCascade(args:Array<Float>):Void;
+      function setShadowCascadeParameter(index:Int, value:Float):Void;
 
 }
 
@@ -4279,6 +4302,7 @@ extern class StaticModel extends Drawable {
     function isInside(point: Vector3): Bool;
       // Determines if the given local space point is within the model geometry.
     function isInsideLocal(point: Vector3): Bool;
+      function setMaterialIndex(index:UInt, material:Material):Void;
 
 }
 
@@ -7869,6 +7893,8 @@ extern class File extends AObject {
     function getFullPath(): String;
       // Unlike FileSystem.Copy this copy works when the source file is in a package file
     function copy(srcFile: File): Bool;
+      function readText():String;
+      function writeString(text:String):Void;
 
 }
 
@@ -7940,6 +7966,7 @@ extern class FileSystem extends AObject {
       // Check if a file or directory exists at the specified path
     function exists(pathName: String): Bool;
     function createDirsRecursive(directoryIn: String, directoryOut: String): Bool;
+      function scanDir(pathName:String, filter:String, flags:UInt, recursive:Bool):Array<String>;
 
 }
 

+ 10 - 0
Script/Haxe/ToolCore.hx

@@ -258,6 +258,7 @@ extern class Asset extends AObject {
     var extension: String;
     var relativePath: String;
     var cachePath: String;
+    var resource: Atomic.Resource;
     var importerType: String;
     var importerTypeName: String;
     var importer: AssetImporter;
@@ -279,6 +280,7 @@ extern class Asset extends AObject {
       // Get the path relative to project
     function getRelativePath(): String;
     function getCachePath(): String;
+    function getResource(): Atomic.Resource;
     function getImporterType(): String;
     function getImporterTypeName(): String;
     function getImporter(): AssetImporter;
@@ -313,6 +315,7 @@ extern class AssetDatabase extends AObject {
     function getCachePath(): String;
     function deleteAsset(asset: Asset): Void;
     function scan(): Void;
+    function getResourceImporterName(resourceTypeName: String): String;
     function getDotAssetFilename(path: String): String;
 
 }
@@ -321,6 +324,7 @@ extern class AssetDatabase extends AObject {
 extern class AssetImporter extends AObject {
 
     var asset: Asset;
+    var resource: Atomic.Resource;
 
       // Construct.
     function new(asset: Asset);
@@ -328,6 +332,7 @@ extern class AssetImporter extends AObject {
     function setDefaults(): Void;
     function preload(): Bool;
     function getAsset(): Asset;
+    function getResource(): Atomic.Resource;
     function requiresCacheFile(): Bool;
 
 }
@@ -346,12 +351,15 @@ extern class AudioImporter extends AssetImporter {
 @:native("Atomic.JavascriptImporter")
 extern class JavascriptImporter extends AssetImporter {
 
+
       // Construct.
     function new(asset: Asset);
 
     @:overload(function(): Void{})
     override function setDefaults(): Void;
     function isComponentFile(): Bool;
+    @:overload(function(): Atomic.Resource{})
+    override function getResource(): Atomic.Resource;
 
 }
 
@@ -403,6 +411,8 @@ extern class ModelImporter extends AssetImporter {
     function setImportAnimations(importAnimations: Bool): Void;
     function getAnimationCount(): Int;
     function setAnimationCount(count: Int): Void;
+    @:overload(function(): Atomic.Resource{})
+    override function getResource(): Atomic.Resource;
     function getAnimationInfo(index: Int): AnimationImportInfo;
 
 }

+ 7 - 1
Script/Packages/Atomic/Atomic3D.json

@@ -21,7 +21,13 @@
 	"typescript_decl" : {
 
 		"StaticModel" : [
-			"setMaterialIndex(index:number, material:Material);"
+			"function setMaterialIndex(index:number, material:Material);"
+		]
+	},
+	
+	"haxe_decl" : {
+		"StaticModel" : [
+			"function setMaterialIndex(index:UInt, material:Material):Void;"
 		]
 	}
 

+ 8 - 0
Script/Packages/Atomic/Core.json

@@ -17,5 +17,13 @@
 			"subscribeToEvent(eventType:string, callback:(data:any)=>void);",
 			"subscribeToEvent(sender:AObject, eventType:string, callback:(data:any)=>void);"
 		]
+	},
+	"haxe_decl" : {
+
+		"Object" : [
+			"function sendEvent(eventType:String, ?data:Dynamic):Void;",
+			"@:overload(function(sender:AObject, eventType:String, callback:Dynamic->Void):Void{})",
+			"function subscribeToEvent(eventType:String, callback:Dynamic->Void):Void;"
+		]
 	}
 }

+ 9 - 0
Script/Packages/Atomic/Graphics.json

@@ -30,6 +30,15 @@
 			"setShadowCascadeParameter(index:number, value:number);"
 		]
 
+	},
+	
+	"haxe_decl" : {
+		"Light" : [
+			"function getShadowCascade():Array<Float>;",
+			"function setShadowCascade(args:Array<Float>):Void;",
+			"function setShadowCascadeParameter(index:Int, value:Float):Void;"
+		]
+
 	}
 
 }

+ 11 - 1
Script/Packages/Atomic/IO.json

@@ -13,7 +13,17 @@
             "writeString(text:string):void;"
 		],
 		"FileSystem" : [
-			"scanDir(pathName:string, filter:string, flags:number, recursive:boolean);"
+			"scanDir(pathName:string, filter:string, flags:number, recursive:boolean):Array<string>;"
+		]
+	},
+	
+	"haxe_decl" : {
+		"File" : [
+			"function readText():String;",
+            "function writeString(text:String):Void;"
+		],
+		"FileSystem" : [
+			"function scanDir(pathName:String, filter:String, flags:UInt, recursive:Bool):Array<String>;"
 		]
 	}
 }

+ 17 - 0
Script/Packages/Atomic/Scene.json

@@ -46,6 +46,23 @@
 		"Scene" : [
 			"getMainCamera():Camera;"
 		]
+	},
+	"haxe_decl" : {
+		
+		"Node" : [
+			"function saveXML(file:File):Bool;",
+			"function getChildrenWithName(name:String, ?recursive:Bool):Array<Node>;",
+			"function getChildrenWithComponent(componentType:String, ?recursive:Bool):Array<Node>;",
+			"function getComponents(?componentType:String, ?recursive:Bool):Array<Component>;",
+			"function getChildAtIndex(index:UInt):Node;",
+			"function createJSComponent(name:String, ?args:Dynamic):JSComponent;",
+			"function getJSComponent(name:String):JSComponent;",
+			"function createChildPrefab(childName:String, prefabPath:String):Node;",
+			"function loadPrefab(prefabPath:String):Bool;"
+		],
+		"Scene" : [
+			"function getMainCamera():Camera;"
+		]
 	}
 
 }

+ 2 - 2
Script/TypeScript/Atomic.d.ts

@@ -4341,7 +4341,7 @@ declare module Atomic {
       isInside(point: Vector3): boolean;
       // Determines if the given local space point is within the model geometry.
       isInsideLocal(point: Vector3): boolean;
-      setMaterialIndex(index:number, material:Material);
+      function setMaterialIndex(index:number, material:Material);
 
    }
 
@@ -7873,7 +7873,7 @@ declare module Atomic {
       // Check if a file or directory exists at the specified path
       exists(pathName: string): boolean;
       createDirsRecursive(directoryIn: string, directoryOut: string): boolean;
-      scanDir(pathName:string, filter:string, flags:number, recursive:boolean);
+      scanDir(pathName:string, filter:string, flags:number, recursive:boolean):Array<string>;
 
    }
 

+ 11 - 5
Source/ToolCore/JSBind/JSBHaxe.cpp

@@ -67,6 +67,17 @@ namespace ToolCore
         source_ += "//Atomic Haxe Definitions\n\n";
 
         source_ += "extern class " + package_->GetName() + " {\n\n";
+
+        if (package_->GetName() == "Atomic") {
+            //hand written data
+            source_ += "    public static var engine : Engine;\n";
+            source_ += "    public static var graphics: Graphics;\n";
+            source_ += "    public static var renderer: Renderer;\n";
+            source_ += "    public static var cache: ResourceCache;\n";
+            source_ += "    public static var input: Input;\n";
+            source_ += "    public static var fileSystem: FileSystem;\n";
+            source_ += "    public static var network: Network;\n";
+        }
     }
 
     void JSBHaxe::End()
@@ -410,11 +421,6 @@ namespace ToolCore
 
         Begin();
 
-        //for (unsigned i = 0; i < modules.Size(); i++)
-        //{
-        //    RegisterEnums(modules[i]);
-        //}
-
         for (unsigned i = 0; i < modules.Size(); i++)
         {
             ExportModuleConstants(modules[i]);