添加方块

image-20231028212405539

添加方块

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package net.tutorialmod.block;

import dev.architectury.registry.registries.DeferredRegister;
import dev.architectury.registry.registries.RegistrySupplier;
import net.minecraft.core.registries.Registries;
import net.minecraft.world.item.BlockItem;
import net.minecraft.world.item.Item;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.state.BlockBehaviour;
import net.tutorialmod.TutorialMod;
import net.tutorialmod.item.ModCreativeTab;
import net.tutorialmod.item.ModItem;

import java.util.function.Supplier;

public class ModBlock {

public static final DeferredRegister<Block> BLOCKS = DeferredRegister.create(TutorialMod.MOD_ID, Registries.BLOCK);

public static final RegistrySupplier<Block> ZIRCON_BLOCK = registerBlock("zircon_block",()->new Block(BlockBehaviour.Properties.copy(Blocks.STONE)));
private static <T extends Block> RegistrySupplier<T> registerBlock(String name, Supplier<T> block) {
RegistrySupplier<T> toReturn = BLOCKS.register(name, block);
registerBlockItem(name, toReturn);
return toReturn;

}

private static <T extends Block> RegistrySupplier<Item> registerBlockItem(String name, RegistrySupplier<T> block) {
return ModItem.ITEMS.register(name, () -> new BlockItem(block.get(), new Item.Properties().arch$tab(ModCreativeTab.EXAMPLE_TAB)));
}


public static void register(){
BLOCKS.register();
}



}

修改TutorialMod类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package net.tutorialmod;

import com.google.common.base.Suppliers;
import dev.architectury.registry.CreativeTabRegistry;
import dev.architectury.registry.registries.DeferredRegister;
import dev.architectury.registry.registries.RegistrarManager;
import dev.architectury.registry.registries.RegistrySupplier;
import net.minecraft.core.registries.Registries;
import net.minecraft.network.chat.Component;
import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.tutorialmod.block.ModBlock;
import net.tutorialmod.item.ModCreativeTab;
import net.tutorialmod.item.ModItem;

import java.util.function.Supplier;

public class TutorialMod {
public static final String MOD_ID = "tutorialmod";
// We can use this if we don't want to use DeferredRegister
public static final Supplier<RegistrarManager> REGISTRIES = Suppliers.memoize(() -> RegistrarManager.get(MOD_ID));

public static void init() { // 这里线注册方块,在注册Item,不可以反过来
ModCreativeTab.register();
ModBlock.register();
ModItem.register();

System.out.println(TutorialModExpectPlatform.getConfigDirectory().toAbsolutePath().normalize().toString());
}
}

添加blockstate

1
2
3
4
5
6
7
8

{
"variants": {
"": {
"model": "tutorialmod:block/zircon_block"
}
}
}

添加model

1
2
3
4
5
6
{
"parent": "minecraft:block/cube_all",
"textures": {
"all": "tutorialmod:block/zircon_block"
}
}

添加item model

1
2
3
4

{
"parent": "tutorialmod:block/zircon_block"
}

添加texture

添加lang

1
2
3
4
5
6

{
"item.tutorialmod.zircon": "Zircon",
"itemGroup.tutorialmod.example_tab": "TutoriablTab",
"block.tutorialmod.zircon_block": "Zircon Block"
}