diff --git a/src/main/java/electroblob/wizardry/SpellGlyphData.java b/src/main/java/electroblob/wizardry/SpellGlyphData.java index ca7e4d01..58f0635a 100644 --- a/src/main/java/electroblob/wizardry/SpellGlyphData.java +++ b/src/main/java/electroblob/wizardry/SpellGlyphData.java @@ -15,7 +15,7 @@ import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.world.World; -import net.minecraft.world.WorldSavedData; +import net.minecraft.world.storage.WorldSavedData; import net.minecraftforge.common.util.Constants.NBT; import net.minecraftforge.event.world.WorldEvent; import net.minecraftforge.fml.common.Mod; diff --git a/src/main/java/electroblob/wizardry/WizardData.java b/src/main/java/electroblob/wizardry/WizardData.java index 15c0113d..a8da56e9 100644 --- a/src/main/java/electroblob/wizardry/WizardData.java +++ b/src/main/java/electroblob/wizardry/WizardData.java @@ -9,6 +9,8 @@ import java.util.Map.Entry; import java.util.Set; import java.util.UUID; +import electroblob.wizardry.advancement.AdvancementHelper; +import electroblob.wizardry.advancement.AdvancementHelper.EnumAdvancement; import electroblob.wizardry.constants.Element; import electroblob.wizardry.enchantment.Imbuement; import electroblob.wizardry.entity.EntityShield; @@ -20,7 +22,6 @@ import electroblob.wizardry.packet.PacketPlayerSync; import electroblob.wizardry.packet.PacketTransportation; import electroblob.wizardry.packet.WizardryPacketHandler; import electroblob.wizardry.registry.Spells; -import electroblob.wizardry.registry.WizardryAchievements; import electroblob.wizardry.spell.None; import electroblob.wizardry.spell.Spell; import electroblob.wizardry.util.MagicDamage; @@ -178,13 +179,13 @@ public class WizardData implements INBTSerializable { if(!spellsDiscovered.add(spell)) return false; // If the spell had not already been discovered, achievements can be triggered and the method returns true if(spellsDiscovered.containsAll(Spell.getSpells(Spell::isEnabled))){ - this.player.addStat(WizardryAchievements.all_spells); + AdvancementHelper.grantAdvancement(player, EnumAdvancement.all_spells); } for(Element element : Element.values()){ if(element != Element.MAGIC && spellsDiscovered.containsAll(Spell.getSpells(new Spell.TierElementFilter(null, element)))){ - this.player.addStat(WizardryAchievements.element_master); + AdvancementHelper.grantAdvancement(player, EnumAdvancement.element_master); } } diff --git a/src/main/java/electroblob/wizardry/Wizardry.java b/src/main/java/electroblob/wizardry/Wizardry.java index 93c6760f..6c8aa287 100644 --- a/src/main/java/electroblob/wizardry/Wizardry.java +++ b/src/main/java/electroblob/wizardry/Wizardry.java @@ -7,31 +7,29 @@ import electroblob.wizardry.command.CommandDiscoverSpell; import electroblob.wizardry.command.CommandSetAlly; import electroblob.wizardry.command.CommandViewAllies; import electroblob.wizardry.packet.WizardryPacketHandler; -import electroblob.wizardry.registry.WizardryAchievements; import electroblob.wizardry.registry.WizardryItems; import electroblob.wizardry.registry.WizardryRegistry; import electroblob.wizardry.registry.WizardryTabs; import net.minecraft.item.Item; import net.minecraft.nbt.NBTBase; import net.minecraft.util.EnumFacing; -import net.minecraftforge.common.AchievementPage; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.capabilities.Capability.IStorage; import net.minecraftforge.common.capabilities.CapabilityManager; +import net.minecraftforge.event.RegistryEvent; +import net.minecraftforge.event.RegistryEvent.MissingMappings; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod.EventHandler; import net.minecraftforge.fml.common.Mod.Instance; import net.minecraftforge.fml.common.SidedProxy; import net.minecraftforge.fml.common.event.FMLInitializationEvent; -import net.minecraftforge.fml.common.event.FMLMissingMappingsEvent; import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; import net.minecraftforge.fml.common.event.FMLServerStartingEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.network.NetworkRegistry; import net.minecraftforge.fml.common.registry.GameRegistry; -import net.minecraftforge.fml.common.registry.GameRegistry.Type; @Mod(modid = Wizardry.MODID, name = Wizardry.NAME, version = Wizardry.VERSION, guiFactory = "electroblob." + Wizardry.MODID + ".WizardryGuiFactory") public class Wizardry { @@ -140,9 +138,6 @@ public class Wizardry { // The check for the generateLoot setting is now done within this method. WizardryRegistry.registerLoot(); - // NOTE: Will need to be moved to init for 1.12, as will anything that needs to be after the registry events. - WizardryTabs.sort(); - // Moved to preInit, because apparently it has to be here now. proxy.registerRenderers(); // It seems this also has to be here @@ -163,12 +158,8 @@ public class Wizardry { NetworkRegistry.INSTANCE.registerGuiHandler(this, new WizardryGuiHandler()); WizardryPacketHandler.initPackets(); - // Achievements - AchievementPage.registerAchievementPage(WizardryAchievements.WIZARDRY_ACHIEVEMENT_PAGE); - - // Recipes - WizardryRegistry.registerRecipes(); - + // NOTE: Will need to be moved to init for 1.12, as will anything that needs to be after the registry events. + WizardryTabs.sort(); proxy.initGuiBits(); } @@ -203,14 +194,14 @@ public class Wizardry { // NOTE: Needs changing to RegistryEvent.MissingMapping in 1.12, or just removing since nobody updates minecraft // versions when using mods. @EventHandler - public static void onMissingMappingEvent(FMLMissingMappingsEvent event){ + public static void onMissingMappingEvent(RegistryEvent.MissingMappings event){ // Just get, not getAll, since the mod id didn't change! - for(FMLMissingMappingsEvent.MissingMapping mapping : event.get()){ - if(mapping.type == Type.ITEM && mapping.resourceLocation.getResourceDomain().equals(Wizardry.MODID)){ + for(MissingMappings.Mapping mapping : event.getAllMappings()){ + if(mapping.key.getResourceDomain().equals(Wizardry.MODID)){ Item replacement = null; - switch(mapping.resourceLocation.getResourcePath()){ + switch(mapping.key.getResourcePath()){ case "wand_basic": replacement = WizardryItems.magic_wand; break; case "wand_basic_fire": replacement = WizardryItems.basic_fire_wand; break; diff --git a/src/main/java/electroblob/wizardry/WizardryEventHandler.java b/src/main/java/electroblob/wizardry/WizardryEventHandler.java index 3454f071..589d3444 100644 --- a/src/main/java/electroblob/wizardry/WizardryEventHandler.java +++ b/src/main/java/electroblob/wizardry/WizardryEventHandler.java @@ -1,5 +1,7 @@ package electroblob.wizardry; +import electroblob.wizardry.advancement.AdvancementHelper; +import electroblob.wizardry.advancement.AdvancementHelper.EnumAdvancement; import electroblob.wizardry.constants.Constants; import electroblob.wizardry.entity.EntityArc; import electroblob.wizardry.entity.living.EntityEvilWizard; @@ -10,7 +12,6 @@ import electroblob.wizardry.event.SpellCastEvent; import electroblob.wizardry.item.ItemWand; import electroblob.wizardry.item.ItemWizardArmour; import electroblob.wizardry.registry.Spells; -import electroblob.wizardry.registry.WizardryAchievements; import electroblob.wizardry.registry.WizardryEnchantments; import electroblob.wizardry.registry.WizardryItems; import electroblob.wizardry.registry.WizardryPotions; @@ -353,7 +354,7 @@ public final class WizardryEventHandler { } if(event.getEntityLiving() == player && event.getSource() instanceof IElementalDamage){ - player.addStat(WizardryAchievements.self_destruct); + AdvancementHelper.grantAdvancement(player, EnumAdvancement.self_destruct); } } } @@ -386,7 +387,7 @@ public final class WizardryEventHandler { @SubscribeEvent public static void onItemPickupEvent(EntityItemPickupEvent event){ if(event.getItem().getItem().getItem() == WizardryItems.magic_crystal){ - event.getEntityPlayer().addStat(WizardryAchievements.crystal, 1); + AdvancementHelper.grantAdvancement(event.getEntityPlayer(), EnumAdvancement.crystal); } } diff --git a/src/main/java/electroblob/wizardry/WizardryGuiFactory.java b/src/main/java/electroblob/wizardry/WizardryGuiFactory.java index 6920e745..19951840 100644 --- a/src/main/java/electroblob/wizardry/WizardryGuiFactory.java +++ b/src/main/java/electroblob/wizardry/WizardryGuiFactory.java @@ -13,22 +13,11 @@ public class WizardryGuiFactory implements IModGuiFactory { public void initialize(Minecraft minecraftInstance){ } - @Override - public Class mainConfigGuiClass(){ - return GuiConfigWizardry.class; - } - @Override public Set runtimeGuiCategories(){ return null; } - @SuppressWarnings("deprecation") // It's a bit of Forge that hasn't been tidied up, but we have to implement it. - @Override - public RuntimeOptionGuiHandler getHandlerFor(RuntimeOptionCategoryElement element){ - return null; - } - @Override public boolean hasConfigGui(){ return true; diff --git a/src/main/java/electroblob/wizardry/WizardryWorldGenerator.java b/src/main/java/electroblob/wizardry/WizardryWorldGenerator.java index edb3f339..ae66da70 100644 --- a/src/main/java/electroblob/wizardry/WizardryWorldGenerator.java +++ b/src/main/java/electroblob/wizardry/WizardryWorldGenerator.java @@ -30,8 +30,8 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraft.world.WorldServer; import net.minecraft.world.biome.Biome; -import net.minecraft.world.chunk.IChunkGenerator; import net.minecraft.world.chunk.IChunkProvider; +import net.minecraft.world.gen.IChunkGenerator; import net.minecraft.world.gen.feature.WorldGenMinable; import net.minecraft.world.storage.loot.LootContext; import net.minecraft.world.storage.loot.LootTable; diff --git a/src/main/java/electroblob/wizardry/advancement/AdvancementHelper.java b/src/main/java/electroblob/wizardry/advancement/AdvancementHelper.java new file mode 100644 index 00000000..dfa2d524 --- /dev/null +++ b/src/main/java/electroblob/wizardry/advancement/AdvancementHelper.java @@ -0,0 +1,59 @@ +package electroblob.wizardry.advancement; + +import electroblob.wizardry.Wizardry; +import net.minecraft.advancements.Advancement; +import net.minecraft.advancements.AdvancementManager; +import net.minecraft.advancements.AdvancementProgress; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.util.ResourceLocation; + +/** + * This is a provisory class for the transition to 1.12 + * It contains an enum with all the advancements of this mod + * and an helper to grant advancements on the server side only (like the command) + */ +public class AdvancementHelper { + public enum EnumAdvancement { + crystal, + arcane_initiate, + apprentice, + master, + all_spells, + wizard_trade, + buy_master_spell, + freeze_blaze, + charge_creeper, + frankenstein, + special_upgrade, + craft_flask, + elemental, + armour_set, + legendary, + self_destruct, + pig_tornado, + jam_wizard, + slime_skeleton, + anger_wizard, + defeat_evil_wizard, + max_out_wand, + element_master, + identify_spell; + } + + public static boolean grantAdvancement(EntityPlayer player, EnumAdvancement advancementName) { + if (player == null) { return false; } + if (player.world.isRemote) { return true; } + EntityPlayerMP player_mp = player.getServer().getPlayerList().getPlayerByUUID(player.getUniqueID()); + AdvancementManager am = player_mp.getServerWorld().getAdvancementManager(); + Advancement advancement = am.getAdvancement(new ResourceLocation(Wizardry.MODID, advancementName.name())); + if (advancement == null) { return false; } + AdvancementProgress advancementprogress = player_mp.getAdvancements().getProgress(advancement); + if (!advancementprogress.isDone()) { + for (String criteria : advancementprogress.getRemaningCriteria()) { + player_mp.getAdvancements().grantCriterion(advancement, criteria); + } + } + return true; + } +} diff --git a/src/main/java/electroblob/wizardry/client/EntityNameEntry.java b/src/main/java/electroblob/wizardry/client/EntityNameEntry.java index 2f6e8296..e6b647f5 100644 --- a/src/main/java/electroblob/wizardry/client/EntityNameEntry.java +++ b/src/main/java/electroblob/wizardry/client/EntityNameEntry.java @@ -35,8 +35,8 @@ public class EntityNameEntry extends StringEntry { @Override public void drawEntry(int slotIndex, int x, int y, int listWidth, int slotHeight, int mouseX, int mouseY, - boolean isSelected){ - // super.drawEntry(slotIndex, x, y, listWidth, slotHeight, tessellator, mouseX, mouseY, isSelected); + boolean isSelected, float partialTicks){ + //super.drawEntry(slotIndex, x, y, listWidth, slotHeight, mouseX, mouseY, isSelected, partial); this.btnValue.x = listWidth / 4; this.btnValue.y = y; @@ -47,7 +47,7 @@ public class EntityNameEntry extends StringEntry { this.btnValue.displayString = this.textFieldValue.getText(); // btnValue.packedFGColour = value ? GuiUtils.getColorCode('2', true) : GuiUtils.getColorCode('4', true); - this.btnValue.drawButton(owningEntryList.getMC(), mouseX, mouseY); + this.btnValue.drawButton(owningEntryList.getMC(), mouseX, mouseY, partialTicks); } @Override diff --git a/src/main/java/electroblob/wizardry/client/GuiButtonApply.java b/src/main/java/electroblob/wizardry/client/GuiButtonApply.java index 9d91b9f7..69ebea05 100644 --- a/src/main/java/electroblob/wizardry/client/GuiButtonApply.java +++ b/src/main/java/electroblob/wizardry/client/GuiButtonApply.java @@ -16,8 +16,8 @@ class GuiButtonApply extends GuiButton { } @Override - public void drawButton(Minecraft minecraft, int mouseX, int mouseY){ - + public void drawButton(Minecraft minecraft, int mouseX, int mouseY, float partialTicks){ + // Whether the button is highlighted this.hovered = mouseX >= this.x && mouseY >= this.y && mouseX < this.x + this.width && mouseY < this.y + this.height; diff --git a/src/main/java/electroblob/wizardry/client/GuiWizardHandbook.java b/src/main/java/electroblob/wizardry/client/GuiWizardHandbook.java index 97da4a63..7ced1af2 100644 --- a/src/main/java/electroblob/wizardry/client/GuiWizardHandbook.java +++ b/src/main/java/electroblob/wizardry/client/GuiWizardHandbook.java @@ -22,10 +22,10 @@ import electroblob.wizardry.util.WizardryUtilities; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.renderer.BufferBuilder; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.VertexBuffer; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; import net.minecraft.init.Blocks; import net.minecraft.init.Items; @@ -530,7 +530,7 @@ public class GuiWizardHandbook extends GuiScreen { int height){ Tessellator tessellator = Tessellator.getInstance(); - VertexBuffer buffer = tessellator.getBuffer(); + BufferBuilder buffer = tessellator.getBuffer(); buffer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX); buffer.pos((x), y + finalHeight, 0).tex(u, v + height).endVertex(); buffer.pos(x + finalWidth, y + finalHeight, 0).tex(u + width, v + height).endVertex(); diff --git a/src/main/java/electroblob/wizardry/client/WizardryClientEventHandler.java b/src/main/java/electroblob/wizardry/client/WizardryClientEventHandler.java index be09423f..0576e750 100644 --- a/src/main/java/electroblob/wizardry/client/WizardryClientEventHandler.java +++ b/src/main/java/electroblob/wizardry/client/WizardryClientEventHandler.java @@ -17,10 +17,10 @@ import electroblob.wizardry.tileentity.ContainerArcaneWorkbench; import electroblob.wizardry.util.WandHelper; import electroblob.wizardry.util.WizardryUtilities; import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.BufferBuilder; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.VertexBuffer; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; import net.minecraft.entity.EntityLivingBase; @@ -153,7 +153,7 @@ public final class WizardryClientEventHandler { && rayTrace.entityHit == event.getEntity() && properties != null && properties.selectedMinion != null){ Tessellator tessellator = Tessellator.getInstance(); - VertexBuffer buffer = tessellator.getBuffer(); + BufferBuilder buffer = tessellator.getBuffer(); GlStateManager.pushMatrix(); @@ -194,7 +194,7 @@ public final class WizardryClientEventHandler { if(properties != null && properties.selectedMinion != null && properties.selectedMinion.get() == event.getEntity()){ Tessellator tessellator = Tessellator.getInstance(); - VertexBuffer buffer = tessellator.getBuffer(); + BufferBuilder buffer = tessellator.getBuffer(); GlStateManager.pushMatrix(); @@ -233,11 +233,11 @@ public final class WizardryClientEventHandler { // Sixth sense if(mc.player.isPotionActive(WizardryPotions.sixth_sense) && !(event.getEntity() instanceof EntityArmorStand) && event.getEntity() != mc.player - && mc.player.getActivePotionEffect(WizardryPotions.sixth_sense) != null && event.getEntity().getDistanceToEntity(mc.player) < 20 + && mc.player.getActivePotionEffect(WizardryPotions.sixth_sense) != null && event.getEntity().getDistance(mc.player) < 20 * (1 + mc.player.getActivePotionEffect(WizardryPotions.sixth_sense).getAmplifier() * Constants.RANGE_INCREASE_PER_LEVEL)){ Tessellator tessellator = Tessellator.getInstance(); - VertexBuffer buffer = tessellator.getBuffer(); + BufferBuilder buffer = tessellator.getBuffer(); GlStateManager.pushMatrix(); @@ -293,7 +293,7 @@ public final class WizardryClientEventHandler { Minecraft.getMinecraft().renderEngine.bindTexture(sixthSenseOverlayTexture); Tessellator tessellator = Tessellator.getInstance(); - VertexBuffer buffer = tessellator.getBuffer(); + BufferBuilder buffer = tessellator.getBuffer(); buffer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX); buffer.pos(0.0D, (double)event.getResolution().getScaledHeight(), -90.0D).tex(0.0D, 1.0D).endVertex(); @@ -323,7 +323,7 @@ public final class WizardryClientEventHandler { Minecraft.getMinecraft().renderEngine.bindTexture(frostOverlayTexture); Tessellator tessellator = Tessellator.getInstance(); - VertexBuffer buffer = tessellator.getBuffer(); + BufferBuilder buffer = tessellator.getBuffer(); buffer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX); buffer.pos(0.0D, (double)event.getResolution().getScaledHeight(), -90.0D).tex(0.0D, 1.0D).endVertex(); @@ -371,7 +371,7 @@ public final class WizardryClientEventHandler { GlStateManager.scale(1.1, 1.1, 1.1); Tessellator tessellator = Tessellator.getInstance(); - VertexBuffer buffer = tessellator.getBuffer(); + BufferBuilder buffer = tessellator.getBuffer(); buffer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX); @@ -421,7 +421,7 @@ public final class WizardryClientEventHandler { Minecraft.getMinecraft().renderEngine.bindTexture(shadowWardTexture); Tessellator tessellator = Tessellator.getInstance(); - VertexBuffer buffer = tessellator.getBuffer(); + BufferBuilder buffer = tessellator.getBuffer(); GlStateManager.translate(0, 1.2, 0); GlStateManager.rotate(entityplayer.world.getWorldTime() * -2, 0, 0, 1); @@ -472,7 +472,7 @@ public final class WizardryClientEventHandler { Minecraft.getMinecraft().renderEngine.bindTexture(wingTexture); Tessellator tessellator = Tessellator.getInstance(); - VertexBuffer buffer = tessellator.getBuffer(); + BufferBuilder buffer = tessellator.getBuffer(); GlStateManager.pushMatrix(); @@ -615,7 +615,7 @@ public final class WizardryClientEventHandler { private static void renderShield(Tessellator tessellator){ - VertexBuffer buffer = tessellator.getBuffer(); + BufferBuilder buffer = tessellator.getBuffer(); double widthOuter = 0.6d; double heightOuter = 0.7d; diff --git a/src/main/java/electroblob/wizardry/client/model/WizardryItemModels.java b/src/main/java/electroblob/wizardry/client/model/WizardryItemModels.java index ecfac381..0f5cec39 100644 --- a/src/main/java/electroblob/wizardry/client/model/WizardryItemModels.java +++ b/src/main/java/electroblob/wizardry/client/model/WizardryItemModels.java @@ -174,7 +174,7 @@ public final class WizardryItemModels { if(item.getHasSubtypes()){ NonNullList items = NonNullList.create(); - item.getSubItems(item, null, items); // Client-only method, but we're client-side so this is OK. + item.getSubItems(item.getCreativeTab(), items); // Client-only method, but we're client-side so this is OK. for(ItemStack stack : items){ ModelLoader.setCustomModelResourceLocation(item, stack.getMetadata(), new ModelResourceLocation(item.getRegistryName(), "inventory")); diff --git a/src/main/java/electroblob/wizardry/client/particle/ParticleCustomTexture.java b/src/main/java/electroblob/wizardry/client/particle/ParticleCustomTexture.java index 00e50b26..090ea7c9 100644 --- a/src/main/java/electroblob/wizardry/client/particle/ParticleCustomTexture.java +++ b/src/main/java/electroblob/wizardry/client/particle/ParticleCustomTexture.java @@ -4,11 +4,11 @@ import org.lwjgl.opengl.GL11; import net.minecraft.client.Minecraft; import net.minecraft.client.particle.Particle; +import net.minecraft.client.renderer.BufferBuilder; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.VertexBuffer; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; @@ -139,9 +139,9 @@ public abstract class ParticleCustomTexture extends Particle { // Overridden to bind the new texture. I think this can be done with TextureAtlasSprite, but this works as it is // so I'm not changing it for the time being. @Override - public void renderParticle(VertexBuffer buffer, Entity viewer, float partialTicks, float rotationX, float rotationZ, + public void renderParticle(BufferBuilder buffer, Entity viewer, float partialTicks, float rotationX, float rotationZ, float rotationYZ, float rotationXY, float rotationXZ){ - + GlStateManager.pushMatrix(); GlStateManager.pushAttrib(); diff --git a/src/main/java/electroblob/wizardry/client/particle/ParticleDarkMagic.java b/src/main/java/electroblob/wizardry/client/particle/ParticleDarkMagic.java index 7532dd98..9c962a00 100644 --- a/src/main/java/electroblob/wizardry/client/particle/ParticleDarkMagic.java +++ b/src/main/java/electroblob/wizardry/client/particle/ParticleDarkMagic.java @@ -1,7 +1,7 @@ package electroblob.wizardry.client.particle; import net.minecraft.client.particle.Particle; -import net.minecraft.client.renderer.VertexBuffer; +import net.minecraft.client.renderer.BufferBuilder; import net.minecraft.entity.Entity; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; @@ -28,7 +28,7 @@ public class ParticleDarkMagic extends Particle { } @Override - public void renderParticle(VertexBuffer buffer, Entity entity, float partialTicks, float rotationX, float rotationZ, + public void renderParticle(BufferBuilder buffer, Entity entity, float partialTicks, float rotationX, float rotationZ, float rotationYZ, float rotationXY, float rotationXZ){ float f6 = ((float)this.particleAge + partialTicks) / (float)this.particleMaxAge * 32.0F; diff --git a/src/main/java/electroblob/wizardry/client/particle/ParticleMagicFlame.java b/src/main/java/electroblob/wizardry/client/particle/ParticleMagicFlame.java index 28e8fd1d..d16a53b3 100644 --- a/src/main/java/electroblob/wizardry/client/particle/ParticleMagicFlame.java +++ b/src/main/java/electroblob/wizardry/client/particle/ParticleMagicFlame.java @@ -1,7 +1,7 @@ package electroblob.wizardry.client.particle; import net.minecraft.client.particle.Particle; -import net.minecraft.client.renderer.VertexBuffer; +import net.minecraft.client.renderer.BufferBuilder; import net.minecraft.entity.Entity; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; @@ -32,7 +32,7 @@ public class ParticleMagicFlame extends Particle { } @Override - public void renderParticle(VertexBuffer buffer, Entity entity, float partialTicks, float rotationX, float rotationZ, + public void renderParticle(BufferBuilder buffer, Entity entity, float partialTicks, float rotationX, float rotationZ, float rotationYZ, float rotationXY, float rotationXZ){ float f6 = ((float)this.particleAge + partialTicks) / (float)this.particleMaxAge; this.particleScale = this.flameScale * (1.0F - f6 * f6 * 0.5F); diff --git a/src/main/java/electroblob/wizardry/client/renderer/RenderArc.java b/src/main/java/electroblob/wizardry/client/renderer/RenderArc.java index 26cf6cb9..1e59d927 100644 --- a/src/main/java/electroblob/wizardry/client/renderer/RenderArc.java +++ b/src/main/java/electroblob/wizardry/client/renderer/RenderArc.java @@ -4,10 +4,10 @@ import org.lwjgl.opengl.GL11; import electroblob.wizardry.Wizardry; import electroblob.wizardry.entity.EntityArc; +import net.minecraft.client.renderer.BufferBuilder; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.VertexBuffer; import net.minecraft.client.renderer.entity.Render; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; @@ -38,7 +38,7 @@ public class RenderArc extends Render { // System.out.println("doRender parameters: " + d0 + ", " + d1 + ", " + d2 + ", " + fa + ", " + fb); Tessellator tessellator = Tessellator.getInstance(); - VertexBuffer buffer = tessellator.getBuffer(); + BufferBuilder buffer = tessellator.getBuffer(); bindTexture(textures[arc.textureIndex]); // This MUST be after the tessellator declaration and the gl stuff diff --git a/src/main/java/electroblob/wizardry/client/renderer/RenderArcaneWorkbench.java b/src/main/java/electroblob/wizardry/client/renderer/RenderArcaneWorkbench.java index 67ac553e..8666d802 100644 --- a/src/main/java/electroblob/wizardry/client/renderer/RenderArcaneWorkbench.java +++ b/src/main/java/electroblob/wizardry/client/renderer/RenderArcaneWorkbench.java @@ -6,10 +6,10 @@ import electroblob.wizardry.Wizardry; import electroblob.wizardry.tileentity.ContainerArcaneWorkbench; import electroblob.wizardry.tileentity.TileEntityArcaneWorkbench; import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.BufferBuilder; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.VertexBuffer; import net.minecraft.client.renderer.block.model.ItemCameraTransforms.TransformType; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; @@ -25,9 +25,9 @@ public class RenderArcaneWorkbench extends TileEntitySpecialRenderer { // float yaw = (float) Math.toDegrees(Math.atan(x/z)); Tessellator tessellator = Tessellator.getInstance(); - VertexBuffer buffer = tessellator.getBuffer(); + BufferBuilder buffer = tessellator.getBuffer(); GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); diff --git a/src/main/java/electroblob/wizardry/client/renderer/RenderBubble.java b/src/main/java/electroblob/wizardry/client/renderer/RenderBubble.java index 107c4ecf..fa0cb695 100644 --- a/src/main/java/electroblob/wizardry/client/renderer/RenderBubble.java +++ b/src/main/java/electroblob/wizardry/client/renderer/RenderBubble.java @@ -6,10 +6,10 @@ import electroblob.wizardry.Wizardry; import electroblob.wizardry.entity.construct.EntityBubble; import electroblob.wizardry.util.WizardryUtilities; import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.BufferBuilder; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.VertexBuffer; import net.minecraft.client.renderer.entity.Render; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; @@ -49,7 +49,7 @@ public class RenderBubble extends Render { GlStateManager.disableLighting(); OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240, 240); }else{ - int j = entity.getBrightnessForRender(par9); + int j = entity.getBrightnessForRender(); int k = j % 65536; int l = j / 65536; OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float)k / 1.0F, (float)l / 1.0F); @@ -70,7 +70,7 @@ public class RenderBubble extends Render { double pixelwidth = (1.0d / 128); Tessellator tessellator = Tessellator.getInstance(); - VertexBuffer buffer = tessellator.getBuffer(); + BufferBuilder buffer = tessellator.getBuffer(); buffer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX); // tessellator.setColorRGBA_I(k1, 128); // buffer.normal(0.0F, 1.0F, 0.0F); diff --git a/src/main/java/electroblob/wizardry/client/renderer/RenderDecay.java b/src/main/java/electroblob/wizardry/client/renderer/RenderDecay.java index f206b8f1..272b8527 100644 --- a/src/main/java/electroblob/wizardry/client/renderer/RenderDecay.java +++ b/src/main/java/electroblob/wizardry/client/renderer/RenderDecay.java @@ -4,10 +4,10 @@ import org.lwjgl.opengl.GL11; import electroblob.wizardry.Wizardry; import electroblob.wizardry.entity.construct.EntityDecay; +import net.minecraft.client.renderer.BufferBuilder; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.VertexBuffer; import net.minecraft.client.renderer.entity.Render; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; @@ -49,7 +49,7 @@ public class RenderDecay extends Render { GlStateManager.scale(scale, scale, scale); Tessellator tessellator = Tessellator.getInstance(); - VertexBuffer buffer = tessellator.getBuffer(); + BufferBuilder buffer = tessellator.getBuffer(); buffer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX); // tessellator.setColorRGBA_I(k1, 128); // buffer.normal(0.0F, 1.0F, 0.0F); diff --git a/src/main/java/electroblob/wizardry/client/renderer/RenderFireRing.java b/src/main/java/electroblob/wizardry/client/renderer/RenderFireRing.java index db194bd6..8597bacf 100644 --- a/src/main/java/electroblob/wizardry/client/renderer/RenderFireRing.java +++ b/src/main/java/electroblob/wizardry/client/renderer/RenderFireRing.java @@ -4,10 +4,10 @@ import org.lwjgl.opengl.GL11; import electroblob.wizardry.entity.construct.EntityFireRing; import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.BufferBuilder; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.VertexBuffer; import net.minecraft.client.renderer.entity.Render; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.texture.TextureAtlasSprite; @@ -50,7 +50,7 @@ public class RenderFireRing extends Render { GlStateManager.scale(scale, scale, scale); Tessellator tessellator = Tessellator.getInstance(); - VertexBuffer buffer = tessellator.getBuffer(); + BufferBuilder buffer = tessellator.getBuffer(); buffer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX); buffer.pos((double)(0.0F - f7), (double)(0.0F - f8), 0.01).tex(0, 1).endVertex(); buffer.pos((double)(f6 - f7), (double)(0.0F - f8), 0.01).tex(1, 1).endVertex(); diff --git a/src/main/java/electroblob/wizardry/client/renderer/RenderForceArrow.java b/src/main/java/electroblob/wizardry/client/renderer/RenderForceArrow.java index 2be1669a..5878aeeb 100644 --- a/src/main/java/electroblob/wizardry/client/renderer/RenderForceArrow.java +++ b/src/main/java/electroblob/wizardry/client/renderer/RenderForceArrow.java @@ -4,10 +4,10 @@ import org.lwjgl.opengl.GL11; import electroblob.wizardry.Wizardry; import electroblob.wizardry.entity.projectile.EntityForceArrow; +import net.minecraft.client.renderer.BufferBuilder; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.VertexBuffer; import net.minecraft.client.renderer.entity.Render; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; @@ -44,7 +44,7 @@ public class RenderForceArrow extends Render { 0.0F, 1.0F); GlStateManager.rotate(180, 0, 1, 0); Tessellator tessellator = Tessellator.getInstance(); - VertexBuffer buffer = tessellator.getBuffer(); + BufferBuilder buffer = tessellator.getBuffer(); float pixel = 1.0f / 32.0f; float u1 = 0.0f; float u2 = pixel * 14; diff --git a/src/main/java/electroblob/wizardry/client/renderer/RenderIceSpike.java b/src/main/java/electroblob/wizardry/client/renderer/RenderIceSpike.java index fdd64803..961b87f5 100644 --- a/src/main/java/electroblob/wizardry/client/renderer/RenderIceSpike.java +++ b/src/main/java/electroblob/wizardry/client/renderer/RenderIceSpike.java @@ -4,10 +4,10 @@ import org.lwjgl.opengl.GL11; import electroblob.wizardry.Wizardry; import electroblob.wizardry.entity.construct.EntityIceSpike; +import net.minecraft.client.renderer.BufferBuilder; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.VertexBuffer; import net.minecraft.client.renderer.entity.Render; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; @@ -32,7 +32,7 @@ public class RenderIceSpike extends Render { // with setLightmapTextureCoords. GlStateManager.disableLighting(); - int j = entity.getBrightnessForRender(partialTickTime); + int j = entity.getBrightnessForRender(); int k = j % 65536; int l = j / 65536; OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float)k / 1.0F, (float)l / 1.0F); @@ -40,7 +40,7 @@ public class RenderIceSpike extends Render { GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); Tessellator tessellator = Tessellator.getInstance(); - VertexBuffer buffer = tessellator.getBuffer(); + BufferBuilder buffer = tessellator.getBuffer(); bindTexture(texture); diff --git a/src/main/java/electroblob/wizardry/client/renderer/RenderLightningDisc.java b/src/main/java/electroblob/wizardry/client/renderer/RenderLightningDisc.java index 304a4ed8..77af69d3 100644 --- a/src/main/java/electroblob/wizardry/client/renderer/RenderLightningDisc.java +++ b/src/main/java/electroblob/wizardry/client/renderer/RenderLightningDisc.java @@ -3,10 +3,10 @@ package electroblob.wizardry.client.renderer; import org.lwjgl.opengl.GL11; import electroblob.wizardry.entity.projectile.EntityLightningDisc; +import net.minecraft.client.renderer.BufferBuilder; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.VertexBuffer; import net.minecraft.client.renderer.entity.Render; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; @@ -48,7 +48,7 @@ public class RenderLightningDisc extends Render { GlStateManager.scale(scale, scale, scale); Tessellator tessellator = Tessellator.getInstance(); - VertexBuffer buffer = tessellator.getBuffer(); + BufferBuilder buffer = tessellator.getBuffer(); buffer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX); // tessellator.setColorRGBA_I(k1, 128); // buffer.normal(0.0F, 1.0F, 0.0F); diff --git a/src/main/java/electroblob/wizardry/client/renderer/RenderLightningPulse.java b/src/main/java/electroblob/wizardry/client/renderer/RenderLightningPulse.java index 8ae50b27..65f2bc1d 100644 --- a/src/main/java/electroblob/wizardry/client/renderer/RenderLightningPulse.java +++ b/src/main/java/electroblob/wizardry/client/renderer/RenderLightningPulse.java @@ -4,10 +4,10 @@ import org.lwjgl.opengl.GL11; import electroblob.wizardry.Wizardry; import electroblob.wizardry.entity.construct.EntityLightningPulse; +import net.minecraft.client.renderer.BufferBuilder; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.VertexBuffer; import net.minecraft.client.renderer.entity.Render; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; @@ -49,7 +49,7 @@ public class RenderLightningPulse extends Render { GlStateManager.scale(scale, scale, scale); Tessellator tessellator = Tessellator.getInstance(); - VertexBuffer buffer = tessellator.getBuffer(); + BufferBuilder buffer = tessellator.getBuffer(); buffer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX); buffer.pos((double)(0.0F - f7), (double)(0.0F - f8), 0.01).tex(0, 1).endVertex(); buffer.pos((double)(f6 - f7), (double)(0.0F - f8), 0.01).tex(1, 1).endVertex(); diff --git a/src/main/java/electroblob/wizardry/client/renderer/RenderMagicArrow.java b/src/main/java/electroblob/wizardry/client/renderer/RenderMagicArrow.java index aab1e6e0..9dfb0527 100644 --- a/src/main/java/electroblob/wizardry/client/renderer/RenderMagicArrow.java +++ b/src/main/java/electroblob/wizardry/client/renderer/RenderMagicArrow.java @@ -3,10 +3,10 @@ package electroblob.wizardry.client.renderer; import org.lwjgl.opengl.GL11; import electroblob.wizardry.entity.projectile.EntityMagicArrow; +import net.minecraft.client.renderer.BufferBuilder; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.VertexBuffer; import net.minecraft.client.renderer.entity.Render; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; @@ -55,7 +55,7 @@ public class RenderMagicArrow extends Render { GlStateManager.rotate(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * par9, 0.0F, 0.0F, 1.0F); Tessellator tessellator = Tessellator.getInstance(); - VertexBuffer buffer = tessellator.getBuffer(); + BufferBuilder buffer = tessellator.getBuffer(); float f2 = 0.0F; float f3 = pixelsLong / 32.0F; float f4 = 0.0F; diff --git a/src/main/java/electroblob/wizardry/client/renderer/RenderMagicLight.java b/src/main/java/electroblob/wizardry/client/renderer/RenderMagicLight.java index 8c04cf5b..2d4ae11b 100644 --- a/src/main/java/electroblob/wizardry/client/renderer/RenderMagicLight.java +++ b/src/main/java/electroblob/wizardry/client/renderer/RenderMagicLight.java @@ -5,11 +5,11 @@ import org.lwjgl.opengl.GL11; import electroblob.wizardry.Wizardry; import electroblob.wizardry.tileentity.TileEntityMagicLight; import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.BufferBuilder; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.VertexBuffer; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; import net.minecraft.util.ResourceLocation; @@ -22,8 +22,8 @@ public class RenderMagicLight extends TileEntitySpecialRenderer { GlStateManager.scale(f2 / 1.0F, f2 / 1.0F, f2 / 1.0F); Tessellator tessellator = Tessellator.getInstance(); - VertexBuffer buffer = tessellator.getBuffer(); + BufferBuilder buffer = tessellator.getBuffer(); float f3 = 0.0f; float f4 = 1.0f; diff --git a/src/main/java/electroblob/wizardry/client/renderer/RenderSigil.java b/src/main/java/electroblob/wizardry/client/renderer/RenderSigil.java index 876a7172..739b44c1 100644 --- a/src/main/java/electroblob/wizardry/client/renderer/RenderSigil.java +++ b/src/main/java/electroblob/wizardry/client/renderer/RenderSigil.java @@ -6,10 +6,10 @@ import electroblob.wizardry.entity.construct.EntityHealAura; import electroblob.wizardry.entity.construct.EntityMagicConstruct; import electroblob.wizardry.util.WizardryUtilities; import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.BufferBuilder; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.VertexBuffer; import net.minecraft.client.renderer.entity.Render; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; @@ -64,7 +64,7 @@ public class RenderSigil extends Render { GlStateManager.scale(scale, scale, scale); Tessellator tessellator = Tessellator.getInstance(); - VertexBuffer buffer = tessellator.getBuffer(); + BufferBuilder buffer = tessellator.getBuffer(); buffer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX); // tessellator.setColorRGBA_I(k1, 128); // buffer.normal(0.0F, 1.0F, 0.0F); diff --git a/src/main/java/electroblob/wizardry/client/renderer/RenderStatue.java b/src/main/java/electroblob/wizardry/client/renderer/RenderStatue.java index c65cb05e..5a96cb7a 100644 --- a/src/main/java/electroblob/wizardry/client/renderer/RenderStatue.java +++ b/src/main/java/electroblob/wizardry/client/renderer/RenderStatue.java @@ -13,8 +13,8 @@ public class RenderStatue extends TileEntitySpecialRenderer { private int destroyStage = 0; // Gets set each time a statue is rendered to allow access from the layer renderer @Override - public void renderTileEntityAt(TileEntityStatue statue, double x, double y, double z, float partialTicks, - int destroyStage){ + public void render(TileEntityStatue statue, double x, double y, double z, float partialTicks, + int destroyStage, float alpha){ // Multiblock support for the breaking animation. The chest has its own way of doing this in // TileEntityRendererDispatcher, but I don't have access to that. @@ -24,8 +24,8 @@ public class RenderStatue extends TileEntitySpecialRenderer { if(tileentity instanceof TileEntityStatue){ // If this is the block breaking animation pass and this isn't the bottom block, divert the call to // the bottom block. - this.renderTileEntityAt((TileEntityStatue)tileentity, x, y - (statue.position - 1), z, partialTicks, - destroyStage); + this.render((TileEntityStatue)tileentity, x, y - (statue.position - 1), z, partialTicks, + destroyStage, alpha); } } @@ -39,7 +39,7 @@ public class RenderStatue extends TileEntitySpecialRenderer { GlStateManager.enableLighting(); float yaw = statue.creature.prevRotationYaw; - int i = statue.creature.getBrightnessForRender(0); + int i = statue.creature.getBrightnessForRender(); int j = i % 65536; int k = i / 65536; @@ -51,7 +51,7 @@ public class RenderStatue extends TileEntitySpecialRenderer { if(!statue.isIce) statue.creature.setInvisible(true); // Setting the last parameter to true prevents the debug bounding box from rendering. // For some reason, passing in the partialTicks causes the entity to spin round really fast - Minecraft.getMinecraft().getRenderManager().doRenderEntity(statue.creature, 0, 0, 0, 0, 0, true); + Minecraft.getMinecraft().getRenderManager().renderEntity(statue.creature, 0, 0, 0, 0, 0, true); if(!statue.isIce) statue.creature.setInvisible(false); GlStateManager.popMatrix(); diff --git a/src/main/java/electroblob/wizardry/constants/Element.java b/src/main/java/electroblob/wizardry/constants/Element.java index 9e582567..dd357774 100644 --- a/src/main/java/electroblob/wizardry/constants/Element.java +++ b/src/main/java/electroblob/wizardry/constants/Element.java @@ -1,6 +1,7 @@ package electroblob.wizardry.constants; import electroblob.wizardry.Wizardry; +import net.minecraft.client.resources.I18n; import net.minecraft.util.ResourceLocation; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.Style; @@ -39,7 +40,7 @@ public enum Element { /** Returns the translated display name of this element, without formatting. */ @SideOnly(Side.CLIENT) public String getDisplayName(){ - return net.minecraft.client.resources.I18n.format("element." + getUnlocalisedName()); + return I18n.format("element." + getUnlocalisedName()); } /** Returns the {@link Style} object representing the colour of this element. */ diff --git a/src/main/java/electroblob/wizardry/constants/SpellType.java b/src/main/java/electroblob/wizardry/constants/SpellType.java index cd48eac7..5f58dede 100644 --- a/src/main/java/electroblob/wizardry/constants/SpellType.java +++ b/src/main/java/electroblob/wizardry/constants/SpellType.java @@ -1,5 +1,6 @@ package electroblob.wizardry.constants; +import net.minecraft.client.resources.I18n; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -15,6 +16,6 @@ public enum SpellType { @SideOnly(Side.CLIENT) public String getDisplayName(){ - return net.minecraft.client.resources.I18n.format("spelltype." + unlocalisedName); + return I18n.format("spelltype." + unlocalisedName); } } \ No newline at end of file diff --git a/src/main/java/electroblob/wizardry/constants/Tier.java b/src/main/java/electroblob/wizardry/constants/Tier.java index 20d94016..6c7d8958 100644 --- a/src/main/java/electroblob/wizardry/constants/Tier.java +++ b/src/main/java/electroblob/wizardry/constants/Tier.java @@ -2,6 +2,7 @@ package electroblob.wizardry.constants; import java.util.Random; +import net.minecraft.client.resources.I18n; import net.minecraft.util.text.Style; import net.minecraft.util.text.TextFormatting; import net.minecraftforge.fml.relauncher.Side; @@ -39,12 +40,12 @@ public enum Tier { @SideOnly(Side.CLIENT) public String getDisplayName(){ - return net.minecraft.client.resources.I18n.format("tier." + unlocalisedName); + return I18n.format("tier." + unlocalisedName); } @SideOnly(Side.CLIENT) public String getDisplayNameWithFormatting(){ - return this.getFormattingCode() + net.minecraft.client.resources.I18n.format("tier." + unlocalisedName); + return this.getFormattingCode() + I18n.format("tier." + unlocalisedName); } public String getUnlocalisedName(){ diff --git a/src/main/java/electroblob/wizardry/entity/EntityMeteor.java b/src/main/java/electroblob/wizardry/entity/EntityMeteor.java index 89140ca1..53e3a87d 100644 --- a/src/main/java/electroblob/wizardry/entity/EntityMeteor.java +++ b/src/main/java/electroblob/wizardry/entity/EntityMeteor.java @@ -106,12 +106,12 @@ public class EntityMeteor extends EntityFallingBlock { @SideOnly(Side.CLIENT) @Override - public int getBrightnessForRender(float partialTicks){ + public int getBrightnessForRender(){ return 15728880; } @Override - public float getBrightness(float partialTicks){ + public float getBrightness(){ return 1.0F; } diff --git a/src/main/java/electroblob/wizardry/entity/construct/EntityBlackHole.java b/src/main/java/electroblob/wizardry/entity/construct/EntityBlackHole.java index 75f550e8..b7d77fb8 100644 --- a/src/main/java/electroblob/wizardry/entity/construct/EntityBlackHole.java +++ b/src/main/java/electroblob/wizardry/entity/construct/EntityBlackHole.java @@ -121,7 +121,7 @@ public class EntityBlackHole extends EntityMagicConstruct { ((EntityPlayerMP)target).connection.sendPacket(new SPacketEntityVelocity(target)); } - if(this.getDistanceToEntity(target) <= 2){ + if(this.getDistance(target) <= 2){ // Damages the target if it is close enough if(this.getCaster() != null){ target.attackEntityFrom( diff --git a/src/main/java/electroblob/wizardry/entity/construct/EntityEarthquake.java b/src/main/java/electroblob/wizardry/entity/construct/EntityEarthquake.java index 82a46b9f..abc8d982 100644 --- a/src/main/java/electroblob/wizardry/entity/construct/EntityEarthquake.java +++ b/src/main/java/electroblob/wizardry/entity/construct/EntityEarthquake.java @@ -74,7 +74,7 @@ public class EntityEarthquake extends EntityMagicConstruct { for(EntityLivingBase target : targets){ // Searches in a 1 wide ring. - if(this.getDistanceToEntity(target) > (this.ticksExisted * speed) + 0.5 && target.posY < this.posY + 1 + if(this.getDistance(target) > (this.ticksExisted * speed) + 0.5 && target.posY < this.posY + 1 && target.posY > this.posY - 1){ // Knockback must be removed in this instance, or the target will fall into the floor. diff --git a/src/main/java/electroblob/wizardry/entity/construct/EntityTornado.java b/src/main/java/electroblob/wizardry/entity/construct/EntityTornado.java index ed3b3159..ad523f5f 100644 --- a/src/main/java/electroblob/wizardry/entity/construct/EntityTornado.java +++ b/src/main/java/electroblob/wizardry/entity/construct/EntityTornado.java @@ -3,7 +3,8 @@ package electroblob.wizardry.entity.construct; import java.util.List; import electroblob.wizardry.Wizardry; -import electroblob.wizardry.registry.WizardryAchievements; +import electroblob.wizardry.advancement.AdvancementHelper; +import electroblob.wizardry.advancement.AdvancementHelper.EnumAdvancement; import electroblob.wizardry.registry.WizardrySounds; import electroblob.wizardry.util.MagicDamage; import electroblob.wizardry.util.MagicDamage.DamageType; @@ -103,7 +104,7 @@ public class EntityTornado extends EntityMagicConstruct { // The 'Not Again...' achievement if(target instanceof EntityPig && WizardryUtilities.getRider(target) instanceof EntityPlayer){ - ((EntityPlayer)WizardryUtilities.getRider(target)).addStat(WizardryAchievements.pig_tornado); + AdvancementHelper.grantAdvancement((EntityPlayer)WizardryUtilities.getRider(target), EnumAdvancement.pig_tornado); } } } diff --git a/src/main/java/electroblob/wizardry/entity/living/EntityAIAttackSpell.java b/src/main/java/electroblob/wizardry/entity/living/EntityAIAttackSpell.java index 92c40b71..e4384e9b 100644 --- a/src/main/java/electroblob/wizardry/entity/living/EntityAIAttackSpell.java +++ b/src/main/java/electroblob/wizardry/entity/living/EntityAIAttackSpell.java @@ -136,7 +136,7 @@ public class EntityAIAttackSpell extends EntityAIBase { } if(distanceSq <= (double)this.maxAttackDistance && this.seeTime >= 20){ - this.attacker.getNavigator().clearPathEntity(); + this.attacker.getNavigator().clearPath(); }else{ this.attacker.getNavigator().tryMoveToEntityLiving(this.target, this.speed); } diff --git a/src/main/java/electroblob/wizardry/entity/living/EntityEvilWizard.java b/src/main/java/electroblob/wizardry/entity/living/EntityEvilWizard.java index 6de8229e..46392f99 100644 --- a/src/main/java/electroblob/wizardry/entity/living/EntityEvilWizard.java +++ b/src/main/java/electroblob/wizardry/entity/living/EntityEvilWizard.java @@ -8,11 +8,12 @@ import java.util.Locale; import com.google.common.base.Predicate; import electroblob.wizardry.Wizardry; +import electroblob.wizardry.advancement.AdvancementHelper; +import electroblob.wizardry.advancement.AdvancementHelper.EnumAdvancement; import electroblob.wizardry.constants.Element; import electroblob.wizardry.constants.Tier; import electroblob.wizardry.item.ItemSpellBook; import electroblob.wizardry.registry.Spells; -import electroblob.wizardry.registry.WizardryAchievements; import electroblob.wizardry.registry.WizardryItems; import electroblob.wizardry.registry.WizardryPotions; import electroblob.wizardry.registry.WizardrySounds; @@ -285,7 +286,7 @@ public class EntityEvilWizard extends EntityMob implements ISpellCaster, IEntity } @Override - protected SoundEvent getHurtSound(){ + protected SoundEvent getHurtSound(DamageSource source){ return SoundEvents.ENTITY_WITCH_HURT; } @@ -323,7 +324,7 @@ public class EntityEvilWizard extends EntityMob implements ISpellCaster, IEntity super.onDeath(source); if(source.getTrueSource() instanceof EntityPlayer){ - ((EntityPlayer)source.getTrueSource()).addStat(WizardryAchievements.defeat_evil_wizard); + AdvancementHelper.grantAdvancement((EntityPlayer)source.getTrueSource(), EnumAdvancement.defeat_evil_wizard); } } diff --git a/src/main/java/electroblob/wizardry/entity/living/EntityIceWraith.java b/src/main/java/electroblob/wizardry/entity/living/EntityIceWraith.java index bfc236e1..6a7c0918 100644 --- a/src/main/java/electroblob/wizardry/entity/living/EntityIceWraith.java +++ b/src/main/java/electroblob/wizardry/entity/living/EntityIceWraith.java @@ -159,7 +159,7 @@ public class EntityIceWraith extends EntityBlazeMinion { this.moveStrafing *= 0.98F; this.moveForward *= 0.98F; this.randomYawVelocity *= 0.9F; - this.moveEntityWithHeading(this.moveStrafing, this.moveForward); + this.moveRelative(moveStrafing, 0f, moveForward, 0f); this.world.profiler.endSection(); this.world.profiler.startSection("push"); this.collideWithNearbyEntities(); @@ -229,7 +229,7 @@ public class EntityIceWraith extends EntityBlazeMinion { public void updateTask(){ --this.attackTime; EntityLivingBase entitylivingbase = this.blaze.getAttackTarget(); - double d0 = this.blaze.getDistanceSqToEntity(entitylivingbase); + double d0 = this.blaze.getDistanceSq(entitylivingbase); if(d0 < 4.0D){ if(this.attackTime <= 0){ @@ -264,7 +264,7 @@ public class EntityIceWraith extends EntityBlazeMinion { this.blaze.getLookHelper().setLookPositionWithEntity(entitylivingbase, 10.0F, 10.0F); }else{ - this.blaze.getNavigator().clearPathEntity(); + this.blaze.getNavigator().clearPath(); this.blaze.getMoveHelper().setMoveTo(entitylivingbase.posX, entitylivingbase.posY, entitylivingbase.posZ, 1.0D); } diff --git a/src/main/java/electroblob/wizardry/entity/living/EntityLightningWraith.java b/src/main/java/electroblob/wizardry/entity/living/EntityLightningWraith.java index d69b28f7..ba613e14 100644 --- a/src/main/java/electroblob/wizardry/entity/living/EntityLightningWraith.java +++ b/src/main/java/electroblob/wizardry/entity/living/EntityLightningWraith.java @@ -127,7 +127,7 @@ public class EntityLightningWraith extends EntityBlazeMinion { public void updateTask(){ --this.attackTime; EntityLivingBase entitylivingbase = this.blaze.getAttackTarget(); - double d0 = this.blaze.getDistanceSqToEntity(entitylivingbase); + double d0 = this.blaze.getDistanceSq(entitylivingbase); if(d0 < 4.0D){ if(this.attackTime <= 0){ @@ -162,7 +162,7 @@ public class EntityLightningWraith extends EntityBlazeMinion { this.blaze.getLookHelper().setLookPositionWithEntity(entitylivingbase, 10.0F, 10.0F); }else{ - this.blaze.getNavigator().clearPathEntity(); + this.blaze.getNavigator().clearPath(); this.blaze.getMoveHelper().setMoveTo(entitylivingbase.posX, entitylivingbase.posY, entitylivingbase.posZ, 1.0D); } diff --git a/src/main/java/electroblob/wizardry/entity/living/EntityPhoenix.java b/src/main/java/electroblob/wizardry/entity/living/EntityPhoenix.java index 32aa3622..0414dfc8 100644 --- a/src/main/java/electroblob/wizardry/entity/living/EntityPhoenix.java +++ b/src/main/java/electroblob/wizardry/entity/living/EntityPhoenix.java @@ -14,6 +14,7 @@ import net.minecraft.entity.ai.EntityAILookIdle; import net.minecraft.entity.ai.EntityAINearestAttackableTarget; import net.minecraft.entity.ai.EntityAIWatchClosest; import net.minecraft.init.SoundEvents; +import net.minecraft.util.DamageSource; import net.minecraft.util.EnumParticleTypes; import net.minecraft.util.SoundEvent; import net.minecraft.util.math.BlockPos; @@ -103,7 +104,7 @@ public class EntityPhoenix extends EntitySummonedCreature implements ISpellCaste } @Override - protected SoundEvent getHurtSound(){ + protected SoundEvent getHurtSound(DamageSource source){ return SoundEvents.ENTITY_BLAZE_HURT; } @@ -114,12 +115,12 @@ public class EntityPhoenix extends EntitySummonedCreature implements ISpellCaste @Override @SideOnly(Side.CLIENT) - public int getBrightnessForRender(float par1){ + public int getBrightnessForRender(){ return 15728880; } @Override - public float getBrightness(float par1){ + public float getBrightness(){ return 1.0F; } diff --git a/src/main/java/electroblob/wizardry/entity/living/EntityShadowWraith.java b/src/main/java/electroblob/wizardry/entity/living/EntityShadowWraith.java index fbe3e0dc..48f78093 100644 --- a/src/main/java/electroblob/wizardry/entity/living/EntityShadowWraith.java +++ b/src/main/java/electroblob/wizardry/entity/living/EntityShadowWraith.java @@ -18,6 +18,7 @@ import net.minecraft.entity.ai.EntityAIWander; import net.minecraft.init.MobEffects; import net.minecraft.init.SoundEvents; import net.minecraft.potion.PotionEffect; +import net.minecraft.util.DamageSource; import net.minecraft.util.EnumParticleTypes; import net.minecraft.util.SoundEvent; import net.minecraft.world.World; @@ -102,7 +103,7 @@ public class EntityShadowWraith extends EntitySummonedCreature implements ISpell } @Override - protected SoundEvent getHurtSound(){ + protected SoundEvent getHurtSound(DamageSource source){ return SoundEvents.ENTITY_BLAZE_HURT; } @@ -113,12 +114,12 @@ public class EntityShadowWraith extends EntitySummonedCreature implements ISpell @Override @SideOnly(Side.CLIENT) - public int getBrightnessForRender(float partialTicks){ + public int getBrightnessForRender(){ return 15728880; } @Override - public float getBrightness(float partialTicks){ + public float getBrightness(){ return 1.0F; } diff --git a/src/main/java/electroblob/wizardry/entity/living/EntityStormElemental.java b/src/main/java/electroblob/wizardry/entity/living/EntityStormElemental.java index 5eb74cd9..29e2c061 100644 --- a/src/main/java/electroblob/wizardry/entity/living/EntityStormElemental.java +++ b/src/main/java/electroblob/wizardry/entity/living/EntityStormElemental.java @@ -18,6 +18,7 @@ import net.minecraft.entity.ai.EntityAINearestAttackableTarget; import net.minecraft.entity.ai.EntityAIWander; import net.minecraft.entity.effect.EntityLightningBolt; import net.minecraft.init.SoundEvents; +import net.minecraft.util.DamageSource; import net.minecraft.util.EnumParticleTypes; import net.minecraft.util.SoundEvent; import net.minecraft.world.World; @@ -95,7 +96,7 @@ public class EntityStormElemental extends EntitySummonedCreature implements ISpe } @Override - protected SoundEvent getHurtSound(){ + protected SoundEvent getHurtSound(DamageSource source){ return SoundEvents.ENTITY_BLAZE_HURT; } @@ -106,12 +107,12 @@ public class EntityStormElemental extends EntitySummonedCreature implements ISpe @Override @SideOnly(Side.CLIENT) - public int getBrightnessForRender(float partialTicks){ + public int getBrightnessForRender(){ return 15728880; } @Override - public float getBrightness(float partialTicks){ + public float getBrightness(){ return 1.0F; } diff --git a/src/main/java/electroblob/wizardry/entity/living/EntityWizard.java b/src/main/java/electroblob/wizardry/entity/living/EntityWizard.java index f961e015..17db4dd6 100644 --- a/src/main/java/electroblob/wizardry/entity/living/EntityWizard.java +++ b/src/main/java/electroblob/wizardry/entity/living/EntityWizard.java @@ -12,11 +12,12 @@ import java.util.Set; import com.google.common.base.Predicate; import electroblob.wizardry.Wizardry; +import electroblob.wizardry.advancement.AdvancementHelper; +import electroblob.wizardry.advancement.AdvancementHelper.EnumAdvancement; import electroblob.wizardry.constants.Element; import electroblob.wizardry.constants.Tier; import electroblob.wizardry.item.ItemSpellBook; import electroblob.wizardry.registry.Spells; -import electroblob.wizardry.registry.WizardryAchievements; import electroblob.wizardry.registry.WizardryItems; import electroblob.wizardry.registry.WizardryPotions; import electroblob.wizardry.registry.WizardrySounds; @@ -400,11 +401,11 @@ public class EntityWizard extends EntityVillager implements ISpellCaster, IEntit // Achievements if(this.getCustomer() != null){ - this.getCustomer().addStat(WizardryAchievements.wizard_trade); + AdvancementHelper.grantAdvancement(getCustomer(), EnumAdvancement.wizard_trade); if(merchantrecipe.getItemToSell().getItem() instanceof ItemSpellBook && Spell.get(merchantrecipe.getItemToSell().getItemDamage()).tier == Tier.MASTER){ - this.getCustomer().addStat(WizardryAchievements.buy_master_spell); + AdvancementHelper.grantAdvancement(getCustomer(), EnumAdvancement.buy_master_spell); } } @@ -775,7 +776,7 @@ public class EntityWizard extends EntityVillager implements ISpellCaster, IEntit public boolean attackEntityFrom(DamageSource source, float damage){ if(source.getTrueSource() instanceof EntityPlayer){ - ((EntityPlayer)source.getTrueSource()).addStat(WizardryAchievements.anger_wizard); + AdvancementHelper.grantAdvancement((EntityPlayer)source.getTrueSource(), EnumAdvancement.anger_wizard); } return super.attackEntityFrom(source, damage); @@ -817,7 +818,7 @@ public class EntityWizard extends EntityVillager implements ISpellCaster, IEntit for(EntityWizard wizard : wizards){ if(wizard.isBlockPartOfTower(event.getPos())){ wizard.setRevengeTarget(event.getPlayer()); - event.getPlayer().addStat(WizardryAchievements.anger_wizard); + AdvancementHelper.grantAdvancement(event.getPlayer(), EnumAdvancement.anger_wizard); } } } diff --git a/src/main/java/electroblob/wizardry/entity/projectile/EntityForceArrow.java b/src/main/java/electroblob/wizardry/entity/projectile/EntityForceArrow.java index 65d0606e..c1b6f1be 100644 --- a/src/main/java/electroblob/wizardry/entity/projectile/EntityForceArrow.java +++ b/src/main/java/electroblob/wizardry/entity/projectile/EntityForceArrow.java @@ -83,7 +83,7 @@ public class EntityForceArrow extends EntityMagicArrow { @Override protected void entityInit(){ - + // auto generated } } \ No newline at end of file diff --git a/src/main/java/electroblob/wizardry/entity/projectile/EntityLightningDisc.java b/src/main/java/electroblob/wizardry/entity/projectile/EntityLightningDisc.java index a487d0a7..6340f99f 100644 --- a/src/main/java/electroblob/wizardry/entity/projectile/EntityLightningDisc.java +++ b/src/main/java/electroblob/wizardry/entity/projectile/EntityLightningDisc.java @@ -68,7 +68,7 @@ public class EntityLightningDisc extends EntityMagicProjectile { } } - if(!this.isCollided && !world.isRemote){ + if(!this.collided && !world.isRemote){ double seekingRange = 5.0d; @@ -78,7 +78,7 @@ public class EntityLightningDisc extends EntityMagicProjectile { for(Entity possibleTarget : entities){ // Decides if current entity should be replaced. - if(target == null || this.getDistanceToEntity(target) > this.getDistanceToEntity(possibleTarget)){ + if(target == null || this.getDistance(target) > this.getDistance(possibleTarget)){ // Decides if new entity is a valid target. if(WizardryUtilities.isValidTarget(this.getThrower(), possibleTarget)){ target = possibleTarget; diff --git a/src/main/java/electroblob/wizardry/entity/projectile/EntityMagicArrow.java b/src/main/java/electroblob/wizardry/entity/projectile/EntityMagicArrow.java index f0973487..cbcc6208 100644 --- a/src/main/java/electroblob/wizardry/entity/projectile/EntityMagicArrow.java +++ b/src/main/java/electroblob/wizardry/entity/projectile/EntityMagicArrow.java @@ -122,7 +122,7 @@ public abstract class EntityMagicArrow extends Entity implements IProjectile, IE // f4 depends on the horizontal distance between the two entities and accounts for bullet drop, // but of course if gravity is ignored this should be 0. float bulletDropCompensation = this.doGravity() ? (float)d3 * 0.2F : 0; - this.setThrowableHeading(d0, d1 + (double)bulletDropCompensation, d2, speed, aimingError); + this.shoot(d0, d1 + (double)bulletDropCompensation, d2, speed, aimingError); } } @@ -148,7 +148,7 @@ public abstract class EntityMagicArrow extends Entity implements IProjectile, IE this.motionZ = (double)(MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI)); this.motionY = (double)(-MathHelper.sin(this.rotationPitch / 180.0F * (float)Math.PI)); - this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, speed * 1.5F, 1.0F); + this.shoot(this.motionX, this.motionY, this.motionZ, speed * 1.5F, 1.0F); } /** Subclasses must override this to set their own base damage. */ @@ -183,7 +183,8 @@ public abstract class EntityMagicArrow extends Entity implements IProjectile, IE /** * Similar to setArrowHeading, it's point the throwable entity to a x, y, z direction. */ - public void setThrowableHeading(double x, double y, double z, float speed, float randomness){ + @Override + public void shoot(double x, double y, double z, float speed, float randomness){ float f2 = MathHelper.sqrt(x * x + y * y + z * z); x /= (double)f2; y /= (double)f2; @@ -579,4 +580,9 @@ public abstract class EntityMagicArrow extends Entity implements IProjectile, IE public void setShootingEntity(EntityLivingBase entity){ shootingEntity = new WeakReference(entity); } + + @Override + protected void entityInit() { + // TODO Auto-generated method stub + } } \ No newline at end of file diff --git a/src/main/java/electroblob/wizardry/entity/projectile/EntityMagicProjectile.java b/src/main/java/electroblob/wizardry/entity/projectile/EntityMagicProjectile.java index ee5bef3f..2e3b2bb3 100644 --- a/src/main/java/electroblob/wizardry/entity/projectile/EntityMagicProjectile.java +++ b/src/main/java/electroblob/wizardry/entity/projectile/EntityMagicProjectile.java @@ -40,7 +40,7 @@ public abstract class EntityMagicProjectile extends EntityThrowable { public EntityMagicProjectile(World world, EntityLivingBase thrower, float damageMultiplier){ super(world, thrower); // This is the standard set of parameters for this method, used by snowballs and ender pearls amongst others. - this.setHeadingFromThrower(thrower, thrower.rotationPitch, thrower.rotationYaw, 0.0f, this.getSpeed(), 1.0f); + this.shoot(thrower, thrower.rotationPitch, thrower.rotationYaw, 0.0f, this.getSpeed(), 1.0f); this.damageMultiplier = damageMultiplier; } @@ -61,9 +61,9 @@ public abstract class EntityMagicProjectile extends EntityThrowable { - (this.posY + (double)(this.height / 2.0F)); double dz = target.posZ - this.posZ; - this.motionX = dx / this.getDistanceToEntity(target) * velocity; - this.motionY = dy / this.getDistanceToEntity(target) * velocity; - this.motionZ = dz / this.getDistanceToEntity(target) * velocity; + this.motionX = dx / this.getDistance(target) * velocity; + this.motionY = dy / this.getDistance(target) * velocity; + this.motionZ = dz / this.getDistance(target) * velocity; } @Override diff --git a/src/main/java/electroblob/wizardry/entity/projectile/EntitySpark.java b/src/main/java/electroblob/wizardry/entity/projectile/EntitySpark.java index b6c7853b..d05d4878 100644 --- a/src/main/java/electroblob/wizardry/entity/projectile/EntitySpark.java +++ b/src/main/java/electroblob/wizardry/entity/projectile/EntitySpark.java @@ -68,7 +68,7 @@ public class EntitySpark extends EntityMagicProjectile { super.onUpdate(); - if(!this.isCollided && !world.isRemote){ + if(!this.collided && !world.isRemote){ double seekingRange = 5.0d; @@ -78,7 +78,7 @@ public class EntitySpark extends EntityMagicProjectile { for(Entity possibleTarget : entities){ // Decides if current entity should be replaced. - if(target == null || this.getDistanceToEntity(target) > this.getDistanceToEntity(possibleTarget)){ + if(target == null || this.getDistance(target) > this.getDistance(possibleTarget)){ // Decides if new entity is a valid target. if(WizardryUtilities.isValidTarget(this.getThrower(), possibleTarget)){ target = possibleTarget; diff --git a/src/main/java/electroblob/wizardry/item/ItemArcaneTome.java b/src/main/java/electroblob/wizardry/item/ItemArcaneTome.java index b7a7e57f..5a374a07 100644 --- a/src/main/java/electroblob/wizardry/item/ItemArcaneTome.java +++ b/src/main/java/electroblob/wizardry/item/ItemArcaneTome.java @@ -4,12 +4,14 @@ import java.util.List; import electroblob.wizardry.constants.Tier; import electroblob.wizardry.registry.WizardryTabs; +import net.minecraft.client.resources.I18n; +import net.minecraft.client.util.ITooltipFlag; import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumRarity; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.NonNullList; +import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -17,16 +19,17 @@ public class ItemArcaneTome extends Item { public ItemArcaneTome(){ super(); - this.setHasSubtypes(true); - this.setMaxStackSize(1); - this.setCreativeTab(WizardryTabs.WIZARDRY); + setHasSubtypes(true); + setMaxStackSize(1); + setCreativeTab(WizardryTabs.WIZARDRY); } @Override - @SideOnly(Side.CLIENT) - public void getSubItems(Item item, CreativeTabs tab, NonNullList list){ - for(int i = 1; i < Tier.values().length; i++){ - list.add(new ItemStack(item, 1, i)); + public void getSubItems(CreativeTabs tab, NonNullList list){ + if (isInCreativeTab(tab)) { + for(int i = 1; i < Tier.values().length; i++){ + list.add(new ItemStack(this, 1, i)); + } } } @@ -51,14 +54,12 @@ public class ItemArcaneTome extends Item { @SideOnly(Side.CLIENT) @Override - public void addInformation(ItemStack stack, EntityPlayer player, List tooltip, boolean showAdvanced){ + public void addInformation(ItemStack stack, World world, List tooltip, ITooltipFlag showAdvanced){ Tier tier = Tier.values()[stack.getItemDamage()]; Tier tier2 = Tier.values()[stack.getItemDamage() - 1]; tooltip.add(tier.getDisplayNameWithFormatting()); - tooltip.add("\u00A77" + net.minecraft.client.resources.I18n.format("item.wizardry:arcane_tome.desc1", - tier2.getDisplayNameWithFormatting())); - tooltip.add("\u00A77" + net.minecraft.client.resources.I18n.format("item.wizardry:arcane_tome.desc2", - tier.getDisplayNameWithFormatting() + "\u00A77")); + tooltip.add("\u00A77" + I18n.format("item.wizardry:arcane_tome.desc1", tier2.getDisplayNameWithFormatting())); + tooltip.add("\u00A77" + I18n.format("item.wizardry:arcane_tome.desc2", tier.getDisplayNameWithFormatting() + "\u00A77")); } } diff --git a/src/main/java/electroblob/wizardry/item/ItemArmourUpgrade.java b/src/main/java/electroblob/wizardry/item/ItemArmourUpgrade.java index f3c5ebcf..6048a995 100644 --- a/src/main/java/electroblob/wizardry/item/ItemArmourUpgrade.java +++ b/src/main/java/electroblob/wizardry/item/ItemArmourUpgrade.java @@ -3,12 +3,12 @@ package electroblob.wizardry.item; import java.util.List; import electroblob.wizardry.registry.WizardryTabs; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.client.resources.I18n; +import net.minecraft.client.util.ITooltipFlag; import net.minecraft.item.EnumRarity; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.util.NonNullList; +import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -16,8 +16,8 @@ public class ItemArmourUpgrade extends Item { public ItemArmourUpgrade(){ super(); - this.setMaxStackSize(1); - this.setCreativeTab(WizardryTabs.WIZARDRY); + setMaxStackSize(1); + setCreativeTab(WizardryTabs.WIZARDRY); } @Override @@ -33,16 +33,9 @@ public class ItemArmourUpgrade extends Item { @Override @SideOnly(Side.CLIENT) - public void addInformation(ItemStack stack, EntityPlayer player, List tooltip, boolean advanced){ - tooltip.add(net.minecraft.client.resources.I18n.format("item.wizardry:armour_upgrade.desc1", "\u00A77")); - tooltip.add( - net.minecraft.client.resources.I18n.format("item.wizardry:armour_upgrade.desc2", "\u00A77", "\u00A7d")); - } - - @Override - @SideOnly(Side.CLIENT) - public void getSubItems(Item item, CreativeTabs tab, NonNullList subItems){ - subItems.add(new ItemStack(this, 1)); + public void addInformation(ItemStack stack, World world, List tooltip, ITooltipFlag advanced){ + tooltip.add(I18n.format("item.wizardry:armour_upgrade.desc1", "\u00A77")); + tooltip.add(I18n.format("item.wizardry:armour_upgrade.desc2", "\u00A77", "\u00A7d")); } } diff --git a/src/main/java/electroblob/wizardry/item/ItemFirebomb.java b/src/main/java/electroblob/wizardry/item/ItemFirebomb.java index f9b1bf6d..27cb433c 100644 --- a/src/main/java/electroblob/wizardry/item/ItemFirebomb.java +++ b/src/main/java/electroblob/wizardry/item/ItemFirebomb.java @@ -2,7 +2,6 @@ package electroblob.wizardry.item; import electroblob.wizardry.entity.projectile.EntityFirebomb; import electroblob.wizardry.registry.WizardryTabs; -import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.SoundEvents; import net.minecraft.item.Item; @@ -10,16 +9,13 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.ActionResult; import net.minecraft.util.EnumActionResult; import net.minecraft.util.EnumHand; -import net.minecraft.util.NonNullList; import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; public class ItemFirebomb extends Item { public ItemFirebomb(){ - this.maxStackSize = 16; - this.setCreativeTab(WizardryTabs.WIZARDRY); + setMaxStackSize(16); + setCreativeTab(WizardryTabs.WIZARDRY); } @Override @@ -36,16 +32,11 @@ public class ItemFirebomb extends Item { if(!world.isRemote){ EntityFirebomb firebomb = new EntityFirebomb(world, player); // This is the standard set of parameters for this method, used by snowballs and ender pearls. - firebomb.setHeadingFromThrower(player, player.rotationPitch, player.rotationYaw, 0.0f, 1.5f, 1.0f); + firebomb.shoot(player, player.rotationPitch, player.rotationYaw, 0.0f, 1.5f, 1.0f); world.spawnEntity(firebomb); } return ActionResult.newResult(EnumActionResult.SUCCESS, stack); } - - @Override - @SideOnly(Side.CLIENT) - public void getSubItems(Item parItem, CreativeTabs parTab, NonNullList parListSubItems){ - parListSubItems.add(new ItemStack(this, 1)); - } + } \ No newline at end of file diff --git a/src/main/java/electroblob/wizardry/item/ItemFlamingAxe.java b/src/main/java/electroblob/wizardry/item/ItemFlamingAxe.java index 0988ae0c..af776bab 100644 --- a/src/main/java/electroblob/wizardry/item/ItemFlamingAxe.java +++ b/src/main/java/electroblob/wizardry/item/ItemFlamingAxe.java @@ -2,14 +2,11 @@ package electroblob.wizardry.item; import electroblob.wizardry.util.MagicDamage; import electroblob.wizardry.util.MagicDamage.DamageType; -import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; import net.minecraft.item.ItemAxe; import net.minecraft.item.ItemStack; -import net.minecraft.util.NonNullList; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -18,9 +15,9 @@ public class ItemFlamingAxe extends ItemAxe implements IConjuredItem { public ItemFlamingAxe(ToolMaterial material){ super(material, 8, -3); - this.setMaxDamage(getBaseDuration()); - this.setNoRepair(); - this.setCreativeTab(null); + setMaxDamage(getBaseDuration()); + setNoRepair(); + setCreativeTab(null); } @Override @@ -81,11 +78,4 @@ public class ItemFlamingAxe extends ItemAxe implements IConjuredItem { return false; } - @Override - @SideOnly(Side.CLIENT) - // Why does this method pass in an item as an argument? It is always the same item the method is invoked on. - public void getSubItems(Item item, CreativeTabs tab, NonNullList items){ - items.add(new ItemStack(this, 1)); - } - } diff --git a/src/main/java/electroblob/wizardry/item/ItemFrostAxe.java b/src/main/java/electroblob/wizardry/item/ItemFrostAxe.java index 660d54e6..2f57f20b 100644 --- a/src/main/java/electroblob/wizardry/item/ItemFrostAxe.java +++ b/src/main/java/electroblob/wizardry/item/ItemFrostAxe.java @@ -3,15 +3,12 @@ package electroblob.wizardry.item; import electroblob.wizardry.registry.WizardryPotions; import electroblob.wizardry.util.MagicDamage; import electroblob.wizardry.util.MagicDamage.DamageType; -import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; import net.minecraft.item.ItemAxe; import net.minecraft.item.ItemStack; import net.minecraft.potion.PotionEffect; -import net.minecraft.util.NonNullList; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -20,9 +17,9 @@ public class ItemFrostAxe extends ItemAxe implements IConjuredItem { public ItemFrostAxe(ToolMaterial material){ super(material, 8, -3); - this.setMaxDamage(getBaseDuration()); - this.setNoRepair(); - this.setCreativeTab(null); + setMaxDamage(getBaseDuration()); + setNoRepair(); + setCreativeTab(null); } @Override @@ -84,10 +81,4 @@ public class ItemFrostAxe extends ItemAxe implements IConjuredItem { return false; } - @Override - @SideOnly(Side.CLIENT) - public void getSubItems(Item parItem, CreativeTabs parTab, NonNullList parListSubItems){ - parListSubItems.add(new ItemStack(this, 1)); - } - } diff --git a/src/main/java/electroblob/wizardry/item/ItemIdentificationScroll.java b/src/main/java/electroblob/wizardry/item/ItemIdentificationScroll.java index ebc65fb6..6c234463 100644 --- a/src/main/java/electroblob/wizardry/item/ItemIdentificationScroll.java +++ b/src/main/java/electroblob/wizardry/item/ItemIdentificationScroll.java @@ -3,12 +3,14 @@ package electroblob.wizardry.item; import java.util.List; import electroblob.wizardry.WizardData; +import electroblob.wizardry.advancement.AdvancementHelper; +import electroblob.wizardry.advancement.AdvancementHelper.EnumAdvancement; import electroblob.wizardry.event.DiscoverSpellEvent; -import electroblob.wizardry.registry.WizardryAchievements; import electroblob.wizardry.registry.WizardryTabs; import electroblob.wizardry.spell.Spell; import electroblob.wizardry.util.WizardryUtilities; -import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.client.resources.I18n; +import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.SoundEvents; import net.minecraft.item.Item; @@ -16,7 +18,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.ActionResult; import net.minecraft.util.EnumActionResult; import net.minecraft.util.EnumHand; -import net.minecraft.util.NonNullList; import net.minecraft.util.text.TextComponentTranslation; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; @@ -27,7 +28,7 @@ public class ItemIdentificationScroll extends Item { public ItemIdentificationScroll(){ super(); - this.setCreativeTab(WizardryTabs.WIZARDRY); + setCreativeTab(WizardryTabs.WIZARDRY); } @Override @@ -38,9 +39,9 @@ public class ItemIdentificationScroll extends Item { @Override @SideOnly(Side.CLIENT) - public void addInformation(ItemStack stack, EntityPlayer player, List tooltip, boolean par4){ - tooltip.add(net.minecraft.client.resources.I18n.format("item.wizardry:identification_scroll.desc1", "\u00A77")); - tooltip.add(net.minecraft.client.resources.I18n.format("item.wizardry:identification_scroll.desc2", "\u00A77")); + public void addInformation(ItemStack stack, World world, List tooltip, ITooltipFlag par4){ + tooltip.add(I18n.format("item.wizardry:identification_scroll.desc1", "\u00A77")); + tooltip.add(I18n.format("item.wizardry:identification_scroll.desc2", "\u00A77")); } @Override @@ -64,7 +65,7 @@ public class ItemIdentificationScroll extends Item { // Identification scrolls give the chat readout in creative mode, otherwise it looks like // nothing happens! properties.discoverSpell(spell); - player.addStat(WizardryAchievements.identify_spell); + AdvancementHelper.grantAdvancement(player, EnumAdvancement.identify_spell); player.playSound(SoundEvents.ENTITY_PLAYER_LEVELUP, 1.25f, 1); if(!player.capabilities.isCreativeMode) stack.shrink(1); if(!world.isRemote) player.sendMessage(new TextComponentTranslation("spell.discover", @@ -82,10 +83,5 @@ public class ItemIdentificationScroll extends Item { return new ActionResult(EnumActionResult.FAIL, stack); } - - @Override - @SideOnly(Side.CLIENT) - public void getSubItems(Item parItem, CreativeTabs parTab, NonNullList parListSubItems){ - parListSubItems.add(new ItemStack(this, 1)); - } + } diff --git a/src/main/java/electroblob/wizardry/item/ItemPoisonBomb.java b/src/main/java/electroblob/wizardry/item/ItemPoisonBomb.java index 50bcdc43..3613e0e7 100644 --- a/src/main/java/electroblob/wizardry/item/ItemPoisonBomb.java +++ b/src/main/java/electroblob/wizardry/item/ItemPoisonBomb.java @@ -2,7 +2,6 @@ package electroblob.wizardry.item; import electroblob.wizardry.entity.projectile.EntityPoisonBomb; import electroblob.wizardry.registry.WizardryTabs; -import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.SoundEvents; import net.minecraft.item.Item; @@ -10,16 +9,13 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.ActionResult; import net.minecraft.util.EnumActionResult; import net.minecraft.util.EnumHand; -import net.minecraft.util.NonNullList; import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; public class ItemPoisonBomb extends Item { public ItemPoisonBomb(){ - this.maxStackSize = 16; - this.setCreativeTab(WizardryTabs.WIZARDRY); + setMaxStackSize(16); + setCreativeTab(WizardryTabs.WIZARDRY); } @Override @@ -36,17 +32,11 @@ public class ItemPoisonBomb extends Item { if(!world.isRemote){ EntityPoisonBomb poisonbomb = new EntityPoisonBomb(world, player); // This is the standard set of parameters for this method, used by snowballs and ender pearls. - poisonbomb.setHeadingFromThrower(player, player.rotationPitch, player.rotationYaw, 0.0f, 1.5f, 1.0f); + poisonbomb.shoot(player, player.rotationPitch, player.rotationYaw, 0.0f, 1.5f, 1.0f); world.spawnEntity(poisonbomb); } return ActionResult.newResult(EnumActionResult.SUCCESS, stack); } - @Override - @SideOnly(Side.CLIENT) - public void getSubItems(Item item, CreativeTabs tab, NonNullList subItems){ - subItems.add(new ItemStack(this, 1)); - } - } \ No newline at end of file diff --git a/src/main/java/electroblob/wizardry/item/ItemScroll.java b/src/main/java/electroblob/wizardry/item/ItemScroll.java index 1adaca3a..079927d5 100644 --- a/src/main/java/electroblob/wizardry/item/ItemScroll.java +++ b/src/main/java/electroblob/wizardry/item/ItemScroll.java @@ -8,6 +8,7 @@ import electroblob.wizardry.packet.WizardryPacketHandler; import electroblob.wizardry.registry.WizardryTabs; import electroblob.wizardry.spell.Spell; import electroblob.wizardry.util.SpellModifiers; +import net.minecraft.client.gui.FontRenderer; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -26,16 +27,17 @@ public class ItemScroll extends Item { public ItemScroll(){ super(); - this.setHasSubtypes(true); - this.setMaxStackSize(1); - this.setCreativeTab(WizardryTabs.SPELLS); + setHasSubtypes(true); + setMaxStackSize(1); + setCreativeTab(WizardryTabs.SPELLS); } @Override - @SideOnly(Side.CLIENT) - public void getSubItems(Item item, CreativeTabs par2CreativeTabs, NonNullList list){ - for(Spell spell : Spell.getSpells(Spell.nonContinuousSpells)){ - list.add(new ItemStack(item, 1, spell.id())); + public void getSubItems(CreativeTabs tab, NonNullList list){ + if (isInCreativeTab(tab)) { + for(Spell spell : Spell.getSpells(Spell.nonContinuousSpells)){ + list.add(new ItemStack(this, 1, spell.id())); + } } } @@ -114,7 +116,7 @@ public class ItemScroll extends Item { @Override @SideOnly(Side.CLIENT) - public net.minecraft.client.gui.FontRenderer getFontRenderer(ItemStack stack){ + public FontRenderer getFontRenderer(ItemStack stack){ return Wizardry.proxy.getFontRenderer(stack); } } diff --git a/src/main/java/electroblob/wizardry/item/ItemSmokeBomb.java b/src/main/java/electroblob/wizardry/item/ItemSmokeBomb.java index cf7adbf4..023fe59f 100644 --- a/src/main/java/electroblob/wizardry/item/ItemSmokeBomb.java +++ b/src/main/java/electroblob/wizardry/item/ItemSmokeBomb.java @@ -2,7 +2,6 @@ package electroblob.wizardry.item; import electroblob.wizardry.entity.projectile.EntitySmokeBomb; import electroblob.wizardry.registry.WizardryTabs; -import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.SoundEvents; import net.minecraft.item.Item; @@ -10,16 +9,13 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.ActionResult; import net.minecraft.util.EnumActionResult; import net.minecraft.util.EnumHand; -import net.minecraft.util.NonNullList; import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; public class ItemSmokeBomb extends Item { public ItemSmokeBomb(){ - this.maxStackSize = 16; - this.setCreativeTab(WizardryTabs.WIZARDRY); + setMaxStackSize(16); + setCreativeTab(WizardryTabs.WIZARDRY); } @Override @@ -36,16 +32,11 @@ public class ItemSmokeBomb extends Item { if(!world.isRemote){ EntitySmokeBomb smokebomb = new EntitySmokeBomb(world, player); // This is the standard set of parameters for this method, used by snowballs and ender pearls. - smokebomb.setHeadingFromThrower(player, player.rotationPitch, player.rotationYaw, 0.0f, 1.5f, 1.0f); + smokebomb.shoot(player, player.rotationPitch, player.rotationYaw, 0.0f, 1.5f, 1.0f); world.spawnEntity(smokebomb); } return ActionResult.newResult(EnumActionResult.SUCCESS, stack); } - @Override - @SideOnly(Side.CLIENT) - public void getSubItems(Item item, CreativeTabs tab, NonNullList subItems){ - subItems.add(new ItemStack(this, 1)); - } } \ No newline at end of file diff --git a/src/main/java/electroblob/wizardry/item/ItemSpectralArmour.java b/src/main/java/electroblob/wizardry/item/ItemSpectralArmour.java index 54a2e9c5..24a995f7 100644 --- a/src/main/java/electroblob/wizardry/item/ItemSpectralArmour.java +++ b/src/main/java/electroblob/wizardry/item/ItemSpectralArmour.java @@ -1,15 +1,14 @@ package electroblob.wizardry.item; -import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.renderer.GlStateManager; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.item.EnumRarity; -import net.minecraft.item.Item; import net.minecraft.item.ItemArmor; import net.minecraft.item.ItemStack; -import net.minecraft.util.NonNullList; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -17,11 +16,9 @@ import net.minecraftforge.fml.relauncher.SideOnly; public class ItemSpectralArmour extends ItemArmor implements IConjuredItem { public ItemSpectralArmour(ArmorMaterial material, int renderIndex, EntityEquipmentSlot armourType){ - super(material, renderIndex, armourType); - - this.setCreativeTab(null); - this.setMaxDamage(getBaseDuration()); + setCreativeTab(null); + setMaxDamage(getBaseDuration()); } @Override @@ -92,21 +89,16 @@ public class ItemSpectralArmour extends ItemArmor implements IConjuredItem { @Override @SideOnly(Side.CLIENT) - public net.minecraft.client.model.ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, - EntityEquipmentSlot armorSlot, net.minecraft.client.model.ModelBiped _default){ - net.minecraft.client.renderer.GlStateManager.enableBlend(); - net.minecraft.client.renderer.GlStateManager.tryBlendFuncSeparate( - net.minecraft.client.renderer.GlStateManager.SourceFactor.SRC_ALPHA, - net.minecraft.client.renderer.GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, - net.minecraft.client.renderer.GlStateManager.SourceFactor.ONE, - net.minecraft.client.renderer.GlStateManager.DestFactor.ZERO); + public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, + EntityEquipmentSlot armorSlot, ModelBiped _default){ + GlStateManager.enableBlend(); + GlStateManager.tryBlendFuncSeparate( + GlStateManager.SourceFactor.SRC_ALPHA, + GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, + GlStateManager.SourceFactor.ONE, + GlStateManager.DestFactor.ZERO + ); return super.getArmorModel(entityLiving, itemStack, armorSlot, _default); } - @Override - @SideOnly(Side.CLIENT) - public void getSubItems(Item parItem, CreativeTabs parTab, NonNullList parListSubItems){ - parListSubItems.add(new ItemStack(this, 1)); - } - } diff --git a/src/main/java/electroblob/wizardry/item/ItemSpectralBow.java b/src/main/java/electroblob/wizardry/item/ItemSpectralBow.java index 678e03b5..2426baec 100644 --- a/src/main/java/electroblob/wizardry/item/ItemSpectralBow.java +++ b/src/main/java/electroblob/wizardry/item/ItemSpectralBow.java @@ -4,7 +4,6 @@ import javax.annotation.Nullable; import electroblob.wizardry.Wizardry; import net.minecraft.client.Minecraft; -import net.minecraft.creativetab.CreativeTabs; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -14,7 +13,6 @@ import net.minecraft.init.Enchantments; import net.minecraft.init.Items; import net.minecraft.init.SoundEvents; import net.minecraft.item.IItemPropertyGetter; -import net.minecraft.item.Item; import net.minecraft.item.ItemArrow; import net.minecraft.item.ItemBow; import net.minecraft.item.ItemStack; @@ -22,7 +20,6 @@ import net.minecraft.stats.StatList; import net.minecraft.util.ActionResult; import net.minecraft.util.EnumActionResult; import net.minecraft.util.EnumHand; -import net.minecraft.util.NonNullList; import net.minecraft.util.ResourceLocation; import net.minecraft.util.SoundCategory; import net.minecraft.world.World; @@ -33,9 +30,9 @@ public class ItemSpectralBow extends ItemBow implements IConjuredItem { public ItemSpectralBow(){ super(); - this.setMaxDamage(getBaseDuration()); - this.setNoRepair(); - this.setCreativeTab(null); + setMaxDamage(getBaseDuration()); + setNoRepair(); + setCreativeTab(null); this.addPropertyOverride(new ResourceLocation("pull"), new IItemPropertyGetter(){ @SideOnly(Side.CLIENT) public float apply(ItemStack stack, @Nullable World worldIn, @Nullable EntityLivingBase entityIn){ @@ -183,7 +180,7 @@ public class ItemSpectralBow extends ItemBow implements IConjuredItem { ItemArrow itemarrow = (ItemArrow)Items.ARROW; EntityArrow entityarrow = itemarrow.createArrow(world, new ItemStack(itemarrow), entityplayer); - entityarrow.setAim(entityplayer, entityplayer.rotationPitch, entityplayer.rotationYaw, 0.0F, + entityarrow.shoot(entityplayer, entityplayer.rotationPitch, entityplayer.rotationYaw, 0.0F, f * 3.0F, 1.0F); if(f == 1.0F){ @@ -220,10 +217,4 @@ public class ItemSpectralBow extends ItemBow implements IConjuredItem { } } - @Override - @SideOnly(Side.CLIENT) - public void getSubItems(Item item, CreativeTabs tab, NonNullList subItems){ - subItems.add(new ItemStack(this, 1)); - } - } diff --git a/src/main/java/electroblob/wizardry/item/ItemSpectralPickaxe.java b/src/main/java/electroblob/wizardry/item/ItemSpectralPickaxe.java index a3a48b5e..6e2a71b2 100644 --- a/src/main/java/electroblob/wizardry/item/ItemSpectralPickaxe.java +++ b/src/main/java/electroblob/wizardry/item/ItemSpectralPickaxe.java @@ -1,12 +1,9 @@ package electroblob.wizardry.item; -import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; import net.minecraft.item.ItemPickaxe; import net.minecraft.item.ItemStack; -import net.minecraft.util.NonNullList; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -15,9 +12,9 @@ public class ItemSpectralPickaxe extends ItemPickaxe implements IConjuredItem { public ItemSpectralPickaxe(ToolMaterial material){ super(material); - this.setMaxDamage(getBaseDuration()); - this.setNoRepair(); - this.setCreativeTab(null); + setMaxDamage(getBaseDuration()); + setNoRepair(); + setCreativeTab(null); } @Override @@ -72,10 +69,4 @@ public class ItemSpectralPickaxe extends ItemPickaxe implements IConjuredItem { return false; } - @Override - @SideOnly(Side.CLIENT) - public void getSubItems(Item item, CreativeTabs tab, NonNullList subItems){ - subItems.add(new ItemStack(this, 1)); - } - } diff --git a/src/main/java/electroblob/wizardry/item/ItemSpectralSword.java b/src/main/java/electroblob/wizardry/item/ItemSpectralSword.java index 34254501..d8125f9e 100644 --- a/src/main/java/electroblob/wizardry/item/ItemSpectralSword.java +++ b/src/main/java/electroblob/wizardry/item/ItemSpectralSword.java @@ -1,12 +1,9 @@ package electroblob.wizardry.item; -import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemSword; -import net.minecraft.util.NonNullList; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -15,9 +12,9 @@ public class ItemSpectralSword extends ItemSword implements IConjuredItem { public ItemSpectralSword(ToolMaterial material){ super(material); - this.setMaxDamage(getBaseDuration()); - this.setNoRepair(); - this.setCreativeTab(null); + setMaxDamage(getBaseDuration()); + setNoRepair(); + setCreativeTab(null); } @Override @@ -72,10 +69,4 @@ public class ItemSpectralSword extends ItemSword implements IConjuredItem { return false; } - @Override - @SideOnly(Side.CLIENT) - public void getSubItems(Item item, CreativeTabs tab, NonNullList subItems){ - subItems.add(new ItemStack(this, 1)); - } - } diff --git a/src/main/java/electroblob/wizardry/item/ItemSpellBook.java b/src/main/java/electroblob/wizardry/item/ItemSpellBook.java index a9027455..7f68ed1f 100644 --- a/src/main/java/electroblob/wizardry/item/ItemSpellBook.java +++ b/src/main/java/electroblob/wizardry/item/ItemSpellBook.java @@ -8,6 +8,10 @@ import electroblob.wizardry.Wizardry; import electroblob.wizardry.WizardryGuiHandler; import electroblob.wizardry.registry.WizardryTabs; import electroblob.wizardry.spell.Spell; +import net.minecraft.client.Minecraft; +import net.minecraft.client.entity.EntityPlayerSP; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.util.ITooltipFlag; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -25,19 +29,21 @@ public class ItemSpellBook extends Item { public ItemSpellBook(){ super(); - this.setHasSubtypes(true); - this.setMaxStackSize(1); - this.setCreativeTab(WizardryTabs.SPELLS); + setHasSubtypes(true); + setMaxStackSize(1); + setCreativeTab(WizardryTabs.SPELLS); } @Override - public void getSubItems(Item item, CreativeTabs tab, NonNullList list){ - // In this particular case, getTotalSpellCount() is a more efficient way of doing this since the spell instance - // is not required, only the id. - for(int i = 0; i < Spell.getTotalSpellCount(); i++){ - // i+1 is used so that the metadata ties up with the id() method. In other words, the none spell has id - // 0 and since this is not used as a spell book the metadata starts at 1. - list.add(new ItemStack(item, 1, i + 1)); + public void getSubItems(CreativeTabs tab, NonNullList list){ + if (isInCreativeTab(tab)) { + // In this particular case, getTotalSpellCount() is a more efficient way of doing this since the spell instance + // is not required, only the id. + for(int i = 0; i < Spell.getTotalSpellCount(); i++){ + // i+1 is used so that the metadata ties up with the id() method. In other words, the none spell has id + // 0 and since this is not used as a spell book the metadata starts at 1. + list.add(new ItemStack(this, 1, i + 1)); + } } } @@ -50,10 +56,12 @@ public class ItemSpellBook extends Item { @Override @SideOnly(Side.CLIENT) - public void addInformation(ItemStack itemstack, EntityPlayer player, List tooltip, boolean advanced){ + public void addInformation(ItemStack itemstack, World world, List tooltip, ITooltipFlag advanced){ // Tooltip is left blank for wizards buying generic spell books. if(itemstack.getItemDamage() != OreDictionary.WILDCARD_VALUE){ - + EntityPlayerSP player = Minecraft.getMinecraft().player; + if (player == null) { return; } + Spell spell = Spell.get(itemstack.getItemDamage()); boolean discovered = true; @@ -74,7 +82,7 @@ public class ItemSpellBook extends Item { @Override @SideOnly(Side.CLIENT) - public net.minecraft.client.gui.FontRenderer getFontRenderer(ItemStack stack){ + public FontRenderer getFontRenderer(ItemStack stack){ return Wizardry.proxy.getFontRenderer(stack); } diff --git a/src/main/java/electroblob/wizardry/item/ItemWand.java b/src/main/java/electroblob/wizardry/item/ItemWand.java index 4b291963..438f8587 100644 --- a/src/main/java/electroblob/wizardry/item/ItemWand.java +++ b/src/main/java/electroblob/wizardry/item/ItemWand.java @@ -5,6 +5,8 @@ import java.util.List; import electroblob.wizardry.SpellGlyphData; import electroblob.wizardry.WizardData; import electroblob.wizardry.Wizardry; +import electroblob.wizardry.advancement.AdvancementHelper; +import electroblob.wizardry.advancement.AdvancementHelper.EnumAdvancement; import electroblob.wizardry.constants.Constants; import electroblob.wizardry.constants.Element; import electroblob.wizardry.constants.Tier; @@ -13,7 +15,6 @@ import electroblob.wizardry.event.SpellCastEvent; import electroblob.wizardry.event.SpellCastEvent.Source; import electroblob.wizardry.packet.PacketCastSpell; import electroblob.wizardry.packet.WizardryPacketHandler; -import electroblob.wizardry.registry.WizardryAchievements; import electroblob.wizardry.registry.WizardryItems; import electroblob.wizardry.registry.WizardryPotions; import electroblob.wizardry.registry.WizardryTabs; @@ -21,7 +22,11 @@ import electroblob.wizardry.spell.Spell; import electroblob.wizardry.util.SpellModifiers; import electroblob.wizardry.util.WandHelper; import electroblob.wizardry.util.WizardryUtilities; -import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.client.Minecraft; +import net.minecraft.client.entity.EntityPlayerSP; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.resources.I18n; +import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLivingBase; @@ -33,7 +38,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.ActionResult; import net.minecraft.util.EnumActionResult; import net.minecraft.util.EnumHand; -import net.minecraft.util.NonNullList; import net.minecraft.util.math.RayTraceResult; import net.minecraft.util.text.TextComponentTranslation; import net.minecraft.world.World; @@ -70,7 +74,7 @@ public class ItemWand extends Item { } this.tier = tier; this.element = element; - this.setMaxDamage(this.tier.maxCharge); + setMaxDamage(this.tier.maxCharge); } @Override @@ -81,16 +85,10 @@ public class ItemWand extends Item { @Override @SideOnly(Side.CLIENT) - public net.minecraft.client.gui.FontRenderer getFontRenderer(ItemStack stack){ + public FontRenderer getFontRenderer(ItemStack stack){ return Wizardry.proxy.getFontRenderer(stack); } - @Override - @SideOnly(Side.CLIENT) - public void getSubItems(Item parItem, CreativeTabs parTab, NonNullList parListSubItems){ - parListSubItems.add(new ItemStack(this, 1)); - } - // Max damage is modifiable with upgrades. @Override public int getMaxDamage(ItemStack itemstack){ @@ -100,8 +98,8 @@ public class ItemWand extends Item { } @Override - public void onCreated(ItemStack stack, World par2World, EntityPlayer par3EntityPlayer){ - par3EntityPlayer.addStat(WizardryAchievements.arcane_initiate); + public void onCreated(ItemStack stack, World par2World, EntityPlayer player){ + AdvancementHelper.grantAdvancement(player, EnumAdvancement.arcane_initiate); } @Override @@ -123,7 +121,7 @@ public class ItemWand extends Item { // EDIT: There is a way to check, using StatFileWriter#hasAchievementUnlocked, but this ends up calling the // same // thing as addStat anyway, meaning there's no point and it's probably not much of a problem anyway. - ((EntityPlayer)entity).addStat(WizardryAchievements.elemental); + AdvancementHelper.grantAdvancement((EntityPlayer)entity, EnumAdvancement.elemental); } } @@ -155,10 +153,11 @@ public class ItemWand extends Item { @SideOnly(Side.CLIENT) @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List text, boolean advanced){ - + public void addInformation(ItemStack itemstack, World world, List text, ITooltipFlag advanced){ + EntityPlayerSP player = Minecraft.getMinecraft().player; + if (player == null) { return; } // +0.5f is necessary due to the error in the way floats are calculated. - if(element != null) text.add("\u00A78" + net.minecraft.client.resources.I18n.format("item.wizardry:wand.buff", + if(element != null) text.add("\u00A78" + I18n.format("item.wizardry:wand.buff", (int)((tier.level + 1) * Constants.DAMAGE_INCREASE_PER_TIER * 100 + 0.5f) + "%", element.getDisplayName())); @@ -170,11 +169,11 @@ public class ItemWand extends Item { discovered = false; } - text.add("\u00A77" + net.minecraft.client.resources.I18n.format("item.wizardry:wand.spell", + text.add("\u00A77" + I18n.format("item.wizardry:wand.spell", discovered ? "\u00A77" + spell.getDisplayNameWithFormatting() : "#\u00A79" + SpellGlyphData.getGlyphName(spell, player.world))); - text.add("\u00A79" + net.minecraft.client.resources.I18n.format("item.wizardry:wand.mana", + text.add("\u00A79" + I18n.format("item.wizardry:wand.mana", (this.getMaxDamage(itemstack) - this.getDamage(itemstack)), this.getMaxDamage(itemstack))); } diff --git a/src/main/java/electroblob/wizardry/item/ItemWizardArmour.java b/src/main/java/electroblob/wizardry/item/ItemWizardArmour.java index 4594a6f5..b2079edb 100644 --- a/src/main/java/electroblob/wizardry/item/ItemWizardArmour.java +++ b/src/main/java/electroblob/wizardry/item/ItemWizardArmour.java @@ -3,24 +3,26 @@ package electroblob.wizardry.item; import java.util.List; import electroblob.wizardry.Wizardry; +import electroblob.wizardry.advancement.AdvancementHelper; +import electroblob.wizardry.advancement.AdvancementHelper.EnumAdvancement; import electroblob.wizardry.constants.Constants; import electroblob.wizardry.constants.Element; -import electroblob.wizardry.registry.WizardryAchievements; import electroblob.wizardry.registry.WizardryTabs; import electroblob.wizardry.spell.Petrify; import electroblob.wizardry.util.WizardryUtilities; -import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.resources.I18n; +import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.item.EnumAction; -import net.minecraft.item.Item; import net.minecraft.item.ItemArmor; import net.minecraft.item.ItemStack; import net.minecraft.util.DamageSource; import net.minecraft.util.EnumHandSide; -import net.minecraft.util.NonNullList; +import net.minecraft.world.World; import net.minecraftforge.common.ISpecialArmor; import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; import net.minecraftforge.fml.common.Mod; @@ -36,19 +38,19 @@ public class ItemWizardArmour extends ItemArmor implements ISpecialArmor { public ItemWizardArmour(ArmorMaterial material, int renderIndex, EntityEquipmentSlot armourType, Element element){ super(material, renderIndex, armourType); this.element = element; - this.setCreativeTab(WizardryTabs.WIZARDRY); + setCreativeTab(WizardryTabs.WIZARDRY); } @Override @SideOnly(Side.CLIENT) - public void addInformation(ItemStack stack, EntityPlayer player, List tooltip, boolean advanced){ + public void addInformation(ItemStack stack, World world, List tooltip, ITooltipFlag advanced){ if(stack.hasTagCompound() && stack.getTagCompound().getBoolean("legendary")) tooltip - .add("\u00A7d" + net.minecraft.client.resources.I18n.format("item.wizardry:wizard_armour.legendary")); + .add("\u00A7d" + I18n.format("item.wizardry:wizard_armour.legendary")); if(element != null) - tooltip.add("\u00A78" + net.minecraft.client.resources.I18n.format("item.wizardry:wizard_armour.buff", + tooltip.add("\u00A78" + I18n.format("item.wizardry:wizard_armour.buff", (int)(Constants.COST_REDUCTION_PER_ARMOUR * 100) + "%", element.getDisplayName())); - tooltip.add("\u00A79" + net.minecraft.client.resources.I18n.format("item.wizardry:wizard_armour.mana", + tooltip.add("\u00A79" + I18n.format("item.wizardry:wizard_armour.mana", (this.getMaxDamage(stack) - this.getDamage(stack)), this.getMaxDamage(stack))); } @@ -65,10 +67,10 @@ public class ItemWizardArmour extends ItemArmor implements ISpecialArmor { @Override @SideOnly(Side.CLIENT) - public net.minecraft.client.model.ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, - EntityEquipmentSlot armourSlot, net.minecraft.client.model.ModelBiped _default){ + public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, + EntityEquipmentSlot armourSlot, ModelBiped _default){ - net.minecraft.client.model.ModelBiped model = Wizardry.proxy.getWizardArmourModel(); + ModelBiped model = Wizardry.proxy.getWizardArmourModel(); // Legs use modelBiped if(armourSlot == EntityEquipmentSlot.LEGS) return null; @@ -96,29 +98,29 @@ public class ItemWizardArmour extends ItemArmor implements ISpecialArmor { ItemStack itemstackL = leftHanded ? entityLiving.getHeldItemMainhand() : entityLiving.getHeldItemOffhand(); if(!itemstackR.isEmpty()){ - model.rightArmPose = net.minecraft.client.model.ModelBiped.ArmPose.ITEM; + model.rightArmPose = ModelBiped.ArmPose.ITEM; if(entityLiving.getItemInUseCount() > 0){ EnumAction enumaction = itemstackR.getItemUseAction(); if(enumaction == EnumAction.BLOCK){ - model.rightArmPose = net.minecraft.client.model.ModelBiped.ArmPose.BLOCK; + model.rightArmPose = ModelBiped.ArmPose.BLOCK; }else if(enumaction == EnumAction.BOW){ - model.rightArmPose = net.minecraft.client.model.ModelBiped.ArmPose.BOW_AND_ARROW; + model.rightArmPose = ModelBiped.ArmPose.BOW_AND_ARROW; } } } if(!itemstackL.isEmpty()){ - model.leftArmPose = net.minecraft.client.model.ModelBiped.ArmPose.ITEM; + model.leftArmPose = ModelBiped.ArmPose.ITEM; if(entityLiving.getItemInUseCount() > 0){ EnumAction enumaction1 = itemstackL.getItemUseAction(); if(enumaction1 == EnumAction.BLOCK){ - model.leftArmPose = net.minecraft.client.model.ModelBiped.ArmPose.BLOCK; + model.leftArmPose = ModelBiped.ArmPose.BLOCK; }else if(enumaction1 == EnumAction.BOW){ - model.leftArmPose = net.minecraft.client.model.ModelBiped.ArmPose.BOW_AND_ARROW; + model.leftArmPose = ModelBiped.ArmPose.BOW_AND_ARROW; } } } @@ -200,12 +202,6 @@ public class ItemWizardArmour extends ItemArmor implements ISpecialArmor { } } - @Override - @SideOnly(Side.CLIENT) - public void getSubItems(Item item, CreativeTabs tab, NonNullList subItems){ - subItems.add(new ItemStack(this, 1)); - } - /** * Returns the EntityEquipmentSlot for which index() returns an integer equal to the passed in slotIndex and which * is an armour slot (not a hand slot). This only exists because the 1.10.2/1.11.2 versions of Forge still uses an @@ -237,7 +233,7 @@ public class ItemWizardArmour extends ItemArmor implements ISpecialArmor { } } // If it gets this far, then all slots must be wizard armour, so trigger the achievement. - player.addStat(WizardryAchievements.armour_set); + AdvancementHelper.grantAdvancement(player, EnumAdvancement.armour_set); } } diff --git a/src/main/java/electroblob/wizardry/item/ItemWizardHandbook.java b/src/main/java/electroblob/wizardry/item/ItemWizardHandbook.java index 3eddb304..70292bd7 100644 --- a/src/main/java/electroblob/wizardry/item/ItemWizardHandbook.java +++ b/src/main/java/electroblob/wizardry/item/ItemWizardHandbook.java @@ -5,17 +5,15 @@ import java.util.List; import electroblob.wizardry.Wizardry; import electroblob.wizardry.WizardryGuiHandler; import electroblob.wizardry.registry.WizardryTabs; -import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.client.resources.I18n; +import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.ActionResult; import net.minecraft.util.EnumActionResult; import net.minecraft.util.EnumHand; -import net.minecraft.util.NonNullList; import net.minecraft.world.World; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; public class ItemWizardHandbook extends Item { @@ -24,14 +22,13 @@ public class ItemWizardHandbook extends Item { public ItemWizardHandbook(){ super(); - this.setMaxStackSize(1); - this.setCreativeTab(WizardryTabs.WIZARDRY); + setMaxStackSize(1); + setCreativeTab(WizardryTabs.WIZARDRY); } @Override - public void addInformation(ItemStack stack, EntityPlayer player, List tooltip, boolean advanced){ - tooltip.add( - "\u00A77" + net.minecraft.client.resources.I18n.format("item.wizardry:wizard_handbook.desc", AUTHOR)); + public void addInformation(ItemStack stack, World world, List tooltip, ITooltipFlag advanced){ + tooltip.add("\u00A77" + I18n.format("item.wizardry:wizard_handbook.desc", AUTHOR)); } @Override @@ -41,9 +38,4 @@ public class ItemWizardHandbook extends Item { return ActionResult.newResult(EnumActionResult.SUCCESS, stack); } - @Override - @SideOnly(Side.CLIENT) - public void getSubItems(Item item, CreativeTabs tab, NonNullList items){ - items.add(new ItemStack(this, 1)); - } } diff --git a/src/main/java/electroblob/wizardry/registry/Spells.java b/src/main/java/electroblob/wizardry/registry/Spells.java index 2879dbd0..b573df79 100644 --- a/src/main/java/electroblob/wizardry/registry/Spells.java +++ b/src/main/java/electroblob/wizardry/registry/Spells.java @@ -7,8 +7,8 @@ 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.fml.common.registry.IForgeRegistry; -import net.minecraftforge.fml.common.registry.RegistryBuilder; +import net.minecraftforge.registries.IForgeRegistry; +import net.minecraftforge.registries.RegistryBuilder; /** * Class responsible for defining, storing and registering all of wizardry's spells. diff --git a/src/main/java/electroblob/wizardry/registry/WizardryAchievements.java b/src/main/java/electroblob/wizardry/registry/WizardryAchievements.java index f5a5ed46..b271d54f 100644 --- a/src/main/java/electroblob/wizardry/registry/WizardryAchievements.java +++ b/src/main/java/electroblob/wizardry/registry/WizardryAchievements.java @@ -1,10 +1,5 @@ package electroblob.wizardry.registry; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.stats.Achievement; -import net.minecraftforge.common.AchievementPage; - /** * Class responsible for defining, storing and registering all of wizardry's achievements (achievements don't have a * registry, but it make sense to do them the same way as everything else). @@ -12,56 +7,32 @@ import net.minecraftforge.common.AchievementPage; * @author Electroblob * @since Wizardry 2.1 */ -public final class WizardryAchievements { +/*public final class WizardryAchievements { - public static final Achievement crystal = new Achievement("crystal", "crystal", -1, -1, WizardryItems.magic_crystal, - null).registerStat(); - public static final Achievement arcane_initiate = new Achievement("arcane_initiate", "arcane_initiate", 2, -1, - WizardryItems.magic_wand, crystal).registerStat(); - public static final Achievement apprentice = new Achievement("apprentice", "apprentice", 2, 3, - WizardryItems.apprentice_wand, arcane_initiate).registerStat(); - public static final Achievement master = new Achievement("master", "master", 3, 6, WizardryItems.master_wand, - apprentice).registerStat(); - public static final Achievement all_spells = new Achievement("all_spells", "all_spells", 5, 7, - WizardryItems.wizard_handbook, master).registerStat().setSpecial(); - public static final Achievement wizard_trade = new Achievement("wizard_trade", "wizard_trade", 2, -5, Items.EMERALD, - arcane_initiate).registerStat(); - public static final Achievement buy_master_spell = new Achievement("buy_master_spell", "buy_master_spell", 5, -5, - WizardryItems.spell_book, wizard_trade).registerStat().setSpecial(); - public static final Achievement freeze_blaze = new Achievement("freeze_blaze", "freeze_blaze", -1, 3, Blocks.ICE, - apprentice).registerStat(); - public static final Achievement charge_creeper = new Achievement("charge_creeper", "charge_creeper", -1, 1, - Items.GUNPOWDER, arcane_initiate).registerStat(); - public static final Achievement frankenstein = new Achievement("frankenstein", "frankenstein", -3, 1, - WizardryItems.advanced_lightning_wand, charge_creeper).registerStat().setSpecial(); - public static final Achievement special_upgrade = new Achievement("special_upgrade", "special_upgrade", 4, 1, - WizardryItems.condenser_upgrade, arcane_initiate).registerStat(); - public static final Achievement craft_flask = new Achievement("craft_flask", "craft_flask", 4, -2, - WizardryItems.mana_flask, arcane_initiate).registerStat(); - public static final Achievement elemental = new Achievement("elemental", "elemental", 6, -1, - WizardryItems.basic_fire_wand, arcane_initiate).registerStat(); - public static final Achievement armour_set = new Achievement("armour_set", "armour_set", 0, -4, - WizardryItems.wizard_hat, arcane_initiate).registerStat(); - public static final Achievement legendary = new Achievement("legendary", "legendary", -2, -5, - WizardryItems.armour_upgrade, armour_set).registerStat().setSpecial(); - public static final Achievement self_destruct = new Achievement("self_destruct", "self_destruct", 1, 0, - Blocks.PUMPKIN, arcane_initiate).registerStat(); - public static final Achievement pig_tornado = new Achievement("pig_tornado", "pig_tornado", 6, 3, Items.SADDLE, - apprentice).registerStat().setSpecial(); - public static final Achievement jam_wizard = new Achievement("jam_wizard", "jam_wizard", 4, 4, Blocks.WEB, - apprentice).registerStat(); - public static final Achievement slime_skeleton = new Achievement("slime_skeleton", "slime_skeleton", 1, 5, - Items.SLIME_BALL, apprentice).registerStat(); - public static final Achievement anger_wizard = new Achievement("anger_wizard", "anger_wizard", 1, -7, - Items.IRON_SWORD, wizard_trade).registerStat(); - public static final Achievement defeat_evil_wizard = new Achievement("defeat_evil_wizard", "defeat_evil_wizard", 4, - -7, WizardryItems.wizard_boots_necromancy, wizard_trade).registerStat(); - public static final Achievement max_out_wand = new Achievement("max_out_wand", "max_out_wand", 7, 1, - WizardryItems.arcane_tome, special_upgrade).registerStat().setSpecial(); - public static final Achievement element_master = new Achievement("element_master", "element_master", 7, -3, - WizardryItems.master_ice_wand, elemental).registerStat().setSpecial(); - public static final Achievement identify_spell = new Achievement("identify_spell", "identify_spell", -2, -3, - WizardryItems.identification_scroll, arcane_initiate).registerStat(); + public static final Achievement crystal = new Achievement("crystal", "crystal", -1, -1, WizardryItems.magic_crystal, null).registerStat(); + public static final Achievement arcane_initiate = new Achievement("arcane_initiate", "arcane_initiate", 2, -1, WizardryItems.magic_wand, crystal).registerStat(); + public static final Achievement apprentice = new Achievement("apprentice", "apprentice", 2, 3, WizardryItems.apprentice_wand, arcane_initiate).registerStat(); + public static final Achievement master = new Achievement("master", "master", 3, 6, WizardryItems.master_wand, apprentice).registerStat(); + public static final Achievement all_spells = new Achievement("all_spells", "all_spells", 5, 7, WizardryItems.wizard_handbook, master).registerStat().setSpecial(); + public static final Achievement wizard_trade = new Achievement("wizard_trade", "wizard_trade", 2, -5, Items.EMERALD, arcane_initiate).registerStat(); + public static final Achievement buy_master_spell = new Achievement("buy_master_spell", "buy_master_spell", 5, -5, WizardryItems.spell_book, wizard_trade).registerStat().setSpecial(); + public static final Achievement freeze_blaze = new Achievement("freeze_blaze", "freeze_blaze", -1, 3, Blocks.ICE, apprentice).registerStat(); + public static final Achievement charge_creeper = new Achievement("charge_creeper", "charge_creeper", -1, 1, Items.GUNPOWDER, arcane_initiate).registerStat(); + public static final Achievement frankenstein = new Achievement("frankenstein", "frankenstein", -3, 1, WizardryItems.advanced_lightning_wand, charge_creeper).registerStat().setSpecial(); + public static final Achievement special_upgrade = new Achievement("special_upgrade", "special_upgrade", 4, 1, WizardryItems.condenser_upgrade, arcane_initiate).registerStat(); + public static final Achievement craft_flask = new Achievement("craft_flask", "craft_flask", 4, -2, WizardryItems.mana_flask, arcane_initiate).registerStat(); + public static final Achievement elemental = new Achievement("elemental", "elemental", 6, -1, WizardryItems.basic_fire_wand, arcane_initiate).registerStat(); + public static final Achievement armour_set = new Achievement("armour_set", "armour_set", 0, -4, WizardryItems.wizard_hat, arcane_initiate).registerStat(); + public static final Achievement legendary = new Achievement("legendary", "legendary", -2, -5, WizardryItems.armour_upgrade, armour_set).registerStat().setSpecial(); + public static final Achievement self_destruct = new Achievement("self_destruct", "self_destruct", 1, 0, Blocks.PUMPKIN, arcane_initiate).registerStat(); + public static final Achievement pig_tornado = new Achievement("pig_tornado", "pig_tornado", 6, 3, Items.SADDLE, apprentice).registerStat().setSpecial(); + public static final Achievement jam_wizard = new Achievement("jam_wizard", "jam_wizard", 4, 4, Blocks.WEB, apprentice).registerStat(); + public static final Achievement slime_skeleton = new Achievement("slime_skeleton", "slime_skeleton", 1, 5, Items.SLIME_BALL, apprentice).registerStat(); + public static final Achievement anger_wizard = new Achievement("anger_wizard", "anger_wizard", 1, -7, Items.IRON_SWORD, wizard_trade).registerStat(); + public static final Achievement defeat_evil_wizard = new Achievement("defeat_evil_wizard", "defeat_evil_wizard", 4, -7, WizardryItems.wizard_boots_necromancy, wizard_trade).registerStat(); + public static final Achievement max_out_wand = new Achievement("max_out_wand", "max_out_wand", 7, 1, WizardryItems.arcane_tome, special_upgrade).registerStat().setSpecial(); + public static final Achievement element_master = new Achievement("element_master", "element_master", 7, -3, WizardryItems.master_ice_wand, elemental).registerStat().setSpecial(); + public static final Achievement identify_spell = new Achievement("identify_spell", "identify_spell", -2, -3, WizardryItems.identification_scroll, arcane_initiate).registerStat(); private static final Achievement[] ACHIEVEMENTS_LIST = {crystal, arcane_initiate, apprentice, master, all_spells, wizard_trade, buy_master_spell, freeze_blaze, charge_creeper, frankenstein, special_upgrade, craft_flask, @@ -70,4 +41,4 @@ public final class WizardryAchievements { public static final AchievementPage WIZARDRY_ACHIEVEMENT_PAGE = new AchievementPage("Wizardry", ACHIEVEMENTS_LIST); -} \ No newline at end of file +}*/ \ No newline at end of file diff --git a/src/main/java/electroblob/wizardry/registry/WizardryBlocks.java b/src/main/java/electroblob/wizardry/registry/WizardryBlocks.java index 275f4fd1..d54948d8 100644 --- a/src/main/java/electroblob/wizardry/registry/WizardryBlocks.java +++ b/src/main/java/electroblob/wizardry/registry/WizardryBlocks.java @@ -15,7 +15,7 @@ import net.minecraft.block.material.Material; import net.minecraftforge.event.RegistryEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.registry.IForgeRegistry; +import net.minecraftforge.registries.IForgeRegistry; /** * Class responsible for defining, storing and registering all of wizardry's blocks. diff --git a/src/main/java/electroblob/wizardry/registry/WizardryItems.java b/src/main/java/electroblob/wizardry/registry/WizardryItems.java index 4490070e..19427efe 100644 --- a/src/main/java/electroblob/wizardry/registry/WizardryItems.java +++ b/src/main/java/electroblob/wizardry/registry/WizardryItems.java @@ -9,6 +9,8 @@ import org.apache.commons.lang3.tuple.Pair; import com.google.common.collect.ImmutableMap; import electroblob.wizardry.Wizardry; +import electroblob.wizardry.advancement.AdvancementHelper; +import electroblob.wizardry.advancement.AdvancementHelper.EnumAdvancement; import electroblob.wizardry.constants.Element; import electroblob.wizardry.constants.Tier; import electroblob.wizardry.item.ItemArcaneTome; @@ -42,7 +44,7 @@ import net.minecraftforge.common.util.EnumHelper; import net.minecraftforge.event.RegistryEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.registry.IForgeRegistry; +import net.minecraftforge.registries.IForgeRegistry; /** * Class responsible for defining, storing and registering all of wizardry's items. Also registers the ItemBlocks for @@ -103,8 +105,8 @@ public final class WizardryItems { public static final Item mana_flask = new Item(){ @Override - public void onCreated(ItemStack par1ItemStack, World par2World, EntityPlayer entityplayer){ - entityplayer.addStat(WizardryAchievements.craft_flask); + public void onCreated(ItemStack par1ItemStack, World par2World, EntityPlayer player){ + AdvancementHelper.grantAdvancement(player, EnumAdvancement.craft_flask); } }.setCreativeTab(WizardryTabs.WIZARDRY); @@ -291,7 +293,6 @@ public final class WizardryItems { @SubscribeEvent public static void register(RegistryEvent.Register event){ - IForgeRegistry registry = event.getRegistry(); // ItemBlocks diff --git a/src/main/java/electroblob/wizardry/registry/WizardryPotions.java b/src/main/java/electroblob/wizardry/registry/WizardryPotions.java index 7c8590ea..e6f0ffff 100644 --- a/src/main/java/electroblob/wizardry/registry/WizardryPotions.java +++ b/src/main/java/electroblob/wizardry/registry/WizardryPotions.java @@ -13,7 +13,7 @@ import net.minecraft.world.World; import net.minecraftforge.event.RegistryEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -import net.minecraftforge.fml.common.registry.IForgeRegistry; +import net.minecraftforge.registries.IForgeRegistry; /** * Class responsible for defining, storing and registering all of wizardry's potion effects. diff --git a/src/main/java/electroblob/wizardry/registry/WizardryRegistry.java b/src/main/java/electroblob/wizardry/registry/WizardryRegistry.java index 9aa3dc77..ba25691c 100644 --- a/src/main/java/electroblob/wizardry/registry/WizardryRegistry.java +++ b/src/main/java/electroblob/wizardry/registry/WizardryRegistry.java @@ -1,8 +1,9 @@ package electroblob.wizardry.registry; -import java.util.ArrayList; import java.util.List; +import com.google.common.collect.Lists; + import electroblob.wizardry.Wizardry; import electroblob.wizardry.constants.Element; import electroblob.wizardry.constants.Tier; @@ -76,13 +77,21 @@ import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.IRecipe; import net.minecraft.util.ResourceLocation; import net.minecraft.world.biome.Biome; import net.minecraft.world.storage.loot.LootTableList; import net.minecraft.world.storage.loot.functions.LootFunctionManager; +import net.minecraftforge.event.RegistryEvent; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.registry.EntityRegistry; +import net.minecraftforge.fml.common.registry.ForgeRegistries; import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.oredict.OreDictionary; +import net.minecraftforge.oredict.ShapedOreRecipe; +import net.minecraftforge.oredict.ShapelessOreRecipe; +import net.minecraftforge.registries.IForgeRegistry; /** * Class responsible for registering all the things that don't have (or need) instances: entities, loot tables, recipes, @@ -91,6 +100,7 @@ import net.minecraftforge.oredict.OreDictionary; * @author Electroblob * @since Wizardry 1.0 */ +@Mod.EventBusSubscriber 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) @@ -217,11 +227,9 @@ public final class WizardryRegistry { registerEntity(EntityWitherSkeletonMinion.class, "wither_skeleton_minion", id++, 128, LIVING_UPDATE_INTERVAL, true); // TODO: May need fixing - List biomes = new ArrayList(); - for(Biome biome : Biome.EXPLORATION_BIOMES_LIST){ - if(biome != null){ - biomes.add(biome); - } + List biomes = Lists.newArrayList(); + for (Biome biome : ForgeRegistries.BIOMES.getValues()) { + biomes.add(biome); } biomes.remove(Biomes.MUSHROOM_ISLAND); biomes.remove(Biomes.MUSHROOM_ISLAND_SHORE); @@ -246,7 +254,9 @@ public final class WizardryRegistry { } /** Called from the init method in the main mod class to register all the recipes. */ - public static void registerRecipes(){ + @SubscribeEvent + public static void registerRecipes(RegistryEvent.Register event){ + IForgeRegistry registry = event.getRegistry(); ItemStack magicCrystalStack = new ItemStack(WizardryItems.magic_crystal); ItemStack magicWandStack = new ItemStack(WizardryItems.magic_wand, 1, Tier.BASIC.maxCharge); @@ -284,30 +294,30 @@ public final class WizardryRegistry { ItemStack scrollStack = new ItemStack(WizardryItems.blank_scroll); ItemStack paperStack = new ItemStack(Items.PAPER); - GameRegistry.addRecipe(magicWandStack, " x", " y ", "z ", 'x', magicCrystalStack, 'y', stickStack, 'z', goldNuggetStack); - GameRegistry.addRecipe(spellBookStack, " x ", "xyx", " x ", 'x', magicCrystalStack, 'y', bookStack); - GameRegistry.addRecipe(arcaneWorkbenchStack, "vwv", "xyx", "zzz", 'v', goldNuggetStack, 'w', purpleCarpetStack, 'x', magicCrystalStack, 'y', lapisBlockStack, 'z', stoneStack); - GameRegistry.addRecipe(manaFlaskStack, "yyy", "yxy", "yyy", 'x', bottleStack, 'y', magicCrystalStack); - GameRegistry.addRecipe(transportationStoneStack, " x ", "xyx", " x ", 'x', stoneStack, 'y', magicCrystalStack); - GameRegistry.addRecipe(hatStack, "yyy", "y y", 'y', silkStack); - GameRegistry.addRecipe(robeStack, "y y", "yyy", "yyy", 'y', silkStack); - GameRegistry.addRecipe(leggingsStack, "yyy", "y y", "y y", 'y', silkStack); - GameRegistry.addRecipe(bootsStack, "y y", "y y", 'y', silkStack); - GameRegistry.addRecipe(silkStack1, " x ", "xyx", " x ", 'x', stringStack, 'y', magicCrystalStack); - GameRegistry.addRecipe(crystalBlockStack, "zzz", "zzz", "zzz", 'z', magicCrystalStack); + registry.register(new ShapedOreRecipe(null, magicWandStack, " x", " y ", "z ", 'x', magicCrystalStack, 'y', stickStack, 'z', goldNuggetStack).setRegistryName(new ResourceLocation(Wizardry.MODID, "magic_wand"))); + registry.register(new ShapedOreRecipe(null, spellBookStack, " x ", "xyx", " x ", 'x', magicCrystalStack, 'y', bookStack).setRegistryName(new ResourceLocation(Wizardry.MODID, "spellbook"))); + registry.register(new ShapedOreRecipe(null, arcaneWorkbenchStack, "vwv", "xyx", "zzz", 'v', goldNuggetStack, 'w', purpleCarpetStack, 'x', magicCrystalStack, 'y', lapisBlockStack, 'z', stoneStack).setRegistryName(new ResourceLocation(Wizardry.MODID, "arcane_workbench"))); + registry.register(new ShapedOreRecipe(null, manaFlaskStack, "yyy", "yxy", "yyy", 'x', bottleStack, 'y', magicCrystalStack).setRegistryName(new ResourceLocation(Wizardry.MODID, "mana_flask"))); + registry.register(new ShapedOreRecipe(null, transportationStoneStack, " x ", "xyx", " x ", 'x', stoneStack, 'y', magicCrystalStack).setRegistryName(new ResourceLocation(Wizardry.MODID, "transportation_stone"))); + registry.register(new ShapedOreRecipe(null, hatStack, "yyy", "y y", 'y', silkStack).setRegistryName(new ResourceLocation(Wizardry.MODID, "hat"))); + registry.register(new ShapedOreRecipe(null, robeStack, "y y", "yyy", "yyy", 'y', silkStack).setRegistryName(new ResourceLocation(Wizardry.MODID, "robe"))); + registry.register(new ShapedOreRecipe(null, leggingsStack, "yyy", "y y", "y y", 'y', silkStack).setRegistryName(new ResourceLocation(Wizardry.MODID, "leggings"))); + registry.register(new ShapedOreRecipe(null, bootsStack, "y y", "y y", 'y', silkStack).setRegistryName(new ResourceLocation(Wizardry.MODID, "boots"))); + registry.register(new ShapedOreRecipe(null, silkStack1, " x ", "xyx", " x ", 'x', stringStack, 'y', magicCrystalStack).setRegistryName(new ResourceLocation(Wizardry.MODID, "silk"))); + registry.register(new ShapedOreRecipe(null, crystalBlockStack, "zzz", "zzz", "zzz", 'z', magicCrystalStack).setRegistryName(new ResourceLocation(Wizardry.MODID, "crystal_block"))); - GameRegistry.addShapelessRecipe(wizardHandbookStack, bookStack, magicCrystalStack); - GameRegistry.addShapelessRecipe(magicCrystalStack1, crystalFlowerStack); - GameRegistry.addShapelessRecipe(magicCrystalStack2, crystalBlockStack); + registry.register(new ShapelessOreRecipe(null, wizardHandbookStack, bookStack, magicCrystalStack).setRegistryName(new ResourceLocation(Wizardry.MODID, "wizard_handbook"))); + registry.register(new ShapelessOreRecipe(null, magicCrystalStack1, crystalFlowerStack).setRegistryName(new ResourceLocation(Wizardry.MODID, "magic_crystal_1"))); + registry.register(new ShapelessOreRecipe(null, magicCrystalStack2, crystalBlockStack).setRegistryName(new ResourceLocation(Wizardry.MODID, "magic_crystal_2"))); - if(Wizardry.settings.firebombIsCraftable) GameRegistry.addShapelessRecipe(firebombStack, bottleStack, gunpowderStack, blazePowderStack, blazePowderStack); - if(Wizardry.settings.poisonBombIsCraftable) GameRegistry.addShapelessRecipe(poisonBombStack, bottleStack, gunpowderStack, spiderEyeStack, spiderEyeStack); - if(Wizardry.settings.smokeBombIsCraftable) GameRegistry.addShapelessRecipe(smokeBombStack, bottleStack, gunpowderStack, coalStack, coalStack); + if(Wizardry.settings.firebombIsCraftable) registry.register(new ShapelessOreRecipe(null, firebombStack, bottleStack, gunpowderStack, blazePowderStack, blazePowderStack).setRegistryName(new ResourceLocation(Wizardry.MODID, "fire_bomb"))); + if(Wizardry.settings.poisonBombIsCraftable) registry.register(new ShapelessOreRecipe(null, poisonBombStack, bottleStack, gunpowderStack, spiderEyeStack, spiderEyeStack).setRegistryName(new ResourceLocation(Wizardry.MODID, "poison_bomb"))); + if(Wizardry.settings.smokeBombIsCraftable) registry.register(new ShapelessOreRecipe(null, smokeBombStack, bottleStack, gunpowderStack, coalStack, coalStack).setRegistryName(new ResourceLocation(Wizardry.MODID, "smoke_bomb"))); if(Wizardry.settings.useAlternateScrollRecipe){ - GameRegistry.addShapelessRecipe(scrollStack, paperStack, stringStack, magicCrystalStack); + registry.register(new ShapelessOreRecipe(null, scrollStack, paperStack, stringStack, magicCrystalStack).setRegistryName(new ResourceLocation(Wizardry.MODID, "scroll_1"))); }else{ - GameRegistry.addShapelessRecipe(scrollStack, paperStack, stringStack); + registry.register(new ShapelessOreRecipe(null, scrollStack, paperStack, stringStack).setRegistryName(new ResourceLocation(Wizardry.MODID, "scroll_2"))); } // Mana flask recipes @@ -316,7 +326,7 @@ public final class WizardryRegistry { for(Element element : Element.values()){ for(Tier tier : Tier.values()){ miscWandStack = new ItemStack(WizardryUtilities.getWand(tier, element), 1, OreDictionary.WILDCARD_VALUE); - GameRegistry.addShapelessRecipe(miscWandStack, miscWandStack, manaFlaskStack); + registry.register(new ShapelessOreRecipe(null, miscWandStack, miscWandStack, manaFlaskStack).setRegistryName(new ResourceLocation(Wizardry.MODID, "misc_wand"))); } } @@ -325,7 +335,7 @@ public final class WizardryRegistry { for(Element element : Element.values()){ for(EntityEquipmentSlot slot : WizardryUtilities.ARMOUR_SLOTS){ miscArmourStack = new ItemStack(WizardryUtilities.getArmour(element, slot), 1, OreDictionary.WILDCARD_VALUE); - GameRegistry.addShapelessRecipe(miscArmourStack, miscArmourStack, manaFlaskStack); + registry.register(new ShapelessOreRecipe(null, miscArmourStack, miscArmourStack, manaFlaskStack).setRegistryName(new ResourceLocation(Wizardry.MODID, "misc_armour"))); } } } diff --git a/src/main/java/electroblob/wizardry/spell/ArcaneJammer.java b/src/main/java/electroblob/wizardry/spell/ArcaneJammer.java index de71e777..2ab80c9c 100644 --- a/src/main/java/electroblob/wizardry/spell/ArcaneJammer.java +++ b/src/main/java/electroblob/wizardry/spell/ArcaneJammer.java @@ -1,12 +1,13 @@ package electroblob.wizardry.spell; import electroblob.wizardry.Wizardry; +import electroblob.wizardry.advancement.AdvancementHelper; +import electroblob.wizardry.advancement.AdvancementHelper.EnumAdvancement; import electroblob.wizardry.constants.Element; import electroblob.wizardry.constants.SpellType; import electroblob.wizardry.constants.Tier; import electroblob.wizardry.entity.living.EntityWizard; import electroblob.wizardry.event.SpellCastEvent; -import electroblob.wizardry.registry.WizardryAchievements; import electroblob.wizardry.registry.WizardryItems; import electroblob.wizardry.registry.WizardryPotions; import electroblob.wizardry.registry.WizardrySounds; @@ -43,7 +44,7 @@ public class ArcaneJammer extends Spell { if(rayTrace != null && rayTrace.typeOfHit == RayTraceResult.Type.ENTITY && WizardryUtilities.isLiving(rayTrace.entityHit)){ EntityLivingBase entity = (EntityLivingBase)rayTrace.entityHit; - if(entity instanceof EntityWizard) caster.addStat(WizardryAchievements.jam_wizard); + if(entity instanceof EntityWizard) { AdvancementHelper.grantAdvancement(caster, EnumAdvancement.jam_wizard); } if(!world.isRemote){ entity.addPotionEffect(new PotionEffect(WizardryPotions.arcane_jammer, @@ -78,9 +79,9 @@ public class ArcaneJammer extends Spell { if(world.isRemote){ - double dx = (target.posX - caster.posX) / caster.getDistanceToEntity(target); - double dy = (target.posY - caster.posY) / caster.getDistanceToEntity(target); - double dz = (target.posZ - caster.posZ) / caster.getDistanceToEntity(target); + double dx = (target.posX - caster.posX) / caster.getDistance(target); + double dy = (target.posY - caster.posY) / caster.getDistance(target); + double dz = (target.posZ - caster.posZ) / caster.getDistance(target); for(int i = 1; i < (int)(25 * modifiers.get(WizardryItems.range_upgrade)); i += 2){ diff --git a/src/main/java/electroblob/wizardry/spell/Banish.java b/src/main/java/electroblob/wizardry/spell/Banish.java index 126d33ff..5d49397c 100644 --- a/src/main/java/electroblob/wizardry/spell/Banish.java +++ b/src/main/java/electroblob/wizardry/spell/Banish.java @@ -113,9 +113,9 @@ public class Banish extends Spell { if(world.isRemote){ - double dx = (target.posX - caster.posX) / caster.getDistanceToEntity(target); - double dy = (target.posY - caster.posY) / caster.getDistanceToEntity(target); - double dz = (target.posZ - caster.posZ) / caster.getDistanceToEntity(target); + double dx = (target.posX - caster.posX) / caster.getDistance(target); + double dy = (target.posY - caster.posY) / caster.getDistance(target); + double dz = (target.posZ - caster.posZ) / caster.getDistance(target); for(int i = 1; i < 25; i += 2){ diff --git a/src/main/java/electroblob/wizardry/spell/Bubble.java b/src/main/java/electroblob/wizardry/spell/Bubble.java index 7e838f4b..3886ee36 100644 --- a/src/main/java/electroblob/wizardry/spell/Bubble.java +++ b/src/main/java/electroblob/wizardry/spell/Bubble.java @@ -90,9 +90,9 @@ public class Bubble extends Spell { } if(world.isRemote){ - double dx = (target.posX - caster.posX) / caster.getDistanceToEntity(target); - double dy = (target.posY - caster.posY) / caster.getDistanceToEntity(target); - double dz = (target.posZ - caster.posZ) / caster.getDistanceToEntity(target); + double dx = (target.posX - caster.posX) / caster.getDistance(target); + double dy = (target.posY - caster.posY) / caster.getDistance(target); + double dz = (target.posZ - caster.posZ) / caster.getDistance(target); for(int i = 1; i < (int)(25 * modifiers.get(WizardryItems.range_upgrade)); i += 2){ diff --git a/src/main/java/electroblob/wizardry/spell/Entrapment.java b/src/main/java/electroblob/wizardry/spell/Entrapment.java index 0f5e11a9..44436b4b 100644 --- a/src/main/java/electroblob/wizardry/spell/Entrapment.java +++ b/src/main/java/electroblob/wizardry/spell/Entrapment.java @@ -87,9 +87,9 @@ public class Entrapment extends Spell { } if(world.isRemote){ - double dx = (target.posX - caster.posX) / caster.getDistanceToEntity(target); - double dy = (target.posY - caster.posY) / caster.getDistanceToEntity(target); - double dz = (target.posZ - caster.posZ) / caster.getDistanceToEntity(target); + double dx = (target.posX - caster.posX) / caster.getDistance(target); + double dy = (target.posY - caster.posY) / caster.getDistance(target); + double dz = (target.posZ - caster.posZ) / caster.getDistance(target); for(int i = 1; i < 25; i += 2){ diff --git a/src/main/java/electroblob/wizardry/spell/Fireball.java b/src/main/java/electroblob/wizardry/spell/Fireball.java index 2705e94f..83e680b2 100644 --- a/src/main/java/electroblob/wizardry/spell/Fireball.java +++ b/src/main/java/electroblob/wizardry/spell/Fireball.java @@ -61,9 +61,9 @@ public class Fireball extends Spell { - (caster.posY + (double)(caster.height / 2.0F)); double dz = target.posZ - caster.posZ; - fireball.accelerationX = dx / caster.getDistanceToEntity(target) * 0.1; - fireball.accelerationY = dy / caster.getDistanceToEntity(target) * 0.1; - fireball.accelerationZ = dz / caster.getDistanceToEntity(target) * 0.1; + fireball.accelerationX = dx / caster.getDistance(target) * 0.1; + fireball.accelerationY = dy / caster.getDistance(target) * 0.1; + fireball.accelerationZ = dz / caster.getDistance(target) * 0.1; fireball.setPosition(caster.posX, caster.posY + caster.getEyeHeight(), caster.posZ); diff --git a/src/main/java/electroblob/wizardry/spell/GreaterFireball.java b/src/main/java/electroblob/wizardry/spell/GreaterFireball.java index ce6fa816..d1d83f98 100644 --- a/src/main/java/electroblob/wizardry/spell/GreaterFireball.java +++ b/src/main/java/electroblob/wizardry/spell/GreaterFireball.java @@ -60,9 +60,9 @@ public class GreaterFireball extends Spell { - (caster.posY + (double)(caster.height / 2.0F)); double dz = target.posZ - caster.posZ; - fireball.accelerationX = dx / caster.getDistanceToEntity(target) * 0.1; - fireball.accelerationY = dy / caster.getDistanceToEntity(target) * 0.1; - fireball.accelerationZ = dz / caster.getDistanceToEntity(target) * 0.1; + fireball.accelerationX = dx / caster.getDistance(target) * 0.1; + fireball.accelerationY = dy / caster.getDistance(target) * 0.1; + fireball.accelerationZ = dz / caster.getDistance(target) * 0.1; fireball.setPosition(caster.posX, caster.posY + caster.getEyeHeight(), caster.posZ); diff --git a/src/main/java/electroblob/wizardry/spell/IceAge.java b/src/main/java/electroblob/wizardry/spell/IceAge.java index ba9cef99..8ce234e0 100644 --- a/src/main/java/electroblob/wizardry/spell/IceAge.java +++ b/src/main/java/electroblob/wizardry/spell/IceAge.java @@ -2,10 +2,11 @@ package electroblob.wizardry.spell; import java.util.List; +import electroblob.wizardry.advancement.AdvancementHelper; +import electroblob.wizardry.advancement.AdvancementHelper.EnumAdvancement; import electroblob.wizardry.constants.Element; import electroblob.wizardry.constants.SpellType; import electroblob.wizardry.constants.Tier; -import electroblob.wizardry.registry.WizardryAchievements; import electroblob.wizardry.registry.WizardryBlocks; import electroblob.wizardry.registry.WizardryItems; import electroblob.wizardry.registry.WizardrySounds; @@ -58,7 +59,7 @@ public class IceAge extends Spell { target.extinguish(); } - if(target instanceof EntityBlaze) caster.addStat(WizardryAchievements.freeze_blaze, 1); + if(target instanceof EntityBlaze) { AdvancementHelper.grantAdvancement(caster, EnumAdvancement.freeze_blaze); } if(target instanceof EntityLiving){ diff --git a/src/main/java/electroblob/wizardry/spell/IceStatue.java b/src/main/java/electroblob/wizardry/spell/IceStatue.java index 066ff5a2..61560621 100644 --- a/src/main/java/electroblob/wizardry/spell/IceStatue.java +++ b/src/main/java/electroblob/wizardry/spell/IceStatue.java @@ -1,10 +1,11 @@ package electroblob.wizardry.spell; import electroblob.wizardry.Wizardry; +import electroblob.wizardry.advancement.AdvancementHelper; +import electroblob.wizardry.advancement.AdvancementHelper.EnumAdvancement; import electroblob.wizardry.constants.Element; import electroblob.wizardry.constants.SpellType; import electroblob.wizardry.constants.Tier; -import electroblob.wizardry.registry.WizardryAchievements; import electroblob.wizardry.registry.WizardryBlocks; import electroblob.wizardry.registry.WizardryItems; import electroblob.wizardry.registry.WizardrySounds; @@ -52,7 +53,7 @@ public class IceStatue extends Spell { // Stops the entity looking red while frozen and the resulting z-fighting target.hurtTime = 0; - if(target instanceof EntityBlaze) caster.addStat(WizardryAchievements.freeze_blaze, 1); + if(target instanceof EntityBlaze) { AdvancementHelper.grantAdvancement(caster, EnumAdvancement.freeze_blaze); } // Short mobs such as spiders and pigs if((target.height < 1.2 || target.isChild()) && WizardryUtilities.canBlockBeReplaced(world, pos)){ diff --git a/src/main/java/electroblob/wizardry/spell/Intimidate.java b/src/main/java/electroblob/wizardry/spell/Intimidate.java index a733f93f..ba78e956 100644 --- a/src/main/java/electroblob/wizardry/spell/Intimidate.java +++ b/src/main/java/electroblob/wizardry/spell/Intimidate.java @@ -82,7 +82,7 @@ public class Intimidate extends Spell { */ public static boolean runAway(EntityCreature target, EntityLivingBase caster){ - if(target.getDistanceToEntity(caster) < 16){ + if(target.getDistance(caster) < 16){ Vec3d Vec3d = RandomPositionGenerator.findRandomTargetBlockAwayFrom(target, 16, 7, new Vec3d(caster.posX, caster.posY, caster.posZ)); diff --git a/src/main/java/electroblob/wizardry/spell/LightningBolt.java b/src/main/java/electroblob/wizardry/spell/LightningBolt.java index 06281d3b..87b6241d 100644 --- a/src/main/java/electroblob/wizardry/spell/LightningBolt.java +++ b/src/main/java/electroblob/wizardry/spell/LightningBolt.java @@ -1,9 +1,10 @@ package electroblob.wizardry.spell; +import electroblob.wizardry.advancement.AdvancementHelper; +import electroblob.wizardry.advancement.AdvancementHelper.EnumAdvancement; import electroblob.wizardry.constants.Element; import electroblob.wizardry.constants.SpellType; import electroblob.wizardry.constants.Tier; -import electroblob.wizardry.registry.WizardryAchievements; import electroblob.wizardry.util.SpellModifiers; import electroblob.wizardry.util.WizardryUtilities; import net.minecraft.entity.EntityLiving; @@ -109,11 +110,11 @@ public class LightningBolt extends Spell { event.getLightning().getEntityData().getUniqueId("summoningPlayer")); if(event.getEntity() instanceof EntityCreeper){ - player.addStat(WizardryAchievements.charge_creeper); + AdvancementHelper.grantAdvancement(player, EnumAdvancement.charge_creeper); } if(event.getEntity() instanceof EntityPig){ - player.addStat(WizardryAchievements.frankenstein); + AdvancementHelper.grantAdvancement(player, EnumAdvancement.frankenstein); } } diff --git a/src/main/java/electroblob/wizardry/spell/MindControl.java b/src/main/java/electroblob/wizardry/spell/MindControl.java index 84b723ae..3edff448 100644 --- a/src/main/java/electroblob/wizardry/spell/MindControl.java +++ b/src/main/java/electroblob/wizardry/spell/MindControl.java @@ -172,7 +172,7 @@ public class MindControl extends Spell { for(EntityLivingBase possibleTarget : possibleTargets){ if(WizardryUtilities.isValidTarget(caster, possibleTarget) && (newAITarget == null - || target.getDistanceToEntity(possibleTarget) < target.getDistanceToEntity(newAITarget))){ + || target.getDistance(possibleTarget) < target.getDistance(newAITarget))){ newAITarget = possibleTarget; } } diff --git a/src/main/java/electroblob/wizardry/spell/Poison.java b/src/main/java/electroblob/wizardry/spell/Poison.java index e804876f..630c0a3e 100644 --- a/src/main/java/electroblob/wizardry/spell/Poison.java +++ b/src/main/java/electroblob/wizardry/spell/Poison.java @@ -88,9 +88,9 @@ public class Poison extends Spell { if(world.isRemote){ - double dx = (target.posX - caster.posX) / caster.getDistanceToEntity(target); - double dy = (target.posY - caster.posY) / caster.getDistanceToEntity(target); - double dz = (target.posZ - caster.posZ) / caster.getDistanceToEntity(target); + double dx = (target.posX - caster.posX) / caster.getDistance(target); + double dy = (target.posY - caster.posY) / caster.getDistance(target); + double dz = (target.posZ - caster.posZ) / caster.getDistance(target); for(int i = 1; i < (int)(25 * modifiers.get(WizardryItems.range_upgrade)); i += 2){ diff --git a/src/main/java/electroblob/wizardry/spell/Shockwave.java b/src/main/java/electroblob/wizardry/spell/Shockwave.java index 83845bc6..60d2fedc 100644 --- a/src/main/java/electroblob/wizardry/spell/Shockwave.java +++ b/src/main/java/electroblob/wizardry/spell/Shockwave.java @@ -39,7 +39,7 @@ public class Shockwave extends Spell { for(EntityLivingBase target : targets){ if(WizardryUtilities.isValidTarget(caster, target)){ // Damage increases closer to player up to a maximum of 4 hearts (at 1 block distance). - float damage = Math.min(8.0f / target.getDistanceToEntity(caster), 8.0f); + float damage = Math.min(8.0f / target.getDistance(caster), 8.0f); target.attackEntityFrom(MagicDamage.causeDirectMagicDamage(caster, DamageType.BLAST), damage * modifiers.get(SpellModifiers.DAMAGE)); @@ -48,7 +48,7 @@ public class Shockwave extends Spell { // Entity speed increases closer to the player to a maximum of 3 (at 1 block distance). // This is the entity's speed compared to its distance from the player. Used for a similar triangles // based x, y and z speed calculation. - double velocityFactor = Math.min(5 / target.getDistanceSqToEntity(caster), 3.0d); + double velocityFactor = Math.min(5 / target.getDistanceSq(caster), 3.0d); double dx = target.posX - caster.posX; double dy = target.posY + 1 - caster.posY; diff --git a/src/main/java/electroblob/wizardry/spell/Slime.java b/src/main/java/electroblob/wizardry/spell/Slime.java index 64347beb..8d92d065 100644 --- a/src/main/java/electroblob/wizardry/spell/Slime.java +++ b/src/main/java/electroblob/wizardry/spell/Slime.java @@ -1,11 +1,12 @@ package electroblob.wizardry.spell; import electroblob.wizardry.Wizardry; +import electroblob.wizardry.advancement.AdvancementHelper; +import electroblob.wizardry.advancement.AdvancementHelper.EnumAdvancement; import electroblob.wizardry.constants.Element; import electroblob.wizardry.constants.SpellType; import electroblob.wizardry.constants.Tier; import electroblob.wizardry.entity.living.EntityMagicSlime; -import electroblob.wizardry.registry.WizardryAchievements; import electroblob.wizardry.registry.WizardryItems; import electroblob.wizardry.registry.WizardrySounds; import electroblob.wizardry.util.SpellModifiers; @@ -48,7 +49,7 @@ public class Slime extends Spell { this.getNameForTranslationFormatted())); }else if(!(target instanceof EntityMagicSlime)){ - if(target instanceof EntitySkeleton) caster.addStat(WizardryAchievements.slime_skeleton); + if(target instanceof EntitySkeleton) { AdvancementHelper.grantAdvancement(caster, EnumAdvancement.slime_skeleton); } if(!world.isRemote){ EntityMagicSlime slime = new EntityMagicSlime(world, caster, target, @@ -91,9 +92,9 @@ public class Slime extends Spell { if(world.isRemote){ - double dx = (target.posX - caster.posX) / caster.getDistanceToEntity(target); - double dy = (target.posY - caster.posY) / caster.getDistanceToEntity(target); - double dz = (target.posZ - caster.posZ) / caster.getDistanceToEntity(target); + double dx = (target.posX - caster.posX) / caster.getDistance(target); + double dy = (target.posY - caster.posY) / caster.getDistance(target); + double dz = (target.posZ - caster.posZ) / caster.getDistance(target); for(int i = 1; i < (int)(25 * modifiers.get(WizardryItems.range_upgrade)); i += 2){ diff --git a/src/main/java/electroblob/wizardry/spell/Snowball.java b/src/main/java/electroblob/wizardry/spell/Snowball.java index 3fc36fb7..0f7f71e5 100644 --- a/src/main/java/electroblob/wizardry/spell/Snowball.java +++ b/src/main/java/electroblob/wizardry/spell/Snowball.java @@ -28,7 +28,7 @@ public class Snowball extends Spell { if(!world.isRemote){ EntitySnowball snowball = new EntitySnowball(world, caster); - snowball.setHeadingFromThrower(caster, caster.rotationPitch, caster.rotationYaw, 0.0f, 1.5f, 1.0f); + snowball.shoot(caster, caster.rotationPitch, caster.rotationYaw, 0.0f, 1.5f, 1.0f); world.spawnEntity(snowball); } diff --git a/src/main/java/electroblob/wizardry/spell/Spell.java b/src/main/java/electroblob/wizardry/spell/Spell.java index 32db6090..8ca229f4 100644 --- a/src/main/java/electroblob/wizardry/spell/Spell.java +++ b/src/main/java/electroblob/wizardry/spell/Spell.java @@ -1,10 +1,10 @@ package electroblob.wizardry.spell; -import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.function.Predicate; +import java.util.stream.Collectors; import electroblob.wizardry.Wizardry; import electroblob.wizardry.constants.Element; @@ -13,6 +13,7 @@ import electroblob.wizardry.constants.Tier; import electroblob.wizardry.entity.living.EntityWizard; import electroblob.wizardry.registry.Spells; import electroblob.wizardry.util.SpellModifiers; +import net.minecraft.client.resources.I18n; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -23,10 +24,11 @@ import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.TextComponentTranslation; import net.minecraft.world.World; import net.minecraftforge.event.RegistryEvent; -import net.minecraftforge.fml.common.registry.IForgeRegistry; -import net.minecraftforge.fml.common.registry.IForgeRegistryEntry; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; +import net.minecraftforge.registries.ForgeRegistry; +import net.minecraftforge.registries.IForgeRegistry; +import net.minecraftforge.registries.IForgeRegistryEntry; /** * Generic spell class which is the superclass to all spells in wizardry. When extending this class, you must do the @@ -258,7 +260,7 @@ public abstract class Spell extends IForgeRegistryEntry.Impl implements C */ // This is final so nothing can override it, because that would cause all kinds of problems! public final int id(){ - return registry.getValues().indexOf(this); + return ((ForgeRegistry)registry).getID(this); } /** @@ -295,7 +297,7 @@ public abstract class Spell extends IForgeRegistryEntry.Impl implements C */ @SideOnly(Side.CLIENT) public String getDisplayName(){ - return net.minecraft.client.resources.I18n.format("spell." + unlocalisedName); + return I18n.format("spell." + unlocalisedName); } /** @@ -312,8 +314,7 @@ public abstract class Spell extends IForgeRegistryEntry.Impl implements C */ @SideOnly(Side.CLIENT) public String getDisplayNameWithFormatting(){ - return this.element.getFormattingCode() - + net.minecraft.client.resources.I18n.format("spell." + unlocalisedName); + return this.element.getFormattingCode() + I18n.format("spell." + unlocalisedName); } /** @@ -330,7 +331,7 @@ public abstract class Spell extends IForgeRegistryEntry.Impl implements C */ @SideOnly(Side.CLIENT) public String getDescription(){ - return net.minecraft.client.resources.I18n.format("spell." + unlocalisedName + ".desc"); + return I18n.format("spell." + unlocalisedName + ".desc"); } /** Returns whether the spell is enabled in the config. */ @@ -371,7 +372,7 @@ public abstract class Spell extends IForgeRegistryEntry.Impl implements C * returned by Spell.getSpells(Spell.allSpells).size(), but this method is more efficient. */ public static int getTotalSpellCount(){ - return registry.getValues().size() - 1; + return registry.getValuesCollection().size() - 1; } /** @@ -383,10 +384,10 @@ public abstract class Spell extends IForgeRegistryEntry.Impl implements C * better way; see {@link Spell#getSpells(Predicate)}. */ public static Spell get(int id){ - if(id < 0 || id >= registry.getValues().size()){ + if(id < 0 || id >= registry.getValuesCollection().size()){ return Spells.none; } - Spell spell = registry.getValues().get(id); + Spell spell = ((ForgeRegistry)registry).getValue(id); return spell == null ? Spells.none : spell; } @@ -399,7 +400,7 @@ public abstract class Spell extends IForgeRegistryEntry.Impl implements C public static Spell get(String name){ ResourceLocation key = new ResourceLocation(name); if(key.getResourceDomain().equals("minecraft")) key = new ResourceLocation(Wizardry.MODID, name); - return registry.getValue(key); + return ((ForgeRegistry)registry).getValue(key); } /** Returns a list of all registered spells' registry names, excluding the 'none' spell. Used in commands. */ @@ -430,14 +431,7 @@ public abstract class Spell extends IForgeRegistryEntry.Impl implements C * empty. */ public static List getSpells(Predicate filter){ - - ArrayList spells = new ArrayList(1); - - for(Spell spell : registry.getValues()){ - if(filter.test(spell) && spell != Spells.none) spells.add(spell); - } - - return spells; + return registry.getValuesCollection().stream().filter(filter.and(p -> p != Spells.none)).collect(Collectors.toList()); } /** Predicate which allows all spells. */ diff --git a/src/main/java/electroblob/wizardry/spell/Whirlwind.java b/src/main/java/electroblob/wizardry/spell/Whirlwind.java index f264447a..526b8dbb 100644 --- a/src/main/java/electroblob/wizardry/spell/Whirlwind.java +++ b/src/main/java/electroblob/wizardry/spell/Whirlwind.java @@ -49,11 +49,11 @@ public class Whirlwind extends Spell { if(world.isRemote){ for(int i = 0; i < 10; i++){ double x2 = (double)(caster.posX + world.rand.nextFloat() - 0.5F - + caster.getLookVec().x * caster.getDistanceToEntity(target) * 0.5); + + caster.getLookVec().x * caster.getDistance(target) * 0.5); double y2 = (double)(WizardryUtilities.getPlayerEyesPos(caster) + world.rand.nextFloat() - 0.5F - + caster.getLookVec().y * caster.getDistanceToEntity(target) * 0.5); + + caster.getLookVec().y * caster.getDistance(target) * 0.5); double z2 = (double)(caster.posZ + world.rand.nextFloat() - 0.5F - + caster.getLookVec().z * caster.getDistanceToEntity(target) * 0.5); + + caster.getLookVec().z * caster.getDistance(target) * 0.5); world.spawnParticle(EnumParticleTypes.CLOUD, x2, y2, z2, caster.getLookVec().x, caster.getLookVec().y, caster.getLookVec().z); // Minecraft.getMinecraft().effectRenderer.addEffect(new EntitySparkleFX(world, x2, y2, z2, @@ -88,11 +88,11 @@ public class Whirlwind extends Spell { if(world.isRemote){ for(int i = 0; i < 10; i++){ double x2 = (double)(caster.posX + world.rand.nextFloat() - 0.5F - + caster.getLookVec().x * caster.getDistanceToEntity(target) * 0.5); + + caster.getLookVec().x * caster.getDistance(target) * 0.5); double y2 = (double)(caster.posY + caster.getEyeHeight() + world.rand.nextFloat() - 0.5F - + caster.getLookVec().y * caster.getDistanceToEntity(target) * 0.5); + + caster.getLookVec().y * caster.getDistance(target) * 0.5); double z2 = (double)(caster.posZ + world.rand.nextFloat() - 0.5F - + caster.getLookVec().z * caster.getDistanceToEntity(target) * 0.5); + + caster.getLookVec().z * caster.getDistance(target) * 0.5); world.spawnParticle(EnumParticleTypes.CLOUD, x2, y2, z2, caster.getLookVec().x, caster.getLookVec().y, caster.getLookVec().z); } diff --git a/src/main/java/electroblob/wizardry/spell/Wither.java b/src/main/java/electroblob/wizardry/spell/Wither.java index 039514b6..88712ceb 100644 --- a/src/main/java/electroblob/wizardry/spell/Wither.java +++ b/src/main/java/electroblob/wizardry/spell/Wither.java @@ -92,9 +92,9 @@ public class Wither extends Spell { if(world.isRemote){ - double dx = (target.posX - caster.posX) / caster.getDistanceToEntity(target); - double dy = (target.posY - caster.posY) / caster.getDistanceToEntity(target); - double dz = (target.posZ - caster.posZ) / caster.getDistanceToEntity(target); + double dx = (target.posX - caster.posX) / caster.getDistance(target); + double dy = (target.posY - caster.posY) / caster.getDistance(target); + double dz = (target.posZ - caster.posZ) / caster.getDistance(target); for(int i = 1; i < (int)(25 * modifiers.get(WizardryItems.range_upgrade)); i += 2){ diff --git a/src/main/java/electroblob/wizardry/spell/WitherSkull.java b/src/main/java/electroblob/wizardry/spell/WitherSkull.java index 7b68237d..b6bd4549 100644 --- a/src/main/java/electroblob/wizardry/spell/WitherSkull.java +++ b/src/main/java/electroblob/wizardry/spell/WitherSkull.java @@ -61,9 +61,9 @@ public class WitherSkull extends Spell { - (caster.posY + (double)(caster.height / 2.0F)); double dz = target.posZ - caster.posZ; - witherskull.accelerationX = dx / caster.getDistanceToEntity(target) * 0.1; - witherskull.accelerationY = dy / caster.getDistanceToEntity(target) * 0.1; - witherskull.accelerationZ = dz / caster.getDistanceToEntity(target) * 0.1; + witherskull.accelerationX = dx / caster.getDistance(target) * 0.1; + witherskull.accelerationY = dy / caster.getDistance(target) * 0.1; + witherskull.accelerationZ = dz / caster.getDistance(target) * 0.1; witherskull.setPosition(caster.posX, caster.posY + caster.getEyeHeight(), caster.posZ); diff --git a/src/main/java/electroblob/wizardry/tileentity/ContainerArcaneWorkbench.java b/src/main/java/electroblob/wizardry/tileentity/ContainerArcaneWorkbench.java index f5cebc03..fa9e689e 100644 --- a/src/main/java/electroblob/wizardry/tileentity/ContainerArcaneWorkbench.java +++ b/src/main/java/electroblob/wizardry/tileentity/ContainerArcaneWorkbench.java @@ -5,6 +5,8 @@ import java.util.Set; import electroblob.wizardry.WizardData; import electroblob.wizardry.Wizardry; +import electroblob.wizardry.advancement.AdvancementHelper; +import electroblob.wizardry.advancement.AdvancementHelper.EnumAdvancement; import electroblob.wizardry.constants.Constants; import electroblob.wizardry.constants.Tier; import electroblob.wizardry.event.SpellBindEvent; @@ -14,7 +16,6 @@ import electroblob.wizardry.item.ItemSpellBook; import electroblob.wizardry.item.ItemWand; import electroblob.wizardry.item.ItemWizardArmour; import electroblob.wizardry.registry.Spells; -import electroblob.wizardry.registry.WizardryAchievements; import electroblob.wizardry.registry.WizardryItems; import electroblob.wizardry.spell.Spell; import electroblob.wizardry.util.WandHelper; @@ -297,7 +298,7 @@ public class ContainerArcaneWorkbench extends Container { newWand.setItemDamage(newWand.getMaxDamage() - (wand.getMaxDamage() - wand.getItemDamage())); this.putStackInSlot(WAND_SLOT, newWand); this.putStackInSlot(UPGRADE_SLOT, ItemStack.EMPTY); - player.addStat(WizardryAchievements.apprentice, 1); + AdvancementHelper.grantAdvancement(player, EnumAdvancement.apprentice); } break; @@ -320,7 +321,7 @@ public class ContainerArcaneWorkbench extends Container { newWand.setItemDamage(newWand.getMaxDamage() - (wand.getMaxDamage() - wand.getItemDamage())); this.putStackInSlot(WAND_SLOT, newWand); this.putStackInSlot(UPGRADE_SLOT, ItemStack.EMPTY); - player.addStat(WizardryAchievements.master, 1); + AdvancementHelper.grantAdvancement(player, EnumAdvancement.master); } break; @@ -374,10 +375,10 @@ public class ContainerArcaneWorkbench extends Container { } this.getSlot(UPGRADE_SLOT).decrStackSize(1); - player.addStat(WizardryAchievements.special_upgrade, 1); + AdvancementHelper.grantAdvancement(player, EnumAdvancement.special_upgrade); if(WandHelper.getTotalUpgrades(wand) == Tier.MASTER.upgradeLimit){ - player.addStat(WizardryAchievements.max_out_wand, 1); + AdvancementHelper.grantAdvancement(player, EnumAdvancement.max_out_wand); } } } @@ -428,7 +429,7 @@ public class ContainerArcaneWorkbench extends Container { if(!wand.getTagCompound().hasKey("legendary")){ wand.getTagCompound().setBoolean("legendary", true); this.putStackInSlot(UPGRADE_SLOT, ItemStack.EMPTY); - player.addStat(WizardryAchievements.legendary); + AdvancementHelper.grantAdvancement(player, EnumAdvancement.legendary); } } // Charges armour by appropriate amount diff --git a/src/main/java/electroblob/wizardry/util/IElementalDamage.java b/src/main/java/electroblob/wizardry/util/IElementalDamage.java index cf2a6c15..fba9c820 100644 --- a/src/main/java/electroblob/wizardry/util/IElementalDamage.java +++ b/src/main/java/electroblob/wizardry/util/IElementalDamage.java @@ -1,6 +1,7 @@ package electroblob.wizardry.util; -import electroblob.wizardry.registry.WizardryAchievements; +import electroblob.wizardry.advancement.AdvancementHelper; +import electroblob.wizardry.advancement.AdvancementHelper.EnumAdvancement; import electroblob.wizardry.util.MagicDamage.DamageType; import net.minecraft.entity.monster.EntityCreeper; import net.minecraft.entity.player.EntityPlayer; @@ -45,7 +46,7 @@ public interface IElementalDamage { WizardryUtilities.chargeCreeper((EntityCreeper)event.getEntityLiving()); // Gives the player that caused the shock damage the 'It's Gonna Blow' achievement if(event.getSource().getTrueSource() instanceof EntityPlayer){ - ((EntityPlayer)event.getSource().getTrueSource()).addStat(WizardryAchievements.charge_creeper); + AdvancementHelper.grantAdvancement((EntityPlayer)event.getSource().getTrueSource(), EnumAdvancement.charge_creeper); } } } diff --git a/src/main/java/electroblob/wizardry/util/WizardryPathFinder.java b/src/main/java/electroblob/wizardry/util/WizardryPathFinder.java index 62db6b2c..898f9b4c 100644 --- a/src/main/java/electroblob/wizardry/util/WizardryPathFinder.java +++ b/src/main/java/electroblob/wizardry/util/WizardryPathFinder.java @@ -41,7 +41,7 @@ public class WizardryPathFinder { @Nullable private Path findPath(IBlockAccess world, EntityLiving entity, double x, double y, double z, float range){ this.path.clearPath(); - this.nodeProcessor.initProcessor(world, entity); + this.nodeProcessor.init(world, entity); PathPoint pathpoint = this.nodeProcessor.getStart(); PathPoint pathpoint1 = this.nodeProcessor.getPathPointToCoords(x, y, z); Path path = this.findPath(pathpoint, pathpoint1, range); diff --git a/src/main/java/electroblob/wizardry/util/WizardryUtilities.java b/src/main/java/electroblob/wizardry/util/WizardryUtilities.java index 3ab2bf72..1b18fe79 100644 --- a/src/main/java/electroblob/wizardry/util/WizardryUtilities.java +++ b/src/main/java/electroblob/wizardry/util/WizardryUtilities.java @@ -27,6 +27,7 @@ import electroblob.wizardry.registry.WizardryPotions; import electroblob.wizardry.spell.MindControl; import electroblob.wizardry.spell.Spell; import net.minecraft.block.state.IBlockState; +import net.minecraft.client.renderer.BufferBuilder; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLivingBase; @@ -667,7 +668,7 @@ public final class WizardryUtilities { // Essentially the same as getting the tessellator. For most code, you'll want the tessellator AND the // vertexbuffer // stored in local variables. - net.minecraft.client.renderer.VertexBuffer buffer = net.minecraft.client.renderer.Tessellator.getInstance() + BufferBuilder buffer = net.minecraft.client.renderer.Tessellator.getInstance() .getBuffer(); // Equivalent of tessellator.startDrawingQuads() buffer.begin(org.lwjgl.opengl.GL11.GL_QUADS, diff --git a/src/main/resources/assets/wizardry/advancements/all_spells.json b/src/main/resources/assets/wizardry/advancements/all_spells.json new file mode 100644 index 00000000..a2f947f1 --- /dev/null +++ b/src/main/resources/assets/wizardry/advancements/all_spells.json @@ -0,0 +1,21 @@ +{ + "display": { + "icon": { + "item": "wizardry:wizard_handbook" + }, + "title": { + "translate": "achievement.all_spells" + }, + "description": { + "translate": "achievement.all_spells.desc" + }, + "frame": "goal", + "announce_to_chat": false + }, + "parent": "wizardry:master", + "criteria": { + "coded_trigger": { + "trigger": "minecraft:impossible" + } + } +} diff --git a/src/main/resources/assets/wizardry/advancements/anger_wizard.json b/src/main/resources/assets/wizardry/advancements/anger_wizard.json new file mode 100644 index 00000000..b979f4b1 --- /dev/null +++ b/src/main/resources/assets/wizardry/advancements/anger_wizard.json @@ -0,0 +1,21 @@ +{ + "display": { + "icon": { + "item": "minecraft:iron_sword" + }, + "title": { + "translate": "achievement.anger_wizard" + }, + "description": { + "translate": "achievement.anger_wizard.desc" + }, + "frame": "task", + "announce_to_chat": false + }, + "parent": "wizardry:wizard_trade", + "criteria": { + "coded_trigger": { + "trigger": "minecraft:impossible" + } + } +} diff --git a/src/main/resources/assets/wizardry/advancements/apprentice.json b/src/main/resources/assets/wizardry/advancements/apprentice.json new file mode 100644 index 00000000..37cbe3af --- /dev/null +++ b/src/main/resources/assets/wizardry/advancements/apprentice.json @@ -0,0 +1,21 @@ +{ + "display": { + "icon": { + "item": "wizardry:apprentice_wand" + }, + "title": { + "translate": "achievement.apprentice" + }, + "description": { + "translate": "achievement.apprentice.desc" + }, + "frame": "task", + "announce_to_chat": false + }, + "parent": "wizardry:arcane_initiate", + "criteria": { + "coded_trigger": { + "trigger": "minecraft:impossible" + } + } +} diff --git a/src/main/resources/assets/wizardry/advancements/arcane_initiate.json b/src/main/resources/assets/wizardry/advancements/arcane_initiate.json new file mode 100644 index 00000000..32991d89 --- /dev/null +++ b/src/main/resources/assets/wizardry/advancements/arcane_initiate.json @@ -0,0 +1,21 @@ +{ + "display": { + "icon": { + "item": "wizardry:magic_wand" + }, + "title": { + "translate": "achievement.arcane_initiate" + }, + "description": { + "translate": "achievement.arcane_initiate.desc" + }, + "frame": "task", + "announce_to_chat": false + }, + "parent": "wizardry:crystal", + "criteria": { + "coded_trigger": { + "trigger": "minecraft:impossible" + } + } +} diff --git a/src/main/resources/assets/wizardry/advancements/armour_set.json b/src/main/resources/assets/wizardry/advancements/armour_set.json new file mode 100644 index 00000000..3ddcc958 --- /dev/null +++ b/src/main/resources/assets/wizardry/advancements/armour_set.json @@ -0,0 +1,21 @@ +{ + "display": { + "icon": { + "item": "wizardry:wizard_hat" + }, + "title": { + "translate": "achievement.armour_set" + }, + "description": { + "translate": "achievement.armour_set.desc" + }, + "frame": "task", + "announce_to_chat": false + }, + "parent": "wizardry:arcane_initiate", + "criteria": { + "coded_trigger": { + "trigger": "minecraft:impossible" + } + } +} diff --git a/src/main/resources/assets/wizardry/advancements/buy_master_spell.json b/src/main/resources/assets/wizardry/advancements/buy_master_spell.json new file mode 100644 index 00000000..5e43e304 --- /dev/null +++ b/src/main/resources/assets/wizardry/advancements/buy_master_spell.json @@ -0,0 +1,21 @@ +{ + "display": { + "icon": { + "item": "wizardry:spell_book" + }, + "title": { + "translate": "achievement.buy_master_spell" + }, + "description": { + "translate": "achievement.buy_master_spell.desc" + }, + "frame": "goal", + "announce_to_chat": false + }, + "parent": "wizardry:wizard_trade", + "criteria": { + "coded_trigger": { + "trigger": "minecraft:impossible" + } + } +} diff --git a/src/main/resources/assets/wizardry/advancements/charge_creeper.json b/src/main/resources/assets/wizardry/advancements/charge_creeper.json new file mode 100644 index 00000000..b3569a20 --- /dev/null +++ b/src/main/resources/assets/wizardry/advancements/charge_creeper.json @@ -0,0 +1,21 @@ +{ + "display": { + "icon": { + "item": "minecraft:gunpowder" + }, + "title": { + "translate": "achievement.charge_creeper" + }, + "description": { + "translate": "achievement.charge_creeper.desc" + }, + "frame": "task", + "announce_to_chat": false + }, + "parent": "wizardry:arcane_initiate", + "criteria": { + "coded_trigger": { + "trigger": "minecraft:impossible" + } + } +} diff --git a/src/main/resources/assets/wizardry/advancements/craft_flask.json b/src/main/resources/assets/wizardry/advancements/craft_flask.json new file mode 100644 index 00000000..f294566f --- /dev/null +++ b/src/main/resources/assets/wizardry/advancements/craft_flask.json @@ -0,0 +1,21 @@ +{ + "display": { + "icon": { + "item": "wizardry:mana_flask" + }, + "title": { + "translate": "achievement.craft_flask" + }, + "description": { + "translate": "achievement.craft_flask.desc" + }, + "frame": "task", + "announce_to_chat": false + }, + "parent": "wizardry:arcane_initiate", + "criteria": { + "coded_trigger": { + "trigger": "minecraft:impossible" + } + } +} diff --git a/src/main/resources/assets/wizardry/advancements/crystal.json b/src/main/resources/assets/wizardry/advancements/crystal.json new file mode 100644 index 00000000..81002add --- /dev/null +++ b/src/main/resources/assets/wizardry/advancements/crystal.json @@ -0,0 +1,21 @@ +{ + "display": { + "icon": { + "item": "wizardry:magic_crystal" + }, + "title": { + "translate": "achievement.crystal" + }, + "description": { + "translate": "achievement.crystal.desc" + }, + "frame": "task", + "announce_to_chat": false + }, + "parent": "wizardry:root", + "criteria": { + "coded_trigger": { + "trigger": "minecraft:impossible" + } + } +} diff --git a/src/main/resources/assets/wizardry/advancements/defeat_evil_wizard.json b/src/main/resources/assets/wizardry/advancements/defeat_evil_wizard.json new file mode 100644 index 00000000..ebcd5e4a --- /dev/null +++ b/src/main/resources/assets/wizardry/advancements/defeat_evil_wizard.json @@ -0,0 +1,21 @@ +{ + "display": { + "icon": { + "item": "wizardry:wizard_boots_necromancy" + }, + "title": { + "translate": "achievement.defeat_evil_wizard" + }, + "description": { + "translate": "achievement.defeat_evil_wizard.desc" + }, + "frame": "task", + "announce_to_chat": false + }, + "parent": "wizardry:wizard_trade", + "criteria": { + "coded_trigger": { + "trigger": "minecraft:impossible" + } + } +} diff --git a/src/main/resources/assets/wizardry/advancements/element_master.json b/src/main/resources/assets/wizardry/advancements/element_master.json new file mode 100644 index 00000000..cadc59ac --- /dev/null +++ b/src/main/resources/assets/wizardry/advancements/element_master.json @@ -0,0 +1,21 @@ +{ + "display": { + "icon": { + "item": "wizardry:master_ice_wand" + }, + "title": { + "translate": "achievement.element_master" + }, + "description": { + "translate": "achievement.element_master.desc" + }, + "frame": "goal", + "announce_to_chat": false + }, + "parent": "wizardry:elemental", + "criteria": { + "coded_trigger": { + "trigger": "minecraft:impossible" + } + } +} diff --git a/src/main/resources/assets/wizardry/advancements/elemental.json b/src/main/resources/assets/wizardry/advancements/elemental.json new file mode 100644 index 00000000..1ccf4842 --- /dev/null +++ b/src/main/resources/assets/wizardry/advancements/elemental.json @@ -0,0 +1,21 @@ +{ + "display": { + "icon": { + "item": "wizardry:basic_fire_wand" + }, + "title": { + "translate": "achievement.elemental" + }, + "description": { + "translate": "achievement.elemental.desc" + }, + "frame": "task", + "announce_to_chat": false + }, + "parent": "wizardry:arcane_initiate", + "criteria": { + "coded_trigger": { + "trigger": "minecraft:impossible" + } + } +} diff --git a/src/main/resources/assets/wizardry/advancements/frankenstein.json b/src/main/resources/assets/wizardry/advancements/frankenstein.json new file mode 100644 index 00000000..e0f10027 --- /dev/null +++ b/src/main/resources/assets/wizardry/advancements/frankenstein.json @@ -0,0 +1,21 @@ +{ + "display": { + "icon": { + "item": "wizardry:advanced_lightning_wand" + }, + "title": { + "translate": "achievement.frankenstein" + }, + "description": { + "translate": "achievement.frankenstein.desc" + }, + "frame": "goal", + "announce_to_chat": false + }, + "parent": "wizardry:charge_creeper", + "criteria": { + "coded_trigger": { + "trigger": "minecraft:impossible" + } + } +} diff --git a/src/main/resources/assets/wizardry/advancements/freeze_blaze.json b/src/main/resources/assets/wizardry/advancements/freeze_blaze.json new file mode 100644 index 00000000..51e3dbb0 --- /dev/null +++ b/src/main/resources/assets/wizardry/advancements/freeze_blaze.json @@ -0,0 +1,21 @@ +{ + "display": { + "icon": { + "item": "minecraft:ice" + }, + "title": { + "translate": "achievement.freeze_blaze" + }, + "description": { + "translate": "achievement.freeze_blaze.desc" + }, + "frame": "task", + "announce_to_chat": false + }, + "parent": "wizardry:apprentice", + "criteria": { + "coded_trigger": { + "trigger": "minecraft:impossible" + } + } +} diff --git a/src/main/resources/assets/wizardry/advancements/identify_spell.json b/src/main/resources/assets/wizardry/advancements/identify_spell.json new file mode 100644 index 00000000..a3445cf2 --- /dev/null +++ b/src/main/resources/assets/wizardry/advancements/identify_spell.json @@ -0,0 +1,21 @@ +{ + "display": { + "icon": { + "item": "wizardry:identification_scroll" + }, + "title": { + "translate": "achievement.identify_spell" + }, + "description": { + "translate": "achievement.identify_spell.desc" + }, + "frame": "task", + "announce_to_chat": false + }, + "parent": "wizardry:arcane_initiate", + "criteria": { + "coded_trigger": { + "trigger": "minecraft:impossible" + } + } +} diff --git a/src/main/resources/assets/wizardry/advancements/jam_wizard.json b/src/main/resources/assets/wizardry/advancements/jam_wizard.json new file mode 100644 index 00000000..f2e5c1c0 --- /dev/null +++ b/src/main/resources/assets/wizardry/advancements/jam_wizard.json @@ -0,0 +1,21 @@ +{ + "display": { + "icon": { + "item": "minecraft:web" + }, + "title": { + "translate": "achievement.jam_wizard" + }, + "description": { + "translate": "achievement.jam_wizard.desc" + }, + "frame": "task", + "announce_to_chat": false + }, + "parent": "wizardry:apprentice", + "criteria": { + "coded_trigger": { + "trigger": "minecraft:impossible" + } + } +} diff --git a/src/main/resources/assets/wizardry/advancements/legendary.json b/src/main/resources/assets/wizardry/advancements/legendary.json new file mode 100644 index 00000000..2edc3f2e --- /dev/null +++ b/src/main/resources/assets/wizardry/advancements/legendary.json @@ -0,0 +1,21 @@ +{ + "display": { + "icon": { + "item": "wizardry:armour_upgrade" + }, + "title": { + "translate": "achievement.legendary" + }, + "description": { + "translate": "achievement.legendary.desc" + }, + "frame": "goal", + "announce_to_chat": false + }, + "parent": "wizardry:armour_set", + "criteria": { + "coded_trigger": { + "trigger": "minecraft:impossible" + } + } +} diff --git a/src/main/resources/assets/wizardry/advancements/master.json b/src/main/resources/assets/wizardry/advancements/master.json new file mode 100644 index 00000000..e1bf07be --- /dev/null +++ b/src/main/resources/assets/wizardry/advancements/master.json @@ -0,0 +1,21 @@ +{ + "display": { + "icon": { + "item": "wizardry:master_wand" + }, + "title": { + "translate": "achievement.master" + }, + "description": { + "translate": "achievement.master.desc" + }, + "frame": "task", + "announce_to_chat": false + }, + "parent": "wizardry:apprentice", + "criteria": { + "coded_trigger": { + "trigger": "minecraft:impossible" + } + } +} diff --git a/src/main/resources/assets/wizardry/advancements/max_out_wand.json b/src/main/resources/assets/wizardry/advancements/max_out_wand.json new file mode 100644 index 00000000..918f1858 --- /dev/null +++ b/src/main/resources/assets/wizardry/advancements/max_out_wand.json @@ -0,0 +1,21 @@ +{ + "display": { + "icon": { + "item": "wizardry:arcane_tome" + }, + "title": { + "translate": "achievement.max_out_wand" + }, + "description": { + "translate": "achievement.max_out_wand.desc" + }, + "frame": "goal", + "announce_to_chat": false + }, + "parent": "wizardry:special_upgrade", + "criteria": { + "coded_trigger": { + "trigger": "minecraft:impossible" + } + } +} diff --git a/src/main/resources/assets/wizardry/advancements/pig_tornado.json b/src/main/resources/assets/wizardry/advancements/pig_tornado.json new file mode 100644 index 00000000..9044c454 --- /dev/null +++ b/src/main/resources/assets/wizardry/advancements/pig_tornado.json @@ -0,0 +1,21 @@ +{ + "display": { + "icon": { + "item": "minecraft:saddle" + }, + "title": { + "translate": "achievement.pig_tornado" + }, + "description": { + "translate": "achievement.pig_tornado.desc" + }, + "frame": "goal", + "announce_to_chat": false + }, + "parent": "wizardry:apprentice", + "criteria": { + "coded_trigger": { + "trigger": "minecraft:impossible" + } + } +} diff --git a/src/main/resources/assets/wizardry/advancements/root.json b/src/main/resources/assets/wizardry/advancements/root.json new file mode 100644 index 00000000..c382244d --- /dev/null +++ b/src/main/resources/assets/wizardry/advancements/root.json @@ -0,0 +1,22 @@ +{ + "display": { + "icon": { + "item": "wizardry:wizard_handbook" + }, + "title": { + "translate": "achievement.root" + }, + "description": { + "translate": "achievement.root.desc" + }, + "background": "minecraft:textures/blocks/stone.png", + "show_toast": false, + "announce_to_chat": false, + "frame": "challenge" + }, + "criteria": { + "auto": { + "trigger": "location" + } + } +} diff --git a/src/main/resources/assets/wizardry/advancements/self_destruct.json b/src/main/resources/assets/wizardry/advancements/self_destruct.json new file mode 100644 index 00000000..17bcdd9d --- /dev/null +++ b/src/main/resources/assets/wizardry/advancements/self_destruct.json @@ -0,0 +1,21 @@ +{ + "display": { + "icon": { + "item": "minecraft:pumpkin" + }, + "title": { + "translate": "achievement.self_destruct" + }, + "description": { + "translate": "achievement.self_destruct.desc" + }, + "frame": "task", + "announce_to_chat": false + }, + "parent": "wizardry:arcane_initiate", + "criteria": { + "coded_trigger": { + "trigger": "minecraft:impossible" + } + } +} diff --git a/src/main/resources/assets/wizardry/advancements/slime_skeleton.json b/src/main/resources/assets/wizardry/advancements/slime_skeleton.json new file mode 100644 index 00000000..8806e3b0 --- /dev/null +++ b/src/main/resources/assets/wizardry/advancements/slime_skeleton.json @@ -0,0 +1,21 @@ +{ + "display": { + "icon": { + "item": "minecraft:slime_ball" + }, + "title": { + "translate": "achievement.slime_skeleton" + }, + "description": { + "translate": "achievement.slime_skeleton.desc" + }, + "frame": "task", + "announce_to_chat": false + }, + "parent": "wizardry:apprentice", + "criteria": { + "coded_trigger": { + "trigger": "minecraft:impossible" + } + } +} diff --git a/src/main/resources/assets/wizardry/advancements/special_upgrade.json b/src/main/resources/assets/wizardry/advancements/special_upgrade.json new file mode 100644 index 00000000..74154e98 --- /dev/null +++ b/src/main/resources/assets/wizardry/advancements/special_upgrade.json @@ -0,0 +1,21 @@ +{ + "display": { + "icon": { + "item": "wizardry:condenser_upgrade" + }, + "title": { + "translate": "achievement.special_upgrade" + }, + "description": { + "translate": "achievement.special_upgrade.desc" + }, + "frame": "task", + "announce_to_chat": false + }, + "parent": "wizardry:arcane_initiate", + "criteria": { + "coded_trigger": { + "trigger": "minecraft:impossible" + } + } +} diff --git a/src/main/resources/assets/wizardry/advancements/wizard_trade.json b/src/main/resources/assets/wizardry/advancements/wizard_trade.json new file mode 100644 index 00000000..35387cc4 --- /dev/null +++ b/src/main/resources/assets/wizardry/advancements/wizard_trade.json @@ -0,0 +1,21 @@ +{ + "display": { + "icon": { + "item": "minecraft:emerald" + }, + "title": { + "translate": "achievement.wizard_trade" + }, + "description": { + "translate": "achievement.wizard_trade.desc" + }, + "frame": "task", + "announce_to_chat": false + }, + "parent": "wizardry:arcane_initiate", + "criteria": { + "coded_trigger": { + "trigger": "minecraft:impossible" + } + } +} diff --git a/src/main/resources/assets/wizardry/lang/en_gb.lang b/src/main/resources/assets/wizardry/lang/en_gb.lang index 161b459e..6d00692d 100644 --- a/src/main/resources/assets/wizardry/lang/en_gb.lang +++ b/src/main/resources/assets/wizardry/lang/en_gb.lang @@ -213,6 +213,8 @@ entity.wizardry:lightning_pulse.name=Lightning Pulse item_group.wizardry=Wizardry item_group.wizardryspells=Spells +achievement.root=Wizardry +achievement.root.desc=Advancements achievement.crystal=A Curious Crystal... achievement.crystal.desc=Mine a magic crystal achievement.arcane_initiate=Arcane Initiate diff --git a/src/main/resources/assets/wizardry/lang/en_us.lang b/src/main/resources/assets/wizardry/lang/en_us.lang index 1acb8f33..31f3fa10 100644 --- a/src/main/resources/assets/wizardry/lang/en_us.lang +++ b/src/main/resources/assets/wizardry/lang/en_us.lang @@ -213,6 +213,8 @@ entity.wizardry:lightning_pulse.name=Lightning Pulse itemGroup.wizardry=Wizardry itemGroup.wizardryspells=Spells +achievement.root=Wizardry +achievement.root.desc=Advancements achievement.crystal=A Curious Crystal... achievement.crystal.desc=Mine a magic crystal achievement.arcane_initiate=Arcane Initiate diff --git a/src/main/resources/assets/wizardry/lang/es_es.lang b/src/main/resources/assets/wizardry/lang/es_es.lang index 37484d02..a77ab827 100644 --- a/src/main/resources/assets/wizardry/lang/es_es.lang +++ b/src/main/resources/assets/wizardry/lang/es_es.lang @@ -212,6 +212,8 @@ entity.wizardry:lightning_pulse.name=Pulso de Relampago item_group.wizardry=Wizardry item_group.wizardryspells=Hechizos de Wizardry +achievement.root=Wizardry +achievement.root.desc=Avances achievement.crystal=Un Cristral Curioso... achievement.crystal.desc=Pica un Cristal Magico achievement.arcane_initiate=Inicio Arcano diff --git a/src/main/resources/assets/wizardry/lang/es_mx.lang b/src/main/resources/assets/wizardry/lang/es_mx.lang index 37484d02..a77ab827 100644 --- a/src/main/resources/assets/wizardry/lang/es_mx.lang +++ b/src/main/resources/assets/wizardry/lang/es_mx.lang @@ -212,6 +212,8 @@ entity.wizardry:lightning_pulse.name=Pulso de Relampago item_group.wizardry=Wizardry item_group.wizardryspells=Hechizos de Wizardry +achievement.root=Wizardry +achievement.root.desc=Avances achievement.crystal=Un Cristral Curioso... achievement.crystal.desc=Pica un Cristal Magico achievement.arcane_initiate=Inicio Arcano diff --git a/src/main/resources/assets/wizardry/lang/ru_ru.lang b/src/main/resources/assets/wizardry/lang/ru_ru.lang index c52c5797..35ecbaba 100644 --- a/src/main/resources/assets/wizardry/lang/ru_ru.lang +++ b/src/main/resources/assets/wizardry/lang/ru_ru.lang @@ -189,6 +189,8 @@ entity.wizardry:ring_of_fire.name=Кольцо Огня item_group.wizardry=Волшебство item_group.wizardryspells=Волшебные Заклинания +achievement.root=Wizardry +achievement.root.desc=достижения achievement.crystal=Любопытный Кристалл... achievement.crystal.desc=Добудьте Магический Кристалл achievement.arcane_initiate=Посвящение В Магию