|
@@ -138,25 +138,36 @@ class Reference extends Object3D {
|
|
if (refInstance != null)
|
|
if (refInstance != null)
|
|
return refInstance;
|
|
return refInstance;
|
|
|
|
|
|
- var refInstanceData = null;
|
|
|
|
|
|
+ var shouldLoadUniqueObject = #if editor true #else overrides != null #end;
|
|
|
|
+
|
|
#if editor
|
|
#if editor
|
|
try {
|
|
try {
|
|
#end
|
|
#end
|
|
- refInstanceData = @:privateAccess hxd.res.Loader.currentInstance.load(source).toPrefab().loadData();
|
|
|
|
|
|
+ if (shouldLoadUniqueObject) {
|
|
|
|
+ var refInstanceData = @:privateAccess hxd.res.Loader.currentInstance.load(source).toPrefab().loadData();
|
|
|
|
+
|
|
|
|
+ #if editor
|
|
|
|
+ originalSource = @:privateAccess hxd.res.Loader.currentInstance.load(source).toPrefab().loadData();
|
|
|
|
+ #end
|
|
|
|
+
|
|
|
|
+ if (overrides != null) {
|
|
|
|
+ refInstanceData = hrt.prefab.Diff.apply(refInstanceData, overrides);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ refInstance = hrt.prefab.Prefab.createFromDynamic(refInstanceData, null, new ContextShared(source, null, null, true));
|
|
|
|
+
|
|
|
|
+ } else {
|
|
|
|
+ refInstance = hxd.res.Loader.currentInstance.load(source).toPrefab().load();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ refInstance.shared.parentPrefab = this;
|
|
|
|
+
|
|
#if editor
|
|
#if editor
|
|
- originalSource = @:privateAccess hxd.res.Loader.currentInstance.load(source).toPrefab().loadData();
|
|
|
|
} catch (e) {
|
|
} catch (e) {
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
#end
|
|
#end
|
|
|
|
|
|
- if (overrides != null) {
|
|
|
|
- refInstanceData = hrt.prefab.Diff.apply(refInstanceData, overrides);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- refInstance = hrt.prefab.Prefab.createFromDynamic(refInstanceData, null, new ContextShared(source, null, null, true));
|
|
|
|
- refInstance.shared.parentPrefab = this;
|
|
|
|
-
|
|
|
|
return refInstance;
|
|
return refInstance;
|
|
}
|
|
}
|
|
|
|
|