Replace Achievements with Advancements
- Advancements are now in JSON files, converted by the included migration script. - WizardryAdvancementTrigger is a generic achievement trigger that can be reused throughout the code to trigger custom advancements not covered by the JSON conditions. - Plus some other small and obvious fixes.
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
package electroblob.wizardry.registry;
|
||||
|
||||
import electroblob.wizardry.util.CustomAdvancementTrigger;
|
||||
|
||||
/**
|
||||
* This class stores a collection of custom advancement triggers, for advancements that cannot be triggered
|
||||
* from plain vanilla JSON definitions. It replaces the old WizardryAchievements class.
|
||||
*
|
||||
* @author 12foo
|
||||
* @since Wizardry 3.1.0
|
||||
*/
|
||||
public final class WizardryAdvancementTriggers {
|
||||
public static final CustomAdvancementTrigger armour_set = new CustomAdvancementTrigger("trigger_armour_set");
|
||||
public static final CustomAdvancementTrigger jam_wizard = new CustomAdvancementTrigger("trigger_jam_wizard");
|
||||
public static final CustomAdvancementTrigger self_destruct = new CustomAdvancementTrigger("trigger_self_destruct");
|
||||
public static final CustomAdvancementTrigger all_spells = new CustomAdvancementTrigger("trigger_all_spells");
|
||||
public static final CustomAdvancementTrigger element_master = new CustomAdvancementTrigger("trigger_element_master");
|
||||
public static final CustomAdvancementTrigger identify_spell = new CustomAdvancementTrigger("trigger_identify_spell");
|
||||
public static final CustomAdvancementTrigger elemental = new CustomAdvancementTrigger("trigger_elemental");
|
||||
public static final CustomAdvancementTrigger legendary = new CustomAdvancementTrigger("trigger_legendary");
|
||||
public static final CustomAdvancementTrigger max_out_wand = new CustomAdvancementTrigger("trigger_max_out_wand");
|
||||
public static final CustomAdvancementTrigger special_upgrade = new CustomAdvancementTrigger("trigger_special_upgrade");
|
||||
public static final CustomAdvancementTrigger pig_tornado = new CustomAdvancementTrigger("trigger_pig_tornado");
|
||||
public static final CustomAdvancementTrigger master = new CustomAdvancementTrigger("trigger_master");
|
||||
public static final CustomAdvancementTrigger apprentice = new CustomAdvancementTrigger("trigger_apprentice");
|
||||
public static final CustomAdvancementTrigger anger_wizard = new CustomAdvancementTrigger("trigger_anger_wizard");
|
||||
public static final CustomAdvancementTrigger buy_master_spell = new CustomAdvancementTrigger("trigger_buy_master_spell");
|
||||
public static final CustomAdvancementTrigger wizard_trade = new CustomAdvancementTrigger("trigger_wizard_trade");
|
||||
public static final CustomAdvancementTrigger slime_skeleton = new CustomAdvancementTrigger("trigger_slime_skeleton");
|
||||
public static final CustomAdvancementTrigger freeze_blaze = new CustomAdvancementTrigger("trigger_freeze_blaze");
|
||||
public static final CustomAdvancementTrigger frankenstein = new CustomAdvancementTrigger("trigger_frankenstein");
|
||||
public static final CustomAdvancementTrigger charge_creeper = new CustomAdvancementTrigger("trigger_charge_creeper");
|
||||
}
|
||||
@@ -103,12 +103,7 @@ public final class WizardryItems {
|
||||
public static final Item spectral_pickaxe = new ItemSpectralPickaxe(ToolMaterial.IRON);
|
||||
public static final Item spectral_bow = new ItemSpectralBow();
|
||||
|
||||
public static final Item mana_flask = new Item(){
|
||||
@Override
|
||||
public void onCreated(ItemStack par1ItemStack, World par2World, EntityPlayer player){
|
||||
AdvancementHelper.grantAdvancement(player, EnumAdvancement.craft_flask);
|
||||
}
|
||||
}.setCreativeTab(WizardryTabs.WIZARDRY);
|
||||
public static final Item mana_flask = new Item().setCreativeTab(WizardryTabs.WIZARDRY);
|
||||
|
||||
public static final Item storage_upgrade = new Item().setCreativeTab(WizardryTabs.WIZARDRY);
|
||||
public static final Item siphon_upgrade = new Item().setCreativeTab(WizardryTabs.WIZARDRY);
|
||||
|
||||
@@ -82,7 +82,7 @@ public final class WizardryPotions {
|
||||
|
||||
/**
|
||||
* Sets both the registry and unlocalised names of the given potion, then registers it with the given registry. Use
|
||||
* this instead of {@link potion#setRegistryName(String)} and {@link potion#setUnlocalizedName(String)} during
|
||||
* this instead of {@link Potion#setRegistryName(String)} and {@link Potion#setUnlocalizedName(String)} during
|
||||
* construction, for convenience and consistency.
|
||||
*
|
||||
* @param registry The registry to register the given potion to.
|
||||
|
||||
@@ -13,6 +13,7 @@ import electroblob.wizardry.loot.RandomSpell;
|
||||
import electroblob.wizardry.loot.WizardSpell;
|
||||
import electroblob.wizardry.tileentity.*;
|
||||
import electroblob.wizardry.util.WizardryUtilities;
|
||||
import net.minecraft.advancements.CriteriaTriggers;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EnumCreatureType;
|
||||
import net.minecraft.init.Biomes;
|
||||
@@ -50,6 +51,29 @@ public final class WizardryRegistry {
|
||||
|
||||
// NOTE: In 1.12, recipes have a registry (they can still stay here though since we don't keep references to them)
|
||||
|
||||
public static void registerAdvancementTriggers(){
|
||||
CriteriaTriggers.register(WizardryAdvancementTriggers.armour_set);
|
||||
CriteriaTriggers.register(WizardryAdvancementTriggers.jam_wizard);
|
||||
CriteriaTriggers.register(WizardryAdvancementTriggers.self_destruct);
|
||||
CriteriaTriggers.register(WizardryAdvancementTriggers.all_spells);
|
||||
CriteriaTriggers.register(WizardryAdvancementTriggers.element_master);
|
||||
CriteriaTriggers.register(WizardryAdvancementTriggers.identify_spell);
|
||||
CriteriaTriggers.register(WizardryAdvancementTriggers.elemental);
|
||||
CriteriaTriggers.register(WizardryAdvancementTriggers.legendary);
|
||||
CriteriaTriggers.register(WizardryAdvancementTriggers.max_out_wand);
|
||||
CriteriaTriggers.register(WizardryAdvancementTriggers.special_upgrade);
|
||||
CriteriaTriggers.register(WizardryAdvancementTriggers.pig_tornado);
|
||||
CriteriaTriggers.register(WizardryAdvancementTriggers.master);
|
||||
CriteriaTriggers.register(WizardryAdvancementTriggers.apprentice);
|
||||
CriteriaTriggers.register(WizardryAdvancementTriggers.anger_wizard);
|
||||
CriteriaTriggers.register(WizardryAdvancementTriggers.buy_master_spell);
|
||||
CriteriaTriggers.register(WizardryAdvancementTriggers.wizard_trade);
|
||||
CriteriaTriggers.register(WizardryAdvancementTriggers.slime_skeleton);
|
||||
CriteriaTriggers.register(WizardryAdvancementTriggers.freeze_blaze);
|
||||
CriteriaTriggers.register(WizardryAdvancementTriggers.frankenstein);
|
||||
CriteriaTriggers.register(WizardryAdvancementTriggers.charge_creeper);
|
||||
}
|
||||
|
||||
/** Called from the preInit method in the main mod class to register the custom dungeon loot. */
|
||||
public static void registerLoot(){
|
||||
|
||||
|
||||
Reference in New Issue
Block a user