Browse Source

added loadTile in domkit context

Nicolas Cannasse 9 months ago
parent
commit
4c013464d4
2 changed files with 32 additions and 0 deletions
  1. 20 0
      hide/view/Domkit.hx
  2. 12 0
      hrt/impl/DomkitViewer.hx

+ 20 - 0
hide/view/Domkit.hx

@@ -68,6 +68,26 @@ class Domkit extends FileView {
 		cssEditor.onChanged = dmlEditor.onChanged = paramsEditor.onChanged = check;
 		cssEditor.onSave = dmlEditor.onSave = paramsEditor.onSave = save;
 
+		// define DomkitBaseContext functions
+		@:privateAccess paramsEditor.checker.init();
+		function defineGlobal(name,args:Array<{name:String,t:String,?opt:Bool}>,ret) {
+			var cur = checker.checker.getGlobals().get(name);
+			if( cur != null ) return;
+			var error = false;
+			function resolve(t:String) {
+				var t = checker.checker.types.resolve(t);
+				if( t == null ) error = true;
+				return t;
+			}
+			var types = [for( a in args ) resolve(a.t)];
+			var ret = resolve(ret);
+			if( error )
+				return;
+			checker.checker.setGlobal(name,TFun([for( i => a in args ) { name : a.name, t : types[i], opt : a.opt }],ret));
+		}
+		defineGlobal("loadTile",[{ name : "path", t : "String" }],"h2d.Tile");
+
+
 		// add a scene so the CssParser can resolve Tiles
 		var scene = element.find(".scene");
 		new hide.comp.Scene(config, scene, scene).onReady = function() check();

+ 12 - 0
hrt/impl/DomkitViewer.hx

@@ -130,6 +130,17 @@ class SourceComponent extends domkit.Component<h2d.Object, h2d.Object> {
 
 }
 
+class DomkitBaseContext {
+
+	public function new() {
+	}
+
+	public function loadTile( url : String ) {
+		return hxd.res.Loader.currentInstance.load(url).toTile();
+	}
+
+}
+
 class DomkitViewer extends h2d.Object {
 
 	var resource : hxd.res.Resource;
@@ -154,6 +165,7 @@ class DomkitViewer extends h2d.Object {
 		this.resource = res;
 		res.watch(rebuild);
 		baseVariables = style.cssParser.variables.copy();
+		addContext(new DomkitBaseContext());
 		rebuildDelay();
 	}