匿名
未登录
创建账号
登录
Mindustry中文wiki
搜索
查看“JS模组教程-传输方块”的源代码
来自Mindustry中文wiki
命名空间
页面
讨论
更多
更多
页面操作
阅读
查看源代码
历史
←
JS模组教程-传输方块
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于这些用户组的用户执行:
管理员
、editor
您可以查看和复制此页面的源代码。
=传输方块= 统称传送带、液体导管、电力节点、热传输机。<br/> '''''本文档面向JavaScript模组编辑'''''<br/> '''''本文档代码高度抽象化!!!! '''''<br/> ==预先约定== <strong>JavaScript相较于Json的优势之一,在于可以自己规定数据表示形式。</strong><br/> 于是本文档使用如下约定:<br/> <pre>function 新建(类名称,注册名称,中文名称,数据对象){ var type = 你自己定义的类名称搜索函数(类名称); var setObj = 你自己定义的数据对象处理函数(类名称,数据对象); var obj = extend(type, 注册名称, setObj); 你自己定义的后处理函数(obj); exports[nameStr] = obj;//导出内容 return obj; }</pre> 对于数据对象,一些基本的<code>obj</code>与<code>数据对象</code>的对照表如下: {| class="wikitable" |+ 表格标题 ! obj键名 !! 数据对象键名 !! 数据类型 !! 备注 |- | health || 生命值 || 数字 || |- | size || 大小 || 数字 || 尺寸为size*size |- | requirements || 建造材料 || 对象键值对 || 特殊,见下方 |} 对于<code>requirements</code>建议使用如下方案: <pre> 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); </pre> 其中: <pre> 库.组.物品 = { //赛普罗 废料: 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 } </pre> ==传送带== 传送带就是传送物品的方块。 为正确显示在方块栏中,需要设置: <code>obj.category = Category['distribution'];</code> ===简单传送带=== ''即对于<code>你自己定义的类名称搜索函数('基本传送带')==Conveyor</code>而言。<br/>'' ''游戏原版内容如:<span class="mdtPixelIcon">[[File:Block-conveyor-ui.png|18px|link=传送带]]</span> [[传送带|传送带]] <span class="mdtPixelIcon">[[File:Block-titanium-conveyor-ui.png|18px|link=钛传送带]]</span> [[钛传送带|钛传送带]]<br/>'' <br/> 最简单的传送带需要具备一些必要的属性,如以下示例: <pre>新建('基本传送带','HighQualityConveyor','优质传送带',{ 生命值:55, 大小:1, 建造材料:{ 铜:1, 铅:1 }, 速度:6 }); </pre> 对于数据对象,<code>obj</code>与<code>数据对象</code>的对照表如下: {| class="wikitable" |+ 表格标题 ! obj键名 !! 数据对象键名 !! 数据类型 !! 备注 |- | displayedSpeed || 速度 || 数字 || 你还需要<code>obj.speed = obj.displayedSpeed / 120</code> |} 额外的,需要在<code>sprites/</code>添加以下图片纹理,如对于<code>HighQualityConveyor</code>:<br/> *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 ===装甲传送带=== ''即对于<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 ==液体导管== ==电力节点== 电力节点就是传送电力的方块。 为正确显示在方块栏中,需要设置: <code>obj.category = Category['power'];</code> ===任意连接型电力节点=== ''即对于<code>你自己定义的类名称搜索函数('电力节点')==PowerNode</code>而言。<br/>'' ''游戏原版内容如:<span class="mdtPixelIcon">[[File:Block-power-node-ui.png|18px|link=电力节点]]</span> [[电力节点|电力节点]]<br/>'' <br/> 最简单的电力节点需要具备一些必要的属性,如以下示例: <pre>新建('电力节点','LongPowerNode','小型长距离电力节点',{ 生命值:100, 大小:1, 建造材料:{ 铅:5, 石墨:2, 钛:5, 硅:2, }, 最大链接数量:6, 最大链接范围:20, 链接优先级:2 }); </pre> 对于数据对象,<code>obj</code>与<code>数据对象</code>的对照表如下: {| class="wikitable" |+ 表格标题 ! obj键名 !! 数据对象键名 !! 数据类型 !! 备注 |- | maxNodes || 最大链接数量速度 || 数字 || |- | laserRange || 最大链接范围 || 数字 || |- | schematicPriority || 链接优先级 || 数字 || |} 额外的,需要在<code>sprites/</code>添加以下图片纹理,如对于<code>LongPowerNode</code>:<br/> *LongPowerNode.png ==热传输机== 热传输机就是传送热的方块。 为正确显示在方块栏中,需要设置: <code>obj.category = Category['crafting'];</code> ===基本热传输机=== ''即对于<code>你自己定义的类名称搜索函数('热传输机')==HeatConductor</code>而言。<br/>'' ''游戏原版内容如:<span class="mdtPixelIcon">[[File:Block-heat-redirector-ui.png|18px|link=热量传输机]]</span> [[热量传输机|热量传输机]] <span class="mdtPixelIcon">[[File:Block-small-heat-redirector-ui.png|18px|link=小型热量传输机]]</span> [[小型热量传输机|小型热量传输机]]<br/>'' <br/> 最简单的热传输机需要具备一些必要的属性,如以下示例: <pre>新建('热传输机','smallHeatRedirector','微型热传输机',{ 生命值:250, 大小:1, 研究成本倍数:200, 建造材料:{ 石墨:1, 钨:1 } }); </pre>额外的,需要在<code>sprites/</code>添加以下图片纹理,如对于<code>smallHeatRedirector</code>:<br/> *smallHeatRedirector.png *smallHeatRedirector-glow.png 发光中心 *smallHeatRedirector-heat.png 发光边框 *smallHeatRedirector-top1.png 非输出方向常态边框 *smallHeatRedirector-top2.png 输出方向常态边框
返回
JS模组教程-传输方块
。
导航
导航
塞普罗
-- 战役区块
-- 物品
-- 流体
-- 建筑
-- 单位
埃里克尔
-- 战役区块
-- 物品
-- 流体
-- 建筑
-- 单位
隐藏
-- 物品
-- 液体
-- 建筑
-- 地块介绍
其他
-- 状态效果
-- 天气
-- 星球
教程中心
编辑者
-- 编辑指导
-- 语法指南
-- 表格语法
最近更改
随机页面
MediaWiki帮助
wiki工具
wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志