Pushing before merging

This commit is contained in:
WayofTime 2014-10-09 07:48:45 -04:00
parent 297567a417
commit 1d99b70f14
31 changed files with 588 additions and 262 deletions

View file

@ -162,7 +162,7 @@ import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.EntityRegistry; import cpw.mods.fml.common.registry.EntityRegistry;
import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.GameRegistry;
@Mod(modid = "AWWayofTime", name = "AlchemicalWizardry", version = "v1.2.0Beta22") @Mod(modid = "AWWayofTime", name = "AlchemicalWizardry", version = "v1.2.0Beta25")
//@NetworkMod(clientSideRequired = true, serverSideRequired = false, channels = {"BloodAltar", "particle", "SetLifeEssence", "GetLifeEssence", "Ritual", "GetAltarEssence", "TESocket", "TEWritingTable", "CustomParticle", "SetPlayerVel", "SetPlayerPos", "TEPedestal", "TEPlinth", "TETeleposer", "InfiniteLPPath", "TEOrientor"}, packetHandler = PacketHandler.class) //@NetworkMod(clientSideRequired = true, serverSideRequired = false, channels = {"BloodAltar", "particle", "SetLifeEssence", "GetLifeEssence", "Ritual", "GetAltarEssence", "TESocket", "TEWritingTable", "CustomParticle", "SetPlayerVel", "SetPlayerPos", "TEPedestal", "TEPlinth", "TETeleposer", "InfiniteLPPath", "TEOrientor"}, packetHandler = PacketHandler.class)
public class AlchemicalWizardry public class AlchemicalWizardry
@ -1005,8 +1005,8 @@ public class AlchemicalWizardry
AlchemicalPotionCreationHandler.addPotion(new ItemStack(Items.feather), AlchemicalWizardry.customPotionFlight.id, 1 * 60 * 20); AlchemicalPotionCreationHandler.addPotion(new ItemStack(Items.feather), AlchemicalWizardry.customPotionFlight.id, 1 * 60 * 20);
AlchemicalPotionCreationHandler.addPotion(new ItemStack(Items.arrow), AlchemicalWizardry.customPotionReciprocation.id, 1 * 60 * 20); AlchemicalPotionCreationHandler.addPotion(new ItemStack(Items.arrow), AlchemicalWizardry.customPotionReciprocation.id, 1 * 60 * 20);
AlchemicalPotionCreationHandler.addPotion(new ItemStack(Items.ender_pearl),AlchemicalWizardry.customPotionPlanarBinding.id,1*60*20); AlchemicalPotionCreationHandler.addPotion(new ItemStack(Items.ender_pearl),AlchemicalWizardry.customPotionPlanarBinding.id,1*60*20);
AlchemicalPotionCreationHandler.addPotion(new ItemStack(Blocks.soul_sand),AlchemicalWizardry.customPotionSoulFray.id,30*20); AlchemicalPotionCreationHandler.addPotion(new ItemStack(Blocks.soul_sand),AlchemicalWizardry.customPotionSoulFray.id,60*20);
AlchemicalPotionCreationHandler.addPotion(new ItemStack(ModItems.baseItems,1,16),AlchemicalWizardry.customPotionSoulHarden.id,30*20); AlchemicalPotionCreationHandler.addPotion(new ItemStack(ModItems.baseItems,1,16),AlchemicalWizardry.customPotionSoulHarden.id,60*20);
AlchemicalPotionCreationHandler.addPotion(new ItemStack(Items.slime_ball),AlchemicalWizardry.customPotionDeaf.id,60*20); AlchemicalPotionCreationHandler.addPotion(new ItemStack(Items.slime_ball),AlchemicalWizardry.customPotionDeaf.id,60*20);
} }

View file

@ -44,6 +44,18 @@ public class AlchemicalWizardryEventHooks
public static Map<Integer, List<CoordAndRange>> respawnMap = new HashMap(); public static Map<Integer, List<CoordAndRange>> respawnMap = new HashMap();
public static Map<Integer, List<CoordAndRange>> forceSpawnMap = new HashMap(); public static Map<Integer, List<CoordAndRange>> forceSpawnMap = new HashMap();
@SubscribeEvent
public void onPlayerDamageEvent(LivingAttackEvent event)
{
if(event.source.isProjectile())
{
if (event.entityLiving.isPotionActive(AlchemicalWizardry.customPotionProjProt) && event.isCancelable())
{
event.setCanceled(true);
}
}
}
@SubscribeEvent @SubscribeEvent
public void onLivingSpawnEvent(CheckSpawn event) public void onLivingSpawnEvent(CheckSpawn event)
{ {

View file

@ -46,10 +46,9 @@ public class ImperfectRitualStone extends Block
if (block == Blocks.water) if (block == Blocks.water)
{ {
if (!player.capabilities.isCreativeMode && world.isRemote) if (!player.capabilities.isCreativeMode && !world.isRemote)
{ {
EnergyItems.drainPlayerNetwork(player, 5000);
//PacketDispatcher.sendPacketToServer(PacketHandler.getPacket(SpellHelper.getUsername(player) , -5000, 0));
} }
if (!world.isRemote) if (!world.isRemote)
@ -74,7 +73,7 @@ public class ImperfectRitualStone extends Block
return true; return true;
} else if (block == Blocks.coal_block) } else if (block == Blocks.coal_block)
{ {
if (!player.capabilities.isCreativeMode && world.isRemote) if (!player.capabilities.isCreativeMode && !world.isRemote)
{ {
EnergyItems.drainPlayerNetwork(player, 5000); EnergyItems.drainPlayerNetwork(player, 5000);
} }
@ -104,7 +103,7 @@ public class ImperfectRitualStone extends Block
return true; return true;
} else if (block== Blocks.lapis_block) } else if (block== Blocks.lapis_block)
{ {
if (!player.capabilities.isCreativeMode && world.isRemote) if (!player.capabilities.isCreativeMode && !world.isRemote)
{ {
EnergyItems.drainPlayerNetwork(player, 5000); EnergyItems.drainPlayerNetwork(player, 5000);
} }
@ -120,7 +119,7 @@ public class ImperfectRitualStone extends Block
} }
} else if (block == Blocks.bedrock) } else if (block == Blocks.bedrock)
{ {
if (!player.capabilities.isCreativeMode && world.isRemote) if (!player.capabilities.isCreativeMode && !world.isRemote)
{ {
EnergyItems.drainPlayerNetwork(player, 5000); EnergyItems.drainPlayerNetwork(player, 5000);
} }

View file

@ -1,6 +1,7 @@
package WayofTime.alchemicalWizardry.common.entity.projectile; package WayofTime.alchemicalWizardry.common.entity.projectile;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.DamageSource; import net.minecraft.util.DamageSource;
import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World; import net.minecraft.world.World;
@ -10,6 +11,12 @@ public class EntityMeteor extends EnergyBlastProjectile
{ {
private int meteorID; private int meteorID;
public boolean hasTerrae;
public boolean hasOrbisTerrae;
public boolean hasCrystallos;
public boolean hasIncendium;
public boolean hasTennebrae;
public EntityMeteor(World par1World) public EntityMeteor(World par1World)
{ {
super(par1World); super(par1World);
@ -22,6 +29,32 @@ public class EntityMeteor extends EnergyBlastProjectile
this.meteorID = meteorID; this.meteorID = meteorID;
} }
@Override
public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound)
{
super.writeEntityToNBT(par1NBTTagCompound);
par1NBTTagCompound.setInteger("meteorID", meteorID);
par1NBTTagCompound.setBoolean("hasTerrae", hasTerrae);
par1NBTTagCompound.setBoolean("hasOrbisTerrae", hasOrbisTerrae);
par1NBTTagCompound.setBoolean("hasCrystallos", hasCrystallos);
par1NBTTagCompound.setBoolean("hasIncendium", hasIncendium);
par1NBTTagCompound.setBoolean("hasTennebrae", hasTennebrae);
}
@Override
public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound)
{
super.readEntityFromNBT(par1NBTTagCompound);
meteorID = par1NBTTagCompound.getInteger("meteorID");
hasTerrae = par1NBTTagCompound.getBoolean("hasTerrae");
hasOrbisTerrae = par1NBTTagCompound.getBoolean("hasOrbisTerrae");
hasIncendium = par1NBTTagCompound.getBoolean("hasIncendium");
hasCrystallos = par1NBTTagCompound.getBoolean("hasCrystallos");
hasTennebrae = par1NBTTagCompound.getBoolean("hasTennebrae");
}
@Override @Override
public DamageSource getDamageSource() public DamageSource getDamageSource()
{ {
@ -41,7 +74,7 @@ public class EntityMeteor extends EnergyBlastProjectile
this.onImpact(mop.entityHit); this.onImpact(mop.entityHit);
} else if (mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) } else if (mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK)
{ {
MeteorRegistry.createMeteorImpact(worldObj, mop.blockX, mop.blockY, mop.blockZ, this.meteorID); MeteorRegistry.createMeteorImpact(worldObj, mop.blockX, mop.blockY, mop.blockZ, this.meteorID, new boolean[]{hasTerrae, hasOrbisTerrae, hasCrystallos, hasIncendium, hasTennebrae});
} }
this.setDead(); this.setDead();
@ -50,7 +83,7 @@ public class EntityMeteor extends EnergyBlastProjectile
@Override @Override
public void onImpact(Entity mop) public void onImpact(Entity mop)
{ {
MeteorRegistry.createMeteorImpact(worldObj, (int) this.posX, (int) this.posY, (int) this.posZ, meteorID); MeteorRegistry.createMeteorImpact(worldObj, (int) this.posX, (int) this.posY, (int) this.posZ, meteorID, new boolean[]{hasTerrae, hasOrbisTerrae, hasCrystallos, hasIncendium, hasTennebrae});
this.setDead(); this.setDead();
} }

View file

@ -42,7 +42,7 @@ public class BoundArmour extends ItemArmor implements IAlchemyGoggles,ISpecialAr
private static IIcon leggingsIcon; private static IIcon leggingsIcon;
private static IIcon bootsIcon; private static IIcon bootsIcon;
private static final boolean tryComplexRendering = false; private static final boolean tryComplexRendering = true;
public BoundArmour(int armorType) public BoundArmour(int armorType)
{ {
@ -177,7 +177,11 @@ public class BoundArmour extends ItemArmor implements IAlchemyGoggles,ISpecialAr
double damageAmount = 0.25; double damageAmount = 0.25;
if(!player.isPotionActive(AlchemicalWizardry.customPotionSoulHarden)) if(player.isPotionActive(AlchemicalWizardry.customPotionSoulHarden))
{
int i = player.getActivePotionEffect(AlchemicalWizardry.customPotionSoulHarden).getAmplifier() + 1;
damageAmount /= (1 - i*0.1);
}else
{ {
damageAmount *= 0.9; damageAmount *= 0.9;
} }
@ -216,7 +220,7 @@ public class BoundArmour extends ItemArmor implements IAlchemyGoggles,ISpecialAr
{ {
if (source.isUnblockable()) if (source.isUnblockable())
{ {
return new ArmorProperties(-1, damageAmount * 0.8d, maxAbsorption); return new ArmorProperties(-1, damageAmount * 0.9d, maxAbsorption);
} }
return new ArmorProperties(-1, damageAmount, maxAbsorption); return new ArmorProperties(-1, damageAmount, maxAbsorption);

View file

@ -137,6 +137,11 @@ public class BoundPickaxe extends ItemPickaxe implements IBindable
return par1ItemStack; return par1ItemStack;
} }
if(par2World.isRemote)
{
return par1ItemStack;
}
Vec3 blockVec = SpellHelper.getEntityBlockVector(par3EntityPlayer); Vec3 blockVec = SpellHelper.getEntityBlockVector(par3EntityPlayer);
int posX = (int)(blockVec.xCoord); int posX = (int)(blockVec.xCoord);
int posY = (int)(blockVec.yCoord); int posY = (int)(blockVec.yCoord);

View file

@ -229,6 +229,16 @@ public class EnergyItems extends Item implements IBindable
initializePlayer(player); initializePlayer(player);
} }
public static void setItemOwner(ItemStack item, String ownerName)
{
if (item.stackTagCompound == null)
{
item.setTagCompound(new NBTTagCompound());
}
item.stackTagCompound.setString("ownerName", ownerName);
}
public static void checkAndSetItemOwner(ItemStack item, String ownerName) public static void checkAndSetItemOwner(ItemStack item, String ownerName)
{ {
if (item.stackTagCompound == null) if (item.stackTagCompound == null)

View file

@ -80,11 +80,6 @@ public class ItemBlockCrystalBelljar extends ItemBlock
@Override @Override
public boolean placeBlockAt(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ, int metadata) public boolean placeBlockAt(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ, int metadata)
{ {
System.out.println("I am calling placeBlockAt");
if(stack.getTagCompound() == null)
{
System.out.println("I have no NBT.");
}
if (!world.setBlock(x, y, z, field_150939_a, metadata, 3)) if (!world.setBlock(x, y, z, field_150939_a, metadata, 3))
{ {
return false; return false;

View file

@ -12,6 +12,25 @@ public class ModelOmegaArmour extends ModelBiped
// ModelRenderer leftarm; // ModelRenderer leftarm;
// ModelRenderer rightleg; // ModelRenderer rightleg;
// ModelRenderer leftleg; // ModelRenderer leftleg;
ModelRenderer leftFacePlate;
ModelRenderer rightFacePlate;
ModelRenderer facePlate1;
ModelRenderer facePlate2;
ModelRenderer facePlate3;
ModelRenderer leftWingPlate1;
ModelRenderer leftWingPlate2;
ModelRenderer rightWingPlate1;
ModelRenderer rightWingPlate2;
ModelRenderer topPlate1;
ModelRenderer topPlate2;
ModelRenderer topPlate3;
ModelRenderer backPlate1;
ModelRenderer backPlate2;
ModelRenderer backPlate3;
ModelRenderer backPlate4;
ModelRenderer backPlate5;
ModelRenderer backPlate6;
ModelRenderer eyePlate;
ModelRenderer rightArmMain; ModelRenderer rightArmMain;
ModelRenderer rightKnucklePlate; ModelRenderer rightKnucklePlate;
ModelRenderer rightKnuckleBrace; ModelRenderer rightKnuckleBrace;
@ -118,6 +137,148 @@ public class ModelOmegaArmour extends ModelBiped
// setRotation(leftleg, 0F, 0F, 0F); // setRotation(leftleg, 0F, 0F, 0F);
} }
/* Helmet */
{
leftFacePlate = new ModelRenderer(this, 66, 52);
leftFacePlate.addBox(-2F, -5F, -5F, 5, 4, 1);
leftFacePlate.setRotationPoint(0F, 0F, 0F);
leftFacePlate.setTextureSize(128, 128);
leftFacePlate.mirror = true;
setRotation(leftFacePlate, 0.296706F, -0.3490659F, -0.0872665F);
rightFacePlate = new ModelRenderer(this, 66, 52);
rightFacePlate.addBox(-3F, -5F, -5F, 5, 4, 1);
rightFacePlate.setRotationPoint(0F, 0F, 0F);
rightFacePlate.setTextureSize(128, 128);
rightFacePlate.mirror = true;
setRotation(rightFacePlate, 0.296706F, 0.3490659F, 0.0872665F);
rightFacePlate.mirror = false;
facePlate1 = new ModelRenderer(this, 79, 52);
facePlate1.addBox(-5F, -8F, -5F, 10, 3, 1);
facePlate1.setRotationPoint(0F, 0F, 0F);
facePlate1.setTextureSize(128, 128);
facePlate1.mirror = true;
setRotation(facePlate1, 0F, 0F, 0F);
facePlate2 = new ModelRenderer(this, 79, 57);
facePlate2.addBox(-1F, -5F, -5F, 2, 1, 1);
facePlate2.setRotationPoint(0F, 0F, 0F);
facePlate2.setTextureSize(128, 128);
facePlate2.mirror = true;
setRotation(facePlate2, 0F, 0F, 0F);
facePlate3 = new ModelRenderer(this, 79, 60);
facePlate3.addBox(-3F, -4F, -5F, 6, 1, 1);
facePlate3.setRotationPoint(0F, 0F, 0F);
facePlate3.setTextureSize(128, 128);
facePlate3.mirror = true;
setRotation(facePlate3, 0F, 0F, 0F);
leftWingPlate1 = new ModelRenderer(this, 66, 58);
leftWingPlate1.addBox(5F, -5F, -2.5F, 1, 5, 8);
leftWingPlate1.setRotationPoint(0F, 0F, 0F);
leftWingPlate1.setTextureSize(128, 128);
leftWingPlate1.mirror = true;
setRotation(leftWingPlate1, 0.2617994F, 0.1745329F, 0F);
leftWingPlate2 = new ModelRenderer(this, 66, 72);
leftWingPlate2.addBox(5F, -8F, -2F, 1, 3, 10);
leftWingPlate2.setRotationPoint(0F, 0F, 0F);
leftWingPlate2.setTextureSize(128, 128);
leftWingPlate2.mirror = true;
setRotation(leftWingPlate2, 0.2617994F, 0.1745329F, 0F);
rightWingPlate1 = new ModelRenderer(this, 66, 58);
rightWingPlate1.addBox(-6F, -5F, -2.5F, 1, 5, 8);
rightWingPlate1.setRotationPoint(0F, 0F, 0F);
rightWingPlate1.setTextureSize(128, 128);
rightWingPlate1.mirror = true;
setRotation(rightWingPlate1, 0.2617994F, -0.1745329F, 0F);
rightWingPlate1.mirror = false;
rightWingPlate2 = new ModelRenderer(this, 66, 72);
rightWingPlate2.addBox(-6F, -8F, -2F, 1, 3, 10);
rightWingPlate2.setRotationPoint(0F, 0F, 0F);
rightWingPlate2.setTextureSize(128, 128);
rightWingPlate2.mirror = true;
setRotation(rightWingPlate2, 0.2617994F, -0.1745329F, 0F);
rightWingPlate2.mirror = false;
topPlate1 = new ModelRenderer(this, 79, 72);
topPlate1.addBox(-5F, -9F, -0.5F, 10, 1, 5);
topPlate1.setRotationPoint(0F, 0F, 0F);
topPlate1.setTextureSize(128, 128);
topPlate1.mirror = true;
setRotation(topPlate1, 0.4363323F, 0F, 0F);
topPlate2 = new ModelRenderer(this, 79, 72);
topPlate2.addBox(-5F, -8F, 1.5F, 10, 1, 5);
topPlate2.setRotationPoint(0F, 0F, 0F);
topPlate2.setTextureSize(128, 128);
topPlate2.mirror = true;
setRotation(topPlate2, 0.4363323F, 0F, 0F);
topPlate3 = new ModelRenderer(this, 79, 72);
topPlate3.addBox(-5F, -7F, 3.5F, 10, 1, 5);
topPlate3.setRotationPoint(0F, 0F, 0F);
topPlate3.setTextureSize(128, 128);
topPlate3.mirror = true;
setRotation(topPlate3, 0.4363323F, 0F, 0F);
backPlate1 = new ModelRenderer(this, 66, 86);
backPlate1.addBox(-4.5F, -7F, 6F, 6, 4, 1);
backPlate1.setRotationPoint(0F, 0F, 0F);
backPlate1.setTextureSize(128, 128);
backPlate1.mirror = true;
setRotation(backPlate1, 0.2617994F, -0.2617994F, 0F);
backPlate1.mirror = false;
backPlate2 = new ModelRenderer(this, 66, 86);
backPlate2.addBox(-4.5F, -6.5F, 6F, 6, 4, 1);
backPlate2.setRotationPoint(0F, 2F, 0F);
backPlate2.setTextureSize(128, 128);
backPlate2.mirror = true;
setRotation(backPlate2, 0.2617994F, -0.2617994F, 0F);
backPlate2.mirror = false;
backPlate3 = new ModelRenderer(this, 66, 86);
backPlate3.addBox(-4.5F, -6F, 6F, 6, 4, 1);
backPlate3.setRotationPoint(0F, 4F, 0F);
backPlate3.setTextureSize(128, 128);
backPlate3.mirror = true;
setRotation(backPlate3, 0.2617994F, -0.2617994F, 0F);
backPlate3.mirror = false;
backPlate4 = new ModelRenderer(this, 66, 86);
backPlate4.addBox(-1.5F, -7F, 6F, 6, 4, 1);
backPlate4.setRotationPoint(0F, 0F, 0F);
backPlate4.setTextureSize(128, 128);
backPlate4.mirror = true;
setRotation(backPlate4, 0.2617994F, 0.2617994F, 0F);
backPlate5 = new ModelRenderer(this, 66, 86);
backPlate5.addBox(-1.5F, -7F, 6F, 6, 4, 1);
backPlate5.setRotationPoint(0F, 2.5F, 0F);
backPlate5.setTextureSize(128, 128);
backPlate5.mirror = true;
setRotation(backPlate5, 0.2617994F, 0.2617994F, 0F);
backPlate6 = new ModelRenderer(this, 66, 86);
backPlate6.addBox(-1.5F, -7F, 6F, 6, 4, 1);
backPlate6.setRotationPoint(0F, 5F, 0F);
backPlate6.setTextureSize(128, 128);
backPlate6.mirror = true;
setRotation(backPlate6, 0.2617994F, 0.2617994F, 0F);
eyePlate = new ModelRenderer(this, 63, 38);
eyePlate.addBox(-4F, -5F, -4.5F, 8, 2, 1);
eyePlate.setRotationPoint(0F, 0F, 0F);
eyePlate.setTextureSize(128, 128);
eyePlate.mirror = true;
setRotation(eyePlate, 0F, 0F, 0F);
}
/* Right arm */ /* Right arm */
{ {
rightArmMain = new ModelRenderer(this, 0, 33); rightArmMain = new ModelRenderer(this, 0, 33);
@ -431,14 +592,14 @@ public class ModelOmegaArmour extends ModelBiped
/* Left leg */ /* Left leg */
{ {
leftLegSidePlate = new ModelRenderer(this, 31, 71); leftLegSidePlate = new ModelRenderer(this, 40, 93);
leftLegSidePlate.addBox(-0.5F, 12F, -3F, 1, 6, 6); leftLegSidePlate.addBox(-0.5F, 12F, -3F, 1, 6, 6);
leftLegSidePlate.setRotationPoint(-2F, -12F, 0F); leftLegSidePlate.setRotationPoint(-2F, -12F, 0F);
leftLegSidePlate.setTextureSize(128, 128); leftLegSidePlate.setTextureSize(128, 128);
leftLegSidePlate.mirror = true; leftLegSidePlate.mirror = true;
setRotation(leftLegSidePlate, 0F, 0F, -0.3490659F); setRotation(leftLegSidePlate, 0F, 0F, -0.3490659F);
leftLegMain = new ModelRenderer(this, 53, 62); leftLegMain = new ModelRenderer(this, 40, 93);
leftLegMain.addBox(-0.5F, 11F, -2.5F, 5, 9, 5); leftLegMain.addBox(-0.5F, 11F, -2.5F, 5, 9, 5);
leftLegMain.setRotationPoint(-2F, -12F, 0F); leftLegMain.setRotationPoint(-2F, -12F, 0F);
leftLegMain.setTextureSize(128, 128); leftLegMain.setTextureSize(128, 128);
@ -523,7 +684,25 @@ public class ModelOmegaArmour extends ModelBiped
this.bipedHeadwear.cubeList.clear(); this.bipedHeadwear.cubeList.clear();
if(addHelmet) if(addHelmet)
{ {
this.bipedHead.addChild(this.leftFacePlate);
this.bipedHead.addChild(this.rightFacePlate);
this.bipedHead.addChild(this.facePlate1);
this.bipedHead.addChild(this.facePlate2);
this.bipedHead.addChild(this.facePlate3);
this.bipedHead.addChild(this.leftWingPlate1);
this.bipedHead.addChild(this.leftWingPlate2);
this.bipedHead.addChild(this.rightWingPlate1);
this.bipedHead.addChild(this.rightWingPlate2);
this.bipedHead.addChild(this.topPlate1);
this.bipedHead.addChild(this.topPlate2);
this.bipedHead.addChild(this.topPlate3);
this.bipedHead.addChild(this.backPlate1);
this.bipedHead.addChild(this.backPlate2);
this.bipedHead.addChild(this.backPlate3);
this.bipedHead.addChild(this.backPlate4);
this.bipedHead.addChild(this.backPlate5);
this.bipedHead.addChild(this.backPlate6);
this.bipedHead.addChild(this.eyePlate);
} }
this.bipedBody.cubeList.clear(); this.bipedBody.cubeList.clear();

View file

@ -64,7 +64,7 @@ public class RitualEffectFlight extends RitualEffect
{ {
continue; continue;
} }
entity.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionFlight.id, hasAether ? 100 : 20, 0)); entity.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionFlight.id, hasAether ? 30*20 : 20, 0));
entityCount ++; entityCount ++;
} }

View file

@ -0,0 +1,131 @@
package WayofTime.alchemicalWizardry.common.rituals;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemFood;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.FoodStats;
import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
public class RitualEffectFullStomach extends RitualEffect
{
@Override
public void performEffect(IMasterRitualStone ritualStone)
{
String owner = ritualStone.getOwner();
int currentEssence = SoulNetworkHandler.getCurrentEssence(owner);
World world = ritualStone.getWorld();
int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord();
if (world.getWorldTime() % 20 != 0)
{
return;
}
double horizRange = 5;
double vertRange = 5;
List<EntityPlayer> playerList = SpellHelper.getPlayersInRange(world, x+0.5, y+0.5, z+0.5, horizRange, vertRange);
if(playerList == null)
{
return;
}
if (currentEssence < this.getCostPerRefresh() * playerList.size())
{
SoulNetworkHandler.causeNauseaToPlayer(owner);
} else
{
TileEntity tile = world.getTileEntity(x, y+1, z);
IInventory inventory = null;
if(tile instanceof IInventory)
{
inventory = (IInventory)tile;
}else
{
tile = world.getTileEntity(x, y-1, z);
if(tile instanceof IInventory)
{
inventory = (IInventory)tile;
}
}
int count = 0;
if(inventory != null)
{
for(EntityPlayer player : playerList)
{
FoodStats foodStats = player.getFoodStats();
float satLevel = foodStats.getSaturationLevel();
for(int i=0; i<inventory.getSizeInventory(); i++)
{
ItemStack stack = inventory.getStackInSlot(i);
if(stack != null && stack.getItem() instanceof ItemFood)
{
ItemFood foodItem = (ItemFood)stack.getItem();
int regularHeal = foodItem.func_150905_g(stack);
float saturatedHeal = foodItem.func_150906_h(stack);
if(saturatedHeal + satLevel <= 20)
{
foodStats.setFoodSaturationLevel(saturatedHeal + satLevel);
inventory.decrStackSize(i, 1);
count++;
break;
}
}
}
}
}
SoulNetworkHandler.syphonFromNetwork(owner, this.getCostPerRefresh() * count);
}
}
@Override
public int getCostPerRefresh()
{
return 100;
}
@Override
public List<RitualComponent> getRitualComponentList()
{
ArrayList<RitualComponent> animalGrowthRitual = new ArrayList();
animalGrowthRitual.add(new RitualComponent(0, 0, 2, RitualComponent.DUSK));
animalGrowthRitual.add(new RitualComponent(2, 0, 0, RitualComponent.DUSK));
animalGrowthRitual.add(new RitualComponent(0, 0, -2, RitualComponent.DUSK));
animalGrowthRitual.add(new RitualComponent(-2, 0, 0, RitualComponent.DUSK));
animalGrowthRitual.add(new RitualComponent(0, 0, 1, RitualComponent.WATER));
animalGrowthRitual.add(new RitualComponent(1, 0, 0, RitualComponent.WATER));
animalGrowthRitual.add(new RitualComponent(0, 0, -1, RitualComponent.WATER));
animalGrowthRitual.add(new RitualComponent(-1, 0, 0, RitualComponent.WATER));
animalGrowthRitual.add(new RitualComponent(1, 0, 2, RitualComponent.EARTH));
animalGrowthRitual.add(new RitualComponent(-1, 0, 2, RitualComponent.EARTH));
animalGrowthRitual.add(new RitualComponent(1, 0, -2, RitualComponent.EARTH));
animalGrowthRitual.add(new RitualComponent(-1, 0, -2, RitualComponent.EARTH));
animalGrowthRitual.add(new RitualComponent(2, 0, 1, RitualComponent.AIR));
animalGrowthRitual.add(new RitualComponent(2, 0, -1, RitualComponent.AIR));
animalGrowthRitual.add(new RitualComponent(-2, 0, 1, RitualComponent.AIR));
animalGrowthRitual.add(new RitualComponent(-2, 0, -1, RitualComponent.AIR));
return animalGrowthRitual;
}
}

View file

@ -28,16 +28,8 @@ public class RitualEffectGrowth extends RitualEffect
public void performEffect(IMasterRitualStone ritualStone) public void performEffect(IMasterRitualStone ritualStone)
{ {
String owner = ritualStone.getOwner(); String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0];
LifeEssenceNetwork data = (LifeEssenceNetwork) worldSave.loadItemData(LifeEssenceNetwork.class, owner);
if (data == null) int currentEssence = SoulNetworkHandler.getCurrentEssence(owner);
{
data = new LifeEssenceNetwork(owner);
worldSave.setItemData(owner, data);
}
int currentEssence = data.currentEssence;
World world = ritualStone.getWorld(); World world = ritualStone.getWorld();
int x = ritualStone.getXCoord(); int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord(); int y = ritualStone.getYCoord();
@ -105,8 +97,7 @@ public class RitualEffectGrowth extends RitualEffect
if(hasVirtus) if(hasVirtus)
this.canDrainReagent(ritualStone, ReagentRegistry.virtusReagent, virtusDrain, true); this.canDrainReagent(ritualStone, ReagentRegistry.virtusReagent, virtusDrain, true);
data.currentEssence = currentEssence - this.getCostPerRefresh()*flag; SoulNetworkHandler.syphonFromNetwork(owner, this.getCostPerRefresh()*flag);
data.markDirty();
} }
} }
} }

View file

@ -16,6 +16,7 @@ import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
import WayofTime.alchemicalWizardry.api.rituals.RitualComponent; import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
import WayofTime.alchemicalWizardry.api.rituals.RitualEffect; import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork; import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
public class RitualEffectHarvest extends RitualEffect public class RitualEffectHarvest extends RitualEffect
@ -24,16 +25,8 @@ public class RitualEffectHarvest extends RitualEffect
public void performEffect(IMasterRitualStone ritualStone) public void performEffect(IMasterRitualStone ritualStone)
{ {
String owner = ritualStone.getOwner(); String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0];
LifeEssenceNetwork data = (LifeEssenceNetwork) worldSave.loadItemData(LifeEssenceNetwork.class, owner);
if (data == null) int currentEssence = SoulNetworkHandler.getCurrentEssence(owner);
{
data = new LifeEssenceNetwork(owner);
worldSave.setItemData(owner, data);
}
int currentEssence = data.currentEssence;
World world = ritualStone.getWorld(); World world = ritualStone.getWorld();
int x = ritualStone.getXCoord(); int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord(); int y = ritualStone.getYCoord();
@ -78,8 +71,7 @@ public class RitualEffectHarvest extends RitualEffect
if (flag > 0) if (flag > 0)
{ {
data.currentEssence = currentEssence - this.getCostPerRefresh() * Math.min(maxCount, flag); SoulNetworkHandler.syphonFromNetwork(owner, this.getCostPerRefresh() * Math.min(maxCount, flag));
data.markDirty();
} }
} }
} }

View file

@ -29,16 +29,8 @@ public class RitualEffectHealing extends RitualEffect
public void performEffect(IMasterRitualStone ritualStone) public void performEffect(IMasterRitualStone ritualStone)
{ {
String owner = ritualStone.getOwner(); String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0];
LifeEssenceNetwork data = (LifeEssenceNetwork) worldSave.loadItemData(LifeEssenceNetwork.class, owner);
if (data == null) int currentEssence = SoulNetworkHandler.getCurrentEssence(owner);
{
data = new LifeEssenceNetwork(owner);
worldSave.setItemData(owner, data);
}
int currentEssence = data.currentEssence;
World world = ritualStone.getWorld(); World world = ritualStone.getWorld();
int x = ritualStone.getXCoord(); int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord(); int y = ritualStone.getYCoord();
@ -128,8 +120,7 @@ public class RitualEffectHealing extends RitualEffect
{ {
this.canDrainReagent(ritualStone, ReagentRegistry.praesidiumReagent, praesidiumDrain, true); this.canDrainReagent(ritualStone, ReagentRegistry.praesidiumReagent, praesidiumDrain, true);
} }
data.currentEssence = currentEssence - cost * entityCount; SoulNetworkHandler.syphonFromNetwork(owner, cost * entityCount);
data.markDirty();
} }
} }
} }

View file

@ -27,22 +27,14 @@ public class RitualEffectItemSuction extends RitualEffect
{ {
public static final int reductusDrain = 1; public static final int reductusDrain = 1;
public static final int timeDelayMin = 10; public static final int timeDelayMin = 60;
@Override @Override
public void performEffect(IMasterRitualStone ritualStone) public void performEffect(IMasterRitualStone ritualStone)
{ {
String owner = ritualStone.getOwner(); String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0];
LifeEssenceNetwork data = (LifeEssenceNetwork) worldSave.loadItemData(LifeEssenceNetwork.class, owner);
if (data == null) int currentEssence = SoulNetworkHandler.getCurrentEssence(owner);
{
data = new LifeEssenceNetwork(owner);
worldSave.setItemData(owner, data);
}
int currentEssence = data.currentEssence;
World world = ritualStone.getWorld(); World world = ritualStone.getWorld();
int x = ritualStone.getXCoord(); int x = ritualStone.getXCoord();
@ -150,8 +142,7 @@ public class RitualEffectItemSuction extends RitualEffect
if(count>0) if(count>0)
{ {
data.currentEssence = currentEssence - this.getCostPerRefresh()*Math.min(count, 100); SoulNetworkHandler.syphonFromNetwork(owner, this.getCostPerRefresh()*Math.min(count, 100));
data.markDirty();
return; return;
} }
} }

View file

@ -26,16 +26,8 @@ public class RitualEffectJumping extends RitualEffect
public void performEffect(IMasterRitualStone ritualStone) public void performEffect(IMasterRitualStone ritualStone)
{ {
String owner = ritualStone.getOwner(); String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0];
LifeEssenceNetwork data = (LifeEssenceNetwork) worldSave.loadItemData(LifeEssenceNetwork.class, owner);
if (data == null) int currentEssence = SoulNetworkHandler.getCurrentEssence(owner);
{
data = new LifeEssenceNetwork(owner);
worldSave.setItemData(owner, data);
}
int currentEssence = data.currentEssence;
World world = ritualStone.getWorld(); World world = ritualStone.getWorld();
int x = ritualStone.getXCoord(); int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord(); int y = ritualStone.getYCoord();
@ -87,7 +79,7 @@ public class RitualEffectJumping extends RitualEffect
{ {
if(!livingEntity.isPotionActive(AlchemicalWizardry.customPotionFeatherFall)) if(!livingEntity.isPotionActive(AlchemicalWizardry.customPotionFeatherFall))
{ {
livingEntity.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionFeatherFall.id, 3 * 20, 0)); livingEntity.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionFeatherFall.id, 5 * 20, 0));
this.canDrainReagent(ritualStone, ReagentRegistry.terraeReagent, terraeDrain, true); this.canDrainReagent(ritualStone, ReagentRegistry.terraeReagent, terraeDrain, true);
} }
} }
@ -95,8 +87,7 @@ public class RitualEffectJumping extends RitualEffect
if (flag > 0) if (flag > 0)
{ {
data.currentEssence = currentEssence - this.getCostPerRefresh()*flag; SoulNetworkHandler.syphonFromNetwork(owner, this.getCostPerRefresh()*flag);
data.markDirty();
} }
} }
} }

View file

@ -37,63 +37,13 @@ public class RitualEffectLava extends RitualEffect
public void performEffect(IMasterRitualStone ritualStone) public void performEffect(IMasterRitualStone ritualStone)
{ {
String owner = ritualStone.getOwner(); String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0];
LifeEssenceNetwork data = (LifeEssenceNetwork) worldSave.loadItemData(LifeEssenceNetwork.class, owner);
if (data == null) int currentEssence = SoulNetworkHandler.getCurrentEssence(owner);
{
data = new LifeEssenceNetwork(owner);
worldSave.setItemData(owner, data);
}
int currentEssence = data.currentEssence;
World world = ritualStone.getWorld(); World world = ritualStone.getWorld();
int x = ritualStone.getXCoord(); int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord(); int y = ritualStone.getYCoord();
int z = ritualStone.getZCoord(); int z = ritualStone.getZCoord();
Block block = world.getBlock(x, y + 1, z);
if (world.isAirBlock(x, y + 1, z) && !(block instanceof BlockSpectralContainer))
{
if (currentEssence < this.getCostPerRefresh())
{
SoulNetworkHandler.causeNauseaToPlayer(owner);
} else
{
for (int i = 0; i < 10; i++)
{
SpellHelper.sendIndexedParticleToAllAround(world, x, y, z, 20, world.provider.dimensionId, 3, x, y, z);
}
world.setBlock(x, y + 1, z, Blocks.lava, 0, 3);
data.currentEssence = currentEssence - this.getCostPerRefresh();
data.markDirty();
}
}else
{
boolean hasSanctus = this.canDrainReagent(ritualStone, ReagentRegistry.sanctusReagent, sanctusDrain, false);
if(!hasSanctus)
{
return;
}
TileEntity tile = world.getTileEntity(x, y + 1, z);
if(tile instanceof IFluidHandler)
{
int amount = ((IFluidHandler) tile).fill(ForgeDirection.DOWN, new FluidStack(FluidRegistry.LAVA, 1000), false);
if(amount >= 1000)
{
((IFluidHandler) tile).fill(ForgeDirection.DOWN, new FluidStack(FluidRegistry.LAVA, 1000), true);
this.canDrainReagent(ritualStone, ReagentRegistry.sanctusReagent, sanctusDrain, true);
data.currentEssence = currentEssence - this.getCostPerRefresh();
data.markDirty();
}
}
}
if(this.canDrainReagent(ritualStone, ReagentRegistry.offensaReagent, offensaDrain, false) && SoulNetworkHandler.canSyphonFromOnlyNetwork(owner, fireFuseCost)) if(this.canDrainReagent(ritualStone, ReagentRegistry.offensaReagent, offensaDrain, false) && SoulNetworkHandler.canSyphonFromOnlyNetwork(owner, fireFuseCost))
{ {
@ -120,6 +70,7 @@ public class RitualEffectLava extends RitualEffect
continue; continue;
} }
} }
entity.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionFireFuse.id,100,0)); entity.addPotionEffect(new PotionEffect(AlchemicalWizardry.customPotionFireFuse.id,100,0));
this.canDrainReagent(ritualStone, ReagentRegistry.offensaReagent, offensaDrain, true); this.canDrainReagent(ritualStone, ReagentRegistry.offensaReagent, offensaDrain, true);
SoulNetworkHandler.syphonFromNetwork(owner, fireFuseCost); SoulNetworkHandler.syphonFromNetwork(owner, fireFuseCost);
@ -127,6 +78,47 @@ public class RitualEffectLava extends RitualEffect
} }
} }
Block block = world.getBlock(x, y + 1, z);
if (world.isAirBlock(x, y + 1, z) && !(block instanceof BlockSpectralContainer))
{
if (currentEssence < this.getCostPerRefresh())
{
SoulNetworkHandler.causeNauseaToPlayer(owner);
} else
{
for (int i = 0; i < 10; i++)
{
SpellHelper.sendIndexedParticleToAllAround(world, x, y, z, 20, world.provider.dimensionId, 3, x, y, z);
}
world.setBlock(x, y + 1, z, Blocks.lava, 0, 3);
SoulNetworkHandler.syphonFromNetwork(owner, this.getCostPerRefresh());
}
}else
{
boolean hasSanctus = this.canDrainReagent(ritualStone, ReagentRegistry.sanctusReagent, sanctusDrain, false);
if(!hasSanctus)
{
return;
}
TileEntity tile = world.getTileEntity(x, y + 1, z);
if(tile instanceof IFluidHandler)
{
int amount = ((IFluidHandler) tile).fill(ForgeDirection.DOWN, new FluidStack(FluidRegistry.LAVA, 1000), false);
if(amount >= 1000)
{
((IFluidHandler) tile).fill(ForgeDirection.DOWN, new FluidStack(FluidRegistry.LAVA, 1000), true);
this.canDrainReagent(ritualStone, ReagentRegistry.sanctusReagent, sanctusDrain, true);
SoulNetworkHandler.syphonFromNetwork(owner, this.getCostPerRefresh());
}
}
}
} }
@Override @Override

View file

@ -30,16 +30,8 @@ public class RitualEffectLeap extends RitualEffect
public void performEffect(IMasterRitualStone ritualStone) public void performEffect(IMasterRitualStone ritualStone)
{ {
String owner = ritualStone.getOwner(); String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0];
LifeEssenceNetwork data = (LifeEssenceNetwork) worldSave.loadItemData(LifeEssenceNetwork.class, owner);
if (data == null) int currentEssence = SoulNetworkHandler.getCurrentEssence(owner);
{
data = new LifeEssenceNetwork(owner);
worldSave.setItemData(owner, data);
}
int currentEssence = data.currentEssence;
World world = ritualStone.getWorld(); World world = ritualStone.getWorld();
int x = ritualStone.getXCoord(); int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord(); int y = ritualStone.getYCoord();
@ -82,7 +74,7 @@ public class RitualEffectLeap extends RitualEffect
double motionY = hasTerrae ? 0.6 : 1.2; double motionY = hasTerrae ? 0.6 : 1.2;
double speed = hasAether ? 6.0 : 3.0; double speed = hasAether ? 6.0 : 3.0;
if (!(hasTenebrae || hasSanctus) && livingEntity instanceof EntityPlayer) if (!(hasTenebrae || hasSanctus)|| livingEntity instanceof EntityPlayer)
{ {
livingEntity.motionY = motionY; livingEntity.motionY = motionY;
livingEntity.fallDistance = 0; livingEntity.fallDistance = 0;
@ -173,8 +165,7 @@ public class RitualEffectLeap extends RitualEffect
if (flag > 0) if (flag > 0)
{ {
data.currentEssence = currentEssence - this.getCostPerRefresh() * flag; SoulNetworkHandler.syphonFromNetwork(owner, this.getCostPerRefresh() * flag);
data.markDirty();
} }
} }
} }

View file

@ -15,6 +15,7 @@ import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
import WayofTime.alchemicalWizardry.api.rituals.RitualComponent; import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
import WayofTime.alchemicalWizardry.api.rituals.RitualEffect; import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork; import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar; import WayofTime.alchemicalWizardry.common.tileEntity.TEAltar;
@ -24,16 +25,8 @@ public class RitualEffectLifeConduit extends RitualEffect
public void performEffect(IMasterRitualStone ritualStone) public void performEffect(IMasterRitualStone ritualStone)
{ {
String owner = ritualStone.getOwner(); String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0];
LifeEssenceNetwork data = (LifeEssenceNetwork) worldSave.loadItemData(LifeEssenceNetwork.class, owner);
if (data == null) int currentEssence = SoulNetworkHandler.getCurrentEssence(owner);
{
data = new LifeEssenceNetwork(owner);
worldSave.setItemData(owner, data);
}
int currentEssence = data.currentEssence;
World world = ritualStone.getWorld(); World world = ritualStone.getWorld();
int x = ritualStone.getXCoord(); int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord(); int y = ritualStone.getYCoord();
@ -90,7 +83,7 @@ public class RitualEffectLifeConduit extends RitualEffect
{ {
entityOwner.setHealth(2.0f); entityOwner.setHealth(2.0f);
} }
data.currentEssence = currentEssence - fillAmount*2; SoulNetworkHandler.syphonFromNetwork(owner, fillAmount*2);
} }
} }

View file

@ -31,16 +31,8 @@ public class RitualEffectMagnetic extends RitualEffect
public void performEffect(IMasterRitualStone ritualStone) public void performEffect(IMasterRitualStone ritualStone)
{ {
String owner = ritualStone.getOwner(); String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0];
LifeEssenceNetwork data = (LifeEssenceNetwork) worldSave.loadItemData(LifeEssenceNetwork.class, owner);
if (data == null) int currentEssence = SoulNetworkHandler.getCurrentEssence(owner);
{
data = new LifeEssenceNetwork(owner);
worldSave.setItemData(owner, data);
}
int currentEssence = data.currentEssence;
World world = ritualStone.getWorld(); World world = ritualStone.getWorld();
int x = ritualStone.getXCoord(); int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord(); int y = ritualStone.getYCoord();
@ -114,8 +106,7 @@ public class RitualEffectMagnetic extends RitualEffect
//TODO //TODO
//Allow swapping code. This means the searched block is an ore. //Allow swapping code. This means the searched block is an ore.
BlockTeleposer.swapBlocks(world, world, x + i, j, z + k, xRep, yRep, zRep); BlockTeleposer.swapBlocks(world, world, x + i, j, z + k, xRep, yRep, zRep);
data.currentEssence = currentEssence - this.getCostPerRefresh(); SoulNetworkHandler.syphonFromNetwork(owner, this.getCostPerRefresh());
data.markDirty();
if(hasPotentia) if(hasPotentia)
{ {

View file

@ -19,6 +19,7 @@ import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
import WayofTime.alchemicalWizardry.api.rituals.RitualComponent; import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
import WayofTime.alchemicalWizardry.api.rituals.RitualEffect; import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork; import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
public class RitualEffectSoulBound extends RitualEffect public class RitualEffectSoulBound extends RitualEffect
@ -27,16 +28,8 @@ public class RitualEffectSoulBound extends RitualEffect
public void performEffect(IMasterRitualStone ritualStone) public void performEffect(IMasterRitualStone ritualStone)
{ {
String owner = ritualStone.getOwner(); String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0];
LifeEssenceNetwork data = (LifeEssenceNetwork) worldSave.loadItemData(LifeEssenceNetwork.class, owner);
if (data == null) int currentEssence = SoulNetworkHandler.getCurrentEssence(owner);
{
data = new LifeEssenceNetwork(owner);
worldSave.setItemData(owner, data);
}
int currentEssence = data.currentEssence;
World world = ritualStone.getWorld(); World world = ritualStone.getWorld();
int x = ritualStone.getXCoord(); int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord(); int y = ritualStone.getYCoord();
@ -91,8 +84,7 @@ public class RitualEffectSoulBound extends RitualEffect
} }
} }
data.currentEssence = currentEssence - this.getCostPerRefresh(); SoulNetworkHandler.syphonFromNetwork(owner, getCostPerRefresh());
data.markDirty();
} else } else
{ {
ritualStone.setCooldown(ritualStone.getCooldown() - 1); ritualStone.setCooldown(ritualStone.getCooldown() - 1);

View file

@ -24,16 +24,8 @@ public class RitualEffectSpawnWard extends RitualEffect
public void performEffect(IMasterRitualStone ritualStone) public void performEffect(IMasterRitualStone ritualStone)
{ {
String owner = ritualStone.getOwner(); String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0];
LifeEssenceNetwork data = (LifeEssenceNetwork) worldSave.loadItemData(LifeEssenceNetwork.class, owner);
if (data == null) int currentEssence = SoulNetworkHandler.getCurrentEssence(owner);
{
data = new LifeEssenceNetwork(owner);
worldSave.setItemData(owner, data);
}
int currentEssence = data.currentEssence;
World world = ritualStone.getWorld(); World world = ritualStone.getWorld();
int x = ritualStone.getXCoord(); int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord(); int y = ritualStone.getYCoord();
@ -91,8 +83,7 @@ public class RitualEffectSpawnWard extends RitualEffect
} }
data.currentEssence = currentEssence - this.getCostPerRefresh(); SoulNetworkHandler.syphonFromNetwork(owner, this.getCostPerRefresh());
data.markDirty();
} }
} }

View file

@ -10,10 +10,12 @@ import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer; import net.minecraft.server.MinecraftServer;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World; import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.api.alchemy.energy.ReagentRegistry;
import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone; import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
import WayofTime.alchemicalWizardry.api.rituals.RitualComponent; import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
import WayofTime.alchemicalWizardry.api.rituals.RitualEffect; import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork; import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
import WayofTime.alchemicalWizardry.common.entity.projectile.EntityMeteor; import WayofTime.alchemicalWizardry.common.entity.projectile.EntityMeteor;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
import WayofTime.alchemicalWizardry.common.summoning.meteor.MeteorRegistry; import WayofTime.alchemicalWizardry.common.summoning.meteor.MeteorRegistry;
@ -24,16 +26,8 @@ public class RitualEffectSummonMeteor extends RitualEffect
public void performEffect(IMasterRitualStone ritualStone) public void performEffect(IMasterRitualStone ritualStone)
{ {
String owner = ritualStone.getOwner(); String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0];
LifeEssenceNetwork data = (LifeEssenceNetwork) worldSave.loadItemData(LifeEssenceNetwork.class, owner);
if (data == null) int currentEssence = SoulNetworkHandler.getCurrentEssence(owner);
{
data = new LifeEssenceNetwork(owner);
worldSave.setItemData(owner, data);
}
int currentEssence = data.currentEssence;
World world = ritualStone.getWorld(); World world = ritualStone.getWorld();
int x = ritualStone.getXCoord(); int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord(); int y = ritualStone.getYCoord();
@ -70,6 +64,28 @@ public class RitualEffectSummonMeteor extends RitualEffect
int meteorID = MeteorRegistry.getParadigmIDForItem(entityItem.getEntityItem()); int meteorID = MeteorRegistry.getParadigmIDForItem(entityItem.getEntityItem());
EntityMeteor meteor = new EntityMeteor(world, x + 0.5f, 257, z + 0.5f, meteorID); EntityMeteor meteor = new EntityMeteor(world, x + 0.5f, 257, z + 0.5f, meteorID);
meteor.motionY = -1.0f; meteor.motionY = -1.0f;
if(this.canDrainReagent(ritualStone, ReagentRegistry.terraeReagent, 1000, true))
{
meteor.hasTerrae = true;
}
if(this.canDrainReagent(ritualStone, ReagentRegistry.orbisTerraeReagent, 1000, true))
{
meteor.hasOrbisTerrae = true;
}
if(this.canDrainReagent(ritualStone, ReagentRegistry.crystallosReagent, 1000, true))
{
meteor.hasCrystallos = true;
}
if(this.canDrainReagent(ritualStone, ReagentRegistry.incendiumReagent, 1000, true))
{
meteor.hasIncendium = true;
}
if(this.canDrainReagent(ritualStone, ReagentRegistry.tenebraeReagent, 1000, true))
{
meteor.hasTennebrae = true;
}
entityItem.setDead(); entityItem.setDead();
world.spawnEntityInWorld(meteor); world.spawnEntityInWorld(meteor);
ritualStone.setActive(false); ritualStone.setActive(false);
@ -77,13 +93,7 @@ public class RitualEffectSummonMeteor extends RitualEffect
} }
} }
// EnergyBlastProjectile proj = new EnergyBlastProjectile(world, x, y+20, z); SoulNetworkHandler.syphonFromNetwork(owner, this.getCostPerRefresh());
// proj.motionX = 0.0d;
// proj.motionZ = 0.0d;
// proj.motionY = -1.0d;
// world.spawnEntityInWorld(proj);
data.currentEssence = currentEssence - this.getCostPerRefresh();
data.markDirty();
} }
} }

View file

@ -16,6 +16,7 @@ import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
import WayofTime.alchemicalWizardry.api.rituals.RitualComponent; import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
import WayofTime.alchemicalWizardry.api.rituals.RitualEffect; import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork; import WayofTime.alchemicalWizardry.api.soulNetwork.LifeEssenceNetwork;
import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
import WayofTime.alchemicalWizardry.common.tileEntity.TESpectralContainer; import WayofTime.alchemicalWizardry.common.tileEntity.TESpectralContainer;
@ -28,16 +29,8 @@ public class RitualEffectSupression extends RitualEffect
public void performEffect(IMasterRitualStone ritualStone) public void performEffect(IMasterRitualStone ritualStone)
{ {
String owner = ritualStone.getOwner(); String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0];
LifeEssenceNetwork data = (LifeEssenceNetwork) worldSave.loadItemData(LifeEssenceNetwork.class, owner);
if (data == null) int currentEssence = SoulNetworkHandler.getCurrentEssence(owner);
{
data = new LifeEssenceNetwork(owner);
worldSave.setItemData(owner, data);
}
int currentEssence = data.currentEssence;
World world = ritualStone.getWorld(); World world = ritualStone.getWorld();
int x = ritualStone.getXCoord(); int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord(); int y = ritualStone.getYCoord();
@ -105,8 +98,7 @@ public class RitualEffectSupression extends RitualEffect
} }
data.currentEssence = currentEssence - this.getCostPerRefresh()*costMod; SoulNetworkHandler.syphonFromNetwork(owner, this.getCostPerRefresh()*costMod);
data.markDirty();
if(world.getWorldTime() % 100 == 0) if(world.getWorldTime() % 100 == 0)
{ {

View file

@ -33,16 +33,8 @@ public class RitualEffectUnbinding extends RitualEffect
public void performEffect(IMasterRitualStone ritualStone) public void performEffect(IMasterRitualStone ritualStone)
{ {
String owner = ritualStone.getOwner(); String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0];
LifeEssenceNetwork data = (LifeEssenceNetwork) worldSave.loadItemData(LifeEssenceNetwork.class, owner);
if (data == null) int currentEssence = SoulNetworkHandler.getCurrentEssence(owner);
{
data = new LifeEssenceNetwork(owner);
worldSave.setItemData(owner, data);
}
int currentEssence = data.currentEssence;
World world = ritualStone.getWorld(); World world = ritualStone.getWorld();
int x = ritualStone.getXCoord(); int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord(); int y = ritualStone.getYCoord();
@ -171,8 +163,7 @@ public class RitualEffectUnbinding extends RitualEffect
if(drain) if(drain)
{ {
data.currentEssence = currentEssence - this.getCostPerRefresh(); SoulNetworkHandler.syphonFromNetwork(owner, this.getCostPerRefresh());
data.markDirty();
} }
} }

View file

@ -24,16 +24,8 @@ public class RitualEffectVeilOfEvil extends RitualEffect
public void performEffect(IMasterRitualStone ritualStone) public void performEffect(IMasterRitualStone ritualStone)
{ {
String owner = ritualStone.getOwner(); String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0];
LifeEssenceNetwork data = (LifeEssenceNetwork) worldSave.loadItemData(LifeEssenceNetwork.class, owner);
if (data == null) int currentEssence = SoulNetworkHandler.getCurrentEssence(owner);
{
data = new LifeEssenceNetwork(owner);
worldSave.setItemData(owner, data);
}
int currentEssence = data.currentEssence;
World world = ritualStone.getWorld(); World world = ritualStone.getWorld();
int x = ritualStone.getXCoord(); int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord(); int y = ritualStone.getYCoord();
@ -91,8 +83,7 @@ public class RitualEffectVeilOfEvil extends RitualEffect
} }
data.currentEssence = currentEssence - this.getCostPerRefresh(); SoulNetworkHandler.syphonFromNetwork(owner, this.getCostPerRefresh());
data.markDirty();
} }
} }

View file

@ -30,16 +30,8 @@ public class RitualEffectWellOfSuffering extends RitualEffect
public void performEffect(IMasterRitualStone ritualStone) public void performEffect(IMasterRitualStone ritualStone)
{ {
String owner = ritualStone.getOwner(); String owner = ritualStone.getOwner();
World worldSave = MinecraftServer.getServer().worldServers[0];
LifeEssenceNetwork data = (LifeEssenceNetwork) worldSave.loadItemData(LifeEssenceNetwork.class, owner);
if (data == null) int currentEssence = SoulNetworkHandler.getCurrentEssence(owner);
{
data = new LifeEssenceNetwork(owner);
worldSave.setItemData(owner, data);
}
int currentEssence = data.currentEssence;
World world = ritualStone.getWorld(); World world = ritualStone.getWorld();
int x = ritualStone.getXCoord(); int x = ritualStone.getXCoord();
int y = ritualStone.getYCoord(); int y = ritualStone.getYCoord();
@ -99,8 +91,7 @@ public class RitualEffectWellOfSuffering extends RitualEffect
} }
} }
data.currentEssence = currentEssence - this.getCostPerRefresh() * entityCount; SoulNetworkHandler.syphonFromNetwork(owner, this.getCostPerRefresh() * entityCount);
data.markDirty();
} }
} }

View file

@ -2,6 +2,7 @@ package WayofTime.alchemicalWizardry.common.summoning.meteor;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Random;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
@ -17,6 +18,8 @@ public class MeteorParadigm
public int radius; public int radius;
public static int maxChance = 1000; public static int maxChance = 1000;
public static Random rand = new Random();
public MeteorParadigm(ItemStack focusStack, int radius) public MeteorParadigm(ItemStack focusStack, int radius)
{ {
this.focusStack = focusStack; this.focusStack = focusStack;
@ -34,17 +37,51 @@ public class MeteorParadigm
} }
} }
public void createMeteorImpact(World world, int x, int y, int z) public void createMeteorImpact(World world, int x, int y, int z, boolean[] flags)
{ {
world.createExplosion(null, x, y, z, radius * 4, AlchemicalWizardry.doMeteorsDestroyBlocks); boolean hasTerrae = false;
boolean hasOrbisTerrae = false;
boolean hasCrystallos = false;
boolean hasIncendium = false;
boolean hasTennebrae = false;
for (int i = -radius; i <= radius; i++) if(flags != null && flags.length >= 5)
{ {
for (int j = -radius; j <= radius; j++) hasTerrae = flags[0];
hasOrbisTerrae = flags[1];
hasCrystallos = flags[2];
hasIncendium = flags[3];
hasTennebrae = flags[4];
}
int newRadius = radius;
int chance = maxChance;
if(hasOrbisTerrae)
{ {
for (int k = -radius; k <= radius; k++) newRadius += 2;
chance += 200;
}else if(hasTerrae)
{ {
if (i * i + j * j + k * k >= (radius + 0.50f) * (radius + 0.50f)) newRadius += 1;
chance += 100;
}
world.createExplosion(null, x, y, z, newRadius * 4, AlchemicalWizardry.doMeteorsDestroyBlocks);
float iceChance = hasCrystallos ? 1 : 0;
float soulChance = hasIncendium ? 1 : 0;
float obsidChance = hasTennebrae ? 1 : 0;
float totalChance = iceChance + soulChance + obsidChance;
for (int i = -newRadius; i <= newRadius; i++)
{
for (int j = -newRadius; j <= newRadius; j++)
{
for (int k = -newRadius; k <= newRadius; k++)
{
if (i * i + j * j + k * k >= (newRadius + 0.50f) * (newRadius + 0.50f))
{ {
continue; continue;
} }
@ -54,7 +91,7 @@ public class MeteorParadigm
continue; continue;
} }
int randNum = world.rand.nextInt(maxChance); int randNum = world.rand.nextInt(chance);
boolean hasPlacedBlock = false; boolean hasPlacedBlock = false;
for (MeteorParadigmComponent mpc : componentList) for (MeteorParadigmComponent mpc : componentList)
@ -77,6 +114,40 @@ public class MeteorParadigm
if (!hasPlacedBlock) if (!hasPlacedBlock)
{ {
float randChance = rand.nextFloat() * totalChance;
if(randChance < iceChance)
{
world.setBlock(x + i, y + j, z + k, Blocks.ice, 0, 3);
}else
{
randChance-=iceChance;
if(randChance < soulChance)
{
switch(rand.nextInt(3))
{
case 0:
world.setBlock(x + i, y + j, z + k, Blocks.soul_sand, 0, 3);
break;
case 1:
world.setBlock(x + i, y + j, z + k, Blocks.glowstone, 0, 3);
break;
case 2:
world.setBlock(x + i, y + j, z + k, Blocks.netherrack, 0, 3);
break;
}
}else
{
randChance-=soulChance;
if(randChance < obsidChance)
{
world.setBlock(x + i, y + j, z + k, Blocks.obsidian, 0, 3);
}else
{
randChance-=obsidChance;
world.setBlock(x + i, y + j, z + k, Blocks.stone, 0, 3); world.setBlock(x + i, y + j, z + k, Blocks.stone, 0, 3);
} }
} }
@ -84,3 +155,6 @@ public class MeteorParadigm
} }
} }
} }
}
}
}

View file

@ -26,11 +26,11 @@ public class MeteorRegistry
} }
} }
public static void createMeteorImpact(World world, int x, int y, int z, int paradigmID) public static void createMeteorImpact(World world, int x, int y, int z, int paradigmID, boolean[] flags)
{ {
if (paradigmID < paradigmList.size()) if (paradigmID < paradigmList.size())
{ {
paradigmList.get(paradigmID).createMeteorImpact(world, x, y, z); paradigmList.get(paradigmID).createMeteorImpact(world, x, y, z, flags);
} }
} }

View file

@ -191,6 +191,7 @@ public class TETeleposer extends TileEntity implements IInventory
public void updateEntity() public void updateEntity()
{ {
super.updateEntity(); super.updateEntity();
EntityPlayer d;
if (worldObj.isRemote) if (worldObj.isRemote)
{ {
@ -281,6 +282,7 @@ public class TETeleposer extends TileEntity implements IInventory
entityplayer1 = (EntityLivingBase) iterator1.next(); entityplayer1 = (EntityLivingBase) iterator1.next();
entityplayer1.worldObj = worldF; entityplayer1.worldObj = worldF;
entityplayer1.setPositionAndUpdate(entityplayer1.posX - this.xCoord + xf, entityplayer1.posY - this.yCoord + yf, entityplayer1.posZ - this.zCoord + zf); entityplayer1.setPositionAndUpdate(entityplayer1.posX - this.xCoord + xf, entityplayer1.posY - this.yCoord + yf, entityplayer1.posZ - this.zCoord + zf);
//entityplayer1.travelToDimension(worldF.provider.dimensionId);
} }
while (iterator2.hasNext()) while (iterator2.hasNext())
@ -288,6 +290,7 @@ public class TETeleposer extends TileEntity implements IInventory
entityplayer2 = (EntityLivingBase) iterator2.next(); entityplayer2 = (EntityLivingBase) iterator2.next();
entityplayer2.worldObj = worldF; entityplayer2.worldObj = worldF;
entityplayer2.setPositionAndUpdate(entityplayer2.posX + this.xCoord - xf, entityplayer2.posY + this.yCoord - yf, entityplayer2.posZ + this.zCoord - zf); entityplayer2.setPositionAndUpdate(entityplayer2.posX + this.xCoord - xf, entityplayer2.posY + this.yCoord - yf, entityplayer2.posZ + this.zCoord - zf);
//entityplayer2.travelToDimension(worldObj.provider.dimensionId);
} }
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Before After
Before After