Joshie comment!

This commit is contained in:
WayofTime 2014-06-02 15:16:36 -04:00
parent 1c0deadfc6
commit ac943e9d38
753 changed files with 8715 additions and 1184 deletions

View file

@ -0,0 +1,20 @@
package WayofTime.alchemicalWizardry.common.summoning;
import WayofTime.alchemicalWizardry.api.summoningRegistry.SummoningHelper;
import WayofTime.alchemicalWizardry.common.entity.mob.EntityFallenAngel;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.world.World;
public class SummoningFallenAngel extends SummoningHelper
{
public SummoningFallenAngel(int id)
{
super(id);
// TODO Auto-generated constructor stub
}
public EntityLivingBase getEntity(World worldObj)
{
return new EntityFallenAngel(worldObj);
}
}

View file

@ -0,0 +1,109 @@
package WayofTime.alchemicalWizardry.common.summoning;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.passive.EntityPig;
import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.api.summoningRegistry.SummoningHelper;
import WayofTime.alchemicalWizardry.common.EntityAirElemental;
import WayofTime.alchemicalWizardry.common.entity.mob.EntityBileDemon;
import WayofTime.alchemicalWizardry.common.entity.mob.EntityBoulderFist;
import WayofTime.alchemicalWizardry.common.entity.mob.EntityEarthElemental;
import WayofTime.alchemicalWizardry.common.entity.mob.EntityFallenAngel;
import WayofTime.alchemicalWizardry.common.entity.mob.EntityFireElemental;
import WayofTime.alchemicalWizardry.common.entity.mob.EntityHolyElemental;
import WayofTime.alchemicalWizardry.common.entity.mob.EntityIceDemon;
import WayofTime.alchemicalWizardry.common.entity.mob.EntityLowerGuardian;
import WayofTime.alchemicalWizardry.common.entity.mob.EntityShade;
import WayofTime.alchemicalWizardry.common.entity.mob.EntityShadeElemental;
import WayofTime.alchemicalWizardry.common.entity.mob.EntitySmallEarthGolem;
import WayofTime.alchemicalWizardry.common.entity.mob.EntityWaterElemental;
import WayofTime.alchemicalWizardry.common.entity.mob.EntityWingedFireDemon;
public class SummoningHelperAW extends SummoningHelper
{
public SummoningHelperAW(int id)
{
super(id);
}
public EntityLivingBase getEntity(World worldObj)
{
if (this.id == AlchemicalWizardry.entityFallenAngelID)
{
return new EntityFallenAngel(worldObj);
}
if (this.id == AlchemicalWizardry.entityLowerGuardianID)
{
return new EntityLowerGuardian(worldObj);
}
if (this.id == AlchemicalWizardry.entityBileDemonID)
{
return new EntityBileDemon(worldObj);
}
if (this.id == AlchemicalWizardry.entityWingedFireDemonID)
{
return new EntityWingedFireDemon(worldObj);
}
if (this.id == AlchemicalWizardry.entitySmallEarthGolemID)
{
return new EntitySmallEarthGolem(worldObj);
}
if (this.id == AlchemicalWizardry.entityIceDemonID)
{
return new EntityIceDemon(worldObj);
}
if (this.id == AlchemicalWizardry.entityBoulderFistID)
{
return new EntityBoulderFist(worldObj);
}
if (this.id == AlchemicalWizardry.entityShadeID)
{
return new EntityShade(worldObj);
}
if (this.id == AlchemicalWizardry.entityAirElementalID)
{
return new EntityAirElemental(worldObj);
}
if (this.id == AlchemicalWizardry.entityWaterElementalID)
{
return new EntityWaterElemental(worldObj);
}
if (this.id == AlchemicalWizardry.entityEarthElementalID)
{
return new EntityEarthElemental(worldObj);
}
if (this.id == AlchemicalWizardry.entityFireElementalID)
{
return new EntityFireElemental(worldObj);
}
if (this.id == AlchemicalWizardry.entityShadeElementalID)
{
return new EntityShadeElemental(worldObj);
}
if (this.id == AlchemicalWizardry.entityHolyElementalID)
{
return new EntityHolyElemental(worldObj);
}
return new EntityPig(worldObj);
}
public int getSummoningHelperID()
{
return id;
}
}

View file

@ -0,0 +1,86 @@
package WayofTime.alchemicalWizardry.common.summoning.meteor;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
public class MeteorParadigm
{
public List<MeteorParadigmComponent> componentList = new ArrayList();
public ItemStack focusStack;
public int radius;
public static int maxChance = 1000;
public MeteorParadigm(ItemStack focusStack, int radius)
{
this.focusStack = focusStack;
this.radius = radius;
}
public void parseStringArray(String[] oreArray)
{
for (int i = 0; i + 1 < oreArray.length; i += 2)
{
String oreName = oreArray[i];
int oreChance = Integer.parseInt(oreArray[i + 1]);
MeteorParadigmComponent mpc = new MeteorParadigmComponent(oreName, oreChance);
componentList.add(mpc);
}
}
public void createMeteorImpact(World world, int x, int y, int z)
{
world.createExplosion(null, x, y, z, radius * 4, AlchemicalWizardry.doMeteorsDestroyBlocks);
for (int i = -radius; i <= radius; i++)
{
for (int j = -radius; j <= radius; j++)
{
for (int k = -radius; k <= radius; k++)
{
if (i * i + j * j + k * k >= (radius + 0.50f) * (radius + 0.50f))
{
continue;
}
if (!world.isAirBlock(x + i, y + j, z + k))
{
continue;
}
int randNum = world.rand.nextInt(maxChance);
boolean hasPlacedBlock = false;
for (MeteorParadigmComponent mpc : componentList)
{
if (mpc == null || !mpc.isValidBlockParadigm())
{
continue;
}
randNum -= mpc.getChance();
if (randNum < 0)
{
ItemStack blockStack = mpc.getValidBlockParadigm();
world.setBlock(x + i, y + j, z + k, Block.getBlockById(Item.getIdFromItem(blockStack.getItem())), blockStack.getItemDamage(), 3);
hasPlacedBlock = true;
break;
}
}
if (!hasPlacedBlock)
{
world.setBlock(x + i, y + j, z + k, Blocks.stone, 0, 3);
}
}
}
}
}
}

View file

@ -0,0 +1,54 @@
package WayofTime.alchemicalWizardry.common.summoning.meteor;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraftforge.oredict.OreDictionary;
import java.util.List;
public class MeteorParadigmComponent
{
public String oreDictName;
public int chance;
public MeteorParadigmComponent(String dictName, int chance)
{
this.oreDictName = dictName;
this.chance = chance;
}
public boolean isValidBlockParadigm()
{
if (this.getValidBlockParadigm() != null)
{
return true;
}
return false;
}
public String getOreDictName()
{
return this.oreDictName;
}
public int getChance()
{
return this.chance;
}
public ItemStack getValidBlockParadigm()
{
List<ItemStack> list = OreDictionary.getOres(getOreDictName());
for (ItemStack stack : list)
{
if (stack != null && stack.getItem() instanceof ItemBlock)
{
return stack;
}
}
return null;
}
}

View file

@ -0,0 +1,61 @@
package WayofTime.alchemicalWizardry.common.summoning.meteor;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import net.minecraftforge.oredict.OreDictionary;
import java.util.ArrayList;
import java.util.List;
public class MeteorRegistry
{
public static List<MeteorParadigm> paradigmList = new ArrayList();
public static void registerMeteorParadigm(MeteorParadigm paradigm)
{
paradigmList.add(paradigm);
}
public static void registerMeteorParadigm(ItemStack stack, String[] oreList, int radius)
{
if (stack != null && oreList != null)
{
MeteorParadigm meteor = new MeteorParadigm(stack, radius);
meteor.parseStringArray(oreList);
paradigmList.add(meteor);
}
}
public static void createMeteorImpact(World world, int x, int y, int z, int paradigmID)
{
if (paradigmID < paradigmList.size())
{
paradigmList.get(paradigmID).createMeteorImpact(world, x, y, z);
}
}
public static int getParadigmIDForItem(ItemStack stack)
{
if (stack == null)
{
return -1;
}
for (int i = 0; i < paradigmList.size(); i++)
{
ItemStack focusStack = paradigmList.get(i).focusStack;
if (focusStack != null && focusStack.getItem()== stack.getItem() && (focusStack.getItemDamage() == OreDictionary.WILDCARD_VALUE || focusStack.getItemDamage() == stack.getItemDamage()))
{
return i;
}
}
return -1;
}
public static boolean isValidParadigmItem(ItemStack stack)
{
return getParadigmIDForItem(stack) != -1;
}
}