加强版的Moon-Logic,给喜欢写代码整活儿的朋友们的礼物
异星工厂吧
全部回复
仅看楼主
level 10
zhuyw05
楼主
异星工厂最大的萌点,在我看来就是电路信号系统。而信号系统里最强的mod,自然就是Moon-logic,可以自己动手写lua脚本的运算器
Moon Logic - Factorio Mods
2023年09月07日 15点09分
1
level 10
zhuyw05
楼主
原版mod的链接在此
https ://mods.factorio.com/mod/Moon_Logic
2023年09月07日 15点09分
2
level 10
zhuyw05
楼主
靠这个东西,小到写一个靠原版电路难以搭出来的“取最小值”,大到彻底自动化你的基地。可以挖的潜力非常大! 我之前做过一个小作品
https://www.bilibili.com/video/BV1yh411q7T5/?spm_id_from=333.999.0.0&vd_source=c599f1c516205f55ffca3aeede288495
只要打个信号,就自动做出你要的东西,就是基于这个mod编程。
2023年09月07日 15点09分
3
level 10
zhuyw05
楼主
然而真的用的话,你会发现这个东西限制也非常多。主要是因为你写的代码并不是运行在原生底层,而是一个sandbox上。因此你没法直接访问游戏本身的数据,例如配方的信息, 机器的信息等等。这在有些工作中是非常必要的,因此我上面的那个档,用了极其麻烦而且迂回的方法。
因此这次,我决定直接对这个mod动手,给它加强一些功能。
2023年09月07日 15点09分
4
level 10
zhuyw05
楼主
玩SE,PY这种大mod的兄弟们知道,同样一个东西,前期后期做法是不一样的。后期往往会解锁高效配方,前期则只能用低效的。因此,读取科技当前已经解锁的配方非常有用!(PY的科技升级有时还会替换掉一些配方,即激活一个新配方同时disable一个旧的)。
添加了get_all_enabled_recipes函数,返回所有当前可用的配方。下图多点了几个油处理配方,因此输出多了一些原来没有的。
注意,在原版情况下,很多配方名字本身不是一个有效的signal name,因此无法作为moon combinator的输出。装一个叫做Crafting Combinator Xeraph's Fork的mod可以完美解决这个问题
2023年09月07日 16点09分
5
level 10
zhuyw05
楼主
添加了get_recipe_details 函数,可以读取配方所有有用的信息
返回值包括ingredient_table, products_table, net_ingredient_table, net_products_table, energy, craftable_machines
六个信息。由于有些配方input和output有某种物品重复出现(原版中就是铀增殖,各种mod里则到处都是),因此需求的物品,和净消耗/净产出物品都需要给出。
energy是在速度=1的机器上运行这个配方需要的时间,craftable_machines 则是这个配方可以在哪些机器上使用(不包括character,手搓)
2023年09月07日 16点09分
6
level 10
zhuyw05
楼主
Check_recipe_crafting_machines。返回能用这个配方的机器。是上面那个函数的一部分。
做重复了
2023年09月07日 16点09分
7
level 10
zhuyw05
楼主
几个实用的数学函数,包括取最大,最小的key,整个table做乘法,加法,以及判断table A是否能cover B (例如判断你的存货是否够做某个东西),都是我自己会用到的一些功能。
2023年09月07日 16点09分
8
level 10
zhuyw05
楼主
哦对还有这个 获取一个机器的大小。原版里大部分机器都是3格,炼油厂5格。某些mod(说的就是你PY)则非常放飞自我 ,边长20的机器都有。。
可以看到,组装机和炼油厂的width和height分别为(3,3) 和(5,5),
但是石炉的width是1.59 。。。
因为直接读的selection_box的信息。可能你需要向上取整一下(基本上自动生成蓝图才会用到这个功能,真有人会用这个去写这种功能吗。。)
2023年09月07日 16点09分
10
level 10
zhuyw05
楼主
下载链接好像被吞了 再贴一次
链接:
[无效] https://pan.baidu.com/s/1GD2vRwylm79-17jxT5JlNQ?pwd=jro8
提取码:jro8
--来自百度网盘超级会员V9的分享
2023年09月07日 16点09分
11
level 6
小马珍珠😮
虽然好像看不懂,但是支持
2023年09月07日 17点09分
12
level 10
zhuyw05
楼主
链接:
[无效] https://pan.baidu.com/s/1MS2HuRLLk9f-KYJBjjB--Q?pwd=7h9u
提取码:7h9u
--来自百度网盘超级会员V9的分享
修正了一下get_min和get_max.
增加get_placeable_products_from_recipes函数,作用是,返回所有当前科技可以制造的,可以放下去的建筑的物品列表。包括各种制造机,各种传送带,管子,爪子,也包括所有的箱子,罐子,机器人基站,火车,汽车等等。
当你解锁新的科技,这个列表会自动更新
配合上面的函数,你应该可以很容易的造出一个单机器供应全世界的智能超市了
。而且,放下之后就不用管了。不然像PY那种不同级别的机器上百种,一个个点也很烦呐。
2023年09月08日 01点09分
13
天际幻想星空侠
链接已失效,楼主再发一个?
2024年09月14日 08点09分
level 5
wopei11
支持一下,晚上试试py
2023年09月08日 02点09分
14
zhuyw05
我写这玩意就是对付PY的,但是现在还没有拿它开测。因为develop这玩意需要频繁的修改mod然后重启游戏,加载PY太慢。老哥感兴趣可以试试,也可以先插个眼,等养肥了再试
2023年09月08日 02点09分
wopei11
ok,中午看看有时间可以测试一下,现在正在开第三瓶
2023年09月08日 02点09分
wopei11
@zhuyw05
进游戏没有图标,这个是自动设计蓝图的吧,进游戏找不到图标,不知道是不是工厂规划师冲突
2023年09月08日 05点09分
wopei11
一出工厂规划师也不行,游戏里面没有对应的选项
2023年09月08日 05点09分
level 5
wopei11
但愿不死机
2023年09月08日 02点09分
15
level 5
鹌鹑精
看起来不错
2023年09月08日 12点09分
16
1
2
尾页