package electroblob.wizardry.registry; import electroblob.wizardry.Wizardry; import electroblob.wizardry.spell.*; import net.minecraft.util.ResourceLocation; 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 net.minecraftforge.registries.IForgeRegistry; import net.minecraftforge.registries.RegistryBuilder; /** * Class responsible for defining, storing and registering all of wizardry's spells. * * @author Electroblob * @since Wizardry 2.1 */ // In case anyone was wondering, the reason @ObjectHolder is useful within one mod is that it allows you to initialise // stuff during the registry events (or whenever), whilst still having a final field (which is important, not only // because it makes the text go bold, but also because it stops anyone fiddling with your fields). "Why would I want to // initialise things within the registry events?", I hear you ask - well, for one, custom registries don't like it if // you haven't created the registry before you start calling constructors of classes extending IForgeRegistryEntry.Impl, // and secondly, you might want to initialise objects based on certain conditions - perhaps a config option, or whether // another mod is installed. This, presumably, is why everyone at forge is encouraging us to use @ObjectHolder. @ObjectHolder(Wizardry.MODID) @Mod.EventBusSubscriber public final class Spells { // This is here because this class is already an event handler. @SubscribeEvent public static void createRegistry(RegistryEvent.NewRegistry event){ // Beats me why we need both of these. Surely the type parameter means it already knows? RegistryBuilder builder = new RegistryBuilder(); builder.setType(Spell.class); builder.setName(new ResourceLocation(Wizardry.MODID, "spells")); builder.setIDRange(0, 5000); // Is there any penalty for using a larger number? Spell.registry = builder.create(); } // Wizardry 1.0 spells public static final Spell none = null; public static final Spell magic_missile = null; public static final Spell ignite = null; public static final Spell freeze = null; public static final Spell snowball = null; public static final Spell arc = null; public static final Spell thunderbolt = null; public static final Spell summon_zombie = null; public static final Spell snare = null; public static final Spell dart = null; public static final Spell light = null; public static final Spell telekinesis = null; public static final Spell heal = null; public static final Spell fireball = null; public static final Spell flame_ray = null; public static final Spell firebomb = null; public static final Spell fire_sigil = null; public static final Spell firebolt = null; public static final Spell frost_ray = null; public static final Spell summon_snow_golem = null; public static final Spell ice_shard = null; public static final Spell ice_statue = null; public static final Spell frost_sigil = null; public static final Spell lightning_ray = null; public static final Spell spark_bomb = null; public static final Spell homing_spark = null; public static final Spell lightning_sigil = null; public static final Spell lightning_arrow = null; public static final Spell life_drain = null; public static final Spell summon_skeleton = null; public static final Spell metamorphosis = null; public static final Spell wither = null; public static final Spell poison = null; public static final Spell growth_aura = null; public static final Spell bubble = null; public static final Spell whirlwind = null; public static final Spell poison_bomb = null; public static final Spell summon_spirit_wolf = null; public static final Spell blink = null; public static final Spell agility = null; public static final Spell conjure_sword = null; public static final Spell conjure_pickaxe = null; public static final Spell conjure_bow = null; public static final Spell force_arrow = null; public static final Spell shield = null; public static final Spell replenish_hunger = null; public static final Spell cure_effects = null; public static final Spell heal_ally = null; public static final Spell summon_blaze = null; public static final Spell ring_of_fire = null; public static final Spell detonate = null; public static final Spell fire_resistance = null; public static final Spell fireskin = null; public static final Spell flaming_axe = null; public static final Spell blizzard = null; public static final Spell summon_ice_wraith = null; public static final Spell ice_shroud = null; public static final Spell ice_charge = null; public static final Spell frost_axe = null; public static final Spell invoke_weather = null; public static final Spell chain_lightning = null; public static final Spell lightning_bolt = null; public static final Spell summon_lightning_wraith = null; public static final Spell static_aura = null; public static final Spell lightning_disc = null; public static final Spell mind_control = null; public static final Spell summon_wither_skeleton = null; public static final Spell entrapment = null; public static final Spell wither_skull = null; public static final Spell darkness_orb = null; public static final Spell shadow_ward = null; public static final Spell decay = null; public static final Spell water_breathing = null; public static final Spell tornado = null; public static final Spell glide = null; public static final Spell summon_spirit_horse = null; public static final Spell spider_swarm = null; public static final Spell slime = null; public static final Spell petrify = null; public static final Spell invisibility = null; public static final Spell levitation = null; public static final Spell force_orb = null; public static final Spell transportation = null; public static final Spell spectral_pathway = null; public static final Spell phase_step = null; public static final Spell vanishing_box = null; public static final Spell greater_heal = null; public static final Spell healing_aura = null; public static final Spell forcefield = null; public static final Spell ironflesh = null; public static final Spell transience = null; public static final Spell meteor = null; public static final Spell firestorm = null; public static final Spell summon_phoenix = null; public static final Spell ice_age = null; public static final Spell wall_of_frost = null; public static final Spell summon_ice_giant = null; public static final Spell thunderstorm = null; public static final Spell lightning_hammer = null; public static final Spell plague_of_darkness = null; public static final Spell summon_skeleton_legion = null; public static final Spell summon_shadow_wraith = null; public static final Spell forests_curse = null; public static final Spell flight = null; public static final Spell silverfish_swarm = null; public static final Spell black_hole = null; public static final Spell shockwave = null; public static final Spell summon_iron_golem = null; public static final Spell arrow_rain = null; public static final Spell diamondflesh = null; public static final Spell font_of_vitality = null; // Wizardry 1.1 spells public static final Spell smoke_bomb = null; public static final Spell mind_trick = null; public static final Spell leap = null; public static final Spell pocket_furnace = null; public static final Spell intimidate = null; public static final Spell banish = null; public static final Spell sixth_sense = null; public static final Spell darkvision = null; public static final Spell clairvoyance = null; public static final Spell pocket_workbench = null; public static final Spell imbue_weapon = null; public static final Spell invigorating_presence = null; public static final Spell oakflesh = null; public static final Spell greater_fireball = null; public static final Spell flaming_weapon = null; public static final Spell ice_lance = null; public static final Spell freezing_weapon = null; public static final Spell ice_spikes = null; public static final Spell lightning_pulse = null; public static final Spell curse_of_soulbinding = null; public static final Spell cobwebs = null; public static final Spell decoy = null; public static final Spell arcane_jammer = null; public static final Spell conjure_armour = null; public static final Spell group_heal = null; public static final Spell hailstorm = null; public static final Spell lightning_web = null; public static final Spell summon_storm_elemental = null; public static final Spell earthquake = null; public static final Spell font_of_mana = null; @SubscribeEvent public static void register(RegistryEvent.Register event){ IForgeRegistry registry = event.getRegistry(); // event.getRegistry should always equal Spell.registry. registry.register(new None()); registry.register(new MagicMissile()); registry.register(new Ignite()); registry.register(new Freeze()); registry.register(new Snowball()); registry.register(new Arc()); registry.register(new Thunderbolt()); registry.register(new SummonZombie()); registry.register(new Snare()); registry.register(new Dart()); registry.register(new Light()); registry.register(new Telekinesis()); registry.register(new Heal()); registry.register(new Fireball()); registry.register(new FlameRay()); registry.register(new Firebomb()); registry.register(new FireSigil()); registry.register(new Firebolt()); registry.register(new FrostRay()); registry.register(new SummonSnowGolem()); registry.register(new IceShard()); registry.register(new IceStatue()); registry.register(new FrostSigil()); registry.register(new LightningRay()); registry.register(new SparkBomb()); registry.register(new HomingSpark()); registry.register(new LightningSigil()); registry.register(new LightningArrow()); registry.register(new LifeDrain()); registry.register(new SummonSkeleton()); registry.register(new Metamorphosis()); registry.register(new Wither()); registry.register(new Poison()); registry.register(new GrowthAura()); registry.register(new Bubble()); registry.register(new Whirlwind()); registry.register(new PoisonBomb()); registry.register(new SummonSpiritWolf()); registry.register(new Blink()); registry.register(new Agility()); registry.register(new ConjureSword()); registry.register(new ConjurePickaxe()); registry.register(new ConjureBow()); registry.register(new ForceArrow()); registry.register(new Shield()); registry.register(new ReplenishHunger()); registry.register(new CureEffects()); registry.register(new HealAlly()); registry.register(new SummonBlaze()); registry.register(new RingOfFire()); registry.register(new Detonate()); registry.register(new FireResistance()); registry.register(new Fireskin()); registry.register(new FlamingAxe()); registry.register(new Blizzard()); registry.register(new SummonIceWraith()); registry.register(new IceShroud()); registry.register(new IceCharge()); registry.register(new FrostAxe()); registry.register(new InvokeWeather()); registry.register(new ChainLightning()); registry.register(new LightningBolt()); registry.register(new SummonLightningWraith()); registry.register(new StaticAura()); registry.register(new LightningDisc()); registry.register(new MindControl()); registry.register(new SummonWitherSkeleton()); registry.register(new Entrapment()); registry.register(new WitherSkull()); registry.register(new DarknessOrb()); registry.register(new ShadowWard()); registry.register(new Decay()); registry.register(new WaterBreathing()); registry.register(new Tornado()); registry.register(new Glide()); registry.register(new SummonSpiritHorse()); registry.register(new SpiderSwarm()); registry.register(new Slime()); registry.register(new Petrify()); registry.register(new Invisibility()); registry.register(new Levitation()); registry.register(new ForceOrb()); registry.register(new Transportation()); registry.register(new SpectralPathway()); registry.register(new PhaseStep()); registry.register(new VanishingBox()); registry.register(new GreaterHeal()); registry.register(new HealingAura()); registry.register(new Forcefield()); registry.register(new Ironflesh()); registry.register(new Transience()); registry.register(new Meteor()); registry.register(new Firestorm()); registry.register(new SummonPhoenix()); registry.register(new IceAge()); registry.register(new WallOfFrost()); registry.register(new SummonIceGiant()); registry.register(new Thunderstorm()); registry.register(new LightningHammer()); registry.register(new PlagueOfDarkness()); registry.register(new SummonSkeletonLegion()); registry.register(new SummonShadowWraith()); registry.register(new ForestsCurse()); registry.register(new Flight()); registry.register(new SilverfishSwarm()); registry.register(new BlackHole()); registry.register(new Shockwave()); registry.register(new SummonIronGolem()); registry.register(new ArrowRain()); registry.register(new Diamondflesh()); registry.register(new FontOfVitality()); // Wizardry 1.1 spells registry.register(new SmokeBomb()); registry.register(new MindTrick()); registry.register(new Leap()); registry.register(new PocketFurnace()); registry.register(new Intimidate()); registry.register(new Banish()); registry.register(new SixthSense()); registry.register(new Darkvision()); registry.register(new Clairvoyance()); registry.register(new PocketWorkbench()); registry.register(new ImbueWeapon()); registry.register(new InvigoratingPresence()); registry.register(new Oakflesh()); registry.register(new GreaterFireball()); registry.register(new FlamingWeapon()); registry.register(new IceLance()); registry.register(new FreezingWeapon()); registry.register(new IceSpikes()); registry.register(new LightningPulse()); registry.register(new CurseOfSoulbinding()); registry.register(new Cobwebs()); registry.register(new Decoy()); registry.register(new ArcaneJammer()); registry.register(new ConjureArmour()); registry.register(new GroupHeal()); registry.register(new Hailstorm()); registry.register(new LightningWeb()); registry.register(new SummonStormElemental()); registry.register(new Earthquake()); registry.register(new FontOfMana()); } }