f37812be3e
I may have got a bit behind with version control. A lot behind, in fact. Maybe I'll go back and split this sometime - then again, I probably won't. But hey, at least it's here!
72 lines
2.0 KiB
Java
72 lines
2.0 KiB
Java
package electroblob.wizardry.event;
|
|
|
|
import electroblob.wizardry.spell.Spell;
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
import net.minecraftforge.common.MinecraftForge;
|
|
import net.minecraftforge.event.entity.player.PlayerEvent;
|
|
import net.minecraftforge.fml.common.eventhandler.Cancelable;
|
|
|
|
import javax.annotation.Nullable;
|
|
|
|
/**
|
|
* DiscoverSpellEvent is fired when a player discovers a spell by any method.<br>
|
|
* <br>
|
|
* This event is {@link Cancelable}. If this event is canceled, the spell is not discovered.<br>
|
|
* <br>
|
|
* This event does not have a result. {@link HasResult}<br>
|
|
* <br>
|
|
* This event is fired on the {@link MinecraftForge#EVENT_BUS}.
|
|
*
|
|
* @author Electroblob
|
|
* @since Wizardry 2.1
|
|
*/
|
|
public class DiscoverSpellEvent extends PlayerEvent {
|
|
|
|
private final Spell spell;
|
|
private final Source source;
|
|
|
|
public DiscoverSpellEvent(EntityPlayer player, Spell spell, Source source){
|
|
super(player);
|
|
this.spell = spell;
|
|
this.source = source;
|
|
}
|
|
|
|
/** Returns the spell that is being discovered. */
|
|
public Spell getSpell(){
|
|
return spell;
|
|
}
|
|
|
|
/** Returns the method used to discover the spell. */
|
|
public Source getSource(){
|
|
return source;
|
|
}
|
|
|
|
public enum Source {
|
|
/** Signifies that the spell was discovered by trying to cast it. */
|
|
CASTING("casting"),
|
|
/** Signifies that the spell was discovered using a scroll of identification. */
|
|
IDENTIFICATION_SCROLL("identification_scroll"),
|
|
/** Signifies that the spell was discovered using commands. */
|
|
COMMAND("command"),
|
|
/** Signifies that the spell was discovered by purchasing it from a wizard. */
|
|
PURCHASE("purchase"),
|
|
/** Signifies that the spell was discovered by some other means. */
|
|
OTHER("other");
|
|
|
|
String name;
|
|
|
|
Source(String name){
|
|
this.name = name;
|
|
}
|
|
|
|
/** Returns the spell discovery source with the given name, or null if no such source exists. */
|
|
@Nullable
|
|
public static Source byName(String name){
|
|
for(Source source : values()){
|
|
if(source.name.equals(name)) return source;
|
|
}
|
|
return null;
|
|
}
|
|
}
|
|
|
|
} |