Jump to content

Ilay

Members
  • Posts

    4
  • Joined

  • Last visited

Ilay's Achievements

Tree Puncher

Tree Puncher (2/8)

0

Reputation

  1. I'm sorry for being dumb but I don't understand: where and how to use the RegistyObject#get? I forgot to mention it in the post but I want to return the item "elementum:deep_earth_axe_capsule". Can you send me an example code that will return that, further explanation or a tutorial that will do that? Also what does register items and blocks dynamically mean and how to fix that?
  2. It doesn't work. I want to return in this case the item "elementum:deep_earth_axe_capsule" and not the empty capsule which "this" referring.
  3. The code was a bit twisted so I think I fixed it. In addition, it's just part of the code, I didn't finish it because I need to know the ID to proceed. I'm also pretty new to java...
  4. Hey, I'm new to modding nd I tried to create a mod for minecraft 1.15.2 but I've encountered problem. I want to return a custom item from the mod as an ItemStack but the parameter of the constructor requires an IItemProvider and I'm not sure how to do that. I tried to return Item but the Item requires the id of the item and I don't know what is the id of the custom block or how to check it. I want to return the item "elementum:deep_earth_axe_capsule". package com.ri.elementum.items; import com.ri.elementum.Elementum; import com.ri.elementum.blocks.ShapeForge; import net.minecraft.block.Block; import net.minecraft.block.Blocks; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemUseContext; import net.minecraft.util.ActionResultType; import net.minecraft.util.IItemProvider; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; public class EmptyCapsuleBase extends Item { public EmptyCapsuleBase() { super(new Item.Properties().maxStackSize(1).group(Elementum.TAB)); } private ItemStack getCapsuleType(ItemStack item, String kind){ switch (kind){ case "deep earth": switch (item.getDisplayName().getString()){ case "Empty Axe Capsule": return new ItemStack(getItemById(0)); //What I want to change: I don't know the item id so I used 0 as a placeholder for the example. } break; } return new ItemStack(getItemById(0)); } @Override public ActionResultType onItemUse(ItemUseContext context){ final World world = context.getWorld(); final BlockPos pos = context.getPos(); final PlayerEntity playerIn = context.getPlayer(); final ItemStack item = context.getItem(); final Block block = world.getBlockState(pos).getBlock(); //System.out.println("World "+world+"\nPos "+pos+"\nPlayer "+playerIn+"\nItem: "+item+"\nblock "+block); if (block == Blocks.GRASS_BLOCK || block == Blocks.DIRT){ playerIn.replaceItemInInventory(playerIn.inventory.currentItem, getCapsuleType(item, "deep earth")); getCapsuleType(item, "deep earth"); } return super.onItemUse(context); } } package com.ri.elementum.util; import com.ri.elementum.blocks.*; import com.ri.elementum.Elementum; import com.ri.elementum.items.EmptyCapsuleBase; import com.ri.elementum.items.ItemBase; import net.minecraft.item.Item; import net.minecraft.block.Block; import net.minecraft.item.PickaxeItem; import net.minecraftforge.fml.RegistryObject; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; public class RegistryHandler { public static final DeferredRegister<Item> ITEMS = new DeferredRegister<>(ForgeRegistries.ITEMS, Elementum.MOD_ID); public static final DeferredRegister<Block> BLOCKS = new DeferredRegister<>(ForgeRegistries.BLOCKS, Elementum.MOD_ID); private static void RegisterToolsCapsules() { final String[] elements = {"empty", "hellfire", "aquarium", "deep_earth", "airium"}; final String[] items = {"pickaxe", "axe", "sword", "hoe", "shovel", "helmet", "chestplate", "leggings", "boots"}; final int[] durability = {0 ,500, 500, 750, 250}; for (int e=0; e<elements.length; e++) { final int e2 = e; for (String i: items) { if (e==0){ ITEMS.register(elements[e]+"_"+i+"_capsule", () -> new EmptyCapsuleBase()); //Where's the items registered. } else { ITEMS.register(elements[e] + "_" + i + "_capsule", () -> new ItemBase(1, durability[e2])); } } } } public static void init() { RegisterToolsCapsules(); ITEMS.register(FMLJavaModLoadingContext.get().getModEventBus()); BLOCKS.register(FMLJavaModLoadingContext.get().getModEventBus()); } public static final RegistryObject<Item> CAPSULE = ITEMS.register("capsule", () -> new ItemBase(16)); public static final RegistryObject<Item> THE_CAPSULE_OF_CONFUSION = ITEMS.register("the_capsule_of_confusion", ItemBase::new); public static final RegistryObject<Item> AQUARIUM = ITEMS.register("aquarium", ItemBase::new); public static final RegistryObject<Item> HELLFIRE = ITEMS.register("hellfire", ItemBase::new); public static final RegistryObject<Item> DEEP_EARTH = ITEMS.register("deep_earth", ItemBase::new); public static final RegistryObject<Item> AIRIUM = ITEMS.register("airium", ItemBase::new); public static final RegistryObject<Item> BOSS_ESSENCE = ITEMS.register("boss_essence", () -> new ItemBase(16)); public static final RegistryObject<Block> SHAPE_FORGE = BLOCKS.register("shape_forge", ShapeForge::new); public static final RegistryObject<Block> ENHANCEMENT_FORGE = BLOCKS.register("enhancement_forge", EnhancementForge::new); public static final RegistryObject<Block> ELEMENTUM_FORGE = BLOCKS.register("elementum_forge", ElementumForge::new); public static final RegistryObject<Block> AQUARIUM_ORE = BLOCKS.register("aquarium_ore", AquariumOre::new); public static final RegistryObject<Block> HELLFIRE_ORE = BLOCKS.register("hellfire_ore", HellfireOre::new); public static final RegistryObject<Block> DEEP_EARTH_ORE = BLOCKS.register("deep_earth_ore", DeepEarthOre::new); public static final RegistryObject<Block> AIRIUM_ORE = BLOCKS.register("airium_ore", AiriumOre::new); public static final RegistryObject<Item> SHAPE_FORGE_ITEM = ITEMS.register("shape_forge", () -> new BlockItemBase(SHAPE_FORGE.get())); public static final RegistryObject<Item> ENHANCEMENT_FORGE_ITEM = ITEMS.register("enhancement_forge", () -> new BlockItemBase(ENHANCEMENT_FORGE.get())); public static final RegistryObject<Item> ELEMENTUM_FORGE_ITEM = ITEMS.register("elementum_forge", () -> new BlockItemBase(ELEMENTUM_FORGE.get())); public static final RegistryObject<Item> AQUARIUM_ORE_ITEM = ITEMS.register("aquarium_ore", () -> new BlockItemBase(AQUARIUM_ORE.get())); public static final RegistryObject<Item> HELLFIRE_ORE_ITEM = ITEMS.register("hellfire_ore", () -> new BlockItemBase(HELLFIRE_ORE.get())); public static final RegistryObject<Item> DEEP_EARTH_ORE_ITEM = ITEMS.register("deep_earth_ore", () -> new BlockItemBase(DEEP_EARTH_ORE.get())); public static final RegistryObject<Item> AIRIUM_ORE_ITEM = ITEMS.register("airium_ore", () -> new BlockItemBase(AIRIUM_ORE.get())); }
×
×
  • Create New...

Important Information

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