package com.hexdragon.enchrebirth.registry; import com.hexdragon.enchrebirth.Main; import com.hexdragon.enchrebirth.block.anvil.AnvilContainerRe; import com.hexdragon.enchrebirth.block.anvil.AnvilTileEntity; import com.hexdragon.enchrebirth.block.anvil.NetheriteAnvil; import com.hexdragon.enchrebirth.block.grindstone.GrindstoneContainerRe; import com.hexdragon.enchrebirth.enchantment.DecayCurseEnchantment; import com.hexdragon.enchrebirth.item.name_tag.NameTagRenameRecipe; import net.minecraft.block.Block; import net.minecraft.block.Blocks; import net.minecraft.enchantment.Enchantment; import net.minecraft.entity.player.PlayerInventory; import net.minecraft.inventory.container.ContainerType; import net.minecraft.item.Item; import net.minecraft.item.crafting.IRecipeSerializer; import net.minecraft.item.crafting.SpecialRecipeSerializer; import net.minecraft.network.PacketBuffer; import net.minecraft.state.IntegerProperty; import net.minecraft.tileentity.TileEntityType; import net.minecraftforge.common.extensions.IForgeContainerType; import net.minecraftforge.fml.RegistryObject; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; public class RegMain { // 方块 public static final DeferredRegister BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, Main.MODID); public static final RegistryObject blockPerfectNetheriteAnvil = BLOCKS.register("netherite_anvil", NetheriteAnvil::new); public static final RegistryObject blockChippedNetheriteAnvil = BLOCKS.register("chipped_netherite_anvil", NetheriteAnvil::new); public static final RegistryObject blockDamagedNetheriteAnvil = BLOCKS.register("damaged_netherite_anvil", NetheriteAnvil::new); // 物品 public static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, Main.MODID); public static final RegistryObject itemPerfectNetheriteAnvil = ITEMS.register("netherite_anvil", () -> new NetheriteAnvil.NetheriteAnvilItem(blockPerfectNetheriteAnvil.get())); public static final RegistryObject itemChippedNetheriteAnvil = ITEMS.register("chipped_netherite_anvil", () -> new NetheriteAnvil.NetheriteAnvilItem(blockChippedNetheriteAnvil.get())); public static final RegistryObject itemDamagedNetheriteAnvil = ITEMS.register("damaged_netherite_anvil", () -> new NetheriteAnvil.NetheriteAnvilItem(blockDamagedNetheriteAnvil.get())); // Container public static final DeferredRegister> CONTAINERS = DeferredRegister.create(ForgeRegistries.CONTAINERS, Main.MODID); public static final RegistryObject> containerGrindstone = CONTAINERS.register("grindstone", () -> IForgeContainerType.create((int windowId, PlayerInventory inv, PacketBuffer data) -> new GrindstoneContainerRe(windowId, inv))); public static final RegistryObject> containerAnvil = CONTAINERS.register("anvil", () -> IForgeContainerType.create((int windowId, PlayerInventory inv, PacketBuffer data) -> new AnvilContainerRe(windowId, inv))); // TileEntity public static final DeferredRegister> TILE_ENTITIES = DeferredRegister.create(ForgeRegistries.TILE_ENTITIES, Main.MODID); public static final RegistryObject> tileEntityPerfectAnvil = TILE_ENTITIES.register("anvil", () -> TileEntityType.Builder.create(AnvilTileEntity.PerfectAnvilTileEntity::new, Blocks.ANVIL).build(null)); public static final RegistryObject> tileEntityChippedAnvil = TILE_ENTITIES.register("chipped_anvil", () -> TileEntityType.Builder.create(AnvilTileEntity.ChippedAnvilTileEntity::new, Blocks.CHIPPED_ANVIL).build(null)); public static final RegistryObject> tileEntityDamagedAnvil = TILE_ENTITIES.register("damaged_anvil", () -> TileEntityType.Builder.create(AnvilTileEntity.DamagedAnvilTileEntity::new, Blocks.DAMAGED_ANVIL).build(null)); public static final RegistryObject> tileEntityPerfectNetheriteAnvil = TILE_ENTITIES.register("netherite_anvil", () -> TileEntityType.Builder.create(AnvilTileEntity.PerfectNetheriteAnvilTileEntity::new, blockPerfectNetheriteAnvil.get()).build(null)); public static final RegistryObject> tileEntityChippedNetheriteAnvil = TILE_ENTITIES.register("chipped_netherite_anvil", () -> TileEntityType.Builder.create(AnvilTileEntity.ChippedNetheriteAnvilTileEntity::new, blockChippedNetheriteAnvil.get()).build(null)); public static final RegistryObject> tileEntityDamagedNetheriteAnvil = TILE_ENTITIES.register("damaged_netherite_anvil", () -> TileEntityType.Builder.create(AnvilTileEntity.DamagedNetheriteAnvilTileEntity::new, blockDamagedNetheriteAnvil.get()).build(null)); // 特殊配方 public static final DeferredRegister> RECIPES = DeferredRegister.create(ForgeRegistries.RECIPE_SERIALIZERS, Main.MODID); public static final RegistryObject> recipeNameTagRename = RECIPES.register("name_tag_rename", () -> new SpecialRecipeSerializer<>(NameTagRenameRecipe::new)); // BlockState public static final IntegerProperty blockStateMaterial = IntegerProperty.create("material", 0, 1); // 附魔 public static final DeferredRegister ENCHANTMENTS = DeferredRegister.create(ForgeRegistries.ENCHANTMENTS, Main.MODID); public static final RegistryObject enchDecay = ENCHANTMENTS.register("decay_curse", DecayCurseEnchantment::new); }