本篇教程由作者设定使用 CC BY-NC-SA 协议。
一、设计思路
这篇教程是用来为更多实用设备中的发电机补充燃料的,同时也是关于OC的lua的另一篇实用范例。
先表扬下更多实用设备中的发电机:非常好用,几乎能将手头的一切资源用来发电,而且效率不错!可谓发展初期能量来源的首选。就算发展到后期,64倍速的高温熔炉发电机也能在能源短缺时大显身手——只怕你的燃料跟不上!不过它也有一个小问题:当它内部的能源缓存区满后,正在燃烧的燃料无法中止,只能一直烧完。假如你的电网经常工作在负荷不满的状态,或是有AE之类缓慢消耗能量的设备,那你的燃料利用率就非常糟糕了……甚至可能90%的燃料都会浪费掉。特别是如果使用了煤炭块、炽焱之尘(TE)或固体/魔法超级燃料(GT)这样的昂贵燃料,浪费掉的部分就更加可观了。
也曾考虑过建个大大的能量储库,再用红石电路来激活某些设备来定时提供燃料。但能源涉及到了生产的方方面面,总有各种意外需要人为干预,令强迫症的我十分不爽。由此产生了设计一个自动控制程序的想法。
设计要求:通过电脑检测发电机内部能量缓存的值,如果少于某个设定的值且发电机内没有燃料,就加入燃料。
二、工作环境
我的世界:minecraft 1.7.10
开放式电脑:OpenComputers 1.7.2.1166
更多实用设备:ExtraUtilities 1.2.12
其它MOD随意
三、硬件摆放
正面图:
背面图:
说明:
电脑和显示屏不需要用最好的,只要能运行得起来就可以。OC中差不多所有零件都可以拆成原材料,所以一开始可以做个普通电脑先用着,后期资源充分了再换更好的。而且只需要安装CPU、显卡(如果是APU就不需要显卡了)、内存、硬盘、EEPROM就行了,这台电脑基本是台专用电脑。
在发电机边上放置的是适配器和换位器。适配器可以把发电机变成一个电脑可以识别的设备,更多实用设备中所有的发电机都是同一个名字:generatorfurance,然后电脑就可以读取其缓存能量值。换位器是用来为发电机补燃料的,所以换位器需要与发电机和箱子相邻。提醒注意:程序自动识别换位器周围各容器,1格的容器被认为是发电机,大于1格的容器被认为是放燃料的箱子。所以换位器周边不要再有其它容器,包括电脑机箱(这是一个10格容器)。
箱子里放进燃料。只要是能用的都可以放进去。箱子种类也不限制,我的生存档里用的是个多页箱子,584个格子放满了炽焱之尘!电脑会按顺序一个个的送进发电机的。
箱子下面的能量单元可以换成任一MOD里的能量储库,或是直接用能量管道送出去也行。正常工作状态下发电机内至少会保留约1/4的能量,对于64x发电机就是1.6MRF,对于最低版本的发电机也有25KRF。足够初期那点消耗了。
四、软件部分
电脑装好后,先要装一个因特网卡以从互联网上下载程序范例。当然下载完成后就可以拔下来了,手头资源紧张的话还可以拆成材料。
打开电脑,键入 pastebin get 3Z5CJTjN generator.lua 并回车运行,当前目录下就多了一个generator.lua文件。直接运行它就可以。如果觉得这个名字太长,可以另起一个简单的名字。
程序运行后,会自动将屏幕分辨率调整为50*14。基础显卡的分辨率也有50*16,因此不管用哪种显卡和显示器都能正常工作。
工作时显示内容如下:
各部分内容如下:
第1行是当前的时钟(游戏中)和缓存能量数值。你可以把这台电脑当时钟用。
第2行是能量条,以屏幕宽度为最大值,直观显示当前能量占最大缓存的占比。上图中能够看出当前能量大约有满值的10%。
第3行~第6行是上次送入燃料的属性和数量。OC虽然可以显示中文,但对中文的支持并不完美,label内容显示可能出现“?”,请不要太在意这些细节。每次送入燃料数量设置为2是为了防止燃料断档,若觉得太小或太大请自行修改程序中k值。
第7行是上次送入燃料的时间(也是游戏中的时间)。
另:如果你想建一个由不同发电机组成的发电厂,那么可以用这种摆法,摆成2*2*2的发电单元。这样不仅占地小,也相当的符合现代工业审美不是么?
五、小结
这个程序我已经放心使用两天了,对于更多实用设备中所有发电机都做了测试,都可以正常工作,堪称完美。特别是TNT发电机,每次放燃料都免不了要挨那么一下下,用这个就可以扔得远远的了!只要把火药或TNT用管道送进箱子,然后让它自己玩去吧。唯一美中不足的是还不能做到对多个不同的发电机进行同时控制。其实电脑的性能是没问题的,但是如何识别它们是一个不小的问题(谁让它们的名字全一样!)。
希望这个小程序能让大家更喜欢OC这个模组,也让更多实用设备中的发电机得到更广泛的利用。