JS模组教程-传输方块

来自Mindustry中文wiki
利航星留言 | 贡献2026年7月3日 (五) 00:06的版本 →‎装包传送带
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

传输方块

统称传送带、液体导管、电力节点、热传输机。
本文档面向JavaScript模组编辑
本文档代码高度抽象化!!!!

预先约定

JavaScript相较于Json的优势之一,在于可以自己规定数据表示形式。
于是本文档使用如下约定:

function 新建(类名称,注册名称,中文名称,数据对象){
	var type = 你自己定义的类名称搜索函数(类名称);
	var setObj = 你自己定义的数据对象处理函数(类名称,数据对象);
	var obj = extend(type, 注册名称, setObj);
	你自己定义的后处理函数(obj);
	exports[nameStr] = obj;//导出内容
	return obj;
}

对于数据对象,一些基本的obj数据对象的对照表如下:

表格标题
obj键名 数据对象键名 数据类型 备注
health 生命值 数字
size 大小 数字 尺寸为size*size
requirements 建造材料 对象键值对 特殊,见下方

对于requirements建议使用如下方案:

var requirementsObj = 数据对象.建造材料;
var ra = [];
for (var k in requirementsObj) {
	ra[ra.length++] = 库.组.物品[k];
	ra[ra.length++] = requirementsObj[k];
}
obj.requirements = ItemStack.with.apply(null, ra);

其中:

库.组.物品 = {
	//赛普罗
	废料: Items.scrap,
	铜: Items.copper,
	铅: Items.lead,
	石墨: Items.graphite,
	煤: Items.coal,
	钛: Items.titanium,
	钍: Items.thorium,
	硅: Items.silicon,
	塑钢: Items.plastanium,
	相位物: Items.phaseFabric,
	合金: Items.surgeAlloy,
	孢子: Items.sporePod,
	沙: Items.sand,
	爆炸物: Items.blastCompound,
	燃烧物: Items.pyratite,
	玻璃: Items.metaglass,
	//埃里克尔
	铍: Items.beryllium,
	钨: Items.tungsten,
	氧化物: Items.oxide,
	碳化物: Items.carbide,
	//未出现
	裂变物质: Items.fissileMatter,
	休眠囊肿: Items.dormantCyst
}

传送带

传送带就是传送物品的方块。 为正确显示在方块栏中,需要设置: obj.category = Category['distribution'];

简单传送带

即对于你自己定义的类名称搜索函数('基本传送带')==Conveyor而言。
游戏原版内容如: 传送带

最简单的传送带需要具备一些必要的属性,如以下示例:

新建('基本传送带','HighQualityConveyor','优质传送带',{
	生命值:55,
	大小:1,
	建造材料:{
		铜:1,
		铅:1
	},
	速度:6
});

对于数据对象,obj数据对象的对照表如下:

表格标题
obj键名 数据对象键名 数据类型 备注
displayedSpeed 速度 数字 你还需要obj.speed = obj.displayedSpeed / 120

额外的,需要在sprites/添加以下图片纹理,如对于HighQualityConveyor

  • HighQualityConveyor-0-0.png
  • HighQualityConveyor-0-1.png
  • HighQualityConveyor-0-2.png
  • HighQualityConveyor-0-3.png
  • HighQualityConveyor-1-0.png
  • HighQualityConveyor-1-1.png
  • HighQualityConveyor-1-2.png
  • HighQualityConveyor-1-3.png
  • HighQualityConveyor-2-0.png
  • HighQualityConveyor-2-1.png
  • HighQualityConveyor-2-2.png
  • HighQualityConveyor-2-3.png
  • HighQualityConveyor-3-0.png
  • HighQualityConveyor-3-1.png
  • HighQualityConveyor-3-2.png
  • HighQualityConveyor-3-3.png
  • HighQualityConveyor-4-0.png
  • HighQualityConveyor-4-1.png
  • HighQualityConveyor-4-2.png
  • HighQualityConveyor-4-3.png

装甲传送带

即对于你自己定义的类名称搜索函数('装甲传送带')==ArmoredConveyor而言。
游戏原版内容如: 装甲传送带

装甲传送带是简单传送带的升级,需要具备与之相同的属性,如以下示例:

新建('装甲传送带','ReinforcedConvey','强化传送带',{
	生命值:100,
	大小:1,
	建造材料:{
		铜:1,
		铅:1,
		石墨:1
	},
	速度:6
});

同样的,需要在sprites/添加图片纹理,与普通传送带相同。

装包传送带

即对于你自己定义的类名称搜索函数('装包传送带')==StackConveyor而言。
游戏原版内容如: 塑钢传送带

装包传送带需要具备一些必要的属性,如以下示例:

新建('装包传送带','SlideRailConveyor','滑轨传送带',{
	生命值:35,
	大小:1,
	建造材料:{
		石墨:1,
		硅:1,
	},
	速度:10,
	物品容量:1,
	路由器外部输出:false
});

对于数据对象,obj数据对象的对照表如下:

表格标题
obj键名 数据对象键名 数据类型 备注
outputRouter 路由器外部输出 true或false 效果未知,与路由器和合金路由器配合均无效
itemCapacity 物品容量 数字
speed 速度 数字 实际上需要obj.speed = (setObj.速度 || 15) / obj.itemCapacity / 60;

额外的,需要在sprites/添加以下图片纹理,如对于SlideRailConveyor

  • SlideRailConveyor-0.png 中间底部
  • SlideRailConveyor-1.png 入口底部
  • SlideRailConveyor-2.png 出口底部
  • SlideRailConveyor-edge.png 边线
  • SlideRailConveyor-stack.png 小车

物品管道

即对于你自己定义的类名称搜索函数('物品管道')==Duct而言。
游戏原版内容如: 物品管道

基本上一样,如以下示例:

新建('物品管道','MetaglassItemsDuct','玻璃物品管道',{
	生命值:40,
	大小:1,
	建造材料:{
		玻璃:1,
		石墨:1
	},
	速度:13
})

对于数据对象,obj数据对象的对照表如下:

表格标题
obj键名 数据对象键名 数据类型 备注
displayedSpeed 速度 数字 实际上需要 obj.speed = 60 / ((setObj.速度 || 40) / obj.itemCapacity);

额外的,需要在sprites/添加以下图片纹理,如对于MetaglassItemsDuct

  • MetaglassItemsDuct-bottom.png
  • MetaglassItemsDuct-bottom-0.png
  • MetaglassItemsDuct-bottom-1.png
  • MetaglassItemsDuct-bottom-2.png
  • MetaglassItemsDuct-bottom-3.png
  • MetaglassItemsDuct-bottom-4.png
  • MetaglassItemsDuct-top-0.png
  • MetaglassItemsDuct-top-1.png
  • MetaglassItemsDuct-top-2.png
  • MetaglassItemsDuct-top-3.png
  • MetaglassItemsDuct-top-4.png

液体导管

电力节点

热传输机