我如何在 forge 中为 1.16.5 制作自定义镐?
How would I make a custom pickaxe in forge for 1.16.5?
所以我想在 1.16.5 的锻造模组中制作一把自定义镐。
我试过这个:
package io.github.yamiatem.fiery_stuff.core.item;
import io.github.yamiatem.fiery_stuff.FieryStuff;
import net.minecraft.item.Item;
import net.minecraft.item.ItemGroup;
import net.minecraft.item.PickaxeItem;
import net.minecraftforge.fml.RegistryObject;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
public class ItemInit {
public static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, FieryStuff.MOD_ID);
public static final RegistryObject<Item> FIERY_INGOT = ITEMS.register("fiery_ingot", () -> new Item(new Item.Properties().group(ItemGroup.MISC)));
public static final RegistryObject<PickaxeItem> FIERY_PICK = ITEMS.register("fiery_pick", new PickaxeItem(null, 0, 0, null));
}
但我想从头开始创建具有自定义耐用性、效率和等级之类的自定义镐?
您需要传递一些有效值,而不是将 null 传递给 PickaxeItem 的参数。
IItemTier 是确定工具的特性。
public class CustomTier implements IItemTier {
@Override public int getMaxUses() { return 1000;}
@Override public float getEfficiency() { return 10; }
@Override public float getAttackDamage() { return 10; }
@Override public int getHarvestLevel() { return 3; }
@Override public int getEnchantability() { return 5; }
@Override public Ingredient getRepairMaterial() { return Ingredient.fromStacks(new ItemStack(FIERY_INGOT.get())); }
}
public static final RegistryObject<PickaxeItem> FIERY_PICK = ITEMS.register("fiery_pick",
new PickaxeItem(new CustomTier(), 0, 0, new Properties().maxStackSize(1)));
查看 class ItemTier 以获得原版层级。
所以我想在 1.16.5 的锻造模组中制作一把自定义镐。
我试过这个:
package io.github.yamiatem.fiery_stuff.core.item;
import io.github.yamiatem.fiery_stuff.FieryStuff;
import net.minecraft.item.Item;
import net.minecraft.item.ItemGroup;
import net.minecraft.item.PickaxeItem;
import net.minecraftforge.fml.RegistryObject;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
public class ItemInit {
public static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, FieryStuff.MOD_ID);
public static final RegistryObject<Item> FIERY_INGOT = ITEMS.register("fiery_ingot", () -> new Item(new Item.Properties().group(ItemGroup.MISC)));
public static final RegistryObject<PickaxeItem> FIERY_PICK = ITEMS.register("fiery_pick", new PickaxeItem(null, 0, 0, null));
}
但我想从头开始创建具有自定义耐用性、效率和等级之类的自定义镐?
您需要传递一些有效值,而不是将 null 传递给 PickaxeItem 的参数。 IItemTier 是确定工具的特性。
public class CustomTier implements IItemTier {
@Override public int getMaxUses() { return 1000;}
@Override public float getEfficiency() { return 10; }
@Override public float getAttackDamage() { return 10; }
@Override public int getHarvestLevel() { return 3; }
@Override public int getEnchantability() { return 5; }
@Override public Ingredient getRepairMaterial() { return Ingredient.fromStacks(new ItemStack(FIERY_INGOT.get())); }
}
public static final RegistryObject<PickaxeItem> FIERY_PICK = ITEMS.register("fiery_pick",
new PickaxeItem(new CustomTier(), 0, 0, new Properties().maxStackSize(1)));
查看 class ItemTier 以获得原版层级。