Files
Wizardry/src/main/java/electroblob/wizardry/registry/WizardryEnchantments.java
T

65 lines
3.1 KiB
Java

package electroblob.wizardry.registry;
import electroblob.wizardry.Wizardry;
import electroblob.wizardry.enchantment.EnchantmentMagicProtection;
import electroblob.wizardry.enchantment.EnchantmentMagicSword;
import electroblob.wizardry.enchantment.EnchantmentTimed;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.enchantment.Enchantment;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.registry.GameRegistry.ObjectHolder;
import javax.annotation.Nonnull;
/**
* Class responsible for defining, storing and registering all of wizardry's enchantments.
*
* @author Electroblob
* @since Wizardry 2.1
*/
@ObjectHolder(Wizardry.MODID)
@Mod.EventBusSubscriber
public final class WizardryEnchantments {
private WizardryEnchantments(){} // No instances!
// At the moment these enchantments generate on books in dungeon chests due to a bad bit of code (EnchantRandomly:49).
// No idea how to fix this because I have no way of hooking into that code... removing the enchantments from the
// registry works, but breaks everything else!
// For the time being, a dynamic solution will have to do, i.e. intercept the book when it is generated and
// reassign its enchantment.
// All of these have custom classes, so the unlocalised name (referred to simply as 'name' for enchantments) is
// dealt with inside those classes.
@Nonnull
@SuppressWarnings("ConstantConditions")
private static <T> T placeholder(){ return null; }
public static final Enchantment magic_sword = placeholder();
public static final Enchantment magic_bow = placeholder();
public static final Enchantment flaming_weapon = placeholder();
public static final Enchantment freezing_weapon = placeholder();
public static final Enchantment magic_protection = placeholder();
public static final Enchantment frost_protection = placeholder();
public static final Enchantment shock_protection = placeholder();
@SubscribeEvent
public static void register(RegistryEvent.Register<Enchantment> event){
event.getRegistry().register(new EnchantmentMagicSword().setRegistryName(Wizardry.MODID, "magic_sword"));
event.getRegistry().register(new EnchantmentTimed().setRegistryName(Wizardry.MODID, "magic_bow"));
event.getRegistry().register(new EnchantmentTimed().setRegistryName(Wizardry.MODID, "flaming_weapon"));
event.getRegistry().register(new EnchantmentTimed().setRegistryName(Wizardry.MODID, "freezing_weapon"));
event.getRegistry().register(new EnchantmentMagicProtection(Enchantment.Rarity.UNCOMMON, EnchantmentMagicProtection.Type.MAGIC, WizardryUtilities.ARMOUR_SLOTS).setRegistryName(Wizardry.MODID, "magic_protection"));
event.getRegistry().register(new EnchantmentMagicProtection(Enchantment.Rarity.RARE, EnchantmentMagicProtection.Type.FROST, WizardryUtilities.ARMOUR_SLOTS).setRegistryName(Wizardry.MODID, "frost_protection"));
event.getRegistry().register(new EnchantmentMagicProtection(Enchantment.Rarity.RARE, EnchantmentMagicProtection.Type.SHOCK, WizardryUtilities.ARMOUR_SLOTS).setRegistryName(Wizardry.MODID, "shock_protection"));
}
}