Added Guardians

This commit is contained in:
WayofTime 2014-12-10 11:01:03 -05:00
parent a2b0f59765
commit 08a8f1dc13
23 changed files with 618 additions and 65 deletions

View file

@ -72,6 +72,11 @@ import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.DemonPacketRe
import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGrunt; import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGrunt;
import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntEarth; import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntEarth;
import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntFire; import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntFire;
import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntGuardian;
import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntGuardianEarth;
import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntGuardianFire;
import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntGuardianIce;
import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntGuardianWind;
import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntIce; import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntIce;
import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntWind; import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntWind;
import WayofTime.alchemicalWizardry.common.demonVillage.loot.DemonVillageLootRegistry; import WayofTime.alchemicalWizardry.common.demonVillage.loot.DemonVillageLootRegistry;
@ -400,7 +405,11 @@ public class AlchemicalWizardry
public static String entityMinorDemonGruntWindID = "AW017"; public static String entityMinorDemonGruntWindID = "AW017";
public static String entityMinorDemonGruntIceID = "AW018"; public static String entityMinorDemonGruntIceID = "AW018";
public static String entityMinorDemonGruntEarthID = "AW019"; public static String entityMinorDemonGruntEarthID = "AW019";
public static String entityMinorDemonGruntGuardianID = "AW020";
public static String entityMinorDemonGruntGuardianFireID = "AW021";
public static String entityMinorDemonGruntGuardianWindID = "AW022";
public static String entityMinorDemonGruntGuardianIceID = "AW023";
public static String entityMinorDemonGruntGuardianEarthID = "AW024";
public static Fluid lifeEssenceFluid; public static Fluid lifeEssenceFluid;
@ -412,6 +421,7 @@ public class AlchemicalWizardry
@SidedProxy(clientSide = "WayofTime.alchemicalWizardry.client.ClientProxy", serverSide = "WayofTime.alchemicalWizardry.common.CommonProxy") @SidedProxy(clientSide = "WayofTime.alchemicalWizardry.client.ClientProxy", serverSide = "WayofTime.alchemicalWizardry.common.CommonProxy")
public static CommonProxy proxy; public static CommonProxy proxy;
@EventHandler @EventHandler
public void preInit(FMLPreInitializationEvent event) public void preInit(FMLPreInitializationEvent event)
{ {
@ -863,6 +873,12 @@ public class AlchemicalWizardry
EntityRegistry.registerModEntity(EntityMinorDemonGruntWind.class, "MinorDemonGruntWind", 36, this, 80, 3, true); EntityRegistry.registerModEntity(EntityMinorDemonGruntWind.class, "MinorDemonGruntWind", 36, this, 80, 3, true);
EntityRegistry.registerModEntity(EntityMinorDemonGruntIce.class, "MinorDemonGruntIce", 37, this, 80, 3, true); EntityRegistry.registerModEntity(EntityMinorDemonGruntIce.class, "MinorDemonGruntIce", 37, this, 80, 3, true);
EntityRegistry.registerModEntity(EntityMinorDemonGruntEarth.class, "MinorDemonGruntEarth", 38, this, 80, 3, true); EntityRegistry.registerModEntity(EntityMinorDemonGruntEarth.class, "MinorDemonGruntEarth", 38, this, 80, 3, true);
EntityRegistry.registerModEntity(EntityMinorDemonGruntGuardian.class, "MinorDemonGruntGuardian", 39, this, 80, 3, true);
EntityRegistry.registerModEntity(EntityMinorDemonGruntGuardianFire.class, "MinorDemonGruntGuardianFire", 40, this, 80, 3, true);
EntityRegistry.registerModEntity(EntityMinorDemonGruntGuardianWind.class, "MinorDemonGruntGuardianWind", 41, this, 80, 3, true);
EntityRegistry.registerModEntity(EntityMinorDemonGruntGuardianIce.class, "MinorDemonGruntGuardianIce", 42, this, 80, 3, true);
EntityRegistry.registerModEntity(EntityMinorDemonGruntGuardianEarth.class, "MinorDemonGruntGuardianEarth", 43, this, 80, 3, true);
ChestGenHooks.getInfo(ChestGenHooks.DUNGEON_CHEST).addItem(new WeightedRandomChestContent(new ItemStack(ModItems.standardBindingAgent), 1, 3, this.standardBindingAgentDungeonChance / 5)); ChestGenHooks.getInfo(ChestGenHooks.DUNGEON_CHEST).addItem(new WeightedRandomChestContent(new ItemStack(ModItems.standardBindingAgent), 1, 3, this.standardBindingAgentDungeonChance / 5));

View file

@ -137,14 +137,14 @@ public class BloodMagicConfiguration
AlchemicalWizardry.ritualDisabledFullStomach = config.get("Ritual Blacklist", "Requiem of the Satiated Stomach", false).getBoolean(false); AlchemicalWizardry.ritualDisabledFullStomach = config.get("Ritual Blacklist", "Requiem of the Satiated Stomach", false).getBoolean(false);
String tempDemonConfigs = "Temp Demon Configs [2]"; String tempDemonConfigs = "Temp Demon Configs [2]";
TEDemonPortal.buildingGridDelay = config.get(tempDemonConfigs, "Building Grid Delay", 25).getInt(); // TEDemonPortal.buildingGridDelay = config.get(tempDemonConfigs, "Building Grid Delay", 25).getInt();
TEDemonPortal.roadGridDelay = config.get(tempDemonConfigs, "Road Grid Delay", 10).getInt(); // TEDemonPortal.roadGridDelay = config.get(tempDemonConfigs, "Road Grid Delay", 10).getInt();
TEDemonPortal.demonHoardDelay = config.get(tempDemonConfigs, "Demon Hoard Delay", 40).getInt(); // TEDemonPortal.demonHoardDelay = config.get(tempDemonConfigs, "Demon Hoard Delay", 40).getInt();
TEDemonPortal.demonRoadChance = (float)(config.get(tempDemonConfigs, "Demon Road Chance", 0.3f).getDouble()); // TEDemonPortal.demonRoadChance = (float)(config.get(tempDemonConfigs, "Demon Road Chance", 0.3f).getDouble());
TEDemonPortal.demonHouseChance = (float)(config.get(tempDemonConfigs, "Demon House Chance", 0.6f).getDouble()); // TEDemonPortal.demonHouseChance = (float)(config.get(tempDemonConfigs, "Demon House Chance", 0.6f).getDouble());
TEDemonPortal.demonPortalChance = (float)(config.get(tempDemonConfigs, "Demon Portal Chance", 0.5f).getDouble()); // TEDemonPortal.demonPortalChance = (float)(config.get(tempDemonConfigs, "Demon Portal Chance", 0.5f).getDouble());
TEDemonPortal.demonHoardChance = (float)(config.get(tempDemonConfigs, "Demon Hoard Chance", 0.8f).getDouble()); // TEDemonPortal.demonHoardChance = (float)(config.get(tempDemonConfigs, "Demon Hoard Chance", 0.8f).getDouble());
TEDemonPortal.portalTickRate = (float)(config.get(tempDemonConfigs, "Portal Tick Rate", 0.1f).getDouble()); // TEDemonPortal.portalTickRate = (float)(config.get(tempDemonConfigs, "Portal Tick Rate", 0.1f).getDouble());
DemonVillagePath.canGoDown = config.get(tempDemonConfigs, "canRoadGoDown", true).getBoolean(); DemonVillagePath.canGoDown = config.get(tempDemonConfigs, "canRoadGoDown", true).getBoolean();
DemonVillagePath.tunnelIfObstructed = config.get(tempDemonConfigs, "tunnelIfObstructed", false).getBoolean(); DemonVillagePath.tunnelIfObstructed = config.get(tempDemonConfigs, "tunnelIfObstructed", false).getBoolean();

View file

@ -9,6 +9,11 @@ import WayofTime.alchemicalWizardry.common.CommonProxy;
import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGrunt; import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGrunt;
import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntEarth; import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntEarth;
import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntFire; import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntFire;
import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntGuardian;
import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntGuardianEarth;
import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntGuardianFire;
import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntGuardianIce;
import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntGuardianWind;
import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntIce; import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntIce;
import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntWind; import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntWind;
import WayofTime.alchemicalWizardry.common.entity.mob.EntityAirElemental; import WayofTime.alchemicalWizardry.common.entity.mob.EntityAirElemental;
@ -58,6 +63,7 @@ import WayofTime.alchemicalWizardry.common.renderer.mob.RenderFallenAngel;
import WayofTime.alchemicalWizardry.common.renderer.mob.RenderIceDemon; import WayofTime.alchemicalWizardry.common.renderer.mob.RenderIceDemon;
import WayofTime.alchemicalWizardry.common.renderer.mob.RenderLowerGuardian; import WayofTime.alchemicalWizardry.common.renderer.mob.RenderLowerGuardian;
import WayofTime.alchemicalWizardry.common.renderer.mob.RenderMinorDemonGrunt; import WayofTime.alchemicalWizardry.common.renderer.mob.RenderMinorDemonGrunt;
import WayofTime.alchemicalWizardry.common.renderer.mob.RenderMinorDemonGruntGuardian;
import WayofTime.alchemicalWizardry.common.renderer.mob.RenderShade; import WayofTime.alchemicalWizardry.common.renderer.mob.RenderShade;
import WayofTime.alchemicalWizardry.common.renderer.mob.RenderSmallEarthGolem; import WayofTime.alchemicalWizardry.common.renderer.mob.RenderSmallEarthGolem;
import WayofTime.alchemicalWizardry.common.renderer.mob.RenderWingedFireDemon; import WayofTime.alchemicalWizardry.common.renderer.mob.RenderWingedFireDemon;
@ -68,6 +74,7 @@ import WayofTime.alchemicalWizardry.common.renderer.model.ModelFallenAngel;
import WayofTime.alchemicalWizardry.common.renderer.model.ModelIceDemon; import WayofTime.alchemicalWizardry.common.renderer.model.ModelIceDemon;
import WayofTime.alchemicalWizardry.common.renderer.model.ModelLowerGuardian; import WayofTime.alchemicalWizardry.common.renderer.model.ModelLowerGuardian;
import WayofTime.alchemicalWizardry.common.renderer.model.ModelMinorDemonGrunt; import WayofTime.alchemicalWizardry.common.renderer.model.ModelMinorDemonGrunt;
import WayofTime.alchemicalWizardry.common.renderer.model.ModelMinorDemonGruntGuardian;
import WayofTime.alchemicalWizardry.common.renderer.model.ModelShade; import WayofTime.alchemicalWizardry.common.renderer.model.ModelShade;
import WayofTime.alchemicalWizardry.common.renderer.model.ModelSmallEarthGolem; import WayofTime.alchemicalWizardry.common.renderer.model.ModelSmallEarthGolem;
import WayofTime.alchemicalWizardry.common.renderer.model.ModelWingedFireDemon; import WayofTime.alchemicalWizardry.common.renderer.model.ModelWingedFireDemon;
@ -124,6 +131,12 @@ public class ClientProxy extends CommonProxy
RenderingRegistry.registerEntityRenderingHandler(EntityMinorDemonGruntIce.class, new RenderMinorDemonGrunt(new ModelMinorDemonGrunt(), 0.5F)); RenderingRegistry.registerEntityRenderingHandler(EntityMinorDemonGruntIce.class, new RenderMinorDemonGrunt(new ModelMinorDemonGrunt(), 0.5F));
RenderingRegistry.registerEntityRenderingHandler(EntityMinorDemonGruntWind.class, new RenderMinorDemonGrunt(new ModelMinorDemonGrunt(), 0.5F)); RenderingRegistry.registerEntityRenderingHandler(EntityMinorDemonGruntWind.class, new RenderMinorDemonGrunt(new ModelMinorDemonGrunt(), 0.5F));
RenderingRegistry.registerEntityRenderingHandler(EntityMinorDemonGruntEarth.class, new RenderMinorDemonGrunt(new ModelMinorDemonGrunt(), 0.5F)); RenderingRegistry.registerEntityRenderingHandler(EntityMinorDemonGruntEarth.class, new RenderMinorDemonGrunt(new ModelMinorDemonGrunt(), 0.5F));
RenderingRegistry.registerEntityRenderingHandler(EntityMinorDemonGruntGuardian.class, new RenderMinorDemonGruntGuardian(new ModelMinorDemonGruntGuardian(), 0.5F));
RenderingRegistry.registerEntityRenderingHandler(EntityMinorDemonGruntGuardianFire.class, new RenderMinorDemonGruntGuardian(new ModelMinorDemonGruntGuardian(), 0.5F));
RenderingRegistry.registerEntityRenderingHandler(EntityMinorDemonGruntGuardianIce.class, new RenderMinorDemonGruntGuardian(new ModelMinorDemonGruntGuardian(), 0.5F));
RenderingRegistry.registerEntityRenderingHandler(EntityMinorDemonGruntGuardianEarth.class, new RenderMinorDemonGruntGuardian(new ModelMinorDemonGruntGuardian(), 0.5F));
RenderingRegistry.registerEntityRenderingHandler(EntityMinorDemonGruntGuardianWind.class, new RenderMinorDemonGruntGuardian(new ModelMinorDemonGruntGuardian(), 0.5F));
ClientRegistry.bindTileEntitySpecialRenderer(TEAltar.class, new TEAltarRenderer()); ClientRegistry.bindTileEntitySpecialRenderer(TEAltar.class, new TEAltarRenderer());
ClientRegistry.bindTileEntitySpecialRenderer(TEPedestal.class, new RenderPedestal()); ClientRegistry.bindTileEntitySpecialRenderer(TEPedestal.class, new RenderPedestal());

View file

@ -22,6 +22,7 @@ import WayofTime.alchemicalWizardry.api.alchemy.energy.IReagentHandler;
import WayofTime.alchemicalWizardry.api.alchemy.energy.Reagent; import WayofTime.alchemicalWizardry.api.alchemy.energy.Reagent;
import WayofTime.alchemicalWizardry.api.alchemy.energy.ReagentContainerInfo; import WayofTime.alchemicalWizardry.api.alchemy.energy.ReagentContainerInfo;
import WayofTime.alchemicalWizardry.api.alchemy.energy.ReagentRegistry; import WayofTime.alchemicalWizardry.api.alchemy.energy.ReagentRegistry;
import WayofTime.alchemicalWizardry.api.alchemy.energy.ReagentStack;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper; import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
public class RenderHelper public class RenderHelper
@ -61,10 +62,16 @@ public class RenderHelper
GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f); GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
scaledResolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); scaledResolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight);
displayArmorStatus(mc); displayArmorStatus(mc);
renderTestHUD(mc);
GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f); GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
} }
ReagentStack reagentStack = new ReagentStack(ReagentRegistry.sanctusReagent, 1000);
int maxAmount = 3000;
if(reagentStack != null && reagentStack.amount > 0)
{
renderTestHUD(mc, reagentStack, maxAmount);
}
} }
return true; return true;
@ -164,22 +171,24 @@ public class RenderHelper
tessellator.draw(); tessellator.draw();
} }
private static void renderTestHUD(Minecraft mc) private static void renderTestHUD(Minecraft mc, ReagentStack reagentStack, int maxAmount)
{ {
Reagent reagent = ReagentRegistry.incendiumReagent; Reagent reagent = reagentStack.reagent;
int xSize = 32; int xSize = 32;
int ySize = 32; int ySize = 32;
int x = (10 - xSize) / 2 * 8; int amount = 256 * (maxAmount - reagentStack.amount) / maxAmount;
int x = (16 - xSize) / 2 * 8;
int y = (150 - ySize) / 2 * 8; int y = (150 - ySize) / 2 * 8;
ResourceLocation test2 = new ResourceLocation("alchemicalwizardry", "textures/gui/container1.png"); ResourceLocation test2 = new ResourceLocation("alchemicalwizardry", "textures/gui/container1.png");
GL11.glColor4f(reagent.getColourRed(), reagent.getColourGreen(), reagent.getColourBlue(), 0.5F); GL11.glColor4f(reagent.getColourRed(), reagent.getColourGreen(), reagent.getColourBlue(), 1.0F);
mc.getTextureManager().bindTexture(test2); mc.getTextureManager().bindTexture(test2);
GL11.glScalef(1f/8f, 1f/8f, 1f/8f); GL11.glScalef(1f/8f, 1f/8f, 1f/8f);
drawTexturedModalRect(x, y, 0, 0, 256, 256); drawTexturedModalRect(x, y + amount, 0, amount, 256, 256 - amount);
ResourceLocation test = new ResourceLocation("alchemicalwizardry", "textures/gui/container.png"); ResourceLocation test = new ResourceLocation("alchemicalwizardry", "textures/gui/container.png");
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);

View file

@ -4,6 +4,11 @@ import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGrunt; import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGrunt;
import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntEarth; import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntEarth;
import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntFire; import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntFire;
import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntGuardian;
import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntGuardianEarth;
import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntGuardianFire;
import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntGuardianIce;
import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntGuardianWind;
import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntIce; import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntIce;
import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntWind; import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntWind;
import WayofTime.alchemicalWizardry.common.demonVillage.tileEntity.TEDemonPortal; import WayofTime.alchemicalWizardry.common.demonVillage.tileEntity.TEDemonPortal;
@ -26,26 +31,58 @@ public class DemonPacketMinorGrunt extends DemonHoardPacket
public int summonDemons(TEDemonPortal teDemonPortal, World world, int x, int y, int z, DemonType type, int tier, boolean spawnGuardian) public int summonDemons(TEDemonPortal teDemonPortal, World world, int x, int y, int z, DemonType type, int tier, boolean spawnGuardian)
{ {
EntityMinorDemonGrunt entity; EntityMinorDemonGrunt entity;
switch(type)
{ {
case FIRE: switch(type)
entity = new EntityMinorDemonGruntFire(world); {
break; case FIRE:
case ICE: if(spawnGuardian)
entity = new EntityMinorDemonGruntIce(world); {
break; entity = new EntityMinorDemonGruntGuardianFire(world);
case WATER: }else
entity = new EntityMinorDemonGruntEarth(world); {
break; entity = new EntityMinorDemonGruntFire(world);
case WIND: }
entity = new EntityMinorDemonGruntWind(world); break;
break; case ICE:
case NORMAL: if(spawnGuardian)
default: {
entity = new EntityMinorDemonGrunt(world); entity = new EntityMinorDemonGruntGuardianIce(world);
break; }else
{
entity = new EntityMinorDemonGruntIce(world);
}
break;
case EARTH:
if(spawnGuardian)
{
entity = new EntityMinorDemonGruntGuardianEarth(world);
}else
{
entity = new EntityMinorDemonGruntEarth(world);
}
break;
case WIND:
if(spawnGuardian)
{
entity = new EntityMinorDemonGruntGuardianWind(world);
}else
{
entity = new EntityMinorDemonGruntWind(world);
}
break;
case NORMAL:
default:
if(spawnGuardian)
{
entity = new EntityMinorDemonGruntGuardian(world);
}else
{
entity = new EntityMinorDemonGrunt(world);
}
break;
}
} }
entity.setPosition(x, y, z); entity.setPosition(x, y, z);

View file

@ -4,7 +4,7 @@ public enum DemonType
{ {
NORMAL, NORMAL,
FIRE, FIRE,
WATER, EARTH,
ICE, ICE,
WIND WIND
} }

View file

@ -0,0 +1,47 @@
package WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon;
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.common.entity.projectile.HolyProjectile;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.util.DamageSource;
import net.minecraft.world.World;
public class EntityMinorDemonGruntGuardian extends EntityMinorDemonGrunt
{
public EntityMinorDemonGruntGuardian(World par1World)
{
super(par1World);
this.setDemonID(AlchemicalWizardry.entityMinorDemonGruntGuardianID);
}
@Override
public boolean attackEntityAsMob(Entity par1Entity)
{
int i = this.isTamed() ? 25 : 25;
if(par1Entity instanceof IHoardDemon && ((IHoardDemon) par1Entity).isSamePortal(this))
{
return false;
}
return par1Entity.attackEntityFrom(DamageSource.causeMobDamage(this), (float) i);
}
/**
* Attack the specified entity using a ranged attack.
*/
@Override
public void attackEntityWithRangedAttack(EntityLivingBase par1EntityLivingBase, float par2)
{
if(par1EntityLivingBase instanceof IHoardDemon && ((IHoardDemon) par1EntityLivingBase).isSamePortal(this))
{
return;
}
double xCoord;
double yCoord;
double zCoord;
HolyProjectile hol = new HolyProjectile(worldObj, this, par1EntityLivingBase, 1.8f, 0f, 20, 600);
this.worldObj.spawnEntityInWorld(hol);
}
}

View file

@ -0,0 +1,54 @@
package WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.util.DamageSource;
import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.common.entity.projectile.ExplosionProjectile;
public class EntityMinorDemonGruntGuardianEarth extends EntityMinorDemonGruntGuardian
{
public EntityMinorDemonGruntGuardianEarth(World par1World)
{
super(par1World);
this.setDemonID(AlchemicalWizardry.entityMinorDemonGruntGuardianEarthID);
}
@Override
public boolean attackEntityAsMob(Entity par1Entity)
{
int i = this.isTamed() ? 25 : 25;
if(par1Entity instanceof IHoardDemon && ((IHoardDemon) par1Entity).isSamePortal(this))
{
return false;
}
if(par1Entity instanceof EntityLivingBase)
{
((EntityLivingBase) par1Entity).addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, 200, 4));
}
return par1Entity.attackEntityFrom(DamageSource.causeMobDamage(this), (float) i);
}
/**
* Attack the specified entity using a ranged attack.
*/
@Override
public void attackEntityWithRangedAttack(EntityLivingBase par1EntityLivingBase, float par2)
{
if(par1EntityLivingBase instanceof IHoardDemon && ((IHoardDemon) par1EntityLivingBase).isSamePortal(this))
{
return;
}
double xCoord;
double yCoord;
double zCoord;
ExplosionProjectile hol = new ExplosionProjectile(worldObj, this, par1EntityLivingBase, 1.8f, 0f, 20, 600, false);
this.worldObj.spawnEntityInWorld(hol);
}
}

View file

@ -0,0 +1,50 @@
package WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.util.DamageSource;
import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.common.entity.projectile.FireProjectile;
public class EntityMinorDemonGruntGuardianFire extends EntityMinorDemonGruntGuardian
{
public EntityMinorDemonGruntGuardianFire(World par1World)
{
super(par1World);
this.setDemonID(AlchemicalWizardry.entityMinorDemonGruntGuardianFireID);
this.isImmuneToFire = true;
}
@Override
public boolean attackEntityAsMob(Entity par1Entity)
{
int i = this.isTamed() ? 25 : 25;
if(par1Entity instanceof IHoardDemon && ((IHoardDemon) par1Entity).isSamePortal(this))
{
return false;
}
par1Entity.setFire(15);
return par1Entity.attackEntityFrom(DamageSource.causeMobDamage(this), (float) i);
}
/**
* Attack the specified entity using a ranged attack.
*/
@Override
public void attackEntityWithRangedAttack(EntityLivingBase par1EntityLivingBase, float par2)
{
if(par1EntityLivingBase instanceof IHoardDemon && ((IHoardDemon) par1EntityLivingBase).isSamePortal(this))
{
return;
}
double xCoord;
double yCoord;
double zCoord;
FireProjectile hol = new FireProjectile(worldObj, this, par1EntityLivingBase, 1.8f, 0f, 20, 600);
this.worldObj.spawnEntityInWorld(hol);
}
}

View file

@ -0,0 +1,47 @@
package WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.util.DamageSource;
import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.common.entity.projectile.IceProjectile;
public class EntityMinorDemonGruntGuardianIce extends EntityMinorDemonGruntGuardian
{
public EntityMinorDemonGruntGuardianIce(World par1World)
{
super(par1World);
this.setDemonID(AlchemicalWizardry.entityMinorDemonGruntGuardianIceID);
}
@Override
public boolean attackEntityAsMob(Entity par1Entity)
{
int i = this.isTamed() ? 25 : 25;
if(par1Entity instanceof IHoardDemon && ((IHoardDemon) par1Entity).isSamePortal(this))
{
return false;
}
return par1Entity.attackEntityFrom(DamageSource.causeMobDamage(this), (float) i);
}
/**
* Attack the specified entity using a ranged attack.
*/
@Override
public void attackEntityWithRangedAttack(EntityLivingBase par1EntityLivingBase, float par2)
{
if(par1EntityLivingBase instanceof IHoardDemon && ((IHoardDemon) par1EntityLivingBase).isSamePortal(this))
{
return;
}
double xCoord;
double yCoord;
double zCoord;
IceProjectile hol = new IceProjectile(worldObj, this, par1EntityLivingBase, 1.8f, 0f, 20, 600);
this.worldObj.spawnEntityInWorld(hol);
}
}

View file

@ -0,0 +1,64 @@
package WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.DamageSource;
import net.minecraft.world.World;
import WayofTime.alchemicalWizardry.AlchemicalWizardry;
import WayofTime.alchemicalWizardry.common.entity.projectile.WindGustProjectile;
import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
public class EntityMinorDemonGruntGuardianWind extends EntityMinorDemonGruntGuardian
{
public EntityMinorDemonGruntGuardianWind(World par1World)
{
super(par1World);
this.setDemonID(AlchemicalWizardry.entityMinorDemonGruntGuardianWindID);
}
@Override
public boolean attackEntityAsMob(Entity par1Entity)
{
int i = this.isTamed() ? 25 : 25;
if(par1Entity instanceof IHoardDemon && ((IHoardDemon) par1Entity).isSamePortal(this))
{
return false;
}
if (par1Entity instanceof EntityPlayer)
{
SpellHelper.setPlayerSpeedFromServer((EntityPlayer) par1Entity, par1Entity.motionX, par1Entity.motionY + 4, par1Entity.motionZ);
} else if (par1Entity instanceof EntityLivingBase)
{
((EntityLivingBase) par1Entity).motionY += 4.0D;
}
return par1Entity.attackEntityFrom(DamageSource.causeMobDamage(this), (float) i);
}
@Override
public void onLivingUpdate()
{
super.onLivingUpdate();
this.fallDistance = 0;
}
/**
* Attack the specified entity using a ranged attack.
*/
@Override
public void attackEntityWithRangedAttack(EntityLivingBase par1EntityLivingBase, float par2)
{
if(par1EntityLivingBase instanceof IHoardDemon && ((IHoardDemon) par1EntityLivingBase).isSamePortal(this))
{
return;
}
double xCoord;
double yCoord;
double zCoord;
WindGustProjectile hol = new WindGustProjectile(worldObj, this, par1EntityLivingBase, 1.8f, 0f, 20, 600);
this.worldObj.spawnEntityInWorld(hol);
}
}

View file

@ -46,7 +46,7 @@ public class TEDemonPortal extends TileEntity
{ {
public DemonType type = DemonType.FIRE; public DemonType type = DemonType.FIRE;
public static boolean printDebug = false; public static boolean printDebug = true;
public static int limit = 100; public static int limit = 100;
@ -576,6 +576,9 @@ public class TEDemonPortal extends TileEntity
return 0; return 0;
} }
if(TEDemonPortal.printDebug)
System.out.println("Spawning Demons");
return DemonPacketRegistry.spawnDemons(teDemonPortal, worldObj, xCoord + road.xCoord * 5, road.yCoord + 1, zCoord + road.zCoord * 5, type, tier, spawnGuardian); return DemonPacketRegistry.spawnDemons(teDemonPortal, worldObj, xCoord + road.xCoord * 5, road.yCoord + 1, zCoord + road.zCoord * 5, type, tier, spawnGuardian);
} }

View file

@ -1,27 +0,0 @@
package WayofTime.alchemicalWizardry.common.renderer.mob;
import net.minecraft.client.model.ModelBase;
import net.minecraft.client.renderer.entity.RenderLiving;
import net.minecraft.entity.Entity;
import net.minecraft.util.ResourceLocation;
import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGrunt;
public class RenderGrunt extends RenderLiving
{
private static final ResourceLocation field_110833_a = new ResourceLocation("alchemicalwizardry", "textures/models/ShadeMob.png");
public RenderGrunt(ModelBase par1ModelBase, float par2)
{
super(par1ModelBase, par2);
}
public ResourceLocation func_110832_a(EntityMinorDemonGrunt par1EntityShade)
{
return field_110833_a;
}
public ResourceLocation getEntityTexture(Entity par1Entity)
{
return this.func_110832_a((EntityMinorDemonGrunt) par1Entity);
}
}

View file

@ -0,0 +1,49 @@
package WayofTime.alchemicalWizardry.common.renderer.mob;
import net.minecraft.client.model.ModelBase;
import net.minecraft.client.renderer.entity.RenderLiving;
import net.minecraft.entity.Entity;
import net.minecraft.util.ResourceLocation;
import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntGuardian;
import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntGuardianEarth;
import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntGuardianFire;
import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntGuardianIce;
import WayofTime.alchemicalWizardry.common.demonVillage.demonHoard.demon.EntityMinorDemonGruntGuardianWind;
public class RenderMinorDemonGruntGuardian extends RenderLiving
{
private static final ResourceLocation normalTexture = new ResourceLocation("alchemicalwizardry", "textures/models/MinorDemonGruntGuardian_normal.png");
private static final ResourceLocation fireTexture = new ResourceLocation("alchemicalwizardry", "textures/models/MinorDemonGruntGuardian_fire.png");
private static final ResourceLocation iceTexture = new ResourceLocation("alchemicalwizardry", "textures/models/MinorDemonGruntGuardian_ice.png");
private static final ResourceLocation windTexture = new ResourceLocation("alchemicalwizardry", "textures/models/MinorDemonGruntGuardian_wind.png");
private static final ResourceLocation earthTexture = new ResourceLocation("alchemicalwizardry", "textures/models/MinorDemonGruntGuardian_earth.png");
public RenderMinorDemonGruntGuardian(ModelBase par1ModelBase, float par2)
{
super(par1ModelBase, par2);
}
public ResourceLocation func_110832_a(EntityMinorDemonGruntGuardian entity)
{
if(entity instanceof EntityMinorDemonGruntGuardianFire)
{
return fireTexture;
}else if(entity instanceof EntityMinorDemonGruntGuardianWind)
{
return windTexture;
}else if(entity instanceof EntityMinorDemonGruntGuardianIce)
{
return iceTexture;
}else if(entity instanceof EntityMinorDemonGruntGuardianEarth)
{
return earthTexture;
}
return normalTexture;
}
public ResourceLocation getEntityTexture(Entity entity)
{
return this.func_110832_a((EntityMinorDemonGruntGuardian) entity);
}
}

View file

@ -0,0 +1,181 @@
package WayofTime.alchemicalWizardry.common.renderer.model;
import net.minecraft.client.model.ModelBase;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity;
import net.minecraft.util.MathHelper;
public class ModelMinorDemonGruntGuardian extends ModelBase
{
//fields
ModelRenderer head;
ModelRenderer chest;
ModelRenderer midrift;
ModelRenderer rightarm;
ModelRenderer leftarm;
ModelRenderer rightleg;
ModelRenderer leftleg;
ModelRenderer middle;
ModelRenderer helmet;
ModelRenderer leftClaw;
ModelRenderer rightClaw;
ModelRenderer leftShoulder;
ModelRenderer rightShoulder;
ModelRenderer bar1;
ModelRenderer bar2;
public ModelMinorDemonGruntGuardian()
{
textureWidth = 128;
textureHeight = 64;
head = new ModelRenderer(this, 0, 0);
head.addBox(-4F, -8F, -4F, 8, 8, 8);
head.setRotationPoint(0F, 0F, 0F);
head.setTextureSize(128, 64);
head.mirror = true;
setRotation(head, 0F, 0F, 0F);
chest = new ModelRenderer(this, 16, 16);
chest.addBox(-5F, 0F, -3.5F, 10, 7, 7);
chest.setRotationPoint(0F, 0F, 0F);
chest.setTextureSize(128, 64);
chest.mirror = true;
setRotation(chest, 0F, 0F, 0F);
midrift = new ModelRenderer(this, 16, 33);
midrift.addBox(-4F, 7F, -2F, 8, 5, 4);
midrift.setRotationPoint(0F, 0F, 0F);
midrift.setTextureSize(128, 64);
midrift.mirror = true;
setRotation(midrift, 0F, 0F, 0F);
rightarm = new ModelRenderer(this, 50, 16);
rightarm.mirror = true;
rightarm.addBox(-3F, -2F, -2F, 4, 12, 4);
rightarm.setRotationPoint(-6F, 2F, 0F);
rightarm.setTextureSize(128, 64);
rightarm.mirror = true;
setRotation(rightarm, 0F, 0F, 0F);
rightarm.mirror = false;
leftarm = new ModelRenderer(this, 50, 16);
leftarm.addBox(-1F, -2F, -2F, 4, 12, 4);
leftarm.setRotationPoint(6F, 2F, 0F);
leftarm.setTextureSize(128, 64);
leftarm.mirror = true;
setRotation(leftarm, 0F, 0F, 0F);
rightleg = new ModelRenderer(this, 0, 16);
rightleg.mirror = true;
rightleg.addBox(-2F, 0F, -2F, 4, 12, 4);
rightleg.setRotationPoint(-2F, 12F, 0F);
rightleg.setTextureSize(128, 64);
rightleg.mirror = true;
setRotation(rightleg, 0F, 0F, 0F);
rightleg.mirror = false;
leftleg = new ModelRenderer(this, 0, 16);
leftleg.addBox(-2F, 0F, -2F, 4, 12, 4);
leftleg.setRotationPoint(2F, 12F, 0F);
leftleg.setTextureSize(128, 64);
leftleg.mirror = true;
setRotation(leftleg, 0F, 0F, 0F);
middle = new ModelRenderer(this, 16, 43);
middle.addBox(-2F, 7F, -3F, 4, 3, 1);
middle.setRotationPoint(0F, 0F, 0F);
middle.setTextureSize(128, 64);
middle.mirror = true;
setRotation(middle, 0F, 0F, 0F);
helmet = new ModelRenderer(this, 67, 0);
helmet.addBox(-4.5F, -8.5F, -4.5F, 9, 9, 9);
helmet.setRotationPoint(0F, 0F, 0F);
helmet.setTextureSize(128, 64);
helmet.mirror = true;
setRotation(helmet, 0F, 0F, 0F);
leftClaw = new ModelRenderer(this, 67, 23);
leftClaw.addBox(1.5F, 6F, -2.5F, 2, 6, 5);
leftClaw.setRotationPoint(6F, 2F, 0F);
leftClaw.setTextureSize(128, 64);
leftClaw.mirror = true;
setRotation(leftClaw, 0F, 0F, 0F);
rightClaw = new ModelRenderer(this, 67, 23);
rightClaw.mirror = true;
rightClaw.addBox(-3.5F, 6F, -2.5F, 2, 6, 5);
rightClaw.setRotationPoint(-6F, 2F, 0F);
rightClaw.setTextureSize(128, 64);
rightClaw.mirror = true;
setRotation(rightClaw, 0F, 0F, 0F);
rightClaw.mirror = false;
leftShoulder = new ModelRenderer(this, 67, 35);
leftShoulder.addBox(-1F, -2.5F, -2.5F, 5, 4, 5);
leftShoulder.setRotationPoint(6F, 2F, 0F);
leftShoulder.setTextureSize(128, 64);
leftShoulder.mirror = true;
setRotation(leftShoulder, 0F, 0F, 0F);
rightShoulder = new ModelRenderer(this, 67, 35);
rightShoulder.mirror = true;
rightShoulder.addBox(-4F, -2.5F, -2.5F, 5, 4, 5);
rightShoulder.setRotationPoint(-6F, 2F, 0F);
rightShoulder.setTextureSize(128, 64);
rightShoulder.mirror = true;
setRotation(rightShoulder, 0F, 0F, 0F);
rightShoulder.mirror = false;
bar1 = new ModelRenderer(this, 67, 20);
bar1.addBox(-3F, 3F, 4F, 14, 1, 1);
bar1.setRotationPoint(0F, 0F, 0F);
bar1.setTextureSize(128, 64);
bar1.mirror = true;
setRotation(bar1, 0F, 0F, 0.7853982F);
bar2 = new ModelRenderer(this, 67, 20);
bar2.addBox(-11F, 3F, 4F, 14, 1, 1);
bar2.setRotationPoint(0F, 0F, 0F);
bar2.setTextureSize(128, 64);
bar2.mirror = true;
setRotation(bar2, 0F, 0F, -0.7853982F);
}
public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5)
{
super.render(entity, f, f1, f2, f3, f4, f5);
setRotationAngles(f, f1, f2, f3, f4, f5, entity);
head.render(f5);
chest.render(f5);
midrift.render(f5);
rightarm.render(f5);
leftarm.render(f5);
rightleg.render(f5);
leftleg.render(f5);
middle.render(f5);
helmet.render(f5);
leftClaw.render(f5);
rightClaw.render(f5);
leftShoulder.render(f5);
rightShoulder.render(f5);
bar1.render(f5);
bar2.render(f5);
}
private void setRotation(ModelRenderer model, float x, float y, float z)
{
model.rotateAngleX = x;
model.rotateAngleY = y;
model.rotateAngleZ = z;
}
public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity)
{
super.setRotationAngles(f, f1, f2, f3, f4, f5, entity);
this.head.rotateAngleX = f4 / (180F / (float) Math.PI);
this.head.rotateAngleY = f3 / (180F / (float) Math.PI);
this.helmet.rotateAngleX = this.head.rotateAngleX;
this.helmet.rotateAngleY = this.head.rotateAngleY;
this.leftleg.rotateAngleX = MathHelper.cos(f * 0.6662F) * 1.4F * f1;
this.rightleg.rotateAngleX = MathHelper.cos(f * 0.6662F + (float) Math.PI) * 1.0F * f1;
this.rightarm.rotateAngleX = MathHelper.cos(f * 0.6662F + (float) Math.PI) * 1.0F * f1;
this.leftarm.rotateAngleX = MathHelper.cos(f * 0.6662F) * 1.4F * f1;
this.leftClaw.rotateAngleX = this.leftarm.rotateAngleX;
this.leftShoulder.rotateAngleX = this.leftarm.rotateAngleX;
this.rightClaw.rotateAngleX = this.rightarm.rotateAngleX;
this.rightShoulder.rotateAngleX = this.rightarm.rotateAngleX;
}
}

View file

@ -221,4 +221,14 @@ entity.AWWayofTime.SmallEarthGolem.name=Small Earth Golem
entity.AWWayofTime.WingedFireDemon.name=Winged Fire Demon entity.AWWayofTime.WingedFireDemon.name=Winged Fire Demon
entity.AWWayofTime.BileDemon.name=Bile Demon entity.AWWayofTime.BileDemon.name=Bile Demon
entity.AWWayofTime.LowerGuardian.name=Lower Guardian entity.AWWayofTime.LowerGuardian.name=Lower Guardian
entity.AWWayofTime.FallenAngel.name=Fallen Angel entity.AWWayofTime.FallenAngel.name=Fallen Angel
entity.AWWayofTime.MinorDemonGruntGuardian.name=Demon Grunt Guardian
entity.AWWayofTime.MinorDemonGruntGuardianWind.name=Wind Demon Grunt Guardian
entity.AWWayofTime.MinorDemonGruntGuardianFire.name=Fire Demon Grunt Guardian
entity.AWWayofTime.MinorDemonGruntGuardianIce.name=Ice Demon Grunt Guardian
entity.AWWayofTime.MinorDemonGruntGuardianEarth.name=Earth Demon Grunt Guardian
entity.AWWayofTime.MinorDemonGruntWind.name=Wind Demon Grunt
entity.AWWayofTime.MinorDemonGruntFire.name=Fire Demon Grunt
entity.AWWayofTime.MinorDemonGruntIce.name=Ice Demon Grunt
entity.AWWayofTime.MinorDemonGruntEarth.name=Earth Demon Grunt
entity.AWWayofTime.MinorDemonGrunt.name=Demon Grunt

Binary file not shown.

Before

Width:  |  Height:  |  Size: 321 B

After

Width:  |  Height:  |  Size: 695 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 380 B

After

Width:  |  Height:  |  Size: 526 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB