|
@@ -320,7 +320,6 @@ class Level3D extends FileView {
|
|
function get_properties() return sceneEditor.properties;
|
|
function get_properties() return sceneEditor.properties;
|
|
|
|
|
|
override function onDisplay() {
|
|
override function onDisplay() {
|
|
- saveDisplayKey = "Level3D:" + getPath().split("\\").join("/").substr(0,-1);
|
|
|
|
data = new hrt.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));
|
|
@@ -427,6 +426,7 @@ class Level3D extends FileView {
|
|
|
|
|
|
statusText = new h2d.Text(hxd.res.DefaultFont.get(), scene.s2d);
|
|
statusText = new h2d.Text(hxd.res.DefaultFont.get(), scene.s2d);
|
|
statusText.setPosition(5, 5);
|
|
statusText.setPosition(5, 5);
|
|
|
|
+ statusText.visible = tools.getDisplayState("");
|
|
|
|
|
|
posToolTip = new h2d.Text(hxd.res.DefaultFont.get(), scene.s2d);
|
|
posToolTip = new h2d.Text(hxd.res.DefaultFont.get(), scene.s2d);
|
|
posToolTip.dropShadow = { dx : 1, dy : 1, color : 0, alpha : 0.5 };
|
|
posToolTip.dropShadow = { dx : 1, dy : 1, color : 0, alpha : 0.5 };
|
|
@@ -720,7 +720,9 @@ class Level3D extends FileView {
|
|
var inters = sceneEditor.getInteractives(p);
|
|
var inters = sceneEditor.getInteractives(p);
|
|
for(inter in inters) {
|
|
for(inter in inters) {
|
|
if(inter != null) {
|
|
if(inter != null) {
|
|
- inter.visible = interIsVisible;
|
|
|
|
|
|
+ var i3d = Std.downcast(inter,h3d.scene.Interactive);
|
|
|
|
+ if( i3d != null )
|
|
|
|
+ i3d.visible = interIsVisible;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -752,7 +754,19 @@ class Level3D extends FileView {
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
|
|
|
|
- public static function getLevelSheet() {
|
|
|
|
|
|
+ function getGroundPolys() {
|
|
|
|
+ var groundGroups = data.findAll(p -> if(p.name == "ground") p else null);
|
|
|
|
+ var ret = [];
|
|
|
|
+ for(group in groundGroups)
|
|
|
|
+ group.findAll(function(p) {
|
|
|
|
+ if(p.name == "nocollide")
|
|
|
|
+ return null;
|
|
|
|
+ return p.to(hrt.prefab.l3d.Polygon);
|
|
|
|
+ },ret);
|
|
|
|
+ return ret;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ static function getLevelSheet() {
|
|
return Ide.inst.database.getSheet(Ide.inst.currentConfig.get("l3d.cdbLevel", "level"));
|
|
return Ide.inst.database.getSheet(Ide.inst.currentConfig.get("l3d.cdbLevel", "level"));
|
|
}
|
|
}
|
|
|
|
|
|
@@ -761,13 +775,13 @@ class Level3D extends FileView {
|
|
return types.find(t -> getCdbTypeId(t) == id);
|
|
return types.find(t -> getCdbTypeId(t) == id);
|
|
}
|
|
}
|
|
|
|
|
|
- public static function getCdbTypes() {
|
|
|
|
|
|
+ static function getCdbTypes() {
|
|
var levelSheet = getLevelSheet();
|
|
var levelSheet = getLevelSheet();
|
|
if(levelSheet == null) return [];
|
|
if(levelSheet == null) return [];
|
|
return [for(c in levelSheet.columns) if(c.type == TList) levelSheet.getSub(c)];
|
|
return [for(c in levelSheet.columns) if(c.type == TList) levelSheet.getSub(c)];
|
|
}
|
|
}
|
|
|
|
|
|
- public static function getCdbTypeId(?p: PrefabElement, ?sheet: cdb.Sheet) : String {
|
|
|
|
|
|
+ static function getCdbTypeId(?p: PrefabElement, ?sheet: cdb.Sheet) : String {
|
|
if(p != null) {
|
|
if(p != null) {
|
|
if(p.props == null)
|
|
if(p.props == null)
|
|
return null;
|
|
return null;
|
|
@@ -778,24 +792,12 @@ class Level3D extends FileView {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- public static function getCdbModel(e:hrt.prefab.Prefab):cdb.Sheet {
|
|
|
|
|
|
+ static function getCdbModel(e:hrt.prefab.Prefab):cdb.Sheet {
|
|
var typeName : String = getCdbTypeId(e);
|
|
var typeName : String = getCdbTypeId(e);
|
|
if(typeName == null)
|
|
if(typeName == null)
|
|
return null;
|
|
return null;
|
|
return resolveCdbType(typeName);
|
|
return resolveCdbType(typeName);
|
|
}
|
|
}
|
|
|
|
|
|
- function getGroundPolys() {
|
|
|
|
- var groundGroups = data.findAll(p -> if(p.name == "ground") p else null);
|
|
|
|
- var ret = [];
|
|
|
|
- for(group in groundGroups)
|
|
|
|
- group.findAll(function(p) {
|
|
|
|
- if(p.name == "nocollide")
|
|
|
|
- return null;
|
|
|
|
- return p.to(hrt.prefab.l3d.Polygon);
|
|
|
|
- },ret);
|
|
|
|
- return ret;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
static var _ = FileTree.registerExtension(Level3D,["l3d"],{ icon : "sitemap", createNew : "Level3D" });
|
|
static var _ = FileTree.registerExtension(Level3D,["l3d"],{ icon : "sitemap", createNew : "Level3D" });
|
|
}
|
|
}
|