JS模组教程-传输方块:修订间差异
(创建页面,内容为“=传输方块= 统称传送带、液体导管、电力节点、热传输机。<br/> '''''本文档面向JavaScript模组编辑'''''<br/> '''''本文档代码高度抽象化!!!! '''''<br/> ==预先约定== <strong>JavaScript相较于Json的优势之一,在于可以自己规定数据表示形式。</strong><br/> 于是本文档使用如下约定:<br/> <pre>function 新建(类名称,注册名称,中文名称,数据对象){ var type = 你自己定义…”) |
(→装包传送带) |
||
| (未显示同一用户的9个中间版本) | |||
| 第68行: | 第68行: | ||
==传送带== | ==传送带== | ||
传送带就是传送物品的方块。 | |||
为正确显示在方块栏中,需要设置: | |||
<code>obj.category = Category['distribution'];</code> | |||
===简单传送带=== | |||
''即对于<code>你自己定义的类名称搜索函数('基本传送带')==Conveyor</code>而言。<br/>'' | |||
''游戏原版内容如:<span class="mdtPixelIcon">[[File:Block-conveyor-ui.png|18px|link=传送带]]</span> [[传送带|传送带]]<br/>'' | |||
<br/> | |||
最简单的传送带需要具备一些必要的属性,如以下示例: | 最简单的传送带需要具备一些必要的属性,如以下示例: | ||
<pre>新建('基本传送带','HighQualityConveyor','优质传送带',{ | <pre>新建('基本传送带','HighQualityConveyor','优质传送带',{ | ||
| 第107行: | 第114行: | ||
*HighQualityConveyor-4-2.png | *HighQualityConveyor-4-2.png | ||
*HighQualityConveyor-4-3.png | *HighQualityConveyor-4-3.png | ||
===装甲传送带=== | |||
''即对于<code>你自己定义的类名称搜索函数('装甲传送带')==ArmoredConveyor</code>而言。<br/>'' | |||
''游戏原版内容如:<span class="mdtPixelIcon">[[File:Block-armored-conveyor-ui.png|18px|link=装甲传送带]]</span> [[装甲传送带|装甲传送带]]<br/>'' | |||
<br/> | |||
装甲传送带是简单传送带的升级,需要具备与之相同的属性,如以下示例: | |||
<pre>新建('装甲传送带','ReinforcedConvey','强化传送带',{ | |||
生命值:100, | |||
大小:1, | |||
建造材料:{ | |||
铜:1, | |||
铅:1, | |||
石墨:1 | |||
}, | |||
速度:6 | |||
}); | |||
</pre> | |||
同样的,需要在<code>sprites/</code>添加图片纹理,与普通传送带相同。 | |||
===装包传送带=== | |||
''即对于<code>你自己定义的类名称搜索函数('装包传送带')==StackConveyor</code>而言。<br/>'' | |||
''游戏原版内容如:<span class="mdtPixelIcon">[[File:Block-plastanium-conveyor-ui.png|18px|link=塑钢传送带]]</span> [[塑钢传送带|塑钢传送带]]<br/>'' | |||
<br/> | |||
装包传送带需要具备一些必要的属性,如以下示例: | |||
<pre>新建('装包传送带','SlideRailConveyor','滑轨传送带',{ | |||
生命值:35, | |||
大小:1, | |||
建造材料:{ | |||
石墨:1, | |||
硅:1, | |||
}, | |||
速度:10, | |||
物品容量:1, | |||
路由器外部输出:false | |||
}); | |||
</pre> | |||
对于数据对象,<code>obj</code>与<code>数据对象</code>的对照表如下: | |||
{| class="wikitable" | |||
|+ 表格标题 | |||
! obj键名 !! 数据对象键名 !! 数据类型 !! 备注 | |||
|- | |||
| outputRouter || 路由器外部输出 || true或false || 效果未知,与路由器和合金路由器配合均无效 | |||
|- | |||
| itemCapacity || 物品容量 || 数字 || | |||
|- | |||
| speed || 速度 || 数字 || 实际上需要<code>obj.speed = (setObj.速度 || 15) / obj.itemCapacity / 60;</code> | |||
|} | |||
额外的,需要在<code>sprites/</code>添加以下图片纹理,如对于<code>SlideRailConveyor</code>:<br/> | |||
*SlideRailConveyor-0.png 中间底部 | |||
*SlideRailConveyor-1.png 入口底部 | |||
*SlideRailConveyor-2.png 出口底部 | |||
*SlideRailConveyor-edge.png 边线 | |||
*SlideRailConveyor-stack.png 小车 | |||
===物品管道=== | |||
''即对于<code>你自己定义的类名称搜索函数('物品管道')==Duct</code>而言。<br/>'' | |||
''游戏原版内容如:<span class="mdtPixelIcon">[[File:Block-duct-ui.png|18px|link=物品管道]]</span> [[物品管道|物品管道]]<br/>'' | |||
<br/> | |||
基本上一样,如以下示例: | |||
<pre>新建('物品管道','MetaglassItemsDuct','玻璃物品管道',{ | |||
生命值:40, | |||
大小:1, | |||
建造材料:{ | |||
玻璃:1, | |||
石墨:1 | |||
}, | |||
速度:13 | |||
}) | |||
</pre> | |||
对于数据对象,<code>obj</code>与<code>数据对象</code>的对照表如下: | |||
{| class="wikitable" | |||
|+ 表格标题 | |||
! obj键名 !! 数据对象键名 !! 数据类型 !! 备注 | |||
|- | |||
| displayedSpeed || 速度 || 数字 || 实际上需要<code> obj.speed = 60 / ((setObj.速度 || 40) / obj.itemCapacity);</code> | |||
|} | |||
额外的,需要在<code>sprites/</code>添加以下图片纹理,如对于<code>MetaglassItemsDuct</code>:<br/> | |||
*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 | |||
==液体导管== | |||
==电力节点== | |||
==热传输机== | |||
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
