Jump to content

haruto1017

Members
  • Posts

    6
  • Joined

  • Last visited

Everything posted by haruto1017

  1. What function should I call if I want to move entities(mobs,players,drop items) when they on my block? Should I call them in the tick()? I can't find any example for 1.15.2. Thanks for helping.
  2. It's working ! public Conveyor() { LOGGER.debug("Conveyor mod testing"); final IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus(); ModBlocks.BLOCKS.register(modEventBus); ConveyorItems.ITEMS.register(modEventBus); ModTileEntityTypes.TILE_ENTITY_TYPES.register(modEventBus); }
  3. OK,I'll try it. Thanks.
  4. It doesn't work,the game still crash. I don't know,registerItems and registerBlocks can work normally. Is it the correct method to register them? package haruto.conveyor; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import haruto.conveyor.block.ConveyorBeltBlock; import haruto.conveyor.init.ModTileEntityTypes; import haruto.conveyor.lists.BlockList; import haruto.conveyor.lists.ItemList; import net.minecraft.block.Block; import net.minecraft.item.BlockItem; import net.minecraft.item.Item; import net.minecraft.item.ItemGroup; import net.minecraft.tileentity.TileEntityType; import net.minecraft.util.ResourceLocation; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.RegistryEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; @Mod("conveyor") public class Conveyor { public static Conveyor instance; public static final String modid = "conveyor"; private static final Logger LOGGER = LogManager.getLogger(modid); public static final ItemGroup conveyorG = new ConveyorItemGroup(); public Conveyor() { instance = this; FMLJavaModLoadingContext.get().getModEventBus().addListener(this::setup); FMLJavaModLoadingContext.get().getModEventBus().addListener(this::clientRegistries); MinecraftForge.EVENT_BUS.register(this); /** * It doesn't work,the game still crash. */ // BlockList.conveyor_belt = new ConveyorBeltBlock().setRegistryName(location("conveyor_belt")) } private void setup(final FMLCommonSetupEvent event) { LOGGER.info("setup"); } private void clientRegistries(final FMLClientSetupEvent event) { LOGGER.info("clientRegistries"); } @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD) public static class RegistryEvents { @SubscribeEvent public static void registerItems(final RegistryEvent.Register<Item> event) { event.getRegistry().registerAll ( ItemList.gear = new Item(new Item.Properties().group(conveyorG)).setRegistryName(location("gear")), ItemList.conveyor_belt = new BlockItem(BlockList.conveyor_belt, new Item.Properties().group(conveyorG)).setRegistryName(BlockList.conveyor_belt.getRegistryName()) ); LOGGER.info("Items registered"); } @SubscribeEvent public static void registerBlocks(final RegistryEvent.Register<Block> event) { event.getRegistry().registerAll ( BlockList.conveyor_belt = new ConveyorBeltBlock().setRegistryName(location("conveyor_belt")) ); LOGGER.info("Blocks registered"); } @SubscribeEvent public static void registerTileEntities (final RegistryEvent.Register<TileEntityType<?>> event) { ModTileEntityTypes.TILE_ENTITY_TYPES.register(FMLJavaModLoadingContext.get().getModEventBus()); LOGGER.info("TileEntities registered"); } private static ResourceLocation location(String name) { return new ResourceLocation(modid,name); } } } This is my log. Thanks for your help.
  5. Sorry, I have already renamed them. Do you mean this? @SubscribeEvent public static void registerTileEntities (final RegistryEvent.Register<TileEntityType<?>> event) { ModTileEntityTypes.TILE_ENTITY_TYPES.register(FMLJavaModLoadingContext.get().getModEventBus()); LOGGER.info("TileEntities registered"); }
  6. I'm a new modder and just trying to make a simple mod ,but when I put my block ,the game crash with "Registry Object not present". I've tried to fix it ,but still can't find where wrong. Thanks for helping. crash report : conveyor_belt_block.java : @Nullable @Override public TileEntity createTileEntity(final BlockState state, final IBlockReader world) { return ModTileEntityTypes.CONVEYOR_BELT.get().create(); // line38 } ModTileEntityTypes.java : public final class ModTileEntityTypes { public static final DeferredRegister<TileEntityType<?>> TILE_ENTITY_TYPES = new DeferredRegister<>(ForgeRegistries.TILE_ENTITIES, Conveyor.modid); public static final RegistryObject<TileEntityType<conveyor_belt_tile_entity>> CONVEYOR_BELT = TILE_ENTITY_TYPES.register("conveyor_belt", () -> TileEntityType.Builder.create(conveyor_belt_tile_entity::new, ModBlocks.CONVEYOR_BELT.get().setRegistryName("conveyor_belt")) .build(null) ); } ModBlocks.java : public final class ModBlocks { public static final DeferredRegister<Block> BLOCKS = new DeferredRegister<>(ForgeRegistries.BLOCKS, Conveyor.modid); public static final RegistryObject<Block> CONVEYOR_BELT = BLOCKS.register("conveyor_belt", () -> new conveyor_belt_block()); } conveyor_belt_tile_entity.java : public class conveyor_belt_tile_entity extends TileEntity implements ITickableTileEntity{ public conveyor_belt_tile_entity() { super(ModTileEntityTypes.CONVEYOR_BELT.get()); } @Override public void tick() { System.out.println("test tick"); } }
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.