1.12 conversion

This commit is contained in:
Corail31
2018-03-09 11:56:31 +01:00
parent edff82acca
commit 489fb82fbd
126 changed files with 1044 additions and 563 deletions
@@ -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;
@@ -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<NBTTagCompound> {
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);
}
}
@@ -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<Item> 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<Item> 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;
@@ -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);
}
}
@@ -13,22 +13,11 @@ public class WizardryGuiFactory implements IModGuiFactory {
public void initialize(Minecraft minecraftInstance){
}
@Override
public Class<? extends GuiScreen> mainConfigGuiClass(){
return GuiConfigWizardry.class;
}
@Override
public Set<RuntimeOptionCategoryElement> 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;
@@ -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;
@@ -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;
}
}
@@ -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
@@ -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;
@@ -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();
@@ -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;
@@ -174,7 +174,7 @@ public final class WizardryItemModels {
if(item.getHasSubtypes()){
NonNullList<ItemStack> 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"));
@@ -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();
@@ -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;
@@ -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);
@@ -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<EntityArc> {
// 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
@@ -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<TileEntityA
}
@Override
public void renderTileEntityAt(TileEntityArcaneWorkbench tileentity, double x, double y, double z,
float partialTicks, int destroyStage){
public void render(TileEntityArcaneWorkbench tileentity, double x, double y, double z,
float partialTicks, int destroyStage, float alpha){
GlStateManager.pushMatrix();
// This line makes stuff render in the same place relative to the world wherever the player is.
GlStateManager.translate((float)x + 0.5F, (float)y + 1.5F, (float)z + 0.5F);
@@ -59,7 +59,7 @@ public class RenderArcaneWorkbench extends TileEntitySpecialRenderer<TileEntityA
GlStateManager.rotate(tileentity.timer, 0.0f, 1.0f, 0.0f);
GlStateManager.translate(0.0f, 0.65f, 0.0f);
Tessellator tessellator = Tessellator.getInstance();
VertexBuffer buffer = tessellator.getBuffer();
BufferBuilder buffer = tessellator.getBuffer();
bindTexture(runeTexture);
buffer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX);
@@ -8,11 +8,11 @@ import org.lwjgl.opengl.GL11;
import electroblob.wizardry.Wizardry;
import electroblob.wizardry.entity.construct.EntityBlackHole;
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.entity.Render;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
@@ -48,7 +48,7 @@ public class RenderBlackHole extends Render<EntityBlackHole> {
// 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);
@@ -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<EntityBubble> {
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<EntityBubble> {
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);
@@ -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<EntityDecay> {
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);
@@ -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<EntityFireRing> {
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();
@@ -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<EntityForceArrow> {
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;
@@ -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<EntityIceSpike> {
// 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<EntityIceSpike> {
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
Tessellator tessellator = Tessellator.getInstance();
VertexBuffer buffer = tessellator.getBuffer();
BufferBuilder buffer = tessellator.getBuffer();
bindTexture(texture);
@@ -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<EntityLightningDisc> {
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);
@@ -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<EntityLightningPulse> {
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();
@@ -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<EntityMagicArrow> {
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;
@@ -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<TileEntityMagicL
"textures/entity/light_aura.png");
@Override
public void renderTileEntityAt(TileEntityMagicLight tileentity, double x, double y, double z, float f,
int destroyStage){
public void render(TileEntityMagicLight tileentity, double x, double y, double z, float f,
int destroyStage, float alpha){
GlStateManager.pushMatrix();
@@ -49,7 +49,7 @@ public class RenderMagicLight extends TileEntitySpecialRenderer<TileEntityMagicL
// Renders the aura effect
Tessellator tessellator = Tessellator.getInstance();
VertexBuffer buffer = tessellator.getBuffer();
BufferBuilder buffer = tessellator.getBuffer();
GlStateManager.pushMatrix();
@@ -4,10 +4,10 @@ import org.lwjgl.opengl.GL11;
import electroblob.wizardry.entity.projectile.EntityMagicProjectile;
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;
@@ -48,7 +48,7 @@ public class RenderProjectile extends Render<EntityMagicProjectile> {
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;
@@ -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<EntityMagicConstruct> {
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);
@@ -13,8 +13,8 @@ public class RenderStatue extends TileEntitySpecialRenderer<TileEntityStatue> {
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<TileEntityStatue> {
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<TileEntityStatue> {
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<TileEntityStatue> {
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();
@@ -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. */
@@ -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);
}
}
@@ -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(){
@@ -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;
}
@@ -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(
@@ -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.
@@ -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);
}
}
}
@@ -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);
}
@@ -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);
}
}
@@ -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);
}
@@ -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);
}
@@ -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;
}
@@ -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;
}
@@ -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;
}
@@ -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);
}
}
}
@@ -83,7 +83,7 @@ public class EntityForceArrow extends EntityMagicArrow {
@Override
protected void entityInit(){
// auto generated
}
}
@@ -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;
@@ -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<EntityLivingBase>(entity);
}
@Override
protected void entityInit() {
// TODO Auto-generated method stub
}
}
@@ -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
@@ -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;
@@ -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<ItemStack> list){
for(int i = 1; i < Tier.values().length; i++){
list.add(new ItemStack(item, 1, i));
public void getSubItems(CreativeTabs tab, NonNullList<ItemStack> 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<String> tooltip, boolean showAdvanced){
public void addInformation(ItemStack stack, World world, List<String> 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"));
}
}
@@ -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<String> 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<ItemStack> subItems){
subItems.add(new ItemStack(this, 1));
public void addInformation(ItemStack stack, World world, List<String> tooltip, ITooltipFlag advanced){
tooltip.add(I18n.format("item.wizardry:armour_upgrade.desc1", "\u00A77"));
tooltip.add(I18n.format("item.wizardry:armour_upgrade.desc2", "\u00A77", "\u00A7d"));
}
}
@@ -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<ItemStack> parListSubItems){
parListSubItems.add(new ItemStack(this, 1));
}
}
@@ -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<ItemStack> items){
items.add(new ItemStack(this, 1));
}
}
@@ -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<ItemStack> parListSubItems){
parListSubItems.add(new ItemStack(this, 1));
}
}
@@ -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<String> 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<String> 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<ItemStack>(EnumActionResult.FAIL, stack);
}
@Override
@SideOnly(Side.CLIENT)
public void getSubItems(Item parItem, CreativeTabs parTab, NonNullList<ItemStack> parListSubItems){
parListSubItems.add(new ItemStack(this, 1));
}
}
@@ -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<ItemStack> subItems){
subItems.add(new ItemStack(this, 1));
}
}
@@ -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<ItemStack> list){
for(Spell spell : Spell.getSpells(Spell.nonContinuousSpells)){
list.add(new ItemStack(item, 1, spell.id()));
public void getSubItems(CreativeTabs tab, NonNullList<ItemStack> 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);
}
}
@@ -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<ItemStack> subItems){
subItems.add(new ItemStack(this, 1));
}
}
@@ -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<ItemStack> parListSubItems){
parListSubItems.add(new ItemStack(this, 1));
}
}
@@ -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<ItemStack> subItems){
subItems.add(new ItemStack(this, 1));
}
}
@@ -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<ItemStack> subItems){
subItems.add(new ItemStack(this, 1));
}
}
@@ -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<ItemStack> subItems){
subItems.add(new ItemStack(this, 1));
}
}
@@ -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<ItemStack> 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<ItemStack> 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<String> tooltip, boolean advanced){
public void addInformation(ItemStack itemstack, World world, List<String> 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);
}
@@ -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<ItemStack> 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<String> text, boolean advanced){
public void addInformation(ItemStack itemstack, World world, List<String> 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)));
}
@@ -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<String> tooltip, boolean advanced){
public void addInformation(ItemStack stack, World world, List<String> 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<ItemStack> 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);
}
}
@@ -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<String> 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<String> 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<ItemStack> items){
items.add(new ItemStack(this, 1));
}
}
@@ -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.
@@ -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);
}
}*/
@@ -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.
@@ -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<Item> event){
IForgeRegistry<Item> registry = event.getRegistry();
// ItemBlocks
@@ -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.
@@ -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<Biome> biomes = new ArrayList<Biome>();
for(Biome biome : Biome.EXPLORATION_BIOMES_LIST){
if(biome != null){
biomes.add(biome);
}
List<Biome> 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<IRecipe> event){
IForgeRegistry<IRecipe> 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")));
}
}
}
@@ -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){
@@ -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){
@@ -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){
@@ -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){
@@ -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);
@@ -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);
@@ -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){
@@ -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)){
@@ -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));
@@ -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);
}
}
@@ -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;
}
}
@@ -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){
@@ -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;
@@ -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){
@@ -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);
}
@@ -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<Spell> 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<Spell>)registry).getID(this);
}
/**
@@ -295,7 +297,7 @@ public abstract class Spell extends IForgeRegistryEntry.Impl<Spell> 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<Spell> 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<Spell> 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<Spell> 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<Spell> implements C
* better way; see </i>{@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<Spell>)registry).getValue(id);
return spell == null ? Spells.none : spell;
}
@@ -399,7 +400,7 @@ public abstract class Spell extends IForgeRegistryEntry.Impl<Spell> 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<Spell>)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<Spell> implements C
* empty.</i>
*/
public static List<Spell> getSpells(Predicate<Spell> filter){
ArrayList<Spell> spells = new ArrayList<Spell>(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. */
@@ -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);
}
@@ -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){
@@ -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);
@@ -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
@@ -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);
}
}
}
@@ -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);
@@ -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,