Ver código fonte

hide compilation ok

ncannasse 6 anos atrás
pai
commit
d219968b8b
64 arquivos alterados com 243 adições e 247 exclusões
  1. 3 3
      hide/Ide.hx
  2. 6 6
      hide/comp/CurveEditor.hx
  3. 1 1
      hide/comp/PropsEditor.hx
  4. 24 24
      hide/comp/SceneEditor.hx
  5. 1 1
      hide/prefab/ContextShared.hx
  6. 2 0
      hide/prefab/EditContext.hx
  7. 3 3
      hide/prefab/HideProps.hx
  8. 3 5
      hide/prefab/PolygonEditor.hx
  9. 1 1
      hide/prefab/terrain/Brush.hx
  10. 0 0
      hide/prefab/terrain/ClampWeight.hx
  11. 0 0
      hide/prefab/terrain/CustomRenderer.hx
  12. 0 0
      hide/prefab/terrain/CustomUV.hx
  13. 0 0
      hide/prefab/terrain/GenerateIndex.hx
  14. 0 0
      hide/prefab/terrain/NormalizeWeight.hx
  15. 0 0
      hide/prefab/terrain/SetHeight.hx
  16. 0 0
      hide/prefab/terrain/SmoothHeight.hx
  17. 0 0
      hide/prefab/terrain/StrokeBuffer.hx
  18. 0 0
      hide/prefab/terrain/SwapIndex.hx
  19. 4 6
      hide/prefab/terrain/TerrainEditor.hx
  20. 0 0
      hide/prefab/terrain/TilePreview.hx
  21. 3 3
      hide/tools/TypesCache.hx
  22. 27 27
      hide/view/FXEditor.hx
  23. 6 6
      hide/view/Model.hx
  24. 1 1
      hide/view/Prefab.hx
  25. 17 17
      hide/view/l3d/Level3D.hx
  26. 3 3
      hide/view/l3d/LightProbeBaker.hx
  27. 2 2
      hide/view/l3d/ProbeBakerProcess.hx
  28. 1 1
      hrt/prefab/Blur.hx
  29. 1 1
      hrt/prefab/Box.hx
  30. 1 1
      hrt/prefab/Constraint.hx
  31. 0 3
      hrt/prefab/Context.hx
  32. 7 7
      hrt/prefab/Curve.hx
  33. 1 1
      hrt/prefab/Light.hx
  34. 3 3
      hrt/prefab/Material.hx
  35. 1 1
      hrt/prefab/Model.hx
  36. 1 1
      hrt/prefab/Noise.hx
  37. 1 1
      hrt/prefab/Object3D.hx
  38. 0 3
      hrt/prefab/Prefab.hx
  39. 1 1
      hrt/prefab/Reference.hx
  40. 1 1
      hrt/prefab/RenderProps.hx
  41. 1 1
      hrt/prefab/Scene.hx
  42. 1 1
      hrt/prefab/Settings.hx
  43. 1 1
      hrt/prefab/Shader.hx
  44. 1 1
      hrt/prefab/Trail.hx
  45. 2 2
      hrt/prefab/fx/AnimEvent.hx
  46. 15 15
      hrt/prefab/fx/Emitter.hx
  47. 1 1
      hrt/prefab/fx/Evaluator.hx
  48. 1 1
      hrt/prefab/fx/Event.hx
  49. 26 26
      hrt/prefab/fx/FX.hx
  50. 4 4
      hrt/prefab/fx/FXScript.hx
  51. 5 5
      hrt/prefab/fx/FXScriptParser.hx
  52. 4 4
      hrt/prefab/fx/LookAt.hx
  53. 1 1
      hrt/prefab/fx/Value.hx
  54. 1 1
      hrt/prefab/l3d/AdvancedDecal.hx
  55. 3 4
      hrt/prefab/l3d/Camera.hx
  56. 1 1
      hrt/prefab/l3d/Decal.hx
  57. 1 1
      hrt/prefab/l3d/Instance.hx
  58. 1 1
      hrt/prefab/l3d/Level3D.hx
  59. 1 1
      hrt/prefab/l3d/MeshGenerator.hx
  60. 5 5
      hrt/prefab/l3d/Polygon.hx
  61. 1 1
      hrt/prefab/l3d/VolumetricLightmap.hx
  62. 1 1
      hrt/prefab/terrain/PackWeight.hx
  63. 38 33
      hrt/prefab/terrain/Terrain.hx
  64. 1 1
      hrt/prefab/terrain/UnpackWeight.hx

+ 3 - 3
hide/Ide.hx

@@ -645,7 +645,7 @@ class Ide {
 		return str;
 		return str;
 	}
 	}
 
 
-	public function loadPrefab<T:hide.prefab.Prefab>( file : String, ?cl : Class<T> ) : T {
+	public function loadPrefab<T:hxd.prefab.Prefab>( file : String, ?cl : Class<T> ) : T {
 		if( file == null )
 		if( file == null )
 			return null;
 			return null;
 		var l = hxd.prefab.Library.create(file.split(".").pop().toLowerCase());
 		var l = hxd.prefab.Library.create(file.split(".").pop().toLowerCase());
@@ -660,7 +660,7 @@ class Ide {
 		return l.get(cl);
 		return l.get(cl);
 	}
 	}
 
 
-	public function savePrefab( file : String, f : hide.prefab.Prefab ) {
+	public function savePrefab( file : String, f : hxd.prefab.Prefab ) {
 		var content = f.saveData();
 		var content = f.saveData();
 		sys.io.File.saveContent(getPath(file), toJSON(content));
 		sys.io.File.saveContent(getPath(file), toJSON(content));
 	}
 	}
@@ -950,7 +950,7 @@ class Ide {
 
 
 	static function main() {
 	static function main() {
 		h3d.pass.ShaderManager.STRICT = false; // prevent errors with bad renderer
 		h3d.pass.ShaderManager.STRICT = false; // prevent errors with bad renderer
-		hide.tools.Macros.include(["hide.view","h3d.prim","h3d.scene","h3d.pass","hide.prefab","hxd.prefab"]);
+		hide.tools.Macros.include(["hide.view","h3d.prim","h3d.scene","h3d.pass","hide.prefab","hxd.prefab","hrt"]);
 		new Ide();
 		new Ide();
 	}
 	}
 
 

+ 6 - 6
hide/comp/CurveEditor.hx

@@ -1,6 +1,6 @@
 package hide.comp;
 package hide.comp;
 
 
-typedef CurveKey = hide.prefab.Curve.CurveKey;
+typedef CurveKey = hrt.prefab.Curve.CurveKey;
 
 
 class CurveEditor extends Component {
 class CurveEditor extends Component {
 
 
@@ -9,7 +9,7 @@ class CurveEditor extends Component {
 	public var xOffset = 0.;
 	public var xOffset = 0.;
 	public var yOffset = 0.;
 	public var yOffset = 0.;
 
 
-	public var curve(default, set) : hide.prefab.Curve;
+	public var curve(default, set) : hrt.prefab.Curve;
 	public var undo : hide.ui.UndoHistory;
 	public var undo : hide.ui.UndoHistory;
 
 
 	public var lockViewX = false;
 	public var lockViewX = false;
@@ -125,7 +125,7 @@ class CurveEditor extends Component {
 
 
 	}
 	}
 
 
-	function set_curve(curve: hide.prefab.Curve) {
+	function set_curve(curve: hrt.prefab.Curve) {
 		this.curve = curve;
 		this.curve = curve;
 		lastValue = haxe.Json.parse(haxe.Json.stringify(curve.save()));
 		lastValue = haxe.Json.parse(haxe.Json.stringify(curve.save()));
 		var view = getDisplayState("view");
 		var view = getDisplayState("view");
@@ -161,11 +161,11 @@ class CurveEditor extends Component {
 
 
 		inline function addPrevH() {
 		inline function addPrevH() {
 			if(key.prevHandle == null)
 			if(key.prevHandle == null)
-				key.prevHandle = new hide.prefab.Curve.CurveHandle(prev != null ? (prev.time - key.time) / 3 : -0.5, 0);
+				key.prevHandle = new hrt.prefab.Curve.CurveHandle(prev != null ? (prev.time - key.time) / 3 : -0.5, 0);
 		}
 		}
 		inline function addNextH() {
 		inline function addNextH() {
 			if(key.nextHandle == null)
 			if(key.nextHandle == null)
-				key.nextHandle = new hide.prefab.Curve.CurveHandle(next != null ? (next.time - key.time) / 3 : -0.5, 0);
+				key.nextHandle = new hrt.prefab.Curve.CurveHandle(next != null ? (next.time - key.time) / 3 : -0.5, 0);
 		}
 		}
 		switch(key.mode) {
 		switch(key.mode) {
 			case Aligned:
 			case Aligned:
@@ -563,7 +563,7 @@ class CurveEditor extends Component {
 				});
 				});
 				keyHandle.contextmenu(function(e) {
 				keyHandle.contextmenu(function(e) {
 					e.preventDefault();
 					e.preventDefault();
-					function setMode(m: hide.prefab.Curve.CurveKeyMode) {
+					function setMode(m: hrt.prefab.Curve.CurveKeyMode) {
 						key.mode = m;
 						key.mode = m;
 						curve.keyMode = m;
 						curve.keyMode = m;
 						fixKey(key);
 						fixKey(key);

+ 1 - 1
hide/comp/PropsEditor.hx

@@ -1,5 +1,5 @@
 package hide.comp;
 package hide.comp;
-import hide.prefab.Props;
+import hrt.prefab.Props;
 
 
 class PropsEditor extends Component {
 class PropsEditor extends Component {
 
 

+ 24 - 24
hide/comp/SceneEditor.hx

@@ -3,8 +3,8 @@ package hide.comp;
 import hxd.Key as K;
 import hxd.Key as K;
 import hxd.Math as M;
 import hxd.Math as M;
 
 
-import hide.prefab.Prefab as PrefabElement;
-import hide.prefab.Object3D;
+import hxd.prefab.Prefab as PrefabElement;
+import hrt.prefab.Object3D;
 import h3d.scene.Object;
 import h3d.scene.Object;
 
 
 @:access(hide.comp.SceneEditor)
 @:access(hide.comp.SceneEditor)
@@ -38,12 +38,12 @@ class SceneEditorContext extends hide.prefab.EditContext {
 		}
 		}
 	}
 	}
 
 
-	override function getCurrentProps( p : hide.prefab.Prefab ) {
+	override function getCurrentProps( p : hxd.prefab.Prefab ) {
 		var cur = editor.curEdit;
 		var cur = editor.curEdit;
 		return cur != null && cur.elements[0] == p ? editor.properties.element : new Element();
 		return cur != null && cur.elements[0] == p ? editor.properties.element : new Element();
 	}
 	}
 
 
-	function getContextRec( p : hide.prefab.Prefab ) {
+	function getContextRec( p : hxd.prefab.Prefab ) {
 		if( p == null )
 		if( p == null )
 			return editor.context;
 			return editor.context;
 		var c = editor.context.shared.contexts.get(p);
 		var c = editor.context.shared.contexts.get(p);
@@ -57,7 +57,7 @@ class SceneEditorContext extends hide.prefab.EditContext {
 		editor.selectObjects(elements);
 		editor.selectObjects(elements);
 	}
 	}
 
 
-	override function rebuildPrefab( p : hide.prefab.Prefab ) {
+	override function rebuildPrefab( p : hxd.prefab.Prefab ) {
 		// refresh all for now
 		// refresh all for now
 		editor.refresh();
 		editor.refresh();
 	}
 	}
@@ -84,7 +84,7 @@ class SceneEditor {
 	public var tree : hide.comp.IconTree<PrefabElement>;
 	public var tree : hide.comp.IconTree<PrefabElement>;
 	public var scene : hide.comp.Scene;
 	public var scene : hide.comp.Scene;
 	public var properties : hide.comp.PropsEditor;
 	public var properties : hide.comp.PropsEditor;
-	public var context(default,null) : hide.prefab.Context;
+	public var context(default,null) : hxd.prefab.Context;
 	public var curEdit(default, null) : SceneEditorContext;
 	public var curEdit(default, null) : SceneEditorContext;
 	public var snapToGround = false;
 	public var snapToGround = false;
 	public var localTransform = true;
 	public var localTransform = true;
@@ -131,7 +131,7 @@ class SceneEditor {
 			onResize();
 			onResize();
 		};
 		};
 
 
-		context = new hide.prefab.Context();
+		context = new hxd.prefab.Context();
 		context.shared = new hide.prefab.ContextShared(scene);
 		context.shared = new hide.prefab.ContextShared(scene);
 		context.shared.currentPath = view.state.path;
 		context.shared.currentPath = view.state.path;
 		context.init();
 		context.init();
@@ -288,7 +288,7 @@ class SceneEditor {
 				{ label : "Reference", enabled : current != null, click : function() createRef(current, current.parent) },
 				{ label : "Reference", enabled : current != null, click : function() createRef(current, current.parent) },
 			];
 			];
 
 
-			if(current != null && current.to(Object3D) != null && current.to(hide.prefab.Reference) == null) {
+			if(current != null && current.to(Object3D) != null && current.to(hrt.prefab.Reference) == null) {
 				var visible = !isHidden(current);
 				var visible = !isHidden(current);
 				menuItems = menuItems.concat([
 				menuItems = menuItems.concat([
 					{ label : "Visible", checked : visible, click : function() setVisible(curEdit.elements, !visible) },
 					{ label : "Visible", checked : visible, click : function() setVisible(curEdit.elements, !visible) },
@@ -480,7 +480,7 @@ class SceneEditor {
 			e.propagate = false;
 			e.propagate = false;
 			var elts = null;
 			var elts = null;
 			if(K.isDown(K.SHIFT)) {
 			if(K.isDown(K.SHIFT)) {
-				if(Type.getClass(elt.parent) == hide.prefab.Object3D)
+				if(Type.getClass(elt.parent) == hrt.prefab.Object3D)
 					elts = [elt.parent];
 					elts = [elt.parent];
 				else
 				else
 					elts = elt.parent.children;
 					elts = elt.parent.children;
@@ -539,7 +539,7 @@ class SceneEditor {
 		if(curEdit == null) return;
 		if(curEdit == null) return;
 		gizmo.onStartMove = function(mode) {
 		gizmo.onStartMove = function(mode) {
 			var objects3d = [for(o in curEdit.rootElements) {
 			var objects3d = [for(o in curEdit.rootElements) {
-				var obj3d = o.to(hide.prefab.Object3D);
+				var obj3d = o.to(hrt.prefab.Object3D);
 				if(obj3d != null)
 				if(obj3d != null)
 					obj3d;
 					obj3d;
 			}];
 			}];
@@ -729,7 +729,7 @@ class SceneEditor {
 	}
 	}
 
 
 	public function onPrefabChange(p: PrefabElement, ?pname: String) {
 	public function onPrefabChange(p: PrefabElement, ?pname: String) {
-		var model = p.to(hide.prefab.Model);
+		var model = p.to(hrt.prefab.Model);
 		if(model != null && pname == "source") {
 		if(model != null && pname == "source") {
 			refreshScene();
 			refreshScene();
 			return;
 			return;
@@ -871,7 +871,7 @@ class SceneEditor {
 		fillProps(edit, e);
 		fillProps(edit, e);
 	}
 	}
 
 
-	function setObjectSelected( p : PrefabElement, ctx : hide.prefab.Context, b : Bool ) {
+	function setObjectSelected( p : PrefabElement, ctx : hxd.prefab.Context, b : Bool ) {
 		p.setSelected(ctx, b);
 		p.setSelected(ctx, b);
 	}
 	}
 
 
@@ -913,7 +913,7 @@ class SceneEditor {
 		setupGizmo();
 		setupGizmo();
 	}
 	}
 
 
-	function hasBeenRemoved( e : hide.prefab.Prefab ) {
+	function hasBeenRemoved( e : hxd.prefab.Prefab ) {
 		while( e != null && e != sceneData ) {
 		while( e != null && e != sceneData ) {
 			if( e.parent != null && e.parent.children.indexOf(e) < 0 )
 			if( e.parent != null && e.parent.children.indexOf(e) < 0 )
 				return true;
 				return true;
@@ -960,13 +960,13 @@ class SceneEditor {
 			var relative = ide.makeRelative(path);
 			var relative = ide.makeRelative(path);
 
 
 			if(hxd.prefab.Library.getPrefabType(path) != null) {
 			if(hxd.prefab.Library.getPrefabType(path) != null) {
-				var ref = new hide.prefab.Reference(parent);
+				var ref = new hrt.prefab.Reference(parent);
 				ref.refpath = "/" + relative;
 				ref.refpath = "/" + relative;
 				obj3d = ref;
 				obj3d = ref;
 				obj3d.name = new haxe.io.Path(relative).file;
 				obj3d.name = new haxe.io.Path(relative).file;
 			}
 			}
 			else {
 			else {
-				obj3d = new hide.prefab.Model(parent);
+				obj3d = new hrt.prefab.Model(parent);
 				obj3d.source = relative;
 				obj3d.source = relative;
 			}
 			}
 			obj3d.setTransform(localMat);
 			obj3d.setTransform(localMat);
@@ -1042,7 +1042,7 @@ class SceneEditor {
 		var local = new h3d.Matrix();
 		var local = new h3d.Matrix();
 		local.initTranslation(pivot.x, pivot.y, pivot.z);
 		local.initTranslation(pivot.x, pivot.y, pivot.z);
 		local.multiply(local, invParentMat);
 		local.multiply(local, invParentMat);
-		var group = new hide.prefab.Object3D(parent);
+		var group = new hrt.prefab.Object3D(parent);
 		@:privateAccess group.type = "object";
 		@:privateAccess group.type = "object";
 		autoName(group);
 		autoName(group);
 		group.x = local.tx;
 		group.x = local.tx;
@@ -1095,14 +1095,14 @@ class SceneEditor {
 		}
 		}
 		var obj = haxe.Json.parse(haxe.Json.stringify(view.getClipboard("prefab")));
 		var obj = haxe.Json.parse(haxe.Json.stringify(view.getClipboard("prefab")));
 		if(obj != null) {
 		if(obj != null) {
-			var p = hide.prefab.Prefab.loadPrefab(obj, parent);
+			var p = hxd.prefab.Prefab.loadPrefab(obj, parent);
 			autoName(p);
 			autoName(p);
 			refresh();
 			refresh();
 		}
 		}
 		else {
 		else {
 			obj = view.getClipboard("library");
 			obj = view.getClipboard("library");
 			if(obj != null) {
 			if(obj != null) {
-				var lib = hide.prefab.Prefab.loadPrefab(obj);
+				var lib = hxd.prefab.Prefab.loadPrefab(obj);
 				for(c in lib.children) {
 				for(c in lib.children) {
 					autoName(c);
 					autoName(c);
 					c.parent = parent;
 					c.parent = parent;
@@ -1148,7 +1148,7 @@ class SceneEditor {
 
 
 	public function setEnabled(elements : Array<PrefabElement>, enable: Bool) {
 	public function setEnabled(elements : Array<PrefabElement>, enable: Bool) {
 		// Don't disable/enable Object3Ds, too confusing with visibility
 		// Don't disable/enable Object3Ds, too confusing with visibility
-		elements = [for(e in elements) if(e.to(Object3D) == null || e.to(hide.prefab.Reference) != null) e];
+		elements = [for(e in elements) if(e.to(Object3D) == null || e.to(hrt.prefab.Reference) != null) e];
 		var old = [for(e in elements) e.enabled];
 		var old = [for(e in elements) e.enabled];
 		function apply(on) {
 		function apply(on) {
 			for(i in 0...elements.length) {
 			for(i in 0...elements.length) {
@@ -1221,7 +1221,7 @@ class SceneEditor {
 	}
 	}
 
 
 	function createRef(elt: PrefabElement, toParent: PrefabElement) {
 	function createRef(elt: PrefabElement, toParent: PrefabElement) {
-		var ref = new hide.prefab.Reference(toParent);
+		var ref = new hrt.prefab.Reference(toParent);
 		ref.name = elt.name;
 		ref.name = elt.name;
 		ref.refpath = elt.getAbsPath();
 		ref.refpath = elt.getAbsPath();
 		var obj3d = Std.instance(elt, Object3D);
 		var obj3d = Std.instance(elt, Object3D);
@@ -1300,7 +1300,7 @@ class SceneEditor {
 	}
 	}
 
 
 	function setTransform(elt: PrefabElement, ?mat: h3d.Matrix, ?position: h3d.Vector) {
 	function setTransform(elt: PrefabElement, ?mat: h3d.Matrix, ?position: h3d.Vector) {
-		var obj3d = Std.instance(elt, hide.prefab.Object3D);
+		var obj3d = Std.instance(elt, hrt.prefab.Object3D);
 		if(obj3d == null)
 		if(obj3d == null)
 			return;
 			return;
 		if(mat != null)
 		if(mat != null)
@@ -1383,7 +1383,7 @@ class SceneEditor {
 			var prevIndex = prev.children.indexOf(elt);
 			var prevIndex = prev.children.indexOf(elt);
 
 
 			var obj3d = elt.to(Object3D);
 			var obj3d = elt.to(Object3D);
-			var preserveTransform = Std.is(toElt, hide.prefab.fx.Emitter) || Std.is(prev, hide.prefab.fx.Emitter);
+			var preserveTransform = Std.is(toElt, hrt.prefab.fx.Emitter) || Std.is(prev, hrt.prefab.fx.Emitter);
 			var toObj = getObject(toElt);
 			var toObj = getObject(toElt);
 			var obj = getObject(elt);
 			var obj = getObject(elt);
 			var prevState = null, newState = null;
 			var prevState = null, newState = null;
@@ -1561,7 +1561,7 @@ class SceneEditor {
 			return {
 			return {
 				label : name,
 				label : name,
 				click : function() {
 				click : function() {
-					var s = new hide.prefab.Shader(parentElt);
+					var s = new hrt.prefab.Shader(parentElt);
 					s.source = path;
 					s.source = path;
 					s.name = name;
 					s.name = name;
 					addObject(s);
 					addObject(s);
@@ -1644,7 +1644,7 @@ class SceneEditor {
 			var o = Std.instance(elt, Object3D);
 			var o = Std.instance(elt, Object3D);
 			while(o != null) {
 			while(o != null) {
 				mat.multiply(mat, o.getTransform());
 				mat.multiply(mat, o.getTransform());
-				o = o.parent.to(hide.prefab.Object3D);
+				o = o.parent.to(hrt.prefab.Object3D);
 			}
 			}
 			return mat;
 			return mat;
 		}
 		}

+ 1 - 1
hrt/prefab/ContextShared.hx → hide/prefab/ContextShared.hx

@@ -17,7 +17,7 @@ class ContextShared extends hxd.prefab.ContextShared {
 		hide.Ide.inst.error(e);
 		hide.Ide.inst.error(e);
 	}
 	}
 
 
-	override function loadPrefab( path : String ) : Prefab {
+	override function loadPrefab( path : String ) : hxd.prefab.Prefab {
 		return hide.Ide.inst.loadPrefab(path);
 		return hide.Ide.inst.loadPrefab(path);
 	}
 	}
 
 

+ 2 - 0
hrt/prefab/EditContext.hx → hide/prefab/EditContext.hx

@@ -1,4 +1,6 @@
 package hide.prefab;
 package hide.prefab;
+import hxd.prefab.Prefab;
+import hxd.prefab.Context;
 
 
 class EditContext {
 class EditContext {
 
 

+ 3 - 3
hrt/prefab/HideProps.hx → hide/prefab/HideProps.hx

@@ -5,8 +5,8 @@ typedef HideProps = {
 	var name : String;
 	var name : String;
 	@:optional var fileSource : Array<String>;
 	@:optional var fileSource : Array<String>;
 	@:optional dynamic function allowChildren( type : String ) : Bool;
 	@:optional dynamic function allowChildren( type : String ) : Bool;
-	@:optional dynamic function allowParent( p : Prefab ) : Bool;
-	@:optional dynamic function onChildUpdate( p : Prefab ) : Void;
-	@:optional dynamic function onChildRemoved( p : Prefab ) : Void;
+	@:optional dynamic function allowParent( p : hxd.prefab.Prefab ) : Bool;
+	@:optional dynamic function onChildUpdate( p : hxd.prefab.Prefab ) : Void;
+	@:optional dynamic function onChildRemoved( p : hxd.prefab.Prefab ) : Void;
 	@:optional dynamic function onResourceRenamed( map : (oldPath : String) -> String ) : Void;
 	@:optional dynamic function onResourceRenamed( map : (oldPath : String) -> String ) : Void;
 }
 }

+ 3 - 5
hrt/prefab/PolygonEditor.hx → hide/prefab/PolygonEditor.hx

@@ -1,7 +1,7 @@
 package hide.prefab;
 package hide.prefab;
 import hxd.Key as K;
 import hxd.Key as K;
+import hxd.prefab.Context;
 
 
-#if editor
 enum ColorState{
 enum ColorState{
 	None;
 	None;
 	Overlapped;
 	Overlapped;
@@ -119,7 +119,7 @@ class PolygonEditor {
 	public var showTriangles : Bool = false;
 	public var showTriangles : Bool = false;
 	public var worldSnap = false;
 	public var worldSnap = false;
 
 
-	var polygonPrefab : hide.prefab.l3d.Polygon;
+	var polygonPrefab : hrt.prefab.l3d.Polygon;
 	var undo : hide.ui.UndoHistory;
 	var undo : hide.ui.UndoHistory;
 	var interactive : h2d.Interactive;
 	var interactive : h2d.Interactive;
 	var lineGraphics : h3d.scene.Graphics;
 	var lineGraphics : h3d.scene.Graphics;
@@ -137,7 +137,7 @@ class PolygonEditor {
 	var beforeMoveList : Array<h2d.col.Point> = [];
 	var beforeMoveList : Array<h2d.col.Point> = [];
 	var afterMoveList : Array<h2d.col.Point> = [];
 	var afterMoveList : Array<h2d.col.Point> = [];
 
 
-	public function new( polygonPrefab : hide.prefab.l3d.Polygon, undo : hide.ui.UndoHistory ){
+	public function new( polygonPrefab , undo : hide.ui.UndoHistory ){
 		this.polygonPrefab = polygonPrefab;
 		this.polygonPrefab = polygonPrefab;
 		this.undo = undo;
 		this.undo = undo;
 	}
 	}
@@ -653,5 +653,3 @@ class PolygonEditor {
 		}
 		}
 	}
 	}
 }
 }
-
-#end

+ 1 - 1
hrt/prefab/terrain/Brush.hx → hide/prefab/terrain/Brush.hx

@@ -81,7 +81,7 @@ class BrushPreview {
 			tile.remove();
 			tile.remove();
 	}
 	}
 
 
-	public function addPreviewMeshAt(x : Int, y : Int, brush : Brush, brushPos : h3d.Vector, ctx : Context) : TilePreviewMesh {
+	public function addPreviewMeshAt(x : Int, y : Int, brush : Brush, brushPos : h3d.Vector, ctx : hxd.prefab.Context) : TilePreviewMesh {
 		var camera = @:privateAccess ctx.local3d.getScene().camera;
 		var camera = @:privateAccess ctx.local3d.getScene().camera;
 		var dir = camera.pos.sub(new h3d.Vector(terrain.getAbsPos().tx, terrain.getAbsPos().ty, terrain.getAbsPos().tz));
 		var dir = camera.pos.sub(new h3d.Vector(terrain.getAbsPos().tx, terrain.getAbsPos().ty, terrain.getAbsPos().tz));
 		var offsetDir = dir.z < 0 ? -1: 1;
 		var offsetDir = dir.z < 0 ? -1: 1;

+ 0 - 0
hrt/prefab/terrain/ClampWeight.hx → hide/prefab/terrain/ClampWeight.hx


+ 0 - 0
hrt/prefab/terrain/CustomRenderer.hx → hide/prefab/terrain/CustomRenderer.hx


+ 0 - 0
hrt/prefab/terrain/CustomUV.hx → hide/prefab/terrain/CustomUV.hx


+ 0 - 0
hrt/prefab/terrain/GenerateIndex.hx → hide/prefab/terrain/GenerateIndex.hx


+ 0 - 0
hrt/prefab/terrain/NormalizeWeight.hx → hide/prefab/terrain/NormalizeWeight.hx


+ 0 - 0
hrt/prefab/terrain/SetHeight.hx → hide/prefab/terrain/SetHeight.hx


+ 0 - 0
hrt/prefab/terrain/SmoothHeight.hx → hide/prefab/terrain/SmoothHeight.hx


+ 0 - 0
hrt/prefab/terrain/StrokeBuffer.hx → hide/prefab/terrain/StrokeBuffer.hx


+ 0 - 0
hrt/prefab/terrain/SwapIndex.hx → hide/prefab/terrain/SwapIndex.hx


+ 4 - 6
hrt/prefab/terrain/TerrainEditor.hx → hide/prefab/terrain/TerrainEditor.hx

@@ -1,8 +1,8 @@
-
 package hide.prefab.terrain;
 package hide.prefab.terrain;
-#if editor
+
 using Lambda;
 using Lambda;
 import hxd.Key as K;
 import hxd.Key as K;
+import hxd.prefab.Context;
 
 
 enum RenderMode {
 enum RenderMode {
 	PBR;
 	PBR;
@@ -56,7 +56,7 @@ class TerrainEditor {
 	var setHeight = new h3d.pass.ScreenFx(new hide.prefab.terrain.SetHeight());
 	var setHeight = new h3d.pass.ScreenFx(new hide.prefab.terrain.SetHeight());
 	var smoothHeight = new h3d.pass.ScreenFx(new hide.prefab.terrain.SmoothHeight());
 	var smoothHeight = new h3d.pass.ScreenFx(new hide.prefab.terrain.SmoothHeight());
 
 
-	var terrainPrefab : hide.prefab.terrain.Terrain;
+	var terrainPrefab : hrt.prefab.terrain.Terrain;
 	var undo : hide.ui.UndoHistory;
 	var undo : hide.ui.UndoHistory;
 	var tileTrashBin : Array<h3d.scene.pbr.terrain.Tile> = [];
 	var tileTrashBin : Array<h3d.scene.pbr.terrain.Tile> = [];
 	var paintRevertDatas : Array<TileRevertData> = [];
 	var paintRevertDatas : Array<TileRevertData> = [];
@@ -67,7 +67,7 @@ class TerrainEditor {
 	var customRenderer : hide.prefab.terrain.CustomRenderer;
 	var customRenderer : hide.prefab.terrain.CustomRenderer;
 	var renderMode : RenderMode = PBR;
 	var renderMode : RenderMode = PBR;
 
 
-	public function new( terrainPrefab : hide.prefab.terrain.Terrain, undo : hide.ui.UndoHistory ) {
+	public function new( terrainPrefab : hrt.prefab.terrain.Terrain, undo : hide.ui.UndoHistory ) {
 		this.terrainPrefab = terrainPrefab;
 		this.terrainPrefab = terrainPrefab;
 		this.undo = undo;
 		this.undo = undo;
 		autoCreateTile = terrainPrefab.autoCreateTile;
 		autoCreateTile = terrainPrefab.autoCreateTile;
@@ -1079,5 +1079,3 @@ class TerrainEditor {
 		tmpTexPath = null;
 		tmpTexPath = null;
 	}
 	}
 }
 }
-
-#end

+ 0 - 0
hrt/prefab/terrain/TilePreview.hx → hide/prefab/terrain/TilePreview.hx


+ 3 - 3
hide/tools/TypesCache.hx

@@ -1,6 +1,6 @@
 package hide.tools;
 package hide.tools;
 import hide.comp.PropsEditor;
 import hide.comp.PropsEditor;
-import hide.prefab.Props;
+import hrt.prefab.Props;
 
 
 enum ModelKind {
 enum ModelKind {
 	PrefabDef;
 	PrefabDef;
@@ -10,7 +10,7 @@ enum ModelKind {
 typedef TypeModel = {
 typedef TypeModel = {
 	var id : String;
 	var id : String;
 	var kind : ModelKind;
 	var kind : ModelKind;
-	var fields : Array<hide.prefab.Props.PropDef>;
+	var fields : Array<PropDef>;
 	var file : TypeFile;
 	var file : TypeFile;
 }
 }
 
 
@@ -147,7 +147,7 @@ class TypesCache {
 						for( i in shader.inits ) {
 						for( i in shader.inits ) {
 							var fl = fmap.get(i.v.name);
 							var fl = fmap.get(i.v.name);
 							if( !fl.t.match(PUnsupported(_)) )
 							if( !fl.t.match(PUnsupported(_)) )
-								fl.def = hide.prefab.Shader.evalConst(i.e);
+								fl.def = hrt.prefab.Shader.evalConst(i.e);
 						}
 						}
 					}
 					}
 					file.models.push({ id : pack + c.name, kind : Shader, file : file, fields : fields });
 					file.models.push({ id : pack + c.name, kind : Shader, file : file, fields : fields });

+ 27 - 27
hide/view/FXEditor.hx

@@ -2,9 +2,9 @@ package hide.view;
 using Lambda;
 using Lambda;
 
 
 import hide.Element;
 import hide.Element;
-import hide.prefab.Prefab in PrefabElement;
-import hide.prefab.Curve;
-import hide.prefab.fx.Event;
+import hxd.prefab.Prefab in PrefabElement;
+import hrt.prefab.Curve;
+import hrt.prefab.fx.Event;
 
 
 typedef PropTrackDef = {
 typedef PropTrackDef = {
 	name: String,
 	name: String,
@@ -48,8 +48,8 @@ private class FXSceneEditor extends hide.comp.SceneEditor {
 		parent.onUpdate(dt);
 		parent.onUpdate(dt);
 	}
 	}
 
 
-	override function setObjectSelected( p : PrefabElement, ctx : hide.prefab.Context, b : Bool ) {
-		if( p.getParent(hide.prefab.fx.Emitter) != null )
+	override function setObjectSelected( p : PrefabElement, ctx : hxd.prefab.Context, b : Bool ) {
+		if( p.getParent(hrt.prefab.fx.Emitter) != null )
 			return;
 			return;
 		super.setObjectSelected(p, ctx, b);
 		super.setObjectSelected(p, ctx, b);
 	}
 	}
@@ -67,7 +67,7 @@ private class FXSceneEditor extends hide.comp.SceneEditor {
 	}
 	}
 
 
 	override function getNewContextMenu(current: PrefabElement, ?onMake: PrefabElement->Void=null) {
 	override function getNewContextMenu(current: PrefabElement, ?onMake: PrefabElement->Void=null) {
-		if(current != null && current.to(hide.prefab.Shader) != null) {
+		if(current != null && current.to(hrt.prefab.Shader) != null) {
 			return parent.getNewTrackMenu(current);
 			return parent.getNewTrackMenu(current);
 		}
 		}
 		var allTypes = super.getNewContextMenu(current, onMake);
 		var allTypes = super.getNewContextMenu(current, onMake);
@@ -116,7 +116,7 @@ private class FXSceneEditor extends hide.comp.SceneEditor {
 class FXEditor extends FileView {
 class FXEditor extends FileView {
 
 
 	var sceneEditor : FXSceneEditor;
 	var sceneEditor : FXSceneEditor;
-	var data : hide.prefab.fx.FX;
+	var data : hrt.prefab.fx.FX;
 	var tabs : hide.comp.Tabs;
 	var tabs : hide.comp.Tabs;
 	var fxprops : hide.comp.PropsEditor;
 	var fxprops : hide.comp.PropsEditor;
 
 
@@ -154,10 +154,10 @@ class FXEditor extends FileView {
 	var statusText : h2d.Text;
 	var statusText : h2d.Text;
 
 
 	var scriptEditor : hide.comp.ScriptEditor;
 	var scriptEditor : hide.comp.ScriptEditor;
-	var fxScriptParser : hide.prefab.fx.FXScriptParser;
+	var fxScriptParser : hrt.prefab.fx.FXScriptParser;
 
 
 	override function getDefaultContent() {
 	override function getDefaultContent() {
-		return haxe.io.Bytes.ofString(ide.toJSON(new hide.prefab.fx.FX().saveData()));
+		return haxe.io.Bytes.ofString(ide.toJSON(new hrt.prefab.fx.FX().saveData()));
 	}
 	}
 
 
 	override function onFileChanged(wasDeleted:Bool) {
 	override function onFileChanged(wasDeleted:Bool) {
@@ -185,7 +185,7 @@ class FXEditor extends FileView {
 		saveDisplayKey = "FXScene/" + getPath().split("\\").join("/").substr(0,-1);
 		saveDisplayKey = "FXScene/" + getPath().split("\\").join("/").substr(0,-1);
 		currentTime = 0.;
 		currentTime = 0.;
 		xOffset = -timelineLeftMargin / xScale;
 		xOffset = -timelineLeftMargin / xScale;
-		data = new hide.prefab.fx.FX();
+		data = new hrt.prefab.fx.FX();
 		var content = sys.io.File.getContent(getPath());
 		var content = sys.io.File.getContent(getPath());
 		data.loadData(haxe.Json.parse(content));
 		data.loadData(haxe.Json.parse(content));
 		currentSign = haxe.crypto.Md5.encode(content);
 		currentSign = haxe.crypto.Md5.encode(content);
@@ -253,7 +253,7 @@ class FXEditor extends FileView {
 			modified = false;
 			modified = false;
 		}
 		}
 		scriptEditor.onSave = onSaveScript;
 		scriptEditor.onSave = onSaveScript;
-		fxScriptParser = new hide.prefab.fx.FXScriptParser();
+		fxScriptParser = new hrt.prefab.fx.FXScriptParser();
 		data.scriptCode = scriptEditor.code;
 		data.scriptCode = scriptEditor.code;
 
 
 		keys.register("playPause", function() { pauseButton.toggle(!pauseButton.isDown()); });
 		keys.register("playPause", function() { pauseButton.toggle(!pauseButton.isDown()); });
@@ -434,7 +434,7 @@ class FXEditor extends FileView {
 	}
 	}
 
 
 	function onRefreshScene() {
 	function onRefreshScene() {
-		var renderProps = data.find(e -> e.to(hide.prefab.RenderProps));
+		var renderProps = data.find(e -> e.to(hrt.prefab.RenderProps));
 		if(renderProps != null)
 		if(renderProps != null)
 			renderProps.applyProps(scene.s3d.renderer);
 			renderProps.applyProps(scene.s3d.renderer);
 	}
 	}
@@ -673,10 +673,10 @@ class FXEditor extends FileView {
 			updateExpanded();
 			updateExpanded();
 		});
 		});
 		var dopesheet = trackEl.find(".dopesheet");
 		var dopesheet = trackEl.find(".dopesheet");
-		var evaluator = new hide.prefab.fx.Evaluator(new hxd.Rand(0));
+		var evaluator = new hrt.prefab.fx.Evaluator(new hxd.Rand(0));
 
 
 		function getKeyColor(key) {
 		function getKeyColor(key) {
-			return evaluator.getVector(hide.prefab.Curve.getColorValue(curves), key.time);
+			return evaluator.getVector(Curve.getColorValue(curves), key.time);
 		}
 		}
 
 
 		function dragKey(from: hide.comp.CurveEditor, prevTime: Float, newTime: Float) {
 		function dragKey(from: hide.comp.CurveEditor, prevTime: Float, newTime: Float) {
@@ -744,7 +744,7 @@ class FXEditor extends FileView {
 		}
 		}
 
 
 
 
-		function keyContextClick(key: hide.prefab.Curve.CurveKey, el: Element) {
+		function keyContextClick(key: hrt.prefab.Curve.CurveKey, el: Element) {
 			function setCurveVal(suffix: String, value: Float) {
 			function setCurveVal(suffix: String, value: Float) {
 				var c = curves.find(c -> StringTools.endsWith(c.name, suffix));
 				var c = curves.find(c -> StringTools.endsWith(c.name, suffix));
 				if(c != null) {
 				if(c != null) {
@@ -1002,8 +1002,8 @@ class FXEditor extends FileView {
 				<div class="tracks"></div>
 				<div class="tracks"></div>
 			</div>').appendTo(scrollPanel);
 			</div>').appendTo(scrollPanel);
 			var addTrackEl = objPanel.find(".addtrack");
 			var addTrackEl = objPanel.find(".addtrack");
-			var objElt = Std.instance(sec.elt, hide.prefab.Object3D);
-			var shaderElt = Std.instance(sec.elt, hide.prefab.Shader);
+			var objElt = Std.instance(sec.elt, hrt.prefab.Object3D);
+			var shaderElt = Std.instance(sec.elt, hrt.prefab.Shader);
 
 
 			addTrackEl.click(function(e) {
 			addTrackEl.click(function(e) {
 				var menuItems = getNewTrackMenu(sec.elt);
 				var menuItems = getNewTrackMenu(sec.elt);
@@ -1014,7 +1014,7 @@ class FXEditor extends FileView {
 			if(sec.events.length > 0)
 			if(sec.events.length > 0)
 				addEventsTrack(sec.events, tracksEl);
 				addEventsTrack(sec.events, tracksEl);
 
 
-			var groups = hide.prefab.Curve.getGroups(sec.curves);
+			var groups = Curve.getGroups(sec.curves);
 			for(group in groups) {
 			for(group in groups) {
 				addCurvesTrack(group.name, group.items, tracksEl);
 				addCurvesTrack(group.name, group.items, tracksEl);
 			}
 			}
@@ -1087,9 +1087,9 @@ class FXEditor extends FileView {
 	}
 	}
 
 
 	public function getNewTrackMenu(elt: PrefabElement) : Array<hide.comp.ContextMenu.ContextMenuItem> {
 	public function getNewTrackMenu(elt: PrefabElement) : Array<hide.comp.ContextMenu.ContextMenuItem> {
-		var objElt = Std.instance(elt, hide.prefab.Object3D);
-		var shaderElt = Std.instance(elt, hide.prefab.Shader);
-		var emitterElt = Std.instance(elt, hide.prefab.fx.Emitter);
+		var objElt = Std.instance(elt, hrt.prefab.Object3D);
+		var shaderElt = Std.instance(elt, hrt.prefab.Shader);
+		var emitterElt = Std.instance(elt, hrt.prefab.fx.Emitter);
 		var menuItems : Array<hide.comp.ContextMenu.ContextMenuItem> = [];
 		var menuItems : Array<hide.comp.ContextMenu.ContextMenuItem> = [];
 
 
 		inline function hasTrack(pname) {
 		inline function hasTrack(pname) {
@@ -1178,7 +1178,7 @@ class FXEditor extends FileView {
 			}
 			}
 		}
 		}
 		if(emitterElt != null) {
 		if(emitterElt != null) {
-			function addParam(param : hide.prefab.fx.Emitter.ParamDef, prefix: String) {
+			function addParam(param : hrt.prefab.fx.Emitter.ParamDef, prefix: String) {
 				var label = prefix + (param.disp != null ? param.disp : upperCase(param.name));
 				var label = prefix + (param.disp != null ? param.disp : upperCase(param.name));
 				var item : hide.comp.ContextMenu.ContextMenuItem = switch(param.t) {
 				var item : hide.comp.ContextMenu.ContextMenuItem = switch(param.t) {
 					case PVec(n, _):
 					case PVec(n, _):
@@ -1191,12 +1191,12 @@ class FXEditor extends FileView {
 				};
 				};
 				menuItems.push(item);
 				menuItems.push(item);
 			}
 			}
-			for(param in hide.prefab.fx.Emitter.emitterParams) {
+			for(param in hrt.prefab.fx.Emitter.emitterParams) {
 				if(!param.animate)
 				if(!param.animate)
 					continue;
 					continue;
 				addParam(param, "");
 				addParam(param, "");
 			}
 			}
-			for(param in hide.prefab.fx.Emitter.instanceParams) {
+			for(param in hrt.prefab.fx.Emitter.instanceParams) {
 				if(!param.animate)
 				if(!param.animate)
 					continue;
 					continue;
 				addParam(param, "Instance ");
 				addParam(param, "Instance ");
@@ -1236,10 +1236,10 @@ class FXEditor extends FileView {
 	}
 	}
 
 
 	function onUpdate(dt:Float) {
 	function onUpdate(dt:Float) {
-		var anim : hide.prefab.fx.FX.FXAnimation = null;
+		var anim : hrt.prefab.fx.FX.FXAnimation = null;
 		var ctx = sceneEditor.getContext(data);
 		var ctx = sceneEditor.getContext(data);
 		if(ctx != null && ctx.local3d != null) {
 		if(ctx != null && ctx.local3d != null) {
-			anim = Std.instance(ctx.local3d,hide.prefab.fx.FX.FXAnimation);
+			anim = Std.instance(ctx.local3d,hrt.prefab.fx.FX.FXAnimation);
 		}
 		}
 		if(!pauseButton.isDown()) {
 		if(!pauseButton.isDown()) {
 			currentTime += scene.speed * dt;
 			currentTime += scene.speed * dt;
@@ -1306,7 +1306,7 @@ class FXEditor extends FileView {
 	}
 	}
 
 
 	static function isEmitterCurve(curve: Curve) {
 	static function isEmitterCurve(curve: Curve) {
-		return curve.getParent(hide.prefab.fx.Emitter) != null;
+		return curve.getParent(hrt.prefab.fx.Emitter) != null;
 	}
 	}
 
 
 	static var _ = FileTree.registerExtension(FXEditor, ["fx"], { icon : "sitemap", createNew : "FX" });
 	static var _ = FileTree.registerExtension(FXEditor, ["fx"], { icon : "sitemap", createNew : "FX" });

+ 6 - 6
hide/view/Model.hx

@@ -24,7 +24,7 @@ class Model extends FileView {
 	var cameraMove : Void -> Void;
 	var cameraMove : Void -> Void;
 	var scene(get,never) : hide.comp.Scene;
 	var scene(get,never) : hide.comp.Scene;
 	var rootPath : String;
 	var rootPath : String;
-	var root : hide.prefab.Prefab;
+	var root : hxd.prefab.Prefab;
 
 
 	override function save() {
 	override function save() {
 		if(!modified) return;
 		if(!modified) return;
@@ -111,8 +111,8 @@ class Model extends FileView {
 
 
 		if( root == null ) {
 		if( root == null ) {
 			var def = new hxd.prefab.Library();
 			var def = new hxd.prefab.Library();
-			new hide.prefab.RenderProps(def).name = "renderer";
-			var l = new hide.prefab.Light(def);
+			new hrt.prefab.RenderProps(def).name = "renderer";
+			var l = new hrt.prefab.Light(def);
 			l.name = "sunLight";
 			l.name = "sunLight";
 			l.kind = Directional;
 			l.kind = Directional;
 			l.power = 1.5;
 			l.power = 1.5;
@@ -149,7 +149,7 @@ class Model extends FileView {
 		element.find("input[value=Import]").click(function(_) {
 		element.find("input[value=Import]").click(function(_) {
 			ide.chooseFile(["prefab"], function(f) {
 			ide.chooseFile(["prefab"], function(f) {
 				if( f == null ) return;
 				if( f == null ) return;
-				if( ide.loadPrefab(f, hide.prefab.RenderProps) == null ) {
+				if( ide.loadPrefab(f, hrt.prefab.RenderProps) == null ) {
 					ide.error("This prefab does not have renderer properties");
 					ide.error("This prefab does not have renderer properties");
 					return;
 					return;
 				}
 				}
@@ -301,10 +301,10 @@ class Model extends FileView {
 
 
 	function onRefresh() {
 	function onRefresh() {
 
 
-		var r = root.get(hide.prefab.RenderProps);
+		var r = root.get(hrt.prefab.RenderProps);
 		if( r != null ) r.applyProps(scene.s3d.renderer);
 		if( r != null ) r.applyProps(scene.s3d.renderer);
 
 
-		plight = root.getAll(hide.prefab.Light)[0];
+		plight = root.getAll(hrt.prefab.Light)[0];
 		if( plight != null ) {
 		if( plight != null ) {
 			this.light = sceneEditor.context.shared.contexts.get(plight).local3d;
 			this.light = sceneEditor.context.shared.contexts.get(plight).local3d;
 			lightDirection = this.light.getDirection();
 			lightDirection = this.light.getDirection();

+ 1 - 1
hide/view/Prefab.hx

@@ -1,6 +1,6 @@
 package hide.view;
 package hide.view;
 
 
-import hide.prefab.Prefab in PrefabElement;
+import hxd.prefab.Prefab in PrefabElement;
 
 
 @:access(hide.view.Prefab)
 @:access(hide.view.Prefab)
 private class PrefabSceneEditor extends hide.comp.SceneEditor {
 private class PrefabSceneEditor extends hide.comp.SceneEditor {

+ 17 - 17
hide/view/l3d/Level3D.hx

@@ -4,9 +4,9 @@ using Lambda;
 import hxd.Math;
 import hxd.Math;
 import hxd.Key as K;
 import hxd.Key as K;
 
 
-import hide.prefab.Prefab as PrefabElement;
-import hide.prefab.Object3D;
-import hide.prefab.l3d.Instance;
+import hxd.prefab.Prefab as PrefabElement;
+import hrt.prefab.Object3D;
+import hrt.prefab.l3d.Instance;
 import h3d.scene.Object;
 import h3d.scene.Object;
 
 
 
 
@@ -157,7 +157,7 @@ private class Level3DSceneEditor extends hide.comp.SceneEditor {
 
 
 		function setup(p : PrefabElement) {
 		function setup(p : PrefabElement) {
 			var proj = screenToWorld(scene.s2d.width/2, scene.s2d.height/2);
 			var proj = screenToWorld(scene.s2d.width/2, scene.s2d.height/2);
-			var obj3d = p.to(hide.prefab.Object3D);
+			var obj3d = p.to(hrt.prefab.Object3D);
 			var autoCenter = proj != null && obj3d != null && (Type.getClass(p) != Object3D || p.parent != sceneData);
 			var autoCenter = proj != null && obj3d != null && (Type.getClass(p) != Object3D || p.parent != sceneData);
 			if(autoCenter) {
 			if(autoCenter) {
 				var parentMat = worldMat(getObject(p.parent));
 				var parentMat = worldMat(getObject(p.parent));
@@ -188,7 +188,7 @@ private class Level3DSceneEditor extends hide.comp.SceneEditor {
 				var idCol = Instance.findIDColumn(refSheet);
 				var idCol = Instance.findIDColumn(refSheet);
 
 
 				function make(name) {
 				function make(name) {
-					var p = new hide.prefab.l3d.Instance(current == null ? sceneData : current);
+					var p = new hrt.prefab.l3d.Instance(current == null ? sceneData : current);
 					p.props = type.getDefaults();
 					p.props = type.getDefaults();
 					Reflect.setField(p.props, "$cdbtype", typeId);
 					Reflect.setField(p.props, "$cdbtype", typeId);
 					p.name = name;
 					p.name = name;
@@ -285,7 +285,7 @@ private class Level3DSceneEditor extends hide.comp.SceneEditor {
 class Level3D extends FileView {
 class Level3D extends FileView {
 
 
 	public var sceneEditor : Level3DSceneEditor;
 	public var sceneEditor : Level3DSceneEditor;
-	var data : hide.prefab.l3d.Level3D;
+	var data : hrt.prefab.l3d.Level3D;
 	var tabs : hide.comp.Tabs;
 	var tabs : hide.comp.Tabs;
 
 
 	var tools : hide.comp.Toolbar;
 	var tools : hide.comp.Toolbar;
@@ -302,7 +302,7 @@ class Level3D extends FileView {
 	var currentSign : String;
 	var currentSign : String;
 	var sceneFilters : Map<String, Bool>;
 	var sceneFilters : Map<String, Bool>;
 	var statusText : h2d.Text;
 	var statusText : h2d.Text;
-	var lastRenderProps : hide.prefab.RenderProps = null;
+	var lastRenderProps : hrt.prefab.RenderProps = null;
 
 
 	var scene(get, null):  hide.comp.Scene;
 	var scene(get, null):  hide.comp.Scene;
 	function get_scene() return sceneEditor.scene;
 	function get_scene() return sceneEditor.scene;
@@ -311,7 +311,7 @@ class Level3D extends FileView {
 
 
 	override function onDisplay() {
 	override function onDisplay() {
 		saveDisplayKey = "Level3D:" + getPath().split("\\").join("/").substr(0,-1);
 		saveDisplayKey = "Level3D:" + getPath().split("\\").join("/").substr(0,-1);
-		data = new hide.prefab.l3d.Level3D();
+		data = new hrt.prefab.l3d.Level3D();
 		var content = sys.io.File.getContent(getPath());
 		var content = sys.io.File.getContent(getPath());
 		data.loadData(haxe.Json.parse(content));
 		data.loadData(haxe.Json.parse(content));
 		currentSign = haxe.crypto.Md5.encode(content);
 		currentSign = haxe.crypto.Md5.encode(content);
@@ -438,7 +438,7 @@ class Level3D extends FileView {
 		scene.s3d.computeStatic();
 		scene.s3d.computeStatic();
 		for( p in passes )
 		for( p in passes )
 			p.isStatic = false;
 			p.isStatic = false;
-		var lights = data.getAll(hide.prefab.Light);
+		var lights = data.getAll(hrt.prefab.Light);
 		for( l in lights ) {
 		for( l in lights ) {
 			if(!l.visible)
 			if(!l.visible)
 				continue;
 				continue;
@@ -448,7 +448,7 @@ class Level3D extends FileView {
 	}
 	}
 
 
 	function bakeVolumetricLightmaps(){
 	function bakeVolumetricLightmaps(){
-		var volumetricLightmaps = data.getAll(hide.prefab.l3d.VolumetricLightmap);
+		var volumetricLightmaps = data.getAll(hrt.prefab.l3d.VolumetricLightmap);
 		var total = 0;
 		var total = 0;
 		for( v in volumetricLightmaps )
 		for( v in volumetricLightmaps )
 			total += v.volumetricLightmap.getProbeCount();
 			total += v.volumetricLightmap.getProbeCount();
@@ -482,7 +482,7 @@ class Level3D extends FileView {
 	}
 	}
 
 
 	override function getDefaultContent() {
 	override function getDefaultContent() {
-		return haxe.io.Bytes.ofString(ide.toJSON(new hide.prefab.l3d.Level3D().saveData()));
+		return haxe.io.Bytes.ofString(ide.toJSON(new hrt.prefab.l3d.Level3D().saveData()));
 	}
 	}
 
 
 	override function onFileChanged(wasDeleted:Bool) {
 	override function onFileChanged(wasDeleted:Bool) {
@@ -552,7 +552,7 @@ class Level3D extends FileView {
 			var settings = data.children.find(c -> c.name == "settings");
 			var settings = data.children.find(c -> c.name == "settings");
 			if(settings != null) {
 			if(settings != null) {
 				for(c in settings.children) {
 				for(c in settings.children) {
-					var renderProps = c.to(hide.prefab.RenderProps);
+					var renderProps = c.to(hrt.prefab.RenderProps);
 					if(renderProps != null) {
 					if(renderProps != null) {
 						renderProps.applyProps(scene.s3d.renderer);
 						renderProps.applyProps(scene.s3d.renderer);
 						break;
 						break;
@@ -652,13 +652,13 @@ class Level3D extends FileView {
 	}
 	}
 
 
 	function onSelectObjects(elts: Array<PrefabElement>) {
 	function onSelectObjects(elts: Array<PrefabElement>) {
-		var renderProps = Std.instance(elts.find(e -> Std.is(e, hide.prefab.RenderProps)), hide.prefab.RenderProps);
+		var renderProps = Std.instance(elts.find(e -> Std.is(e, hrt.prefab.RenderProps)), hrt.prefab.RenderProps);
 		if(renderProps != null)
 		if(renderProps != null)
 			lastRenderProps = renderProps;
 			lastRenderProps = renderProps;
 	}
 	}
 
 
 	function applySceneStyle(p: PrefabElement) {
 	function applySceneStyle(p: PrefabElement) {
-		var level3d = p.to(hide.prefab.l3d.Level3D);
+		var level3d = p.to(hrt.prefab.l3d.Level3D);
 		if(level3d != null) {
 		if(level3d != null) {
 			updateGrid();
 			updateGrid();
 			return;
 			return;
@@ -680,12 +680,12 @@ class Level3D extends FileView {
 		var color = getDisplayColor(p);
 		var color = getDisplayColor(p);
 		if(color != null){
 		if(color != null){
 			color = (color & 0xffffff) | 0xa0000000;
 			color = (color & 0xffffff) | 0xa0000000;
-			var box = p.to(hide.prefab.Box);
+			var box = p.to(hrt.prefab.Box);
 			if(box != null) {
 			if(box != null) {
 				var ctx = sceneEditor.getContext(box);
 				var ctx = sceneEditor.getContext(box);
 				box.setColor(ctx, color);
 				box.setColor(ctx, color);
 			}
 			}
-			var poly = p.to(hide.prefab.l3d.Polygon);
+			var poly = p.to(hrt.prefab.l3d.Polygon);
 			if(poly != null) {
 			if(poly != null) {
 				var ctx = sceneEditor.getContext(poly);
 				var ctx = sceneEditor.getContext(poly);
 				poly.setColor(ctx, color);
 				poly.setColor(ctx, color);
@@ -745,7 +745,7 @@ class Level3D extends FileView {
 			group.findAll(function(p) {
 			group.findAll(function(p) {
 				if(p.name == "nocollide")
 				if(p.name == "nocollide")
 					return null;
 					return null;
-				return p.to(hide.prefab.l3d.Polygon);
+				return p.to(hrt.prefab.l3d.Polygon);
 			},ret);
 			},ret);
 		return ret;
 		return ret;
 	}
 	}

+ 3 - 3
hide/view/l3d/LightProbeBaker.hx

@@ -7,7 +7,7 @@ class LightProbeBaker {
 	public var useGPU = false;
 	public var useGPU = false;
 	public var environment : h3d.scene.pbr.Environment;
 	public var environment : h3d.scene.pbr.Environment;
 
 
-	var context : hide.prefab.Context;
+	var context : hxd.prefab.Context;
 	var offScreenScene : h3d.scene.Scene = null;
 	var offScreenScene : h3d.scene.Scene = null;
 	var prim : h3d.prim.Plane2D;
 	var prim : h3d.prim.Plane2D;
 
 
@@ -38,7 +38,7 @@ class LightProbeBaker {
 		customCamera.screenRatio = 1.0;
 		customCamera.screenRatio = 1.0;
 		customCamera.fovY = 90;
 		customCamera.fovY = 90;
 		customCamera.zFar = 100;
 		customCamera.zFar = 100;
-		context = new hide.prefab.Context();
+		context = new hxd.prefab.Context();
 	}
 	}
 
 
 	public function dispose() {
 	public function dispose() {
@@ -58,7 +58,7 @@ class LightProbeBaker {
 		if(offScreenScene != null) offScreenScene.dispose();
 		if(offScreenScene != null) offScreenScene.dispose();
 	}
 	}
 
 
-	public function initScene( sceneData : hide.prefab.Prefab, shared : hide.prefab.ContextShared, scene : hide.comp.Scene , env : h3d.scene.pbr.Environment) {
+	public function initScene( sceneData : hxd.prefab.Prefab, shared : hide.prefab.ContextShared, scene : hide.comp.Scene , env : h3d.scene.pbr.Environment) {
 		if(offScreenScene != null) offScreenScene.dispose();
 		if(offScreenScene != null) offScreenScene.dispose();
 		offScreenScene = new h3d.scene.Scene();
 		offScreenScene = new h3d.scene.Scene();
 
 

+ 2 - 2
hide/view/l3d/ProbeBakerProcess.hx

@@ -5,7 +5,7 @@ class ProbeBakerProcess {
 	public var progress : Float = 0.;
 	public var progress : Float = 0.;
 
 
 	var lightProbeBaker : hide.view.l3d.LightProbeBaker;
 	var lightProbeBaker : hide.view.l3d.LightProbeBaker;
-	var volumetricLightmap : hide.prefab.l3d.VolumetricLightmap;
+	var volumetricLightmap : hrt.prefab.l3d.VolumetricLightmap;
 	var bakeTime : Float;
 	var bakeTime : Float;
 	var resolution : Int;
 	var resolution : Int;
 
 
@@ -18,7 +18,7 @@ class ProbeBakerProcess {
 		lightProbeBaker.useGPU = useGPU;
 		lightProbeBaker.useGPU = useGPU;
 	}
 	}
 
 
-	public function init( env : h3d.scene.pbr.Environment, sceneData : hide.prefab.Prefab , shared : hide.prefab.ContextShared, scene : hide.comp.Scene) {
+	public function init( env : h3d.scene.pbr.Environment, sceneData : hxd.prefab.Prefab , shared : hide.prefab.ContextShared, scene : hide.comp.Scene) {
 		lightProbeBaker.initScene(sceneData, shared, scene, env);
 		lightProbeBaker.initScene(sceneData, shared, scene, env);
 	}
 	}
 
 

+ 1 - 1
hrt/prefab/Blur.hx

@@ -1,4 +1,4 @@
-package hide.prefab;
+package hrt.prefab;
 
 
 class Blur extends Prefab {
 class Blur extends Prefab {
 
 

+ 1 - 1
hrt/prefab/Box.hx

@@ -1,4 +1,4 @@
-package hide.prefab;
+package hrt.prefab;
 
 
 class Box extends Object3D {
 class Box extends Object3D {
 
 

+ 1 - 1
hrt/prefab/Constraint.hx

@@ -1,4 +1,4 @@
-package hide.prefab;
+package hrt.prefab;
 
 
 class Constraint extends Prefab {
 class Constraint extends Prefab {
 
 

+ 0 - 3
hrt/prefab/Context.hx

@@ -1,3 +0,0 @@
-package hide.prefab;
-
-typedef Context = hxd.prefab.Context;

+ 7 - 7
hrt/prefab/Curve.hx

@@ -1,4 +1,4 @@
-package hide.prefab;
+package hrt.prefab;
 using Lambda;
 using Lambda;
 
 
 class CurveHandle {
 class CurveHandle {
@@ -113,7 +113,7 @@ class Curve extends Prefab {
 		if(val == null)
 		if(val == null)
 			val = getVal(time);
 			val = getVal(time);
 
 
-		var key = new hide.prefab.Curve.CurveKey();
+		var key = new hrt.prefab.Curve.CurveKey();
 		key.time = time;
 		key.time = time;
 		key.value = val;
 		key.value = val;
 		key.mode = mode != null ? mode : (keys[index] != null ? keys[index].mode : keyMode);
 		key.mode = mode != null ? mode : (keys[index] != null ? keys[index].mode : keyMode);
@@ -241,7 +241,7 @@ class Curve extends Prefab {
 	}
 	}
 	#end
 	#end
 
 
-	public static function getCurve(parent : hide.prefab.Prefab, name: String, onlyEnabled=true) {
+	public static function getCurve(parent : Prefab, name: String, onlyEnabled=true) {
 		for(c in parent.children) {
 		for(c in parent.children) {
 			if(onlyEnabled && !c.enabled) continue;
 			if(onlyEnabled && !c.enabled) continue;
 			if(c.name != name) continue;
 			if(c.name != name) continue;
@@ -252,7 +252,7 @@ class Curve extends Prefab {
 		return null;
 		return null;
 	}
 	}
 
 
-	public static function getCurves(parent: hide.prefab.Prefab, prefix: String) {
+	public static function getCurves(parent: Prefab, prefix: String) {
 		var ret = [];
 		var ret = [];
 		for(c in parent.children) {
 		for(c in parent.children) {
 			if(!c.enabled) continue;
 			if(!c.enabled) continue;
@@ -288,7 +288,7 @@ class Curve extends Prefab {
 		return curves.find(c -> StringTools.endsWith(c.name, suffix));
 		return curves.find(c -> StringTools.endsWith(c.name, suffix));
 	}
 	}
 
 
-	public static function getVectorValue(curves: Array<Curve>, defVal: Float=0.0, scale: Float=1.0) : hide.prefab.fx.Value {
+	public static function getVectorValue(curves: Array<Curve>, defVal: Float=0.0, scale: Float=1.0) : hrt.prefab.fx.Value {
 		inline function find(s) {
 		inline function find(s) {
 			return findCurve(curves, s);
 			return findCurve(curves, s);
 		}
 		}
@@ -297,7 +297,7 @@ class Curve extends Prefab {
 		var z = find(".z");
 		var z = find(".z");
 		var w = find(".w");
 		var w = find(".w");
 
 
-		inline function curveOrVal(c: Curve, defVal: Float) : hide.prefab.fx.Value {
+		inline function curveOrVal(c: Curve, defVal: Float) : hrt.prefab.fx.Value {
 			return c != null ? (scale != 1.0 ? VCurveScale(c, scale) : VCurve(c)) : VConst(defVal);
 			return c != null ? (scale != 1.0 ? VCurveScale(c, scale) : VCurve(c)) : VConst(defVal);
 		}
 		}
 
 
@@ -308,7 +308,7 @@ class Curve extends Prefab {
 			curveOrVal(w, 1.0));
 			curveOrVal(w, 1.0));
 	}
 	}
 
 
-	public static function getColorValue(curves: Array<Curve>) : hide.prefab.fx.Value {
+	public static function getColorValue(curves: Array<Curve>) : hrt.prefab.fx.Value {
 		inline function find(s) {
 		inline function find(s) {
 			return findCurve(curves, s);
 			return findCurve(curves, s);
 		}
 		}

+ 1 - 1
hrt/prefab/Light.hx

@@ -1,4 +1,4 @@
-package hide.prefab;
+package hrt.prefab;
 
 
 @:enum abstract LightKind(String) {
 @:enum abstract LightKind(String) {
 	var Point = "Point";
 	var Point = "Point";

+ 3 - 3
hrt/prefab/Material.hx

@@ -1,4 +1,4 @@
-package hide.prefab;
+package hrt.prefab;
 
 
 
 
 class Material extends Prefab {
 class Material extends Prefab {
@@ -95,7 +95,7 @@ class Material extends Prefab {
 			return;
 			return;
 
 
 		var obj = ctx.local3d;
 		var obj = ctx.local3d;
-		if(parent != null && Type.getClass(parent) == hide.prefab.Object3D) {
+		if(parent != null && Type.getClass(parent) == hrt.prefab.Object3D) {
 			for(i in 0...obj.numChildren) {
 			for(i in 0...obj.numChildren) {
 				updateObject(ctx, obj.getChildAt(i));
 				updateObject(ctx, obj.getChildAt(i));
 			}
 			}
@@ -155,7 +155,7 @@ class Material extends Prefab {
 	public static function hasOverride(p: Prefab) {
 	public static function hasOverride(p: Prefab) {
 		if(Lambda.exists(p.children, c -> Std.is(c, Material) && c.enabled))
 		if(Lambda.exists(p.children, c -> Std.is(c, Material) && c.enabled))
 			return true;
 			return true;
-		if(Type.getClass(p.parent) == hide.prefab.Object3D)
+		if(Type.getClass(p.parent) == hrt.prefab.Object3D)
 			return Lambda.exists(p.parent.children, c -> Std.is(c, Material) && c.enabled);
 			return Lambda.exists(p.parent.children, c -> Std.is(c, Material) && c.enabled);
 		return false;
 		return false;
 	}
 	}

+ 1 - 1
hrt/prefab/Model.hx

@@ -1,4 +1,4 @@
-package hide.prefab;
+package hrt.prefab;
 
 
 class Model extends Object3D {
 class Model extends Object3D {
 
 

+ 1 - 1
hrt/prefab/Noise.hx

@@ -1,4 +1,4 @@
-package hide.prefab;
+package hrt.prefab;
 
 
 enum abstract NoiseMode(String) {
 enum abstract NoiseMode(String) {
 	var Perlin;
 	var Perlin;

+ 1 - 1
hrt/prefab/Object3D.hx

@@ -1,4 +1,4 @@
-package hide.prefab;
+package hrt.prefab;
 import hxd.Math;
 import hxd.Math;
 using Lambda;
 using Lambda;
 
 

+ 0 - 3
hrt/prefab/Prefab.hx

@@ -1,3 +0,0 @@
-package hrt.prefab;
-
-typedef Prefab = hxd.prefab.Prefab;

+ 1 - 1
hrt/prefab/Reference.hx

@@ -1,4 +1,4 @@
-package hide.prefab;
+package hrt.prefab;
 
 
 class Reference extends Object3D {
 class Reference extends Object3D {
 
 

+ 1 - 1
hrt/prefab/RenderProps.hx

@@ -1,4 +1,4 @@
-package hide.prefab;
+package hrt.prefab;
 
 
 class RenderProps extends Prefab {
 class RenderProps extends Prefab {
 
 

+ 1 - 1
hrt/prefab/Scene.hx

@@ -1,4 +1,4 @@
-package hide.prefab;
+package hrt.prefab;
 
 
 class Scene extends Prefab {
 class Scene extends Prefab {
 
 

+ 1 - 1
hrt/prefab/Settings.hx

@@ -1,4 +1,4 @@
-package hide.prefab;
+package hrt.prefab;
 
 
 class Settings extends Prefab {
 class Settings extends Prefab {
 
 

+ 1 - 1
hrt/prefab/Shader.hx

@@ -1,4 +1,4 @@
-package hide.prefab;
+package hrt.prefab;
 
 
 class Shader extends Prefab {
 class Shader extends Prefab {
 
 

+ 1 - 1
hrt/prefab/Trail.hx

@@ -1,4 +1,4 @@
-package hide.prefab;
+package hrt.prefab;
 
 
 class Trail extends Object3D {
 class Trail extends Object3D {
 
 

+ 2 - 2
hrt/prefab/fx/AnimEvent.hx

@@ -1,6 +1,6 @@
-package hide.prefab.fx;
+package hrt.prefab.fx;
 
 
-class AnimEvent extends hide.prefab.fx.Event {
+class AnimEvent extends hrt.prefab.fx.Event {
 
 
 	public var animation: String;
 	public var animation: String;
 	public var speed : Float = 1.0;
 	public var speed : Float = 1.0;

+ 15 - 15
hrt/prefab/fx/Emitter.hx

@@ -1,6 +1,6 @@
-package hide.prefab.fx;
-import hide.prefab.Curve;
-import hide.prefab.fx.FX.ShaderAnimation;
+package hrt.prefab.fx;
+import hrt.prefab.Curve;
+import hrt.prefab.fx.FX.ShaderAnimation;
 using Lambda;
 using Lambda;
 
 
 enum SimulationSpace {
 enum SimulationSpace {
@@ -29,7 +29,7 @@ enum Orientation {
 }
 }
 
 
 typedef ParamDef = {
 typedef ParamDef = {
-	> hide.prefab.Props.PropDef,
+	> hrt.prefab.Props.PropDef,
 	?animate: Bool,
 	?animate: Bool,
 	?instance: Bool
 	?instance: Bool
 }
 }
@@ -103,7 +103,7 @@ private class ParticleTransform {
 	}
 	}
 }
 }
 
 
-@:allow(hide.prefab.fx.EmitterObject)
+@:allow(hrt.prefab.fx.EmitterObject)
 private class ParticleInstance  {
 private class ParticleInstance  {
 
 
 	var emitter : EmitterObject;
 	var emitter : EmitterObject;
@@ -263,8 +263,8 @@ private class ParticleInstance  {
 	}
 	}
 }
 }
 
 
-@:allow(hide.prefab.fx.ParticleInstance)
-@:allow(hide.prefab.fx.Emitter)
+@:allow(hrt.prefab.fx.ParticleInstance)
+@:allow(hrt.prefab.fx.Emitter)
 class EmitterObject extends h3d.scene.Object {
 class EmitterObject extends h3d.scene.Object {
 
 
 	public var batch : h3d.scene.MeshBatch;
 	public var batch : h3d.scene.MeshBatch;
@@ -274,7 +274,7 @@ class EmitterObject extends h3d.scene.Object {
 	public var enable : Bool;
 	public var enable : Bool;
 	public var particleVisibility(default, null) : Bool;
 	public var particleVisibility(default, null) : Bool;
 
 
-	public var particleTemplate : hide.prefab.Object3D;
+	public var particleTemplate : hrt.prefab.Object3D;
 	public var maxCount = 20;
 	public var maxCount = 20;
 	public var lifeTime = 2.0;
 	public var lifeTime = 2.0;
 	public var lifeTimeRand = 0.0;
 	public var lifeTimeRand = 0.0;
@@ -304,7 +304,7 @@ class EmitterObject extends h3d.scene.Object {
 
 
 	var random: hxd.Rand;
 	var random: hxd.Rand;
 	var randomSeed = 0;
 	var randomSeed = 0;
-	var context : hide.prefab.Context;
+	var context : hxd.prefab.Context;
 	var emitCount = 0;
 	var emitCount = 0;
 	var lastTime = -1.0;
 	var lastTime = -1.0;
 	var curTime = 0.0;
 	var curTime = 0.0;
@@ -458,7 +458,7 @@ class EmitterObject extends h3d.scene.Object {
 
 
 			// Setup mats.
 			// Setup mats.
 			// Should we do this manually here or make a recursive makeInstance on the template?
 			// Should we do this manually here or make a recursive makeInstance on the template?
-			var materials = particleTemplate.getAll(hide.prefab.Material);
+			var materials = particleTemplate.getAll(hrt.prefab.Material);
 			for(mat in materials) {
 			for(mat in materials) {
 				if(mat.enabled)
 				if(mat.enabled)
 					mat.makeInstance(template);
 					mat.makeInstance(template);
@@ -466,12 +466,12 @@ class EmitterObject extends h3d.scene.Object {
 
 
 			// Setup shaders
 			// Setup shaders
 			shaderAnims = [];
 			shaderAnims = [];
-			var shaders = particleTemplate.getAll(hide.prefab.Shader);
+			var shaders = particleTemplate.getAll(hrt.prefab.Shader);
 			for( shader in shaders ) {
 			for( shader in shaders ) {
 				if( !shader.enabled ) continue;
 				if( !shader.enabled ) continue;
 				var shCtx = shader.makeInstance(template);
 				var shCtx = shader.makeInstance(template);
 				if( shCtx == null ) continue;
 				if( shCtx == null ) continue;
-				hide.prefab.fx.FX.getShaderAnims(template, shader, shaderAnims);
+				hrt.prefab.fx.FX.getShaderAnims(template, shader, shaderAnims);
 			}
 			}
 
 
 			// Animated textures animations
 			// Animated textures animations
@@ -720,7 +720,7 @@ class Emitter extends Object3D {
 		var template = children[0] != null ? children[0].to(Object3D) : null;
 		var template = children[0] != null ? children[0].to(Object3D) : null;
 
 
 		function makeParam(scope: Prefab, name: String): Value {
 		function makeParam(scope: Prefab, name: String): Value {
-			var getCurve = hide.prefab.Curve.getCurve.bind(scope);
+			var getCurve = hrt.prefab.Curve.getCurve.bind(scope);
 			function makeCompVal(baseProp: Null<Float>, defVal: Float, randProp: Null<Float>, pname: String, suffix: String) : Value {
 			function makeCompVal(baseProp: Null<Float>, defVal: Float, randProp: Null<Float>, pname: String, suffix: String) : Value {
 				var xVal : Value = VZero;
 				var xVal : Value = VZero;
 				var xCurve = getCurve(pname + suffix);
 				var xCurve = getCurve(pname + suffix);
@@ -767,10 +767,10 @@ class Emitter extends Object3D {
 		}
 		}
 
 
 		function makeColor(scope: Prefab, name: String) {
 		function makeColor(scope: Prefab, name: String) {
-			var curves = hide.prefab.Curve.getCurves(scope, name);
+			var curves = hrt.prefab.Curve.getCurves(scope, name);
 			if(curves == null || curves.length == 0)
 			if(curves == null || curves.length == 0)
 				return null;
 				return null;
-			return hide.prefab.Curve.getColorValue(curves);
+			return hrt.prefab.Curve.getColorValue(curves);
 		}
 		}
 
 
 		if(template != null) {
 		if(template != null) {

+ 1 - 1
hrt/prefab/fx/Evaluator.hx

@@ -1,4 +1,4 @@
-package hide.prefab.fx;
+package hrt.prefab.fx;
 
 
 class Evaluator {
 class Evaluator {
 	var randValues : Array<Float> = [];
 	var randValues : Array<Float> = [];

+ 1 - 1
hrt/prefab/fx/Event.hx

@@ -1,4 +1,4 @@
-package hide.prefab.fx;
+package hrt.prefab.fx;
 
 
 typedef EventInstance = {
 typedef EventInstance = {
 	evt: Event,
 	evt: Event,

+ 26 - 26
hrt/prefab/fx/FX.hx

@@ -1,6 +1,6 @@
-package hide.prefab.fx;
-import hide.prefab.Curve;
-import hide.prefab.Prefab as PrefabElement;
+package hrt.prefab.fx;
+import hrt.prefab.Curve;
+import hxd.prefab.Prefab as PrefabElement;
 
 
 typedef ShaderParam = {
 typedef ShaderParam = {
 	def: hxsl.Ast.TVar,
 	def: hxsl.Ast.TVar,
@@ -36,9 +36,9 @@ class ShaderAnimation extends Evaluator {
 }
 }
 
 
 typedef ObjectAnimation = {
 typedef ObjectAnimation = {
-	elt: hide.prefab.Object3D,
+	elt: hrt.prefab.Object3D,
 	obj: h3d.scene.Object,
 	obj: h3d.scene.Object,
-	events: Array<hide.prefab.fx.Event.EventInstance>,
+	events: Array<hrt.prefab.fx.Event.EventInstance>,
 	?position: Value,
 	?position: Value,
 	?scale: Value,
 	?scale: Value,
 	?rotation: Value,
 	?rotation: Value,
@@ -58,9 +58,9 @@ class FXAnimation extends h3d.scene.Object {
 	public var loopAnims : Bool;
 	public var loopAnims : Bool;
 	public var objects: Array<ObjectAnimation> = [];
 	public var objects: Array<ObjectAnimation> = [];
 	public var shaderAnims : Array<ShaderAnimation> = [];
 	public var shaderAnims : Array<ShaderAnimation> = [];
-	public var emitters : Array<hide.prefab.fx.Emitter.EmitterObject> = [];
-	public var constraints : Array<hide.prefab.Constraint> = [];
-	public var script : hide.prefab.fx.FXScript;
+	public var emitters : Array<hrt.prefab.fx.Emitter.EmitterObject> = [];
+	public var constraints : Array<hrt.prefab.Constraint> = [];
+	public var script : hrt.prefab.fx.FXScript;
 
 
 	var evaluator : Evaluator;
 	var evaluator : Evaluator;
 	var random : hxd.Rand;
 	var random : hxd.Rand;
@@ -245,14 +245,14 @@ class FX extends hxd.prefab.Library {
 	}
 	}
 
 
 	static function getObjAnimations(ctx:Context, elt: PrefabElement, anims: Array<ObjectAnimation>) {
 	static function getObjAnimations(ctx:Context, elt: PrefabElement, anims: Array<ObjectAnimation>) {
-		if(Std.instance(elt, hide.prefab.fx.Emitter) == null) {
+		if(Std.instance(elt, hrt.prefab.fx.Emitter) == null) {
 			// Don't extract animations for children of Emitters
 			// Don't extract animations for children of Emitters
 			for(c in elt.children) {
 			for(c in elt.children) {
 				getObjAnimations(ctx, c, anims);
 				getObjAnimations(ctx, c, anims);
 			}
 			}
 		}
 		}
 
 
-		var obj3d = elt.to(hide.prefab.Object3D);
+		var obj3d = elt.to(hrt.prefab.Object3D);
 		if(obj3d == null)
 		if(obj3d == null)
 			return;
 			return;
 
 
@@ -264,14 +264,14 @@ class FX extends hxd.prefab.Library {
 		var anyFound = false;
 		var anyFound = false;
 
 
 		function makeVal(name, def) : Value {
 		function makeVal(name, def) : Value {
-			var c = hide.prefab.Curve.getCurve(elt, name);
+			var c = Curve.getCurve(elt, name);
 			if(c != null)
 			if(c != null)
 				anyFound = true;
 				anyFound = true;
 			return c != null ? VCurve(c) : def;
 			return c != null ? VCurve(c) : def;
 		}
 		}
 
 
 		function makeVector(name: String, defVal: Float, uniform: Bool=true, scale: Float=1.0) : Value {
 		function makeVector(name: String, defVal: Float, uniform: Bool=true, scale: Float=1.0) : Value {
-			var curves = hide.prefab.Curve.getCurves(elt, name);
+			var curves = Curve.getCurves(elt, name);
 			if(curves == null || curves.length == 0)
 			if(curves == null || curves.length == 0)
 				return null;
 				return null;
 
 
@@ -280,16 +280,16 @@ class FX extends hxd.prefab.Library {
 			if(uniform && curves.length == 1 && curves[0].name == name)
 			if(uniform && curves.length == 1 && curves[0].name == name)
 				return scale != 1.0 ? VCurveScale(curves[0], scale) : VCurve(curves[0]);
 				return scale != 1.0 ? VCurveScale(curves[0], scale) : VCurve(curves[0]);
 
 
-			return hide.prefab.Curve.getVectorValue(curves, defVal, scale);
+			return Curve.getVectorValue(curves, defVal, scale);
 		}
 		}
 
 
 		function makeColor(name: String) {
 		function makeColor(name: String) {
-			var curves = hide.prefab.Curve.getCurves(elt, name);
+			var curves = Curve.getCurves(elt, name);
 			if(curves == null || curves.length == 0)
 			if(curves == null || curves.length == 0)
 				return null;
 				return null;
 
 
 			anyFound = true;
 			anyFound = true;
-			return hide.prefab.Curve.getColorValue(curves);
+			return Curve.getColorValue(curves);
 		}
 		}
 
 
 		var anim : ObjectAnimation = {
 		var anim : ObjectAnimation = {
@@ -321,7 +321,7 @@ class FX extends hxd.prefab.Library {
 		getObjAnimations(ctx, this, fxanim.objects);
 		getObjAnimations(ctx, this, fxanim.objects);
 	}
 	}
 
 
-	public static function makeShaderParams(ctx: Context, shaderElt: hide.prefab.Shader) {
+	public static function makeShaderParams(ctx: Context, shaderElt: hrt.prefab.Shader) {
 		shaderElt.loadShaderDef(ctx);
 		shaderElt.loadShaderDef(ctx);
 		var shaderDef = shaderElt.shaderDef;
 		var shaderDef = shaderElt.shaderDef;
 		if(shaderDef == null)
 		if(shaderDef == null)
@@ -335,16 +335,16 @@ class FX extends hxd.prefab.Library {
 
 
 			var prop = Reflect.field(shaderElt.props, v.name);
 			var prop = Reflect.field(shaderElt.props, v.name);
 			if(prop == null)
 			if(prop == null)
-				prop = hide.prefab.Shader.getDefault(v.type);
+				prop = hrt.prefab.Shader.getDefault(v.type);
 
 
-			var curves = hide.prefab.Curve.getCurves(shaderElt, v.name);
+			var curves = Curve.getCurves(shaderElt, v.name);
 			if(curves == null || curves.length == 0)
 			if(curves == null || curves.length == 0)
 				continue;
 				continue;
 
 
 			switch(v.type) {
 			switch(v.type) {
 				case TVec(_, VFloat) :
 				case TVec(_, VFloat) :
 					var isColor = v.name.toLowerCase().indexOf("color") >= 0;
 					var isColor = v.name.toLowerCase().indexOf("color") >= 0;
-					var val = isColor ? hide.prefab.Curve.getColorValue(curves) : hide.prefab.Curve.getVectorValue(curves);
+					var val = isColor ? Curve.getColorValue(curves) : Curve.getVectorValue(curves);
 					ret.push({
 					ret.push({
 						def: v,
 						def: v,
 						value: val
 						value: val
@@ -354,7 +354,7 @@ class FX extends hxd.prefab.Library {
 					var base = 1.0;
 					var base = 1.0;
 					if(Std.is(prop, Float) || Std.is(prop, Int))
 					if(Std.is(prop, Float) || Std.is(prop, Int))
 						base = cast prop;
 						base = cast prop;
-					var curve = hide.prefab.Curve.getCurve(shaderElt, v.name);
+					var curve = Curve.getCurve(shaderElt, v.name);
 					var val = Value.VConst(base);
 					var val = Value.VConst(base);
 					if(curve != null)
 					if(curve != null)
 						val = Value.VCurveScale(curve, base);
 						val = Value.VCurveScale(curve, base);
@@ -369,13 +369,13 @@ class FX extends hxd.prefab.Library {
 	}
 	}
 
 
 	public static function getShaderAnims(ctx: Context, elt: PrefabElement, anims: Array<ShaderAnimation>) {
 	public static function getShaderAnims(ctx: Context, elt: PrefabElement, anims: Array<ShaderAnimation>) {
-		if(Std.instance(elt, hide.prefab.fx.Emitter) == null) {
+		if(Std.instance(elt, hrt.prefab.fx.Emitter) == null) {
 			for(c in elt.children) {
 			for(c in elt.children) {
 				getShaderAnims(ctx, c, anims);
 				getShaderAnims(ctx, c, anims);
 			}
 			}
 		}
 		}
 
 
-		var shader = elt.to(hide.prefab.Shader);
+		var shader = elt.to(hrt.prefab.Shader);
 		if(shader == null)
 		if(shader == null)
 			return;
 			return;
 
 
@@ -388,8 +388,8 @@ class FX extends hxd.prefab.Library {
 		}
 		}
 	}
 	}
 
 
-	function getEmitters(ctx: Context, elt: PrefabElement, emitters: Array<hide.prefab.fx.Emitter.EmitterObject>) {
-		var em = Std.instance(elt, hide.prefab.fx.Emitter);
+	function getEmitters(ctx: Context, elt: PrefabElement, emitters: Array<hrt.prefab.fx.Emitter.EmitterObject>) {
+		var em = Std.instance(elt, hrt.prefab.fx.Emitter);
 		if(em != null)  {
 		if(em != null)  {
 			for(emCtx in ctx.shared.getContexts(elt)) {
 			for(emCtx in ctx.shared.getContexts(elt)) {
 				if(emCtx.local3d == null) continue;
 				if(emCtx.local3d == null) continue;
@@ -415,8 +415,8 @@ class FX extends hxd.prefab.Library {
 		return null;
 		return null;
 	}
 	}
 
 
-	function getConstraints( ctx : Context, elt : PrefabElement, constraints : Array<hide.prefab.Constraint>){
-		var co = Std.instance(elt, hide.prefab.Constraint);
+	function getConstraints( ctx : Context, elt : PrefabElement, constraints : Array<hrt.prefab.Constraint>){
+		var co = Std.instance(elt, hrt.prefab.Constraint);
 		if(co != null)
 		if(co != null)
 			constraints.push(co);
 			constraints.push(co);
 		else
 		else

+ 4 - 4
hrt/prefab/fx/FXScript.hx

@@ -1,4 +1,4 @@
-package hide.prefab.fx;
+package hrt.prefab.fx;
 
 
 typedef Argument = { name : String, ?value : FxAst };
 typedef Argument = { name : String, ?value : FxAst };
 
 
@@ -10,7 +10,7 @@ enum FxAst {
 	Op( a : FxAst, b : FxAst, op : Float -> Float -> Float );
 	Op( a : FxAst, b : FxAst, op : Float -> Float -> Float );
 	Unop( a : FxAst, op : Float -> Float );
 	Unop( a : FxAst, op : Float -> Float );
 	If( cond : FxAst, eif : FxAst, eelse : FxAst );
 	If( cond : FxAst, eif : FxAst, eelse : FxAst );
-	Function( args : Array<hide.prefab.fx.Argument>, a : FxAst, name : String );
+	Function( args : Array<Argument>, a : FxAst, name : String );
 	Call( name : String, args : Array<FxAst> );
 	Call( name : String, args : Array<FxAst> );
 }
 }
 
 
@@ -35,12 +35,12 @@ class FXScript {
 	public var myVars : Map<String, FXVar> = [];
 	public var myVars : Map<String, FXVar> = [];
 	public var params : Array<FXParam> = [];
 	public var params : Array<FXParam> = [];
 
 
-	var fx : hide.prefab.fx.FX.FXAnimation;
+	var fx : FX.FXAnimation;
 	var ast : FxAst;
 	var ast : FxAst;
 	var initAst : FxAst;
 	var initAst : FxAst;
 	var updateAst : FxAst;
 	var updateAst : FxAst;
 
 
-	public function new( fx : hide.prefab.fx.FX.FXAnimation ){
+	public function new( fx : FX.FXAnimation ){
 		this.fx = fx;
 		this.fx = fx;
 	}
 	}
 
 

+ 5 - 5
hrt/prefab/fx/FXScriptParser.hx

@@ -1,8 +1,8 @@
-package hide.prefab.fx;
-import  hide.prefab.fx.FXScript;
+package hrt.prefab.fx;
+import hrt.prefab.fx.FXScript;
 
 
 @:access(hide.view.FXEditor)
 @:access(hide.view.FXEditor)
-@:access(hide.prefab.fx.FXScript)
+@:access(hrt.prefab.fx.FXScript)
 class FXScriptParser {
 class FXScriptParser {
 
 
 	public var firstParse = false;
 	public var firstParse = false;
@@ -26,13 +26,13 @@ class FXScriptParser {
 		#end
 		#end
 	}
 	}
 
 
-	public function createFXScript( s : String, fx : hide.prefab.fx.FX.FXAnimation ) : FXScript {
+	public function createFXScript( s : String, fx : hrt.prefab.fx.FX.FXAnimation ) : FXScript {
 		var parser = new hscript.Parser();
 		var parser = new hscript.Parser();
 		parser.allowMetadata = true;
 		parser.allowMetadata = true;
 		parser.allowTypes = true;
 		parser.allowTypes = true;
 		parser.allowJSON = true;
 		parser.allowJSON = true;
 		var expr : hscript.Expr = null;
 		var expr : hscript.Expr = null;
-		var script = new hide.prefab.fx.FXScript(fx);
+		var script = new hrt.prefab.fx.FXScript(fx);
 
 
 		function parse( expr : hscript.Expr ) {
 		function parse( expr : hscript.Expr ) {
 			if( expr == null ) return;
 			if( expr == null ) return;

+ 4 - 4
hrt/prefab/fx/LookAt.hx

@@ -1,7 +1,7 @@
-package hide.prefab.fx;
+package hrt.prefab.fx;
 
 
 
 
-@:access(hide.prefab.fx.LookAt)
+@:access(hrt.prefab.fx.LookAt)
 class LookAtObject extends h3d.scene.Object {
 class LookAtObject extends h3d.scene.Object {
 	var target: h3d.scene.Object;
 	var target: h3d.scene.Object;
 	var definition: LookAt;
 	var definition: LookAt;
@@ -86,8 +86,8 @@ class LookAtObject extends h3d.scene.Object {
 	}
 	}
 }
 }
 
 
-@:allow(hide.prefab.fx.LookAt.LookAtInstance)
-class LookAt extends hide.prefab.Object3D {
+@:allow(hrt.prefab.fx.LookAt.LookAtInstance)
+class LookAt extends Object3D {
 
 
 	var target(default,null) : String;
 	var target(default,null) : String;
 	var lockAxis: Array<Float> = [0,0,0];
 	var lockAxis: Array<Float> = [0,0,0];

+ 1 - 1
hrt/prefab/fx/Value.hx

@@ -1,4 +1,4 @@
-package hide.prefab.fx;
+package hrt.prefab.fx;
 
 
 enum Value {
 enum Value {
 	VZero;
 	VZero;

+ 1 - 1
hrt/prefab/l3d/AdvancedDecal.hx

@@ -1,4 +1,4 @@
-package hide.prefab.l3d;
+package hrt.prefab.l3d;
 
 
 class AdvancedDecal extends Object3D {
 class AdvancedDecal extends Object3D {
 
 

+ 3 - 4
hrt/prefab/l3d/Camera.hx

@@ -1,9 +1,8 @@
-package hide.prefab.l3d;
+package hrt.prefab.l3d;
 import hxd.prefab.Context;
 import hxd.prefab.Context;
 import hxd.prefab.Library;
 import hxd.prefab.Library;
 
 
-
-class Camera extends hide.prefab.Object3D {
+class Camera extends Object3D {
 
 
 	var fovY : Float = 45;
 	var fovY : Float = 45;
 	var zFar : Float = 150;
 	var zFar : Float = 150;
@@ -43,7 +42,7 @@ class Camera extends hide.prefab.Object3D {
 
 
 	#if editor
 	#if editor
 
 
-	override function setSelected( ctx : hide.prefab.Context, b : Bool ) {
+	override function setSelected( ctx : Context, b : Bool ) {
 
 
 	}
 	}
 
 

+ 1 - 1
hrt/prefab/l3d/Decal.hx

@@ -1,4 +1,4 @@
-package hide.prefab.l3d;
+package hrt.prefab.l3d;
 
 
 class Decal extends Object3D {
 class Decal extends Object3D {
 
 

+ 1 - 1
hrt/prefab/l3d/Instance.hx

@@ -1,4 +1,4 @@
-package hide.prefab.l3d;
+package hrt.prefab.l3d;
 using Lambda;
 using Lambda;
 
 
 class Instance extends Object3D {
 class Instance extends Object3D {

+ 1 - 1
hrt/prefab/l3d/Level3D.hx

@@ -1,4 +1,4 @@
-package hide.prefab.l3d;
+package hrt.prefab.l3d;
 
 
 class Level3D extends hxd.prefab.Library {
 class Level3D extends hxd.prefab.Library {
 
 

+ 1 - 1
hrt/prefab/l3d/MeshGenerator.hx

@@ -1,4 +1,4 @@
-package hide.prefab.l3d;
+package hrt.prefab.l3d;
 
 
 class Socket {
 class Socket {
 
 

+ 5 - 5
hrt/prefab/l3d/Polygon.hx

@@ -1,4 +1,4 @@
-package hide.prefab.l3d;
+package hrt.prefab.l3d;
 import h2d.col.Point;
 import h2d.col.Point;
 
 
 enum Shape {
 enum Shape {
@@ -15,7 +15,7 @@ class Polygon extends Object3D {
 	public var points : h2d.col.Polygon;
 	public var points : h2d.col.Polygon;
 	#if editor
 	#if editor
 	public var debugColor : Int = 0xFFFFFFFF;
 	public var debugColor : Int = 0xFFFFFFFF;
-	public var editor : PolygonEditor;
+	public var editor : hide.prefab.PolygonEditor;
 	public var cachedPrim : h3d.prim.Polygon;
 	public var cachedPrim : h3d.prim.Polygon;
 	#end
 	#end
 
 
@@ -165,13 +165,13 @@ class Polygon extends Object3D {
 
 
 	public function setColor(ctx: Context, color: Int) {
 	public function setColor(ctx: Context, color: Int) {
 		#if editor
 		#if editor
-		if(hide.prefab.Material.hasOverride(this))
+		if(hrt.prefab.Material.hasOverride(this))
 			return;
 			return;
 		if(ctx.local3d == null)
 		if(ctx.local3d == null)
 			return;
 			return;
 		var mesh = Std.instance(ctx.local3d, h3d.scene.Mesh);
 		var mesh = Std.instance(ctx.local3d, h3d.scene.Mesh);
 		if(mesh != null)
 		if(mesh != null)
-			hide.prefab.Box.setDebugColor(color, mesh.material);
+			hrt.prefab.Box.setDebugColor(color, mesh.material);
 		#end
 		#end
 	}
 	}
 
 
@@ -212,7 +212,7 @@ class Polygon extends Object3D {
 
 
 	function createEditor( ctx : EditContext ){
 	function createEditor( ctx : EditContext ){
 		if( editor == null )
 		if( editor == null )
-			editor = new PolygonEditor(this, ctx.properties.undo);
+			editor = new hide.prefab.PolygonEditor(this, ctx.properties.undo);
 		editor.editContext = ctx;
 		editor.editContext = ctx;
 	}
 	}
 
 

+ 1 - 1
hrt/prefab/l3d/VolumetricLightmap.hx

@@ -1,4 +1,4 @@
-package hide.prefab.l3d;
+package hrt.prefab.l3d;
 
 
 class VolumetricLightmap extends Object3D {
 class VolumetricLightmap extends Object3D {
 
 

+ 1 - 1
hrt/prefab/terrain/PackWeight.hx

@@ -1,4 +1,4 @@
-package hide.prefab.terrain;
+package hrt.prefab.terrain;
 
 
 class PackWeight extends h3d.shader.ScreenShader {
 class PackWeight extends h3d.shader.ScreenShader {
 
 

+ 38 - 33
hrt/prefab/terrain/Terrain.hx

@@ -1,4 +1,4 @@
-package hide.prefab.terrain;
+package hrt.prefab.terrain;
 using Lambda;
 using Lambda;
 
 
 typedef SurfaceProps = {
 typedef SurfaceProps = {
@@ -27,13 +27,13 @@ class Terrain extends Object3D {
 	var parallaxMaxStep : Int = 16;
 	var parallaxMaxStep : Int = 16;
 	var heightBlendStrength : Float = 0.0;
 	var heightBlendStrength : Float = 0.0;
 	var blendSharpness : Float = 0.0;
 	var blendSharpness : Float = 0.0;
-	var packWeight = new h3d.pass.ScreenFx(new hide.prefab.terrain.PackWeight());
-	var unpackWeight = new h3d.pass.ScreenFx(new hide.prefab.terrain.UnpackWeight());
+	var unpackWeight = new h3d.pass.ScreenFx(new UnpackWeight());
 
 
 	var surfaceCount = 0;
 	var surfaceCount = 0;
 	var surfaceSize = 0;
 	var surfaceSize = 0;
 
 
 	#if editor
 	#if editor
+	var packWeight = new h3d.pass.ScreenFx(new PackWeight());
 	var editor : hide.prefab.terrain.TerrainEditor;
 	var editor : hide.prefab.terrain.TerrainEditor;
 	var cachedInstance : h3d.scene.pbr.terrain.Terrain;
 	var cachedInstance : h3d.scene.pbr.terrain.Terrain;
 	public var showChecker = false;
 	public var showChecker = false;
@@ -104,35 +104,6 @@ class Terrain extends Object3D {
 		return obj;
 		return obj;
 	}
 	}
 
 
-	public function saveHeightTextures( ctx : Context ) {
-		for( tile in terrain.tiles ) {
-			var pixels = tile.heightMap.capturePixels();
-			var fileName = tile.tileX + "_" + tile.tileY + "_" + "h";
-			ctx.shared.savePrefabDat(fileName, "heightMap", name, pixels.bytes);
-		}
-	}
-
-	public function saveWeightTextures( ctx : Context ) {
-		var packedWeightsTex = new h3d.mat.Texture(terrain.weightMapResolution, terrain.weightMapResolution, [Target], RGBA);
-		for( tile in terrain.tiles ) {
-			h3d.Engine.getCurrent().pushTarget(packedWeightsTex);
-			packWeight.shader.indexMap = tile.surfaceIndexMap;
-			packWeight.shader.weightTextures = tile.surfaceWeightArray;
-			packWeight.shader.weightCount = tile.surfaceWeights.length;
-			packWeight.render();
-
-			var pixels = packedWeightsTex.capturePixels();
-			var bytes = pixels.toPNG();
-			var fileName = tile.tileX + "_" + tile.tileY + "_" + "w";
-			ctx.shared.savePrefabDat(fileName, "png", name, bytes);
-
-			var pixels = tile.surfaceIndexMap.capturePixels();
-			var bytes = pixels.toPNG();
-			var fileName = tile.tileX + "_" + tile.tileY + "_" + "i";
-			ctx.shared.savePrefabDat(fileName, "png", name, bytes);
-		}
-	}
-
 	function loadTiles( ctx : Context, height = true, index = true , weight = true ) {
 	function loadTiles( ctx : Context, height = true, index = true , weight = true ) {
 		var resDir = ctx.shared.loadDir(name);
 		var resDir = ctx.shared.loadDir(name);
 		if( resDir == null ) return;
 		if( resDir == null ) return;
@@ -250,6 +221,38 @@ class Terrain extends Object3D {
 		//#end
 		//#end
 	}
 	}
 
 
+
+	#if editor
+
+	public function saveHeightTextures( ctx : Context ) {
+		for( tile in terrain.tiles ) {
+			var pixels = tile.heightMap.capturePixels();
+			var fileName = tile.tileX + "_" + tile.tileY + "_" + "h";
+			ctx.shared.savePrefabDat(fileName, "heightMap", name, pixels.bytes);
+		}
+	}
+
+	public function saveWeightTextures( ctx : Context ) {
+		var packedWeightsTex = new h3d.mat.Texture(terrain.weightMapResolution, terrain.weightMapResolution, [Target], RGBA);
+		for( tile in terrain.tiles ) {
+			h3d.Engine.getCurrent().pushTarget(packedWeightsTex);
+			packWeight.shader.indexMap = tile.surfaceIndexMap;
+			packWeight.shader.weightTextures = tile.surfaceWeightArray;
+			packWeight.shader.weightCount = tile.surfaceWeights.length;
+			packWeight.render();
+
+			var pixels = packedWeightsTex.capturePixels();
+			var bytes = pixels.toPNG();
+			var fileName = tile.tileX + "_" + tile.tileY + "_" + "w";
+			ctx.shared.savePrefabDat(fileName, "png", name, bytes);
+
+			var pixels = tile.surfaceIndexMap.capturePixels();
+			var bytes = pixels.toPNG();
+			var fileName = tile.tileX + "_" + tile.tileY + "_" + "i";
+			ctx.shared.savePrefabDat(fileName, "png", name, bytes);
+		}
+	}
+
 	public function saveBinary( ctx : Context ) {
 	public function saveBinary( ctx : Context ) {
 		var count = terrain.surfaces.length;
 		var count = terrain.surfaces.length;
 		for( i in 0 ... count ) {
 		for( i in 0 ... count ) {
@@ -262,6 +265,8 @@ class Terrain extends Object3D {
 		}
 		}
 	}
 	}
 
 
+	#end
+
 	public function loadBinary( ctx : Context ) {
 	public function loadBinary( ctx : Context ) {
 
 
 		terrain.surfaceArray = new h3d.scene.pbr.terrain.Surface.SurfaceArray(surfaceCount, surfaceSize);
 		terrain.surfaceArray = new h3d.scene.pbr.terrain.Surface.SurfaceArray(surfaceCount, surfaceSize);
@@ -403,7 +408,7 @@ class Terrain extends Object3D {
 	override function edit( ctx : EditContext ) {
 	override function edit( ctx : EditContext ) {
 		super.edit(ctx);
 		super.edit(ctx);
 		var props = new hide.Element('<div></div>');
 		var props = new hide.Element('<div></div>');
-		if( editor == null ) editor = new TerrainEditor(this, ctx.properties.undo);
+		if( editor == null ) editor = new hide.prefab.terrain.TerrainEditor(this, ctx.properties.undo);
 		editor.editContext = ctx;
 		editor.editContext = ctx;
 		editor.setupUI(props, ctx);
 		editor.setupUI(props, ctx);
 		props.append('
 		props.append('

+ 1 - 1
hrt/prefab/terrain/UnpackWeight.hx

@@ -1,4 +1,4 @@
-package hide.prefab.terrain;
+package hrt.prefab.terrain;
 
 
 class UnpackWeight extends h3d.shader.ScreenShader {
 class UnpackWeight extends h3d.shader.ScreenShader {