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
@@ -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);