该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
3)添加、更新和删除目录对象
如果使用Space Engine 的sc脚本描述一个新对象,它将被添加到SE中。New object(新对象)意味着在为其编写脚本之前
它在SE中不存在。更准确地说,在SE中不存在相同类型(例如恒星)和相同名称的对象。如果同名类型的对象已经
存在于SE中,它将被更新或与您在脚本中提供的数据合并。合并的顺序(data文件夹的具有优先级)由sc文件或打包sc文件
的pak文件的修改日期定义。更新的文件具有更高的优先级,因此前一个文件中该对象脚本中的一些数据将被提供
的新数据所替代。如果前一个脚本没有一些特定的数据(例如planet mass),但是新脚本有,那么将使用新提供的数据。
行星物体(行星、卫星、小行星、彗星和多恒星系统中的恒星)的识别方法更为复杂。Space Engine允许有许多同名的
行星对象,但具有不同的父体(在参数ParentBody中指定)。例如,太阳系有两个天体的名字是“潘多拉”:土星的卫星
和小行星。它们有不同的父体,土星和太阳,所以它们在SE中是不同的物体。
在查找相同的对象时,spaceengine会扫描脚本中提供的所有可选名称。例如,可以用“Toliman/Bungula”来描述脚本
中的一个星,从而更新旧星“alf-cen/toliman/rigel-kentaurus/gliese 559”。spaceengine会在找到名称“toliman”
时检测到这是同一个对象。它将用脚本中提供的新数据更新旧星,包括星名:它将把新提供的名称“Bungula”添加到
备选名称列表中,因此它将成为"Alf Cen/Toliman/Bungula/Rigel Kentaurus/Gliese 559"。如前所述,对于行星对象,
必须指定父对象。只有当对象的名称和父对象名称相同时,space engine才会合并它们(可以使用父对象的任何其他名称)
可以取消旧脚本中的一些数据,例如,NoClouds true将禁用旧脚本中的Clouds{}标记。但是,如果为在旧脚本中没有正确的云的行星提供Clouds{ }标记,则将使用这些Clouds{ }标记
通过使用其他标记定义对象的类型,可以更改对象的类型。例如,如果旧脚本中有一个行星“Kek”定义为行星“Kek”,
可以创建了一个新脚本并将其定义为Moon“Kek”,那么它的类型将更改为Moon。更改类型只能在当前目录支持的类型
集中进行。这意味着你不能使用“Saturn”标签将一个名为“Saturn”的星系添加到行星目录中。它将被SE忽略,
因为标签星系在行星目录中是不允许的。以下是相应目录中允许的对象类型(标签)列表:
行星目录 catalogs/planets/*.sc: Star, Planet, Moon, DwarfPlanet, DwarfMoon, Asteroid, Comet, Barycenter
明星目录 catalogs/stars/*.sc: Star, StarBarycenter
星系目录 catalogs */catalogs/galaxies/*.sc: Galaxy, Quasar
星团目录 catalogs */catalogs/clusters/*.sc: Cluster
星云目录 catalogs/nebuale/*.sc: Nebula
可以从旧目录中删除(更准确地说,禁用)某个对象。将参数Remove与要删除的对象名称一起使用。
输入到Remove后面的""里面,输入""符号,注意大小写,需要在英文状态下,按shift+"键2次输入。
示范代码,Remove "Toliman"
它必须在任何标记之外使用。可以使用对象的任何替代名称。
星型目录还支持具有相同效果的RemoveStar参数(用于向后兼容性)。在行星目录中,
必须使用更复杂的结构,比如需要从太阳系删除土星,示范 代码:Remove "Saturn" { ParentBody "Sol" }。
这是因为SpaceEngine根据行星的名称和它的父类名称来识别行星。
在升级默认SE目录时,删除旧对象非常有用。例如,默认的恒星目录仍然有许多由两个单独的恒星
描述的双星。可以使用恒星目录中的Remove删除它们,并将重心描述添加到相同的恒星目录中。
然后制作一个行星目录,上面有两颗恒星,它们的轨道是正确的,质心是它们的母星。
注意:Remove参数影响所有目录文件,而与它们的修改日期无关。因此,如果使用一次,
就不可能再创建具有相同名称的相同类型的对象。它是0.980版本中的一个错误。
(4)检查目录中的错误
SpaceEngine可以将一些错误和警告输出到日志文件系统/se中。加载目录时进行日志记录。这对于捕获可能的
错误非常有用。启用日志记录有两种方法:全局日志记录和每个目录文件日志记录。全局日志级别由配置/主用,
全局日志记录级别由config / main-user.cfg文件中Log标记下的参数CatalogLogLevel(对于sc目录)
和CsvLogLevel(对于csv目录)控制。可能的值是:
0 - 不记录任何内容
1 - 记录错误和警告,使用main-user.cfg和sc文件中较小的日志级别,如果在那里定义的话
2 - 记录所有内容,使用main-user.cfg和sc文件中较小的日志级别,如果在那里定义的话
3 - 记录错误和警告,忽略所有sc文件中的日志级别
4 - 记录所有内容,忽略所有sc文件中的日志级别
最后两个用于覆盖所有sc文件中的日志级别设置(在CsvLogLevel参数中不可用)。它们用于全局搜索目录错误。
每个sc目录文件可以有自己的日志级别设置,由参数LogLevel指定,添加到全局空间的某处
(即标签Star,StarBarycenter等之外)。可能的值是:
0 - 不记录任何内容
1 - 仅记录错误和警告
2 - 记录所有内容
在处理目录时,建议在sc文件中指定LogLevel 2,在main-user.cfg中指定CatalogLogLevel 2,这样您就可以
在日志文件中获得有关星形解算器的所有信息(有关详细信息,请参阅创建星形)。如果只需要查看可能的错误,
请指定LogLevel 1.如果在目录的发行版中仍然可以看到某些错误或警告(例如,没有为星形提供RA / Dec数据,
星形解算器会在程序上生成它们) ,建议指定LogLevel 0,这样其他用户的日志文件就会清除与目录相关的错误。