您的足迹: migrationv6

6.0 迁移指南

6.0 迁移指南

如果你的模组或插件是为 5.0 开发的,你极有可能发现在 6.0 内容的功能不再正常。这是由于内部功能的更改与添加导致的。所有变化将在此记录。

基础更改

最低游戏版本

所有的模组必须包含一个名为 minGameVersion的字段,而且值是一个比 105 大的数才能加载。这是为了让过时的模组不被加载。就是在 mod.hjson 加入一个 minGameVersion: 135 即可。

名称更改

类名和变量名

ItemTurret:

  • ammoammoTypes
  • reloadreloadTime

ArtilleryTurret, BurstTurret, ChargeTurret:

  • 已删除. 用 ItemTurretPowerTurret 来代替; 所有功能都已合并到基类中。

BasicBulletType:

  • bulletWidthwidth
  • bulletHeightheight
  • bulletSpritesprite

TileEntity -> Building

TileEntity 现在变成 Building。因此,以前的“TileEntity”模型以及与其相关的任何函数(包含或提及“实体”)都已重命名,现在它们将“TileEntity”称为“building”或“build”。Tile.entity 重命名为 Tile.build,所有的 TileEntity 实例 (例如 RouterEntityConveyorEntity)重命名为结尾带 “Build” 的 (例如RouterBuildConveyorBuild)。

许多函数,如”draw()“或”placed()“已从在”Block“中声明转移到在”Building“中声明。这意味着这些函数不会通过”Tile“,从而降低了特定块的行为复杂性。值得注意的是,”update(Tile tile)“已被移动到”Building“并重命名为”updateile()“。

Array -> Seq

arc.struct.Array 重命名为 arc.struct.Seq,其中 ”Seq“ 是 Sequence 的缩写。

为什么?

  • 准确, 数据结构并不是数组,它更像 ArrayList
  • 他不会与其他名为Array冲突,比如 Java 的反射 API 和 JS 的数组。
  • 它更短,因为我懒。

mindustry.plugin.Plugin -> mindustry.mod.Plugin

Plugin 类挪到了 mod 包,旧包将只包含一个类。(as翻译存疑)

删除调用方法的"on"前缀

”Call“中的所有远程调用方法都已删除其”on“前缀。例如:

  • onSnapshotsnapshot
  • onSetRulessetRules
  • onLabellabel

新玩家系统

现在玩家能控制单位,他们不再是游戏中的无脑生物——也就是说,他们没有生命或武器。每一个动作都是由 Unit 执行。不再有 Mech 类,只有 UnitType

  • 每一个单位都有一个 UnitController,可能为 AI,逻辑或者玩家(主语存疑)
  • 检查单位是否为玩家所控制,使用 unit.isPlayer()
  • 得到控制单位的玩家,使用 unit.getPlayer()
  • 设置玩家的位置毫无作用,用设置单位来代替
modding/migrationv6.txt · 最后更改: 2022/03/16 14:35 由 硫缺铅
CC Attribution-Share Alike 4.0 International