Krrot Posted March 13, 2019 Posted March 13, 2019 I created subclass for ArmorMaterial, but it isn't a class, ArmorMaterial and ItemTier are Enum, so, how I can create new materials? Material (blocks) is final class, so I can't create a subclass for Material. Quote
Laike_Endaril Posted March 13, 2019 Posted March 13, 2019 EnumHelper.addToolMaterial() and EnumHelper.addArmorMaterial() might be good to look at. You're just doing tool/armor materials right? If you need a block material as well, it uses a different approach. All 3 are different things. Quote
Krrot Posted March 14, 2019 Author Posted March 14, 2019 20 hours ago, Laike_Endaril said: EnumHelper.addToolMaterial() and EnumHelper.addArmorMaterial() might be good to look at. You're just doing tool/armor materials right? If you need a block material as well, it uses a different approach. All 3 are different things. In 1.13 EnumHelper is not exist Quote
yuckyh Posted March 14, 2019 Posted March 14, 2019 Create an Enum Class that implements IItemTier and copy everything from ItemTier and define your custom material type It can be done like this Spoiler public enum ItemModTier implements IItemTier { ZIP(3, 500, 8.0F, 4.0F, 12,() -> { return Ingredient.fromItems(ModItems.ZIP); }); private int harvestLevel; private int maxUses; private float efficiency; private float attackDamage; private int enchantability; private LazyLoadBase<Ingredient> repairMaterial; ItemModTier(int harvestLevel, int maxUses, float efficiency, float attackDamage, int enchantability, Supplier<Ingredient> ingredient) { this.harvestLevel = harvestLevel; this.maxUses = maxUses; this.efficiency = efficiency; this.attackDamage = attackDamage; this.enchantability = enchantability; this.repairMaterial = new LazyLoadBase<>(ingredient); } @Override public int getMaxUses() { return this.maxUses; } @Override public float getEfficiency() { return this.efficiency; } @Override public float getAttackDamage() { return this.attackDamage; } @Override public int getHarvestLevel() { return this.harvestLevel; } @Override public int getEnchantability() { return this.enchantability; } @Override public Ingredient getRepairMaterial() { return this.repairMaterial.getValue(); } } 2 Quote
BloodShed_601 Posted July 14, 2020 Posted July 14, 2020 Comment définir votre type de matériau personnalisé? Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.