MCBBS Wiki欢迎您共同参与编辑!在参与编辑之前请先阅读Wiki方针

如果在编辑的过程中遇到了什么问题,可以去讨论板提问。

为了您能够无阻碍地参与编辑 未验证/绑定过邮箱的用户,请尽快绑定/验证

MCBBS Wiki GitHub群组已上线!

您可以在回声洞中发表吐槽!

服务器状态监控。点击进入

本站由MCBBS用户自行搭建,与MCBBS及东银河系漫游指南(北京)科技有限公司没有从属关系。点此了解 MCBBS Wiki 不是什么>>

用户:MashKJo/1.12.2模组开发笔记/实现新维度:修订间差异

跳到导航 跳到搜索
要注册一个维度,需要一个类型是“维度类型”(<code>net.minecraft.world.DimensionType</code>)的对象,DimensionType类是一个枚举类,这个枚举类默认有三个对象:OVERWORLD、NETHER和THE_END。
 
<code>
public class MyDim
{
}
}
</code>
 
要构造一个DimensionType对象,需要如下几个参数:
 
那么读者又会问了:既然原版的DimensionType类可扩展性几乎为0,那为什么我们在添加新维度的时候还要用到这个类呢?因为Forge出手了。经过Forge的一番patch后,这个类获得了一个名为register的静态方法:
 
<code>
public static DimensionType register(String name, String suffix, int id, Class<? extends WorldProvider> provider, boolean keepLoaded)
{
return ret.setLoadSpawn(keepLoaded);
}
</code>
 
这个方法调用了Forge添加的一个类——EnumHelper,来实现在某个枚举类内部以外的地方添加该枚举类的对象。如果细看addEnum这个方法的话,你会发现这个方法用到了Java的反射机制——果然是黑科技。
行政员、​优秀编辑者、​界面管理员、​监督员、​管理员、​小部件编辑者
3,258

个编辑

我们提供服务需要使用Cookie。您使用我们的服务,即表示您同意我们使用Cookie。

导航菜单