spaceengine modding语言的python、asp和json抽象
selang的Python项目详细描述
#空间引擎修改语言抽象
使用python,在空间引擎中定义完整的系统。
有了太阳,地球和月亮。
你可以在"mysimplesystem.lp"中写下以下几行:
``asp
root(太阳,"mysimplesystem")。
轨道(太阳,轨道(地球,月亮,"0.005"),1)。
````
ne/install/dir
您现在可以运行spaceengine并按f3搜索并转到"mysimplesystem"。
es)在$path中。
将创建ta/kalgash.json
8个文件:在"data/kalgash.json"中定义的四个kalgash系统中,每一个都有两个文件。
这两个文件对应于spaceengine modding接口,需要一个星记录(应命名为system record)和一个行星记录(应命名为ob请注意,以`.star.sc`结尾的星记录非常简单。
将直接将生成的文件放入预期的目录中,即"<;spaceengine installation directory>;"/addons/catalogs/{star,planet}/`.
如果需要,可以使用此cli:
api示例
想要用太阳、地球和月亮来复制一个简单的太阳系。
"太阳":(1,轨道(1,偏心率=0.04),
1:(‘月球’,轨道(0.05),
,
1:(‘月球’,轨道(0.05),
,
,
{{{{{非显式物体
1:ref(‘地球’,地球质量=1.2),"‘超级地球
/>地球到地球模型(模型,'~/游戏/航天引擎/航天引擎/航天引擎/'
``
//
//////
se lang使用的内部模型非常简单,因此可以直接使用:
``python
从selang导入ref,orbit,model,model_到se
model=model(
"我的小系统",
(
("太阳",1,orbit(1,偏心率=0.04)),
(1,"月球",轨道(0.05))
),
{
1:ref('地球',地球质量=1.2),超级地球
}
很好的记录和强大的。然而,除了文档中描述的简单情况之外,
您最终将编写python脚本[以自动化一些标准的东西,比如rings](lucas.bourneuf.net/blog/uess.html)。
任何格式创建的内部模型。
任何情况下使用的内部模型。
asp
asp是(逻辑)编程语言,类似于prolog。
它允许逻辑关系的高级表达,这对于DSL来说非常有趣。
缺乏黑洞,轨道(红矮星,地球,"0.2",10)。
%kalgash 3系统
轨道(黑洞,环(太阳,12,轨道(1,地球,1),轨道(1,地球,1)),20)。
%kalgash 4系统
%kalgash4系统
轨道(黑洞,环(太阳,8,太阳,8,1,逆行)。
轨道(黑洞,地球,"2.5")。
轨道(黑洞,环(太阳,8,太阳,8,"4")轨道(黑黑洞,环(太阳,8,"4")。
<
<
br/>
%kalgash 5系统
轨道(黑洞,环(sun,8),1,逆行)。
轨道(黑洞,地球,"2.5")。
轨道(黑洞,环(蓝巨人,8),20)。
````
请参阅[data/](data/)中的其他示例。
json
json与python基本类型非常接近,因此可以实现到python api的准明显映射。
输入ED。它很冗长,但很简单:
``json
{
"name":"kalgash 3"、
"uid":"kalgash"、
"type":"黑洞"、
"childs":{
"type":["ring"、12,"sun"]、
"distance":20、
"childof":{
"1":{
"type":"earth"、
"distance":1
}
}
}
}
```
参见[data/](data/)中的其他示例。
spaceengine的ng可能不是这两种类型之一,
但是我很高兴制作了相应的解释器,并将它们用于一些[用例](lucas.bourneuf.net/blog/se-lang.html)。
dev
-[x]asp输入:简短而简单。
-[x]json输入:不可编程,但对简单工作很有用。
-[x]python输入:良好的enough
-[]lisp输入。
-[x]从文件中读取输入
-[x]从[planetplanet.net]复制kalgash系统(https://planetplanet.net/2018/03/21/asimov-kalgash-take2/):[参见博客条目](https://lucas.bourneuf.net/blog/se-lang.html)
-[x]复制[uess](https://lucas.bourneuf.net/blog/uess.html)
-[x]找到简化uess e的方法编码:python完成这项工作。
-[x]用户为环设置的间距
-[x]对环元素的特定处理
-[x]允许对对象使用标准名称:`sun`,`earth`,…
-[x]允许对对象使用非标准名称:`planet`和`star`函数。
-[]注入任意的航天引擎脚本代码。
-[x]全轨道定义
-[]测试套件
-[]将星重心作为对象处理(底线:处理二进制对象所必需的)
否
是的。
[SE先锋](https://github.com/aluriak/SE先锋),用于异步多人游戏。
使用python,在空间引擎中定义完整的系统。
有了太阳,地球和月亮。
你可以在"mysimplesystem.lp"中写下以下几行:
``asp
root(太阳,"mysimplesystem")。
轨道(太阳,轨道(地球,月亮,"0.005"),1)。
````
ne/install/dir
您现在可以运行spaceengine并按f3搜索并转到"mysimplesystem"。
es)在$path中。
将创建ta/kalgash.json
8个文件:在"data/kalgash.json"中定义的四个kalgash系统中,每一个都有两个文件。
这两个文件对应于spaceengine modding接口,需要一个星记录(应命名为system record)和一个行星记录(应命名为ob请注意,以`.star.sc`结尾的星记录非常简单。
将直接将生成的文件放入预期的目录中,即"<;spaceengine installation directory>;"/addons/catalogs/{star,planet}/`.
如果需要,可以使用此cli:
api示例
想要用太阳、地球和月亮来复制一个简单的太阳系。
"太阳":(1,轨道(1,偏心率=0.04),
1:(‘月球’,轨道(0.05),
,
1:(‘月球’,轨道(0.05),
,
,
{{{{{非显式物体
1:ref(‘地球’,地球质量=1.2),"‘超级地球
/>地球到地球模型(模型,'~/游戏/航天引擎/航天引擎/航天引擎/'
``
//
//////
se lang使用的内部模型非常简单,因此可以直接使用:
``python
从selang导入ref,orbit,model,model_到se
model=model(
"我的小系统",
(
("太阳",1,orbit(1,偏心率=0.04)),
(1,"月球",轨道(0.05))
),
{
1:ref('地球',地球质量=1.2),超级地球
}
很好的记录和强大的。然而,除了文档中描述的简单情况之外,
您最终将编写python脚本[以自动化一些标准的东西,比如rings](lucas.bourneuf.net/blog/uess.html)。
任何格式创建的内部模型。
任何情况下使用的内部模型。
asp
asp是(逻辑)编程语言,类似于prolog。
它允许逻辑关系的高级表达,这对于DSL来说非常有趣。
缺乏黑洞,轨道(红矮星,地球,"0.2",10)。
%kalgash 3系统
轨道(黑洞,环(太阳,12,轨道(1,地球,1),轨道(1,地球,1)),20)。
%kalgash 4系统
%kalgash4系统
轨道(黑洞,环(太阳,8,太阳,8,1,逆行)。
轨道(黑洞,地球,"2.5")。
轨道(黑洞,环(太阳,8,太阳,8,"4")轨道(黑黑洞,环(太阳,8,"4")。
<
<
br/>
%kalgash 5系统
轨道(黑洞,环(sun,8),1,逆行)。
轨道(黑洞,地球,"2.5")。
轨道(黑洞,环(蓝巨人,8),20)。
````
请参阅[data/](data/)中的其他示例。
json
json与python基本类型非常接近,因此可以实现到python api的准明显映射。
输入ED。它很冗长,但很简单:
``json
{
"name":"kalgash 3"、
"uid":"kalgash"、
"type":"黑洞"、
"childs":{
"type":["ring"、12,"sun"]、
"distance":20、
"childof":{
"1":{
"type":"earth"、
"distance":1
}
}
}
}
```
参见[data/](data/)中的其他示例。
spaceengine的ng可能不是这两种类型之一,
但是我很高兴制作了相应的解释器,并将它们用于一些[用例](lucas.bourneuf.net/blog/se-lang.html)。
dev
-[x]asp输入:简短而简单。
-[x]json输入:不可编程,但对简单工作很有用。
-[x]python输入:良好的enough
-[]lisp输入。
-[x]从文件中读取输入
-[x]从[planetplanet.net]复制kalgash系统(https://planetplanet.net/2018/03/21/asimov-kalgash-take2/):[参见博客条目](https://lucas.bourneuf.net/blog/se-lang.html)
-[x]复制[uess](https://lucas.bourneuf.net/blog/uess.html)
-[x]找到简化uess e的方法编码:python完成这项工作。
-[x]用户为环设置的间距
-[x]对环元素的特定处理
-[x]允许对对象使用标准名称:`sun`,`earth`,…
-[x]允许对对象使用非标准名称:`planet`和`star`函数。
-[]注入任意的航天引擎脚本代码。
-[x]全轨道定义
-[]测试套件
-[]将星重心作为对象处理(底线:处理二进制对象所必需的)
否
是的。
[SE先锋](https://github.com/aluriak/SE先锋),用于异步多人游戏。