2.创建第一个方块

Catalogue
  1. 1. 2.创建第一个方块
    1. 1.1. 2.1分包
      1. 1.1.1. Tip:
      2. 1.1.2. 操作:
    2. 1.2. 2.2 注册方块

2.创建第一个方块

2.1分包

Tip:

建议把模组分成多个部分,以提升模组的可读性。你可以按照功能或按照逻辑将模组分为多个包。

按照功能:例如将方块放在block包中,将物品放在item包中,将实体放在entity包中。

按照逻辑:通过游戏内容的分类进行分类。例如,你想搞一个新的工作台,你可以将和它有关的方块、物品、菜单等内容归为一类。

操作:

新建一个包(在上一篇文章中打开的类.java相同的目录下新建一个文件夹),然后新建一个类。

例如:com.Taigou.industrial_technology –>block –>Macerator,java

在主类中导包

1
import ...

例如:

1
import com.Taigou.industrial_technology.block.Macerator;

2.2 注册方块

创建注册器(DeferredRegister.Blocks)

1
public static final DeferredRegister.Blocks BLOCKS = DeferredRegister.createBlocks("yourmodid");

可以直接注册方块

1
2
3
4
5
6
7
8
public static final DeferredBlock<Block> MY_BETTER_BLOCK = BLOCKS.register(
"my_block",
registryName -> new Block(BlockBehaviour.Properties.of()
.setId(ResourceKey.create(Registries.BLOCK, registryName))
.destroyTime(2.0f)
.explosionResistance(10.0f)
.lightLevel(state -> 0)
));

my_block为你的方块名

setID:每个方块注册必须有它

destroyTime:挖掘时间,石头的破坏时间为1.5,泥土为0.5,黑曜石为50,基岩为-1(无法挖掘)。

explosionResistance:爆炸抗性,石头的抗爆性为6.0,泥土为0.5,黑曜石为1200,基岩为360万。

lightLevel:发光亮度,在[0,15]区间内。

(这是几个比较常用的属性,还有其他属性,此处不再一一列举)

在主类中使用注册器:

1
2
3
4
public 主类类名(IEventBus modEventBus, ModContainer modContainer)
{
注册类名.BLOCKS.register(modEventBus); //使用方块注册器
}

注册类名填你注册方块的类名。