Mouth of Sauron ability created
@ -0,0 +1,96 @@
|
|||||||
|
package com.zivilon.cinder_loe.client.model;
|
||||||
|
|
||||||
|
import lotr.client.model.LOTRModelBiped;
|
||||||
|
import net.minecraft.client.model.ModelBox;
|
||||||
|
import net.minecraft.client.model.ModelRenderer;
|
||||||
|
import net.minecraft.entity.Entity;
|
||||||
|
|
||||||
|
// Made with Blockbench 4.12.5
|
||||||
|
// Exported for Minecraft version 1.7 - 1.12
|
||||||
|
// Paste this class into your mod and generate all required imports
|
||||||
|
|
||||||
|
public class ModelBodyDorwinionElite extends LOTRModelBiped {
|
||||||
|
public ModelRenderer Body;
|
||||||
|
public ModelRenderer Backplate;
|
||||||
|
public ModelRenderer FrontPlate;
|
||||||
|
public ModelRenderer LeftArm;
|
||||||
|
public ModelRenderer PauldronLeft;
|
||||||
|
public ModelRenderer PauldronTopperLeft;
|
||||||
|
public ModelRenderer RightArm;
|
||||||
|
public ModelRenderer PauldronRight;
|
||||||
|
public ModelRenderer PauldronTopperRight;
|
||||||
|
|
||||||
|
public ModelBodyDorwinionElite(float f) {
|
||||||
|
textureWidth = 64;
|
||||||
|
textureHeight = 64;
|
||||||
|
this.bipedBody.cubeList.clear();
|
||||||
|
this.bipedRightArm.cubeList.clear();
|
||||||
|
this.bipedLeftArm.cubeList.clear();
|
||||||
|
this.bipedHead.cubeList.clear();
|
||||||
|
this.bipedHeadwear.cubeList.clear();
|
||||||
|
this.bipedRightLeg.cubeList.clear();
|
||||||
|
this.bipedLeftLeg.cubeList.clear();
|
||||||
|
|
||||||
|
Body = new ModelRenderer(this);
|
||||||
|
Body.setRotationPoint(0.0F, 0.0F, 0.0F);
|
||||||
|
bipedBody.addChild(Body);
|
||||||
|
Body.cubeList.add(new ModelBox(Body, 0, 16, -4.0F, 0.0F, -2.0F, 8, 12, 4, 0.5F));
|
||||||
|
|
||||||
|
Backplate = new ModelRenderer(this);
|
||||||
|
Backplate.setRotationPoint(0.0F, 0.0F, 0.0F);
|
||||||
|
bipedBody.addChild(Backplate);
|
||||||
|
Backplate.cubeList.add(new ModelBox(Backplate, 22, 4, -5.0F, -1.05F, 2.8F, 10, 8, 0, 0.0F));
|
||||||
|
|
||||||
|
FrontPlate = new ModelRenderer(this);
|
||||||
|
FrontPlate.setRotationPoint(0.0F, 0.0F, 0.0F);
|
||||||
|
bipedBody.addChild(FrontPlate);
|
||||||
|
FrontPlate.cubeList.add(new ModelBox(FrontPlate, 32, 4, -5.0F, -1.05F, -2.8F, 10, 8, 0, 0.0F));
|
||||||
|
|
||||||
|
LeftArm = new ModelRenderer(this);
|
||||||
|
LeftArm.setRotationPoint(-1.0F, -2.0F, -2.0F);
|
||||||
|
bipedLeftArm.addChild(LeftArm);
|
||||||
|
LeftArm.cubeList.add(new ModelBox(LeftArm, 25, 35, 0.0F, 0.0F, 0.0F, 4, 12, 4, 0.5F));
|
||||||
|
|
||||||
|
PauldronLeft = new ModelRenderer(this);
|
||||||
|
PauldronLeft.setRotationPoint(0.0F, 0.0F, 0.0F);
|
||||||
|
LeftArm.addChild(PauldronLeft);
|
||||||
|
setRotationAngle(PauldronLeft, 0.0F, 0.0F, 0.0873F);
|
||||||
|
PauldronLeft.cubeList.add(new ModelBox(PauldronLeft, 40, 47, -0.5F, -1.4F, -1.0F, 6, 6, 6, 0.0F));
|
||||||
|
|
||||||
|
PauldronTopperLeft = new ModelRenderer(this);
|
||||||
|
PauldronTopperLeft.setRotationPoint(0.0F, 0.0F, 0.0F);
|
||||||
|
LeftArm.addChild(PauldronTopperLeft);
|
||||||
|
setRotationAngle(PauldronTopperLeft, 0.0F, 0.0F, 0.0873F);
|
||||||
|
PauldronTopperLeft.cubeList.add(new ModelBox(PauldronTopperLeft, 48, 8, 0.5F, -3.4F, -2.0F, 0, 4, 8, 0.0F));
|
||||||
|
|
||||||
|
RightArm = new ModelRenderer(this);
|
||||||
|
RightArm.setRotationPoint(-1.0F, -2.0F, -2.0F);
|
||||||
|
bipedRightArm.addChild(RightArm);
|
||||||
|
RightArm.cubeList.add(new ModelBox(RightArm, 24, 16, -2.0F, 0.0F, 0.0F, 4, 12, 4, 0.5F));
|
||||||
|
|
||||||
|
PauldronRight = new ModelRenderer(this);
|
||||||
|
PauldronRight.setRotationPoint(0.0F, 0.0F, 0.0F);
|
||||||
|
RightArm.addChild(PauldronRight);
|
||||||
|
setRotationAngle(PauldronRight, 0.0F, 0.0F, -0.0873F);
|
||||||
|
PauldronRight.cubeList.add(new ModelBox(PauldronRight, 40, 20, -3.5F, -1.4F, -1.0F, 6, 6, 6, 0.0F));
|
||||||
|
|
||||||
|
PauldronTopperRight = new ModelRenderer(this);
|
||||||
|
PauldronTopperRight.setRotationPoint(0.0F, 0.0F, 0.0F);
|
||||||
|
RightArm.addChild(PauldronTopperRight);
|
||||||
|
setRotationAngle(PauldronTopperRight, 0.0F, 0.0F, -0.0873F);
|
||||||
|
PauldronTopperRight.cubeList.add(new ModelBox(PauldronTopperRight, 48, 8, 1.5F, -3.4F, -2.0F, 0, 4, 8, 0.0F));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) {
|
||||||
|
this.bipedBody.render(f5);
|
||||||
|
this.bipedLeftArm.render(f5);
|
||||||
|
this.bipedRightArm.render(f5);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRotationAngle(ModelRenderer modelRenderer, float x, float y, float z) {
|
||||||
|
modelRenderer.rotateAngleX = x;
|
||||||
|
modelRenderer.rotateAngleY = y;
|
||||||
|
modelRenderer.rotateAngleZ = z;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,112 +0,0 @@
|
|||||||
package com.zivilon.cinder_loe.client.model;// Made with Blockbench 4.12.4
|
|
||||||
// Exported for Minecraft version 1.7 - 1.12
|
|
||||||
// Paste this class into your mod and generate all required imports
|
|
||||||
|
|
||||||
|
|
||||||
import lotr.client.model.LOTRModelBiped;
|
|
||||||
import net.minecraft.client.model.ModelBox;
|
|
||||||
import net.minecraft.client.model.ModelRenderer;
|
|
||||||
import net.minecraft.entity.Entity;
|
|
||||||
|
|
||||||
//======================================================
|
|
||||||
//Deprecated
|
|
||||||
//======================================================
|
|
||||||
|
|
||||||
|
|
||||||
public class ModelDorwinionChestplate extends LOTRModelBiped {
|
|
||||||
// private final ModelRenderer bipedRightArm_r1;
|
|
||||||
// private final ModelRenderer BLOODGUARDPAULDRONRIGHTTOPPER_r1;
|
|
||||||
// private final ModelRenderer BLOODGUARDPAULDRONRIGHT_r1;
|
|
||||||
// private final ModelRenderer BLOODGUARDPAULDRONLEFT_r1;
|
|
||||||
// private final ModelRenderer BLOODGUARDPAULDRONLEFTTOPPER_r1;
|
|
||||||
|
|
||||||
public ModelDorwinionChestplate(float f) {
|
|
||||||
super(f);
|
|
||||||
textureWidth = 64;
|
|
||||||
textureHeight = 64;
|
|
||||||
this.bipedBody.cubeList.clear();
|
|
||||||
this.bipedRightArm.cubeList.clear();
|
|
||||||
this.bipedLeftArm.cubeList.clear();
|
|
||||||
|
|
||||||
bipedBody = new ModelRenderer(this);
|
|
||||||
bipedBody.setRotationPoint(0.0F, 0.0F, 0.0F);
|
|
||||||
bipedBody.cubeList.add(new ModelBox(bipedBody, 0, 16, -4.0F, 0.0F, -2.0F, 8, 12, 4, 0.5F));
|
|
||||||
bipedBody.cubeList.add(new ModelBox(bipedBody, 22, 4, -5.0F, -1.05F, 2.8F, 10, 8, 0, 0.0F));
|
|
||||||
bipedBody.cubeList.add(new ModelBox(bipedBody, 32, 4, -5.0F, -1.05F, -2.8F, 10, 8, 0, 0.0F));
|
|
||||||
|
|
||||||
//bipedLeftArm = new ModelRenderer(this, 40, 16);
|
|
||||||
bipedLeftArm = new ModelRenderer(this, 24, 16);
|
|
||||||
this.bipedLeftArm.mirror = true;
|
|
||||||
this.bipedLeftArm.setRotationPoint(-5.0F, 2.0F, 0.0F);
|
|
||||||
//bipedLeftArm.cubeList.add(new ModelBox(bipedLeftArm, 24, 16, -9.0F, -24.0F, -2.0F, 4, 12, 4, 0.5F));
|
|
||||||
this.bipedLeftArm.addBox(-9.0F, -24.0F, -2.0F, 4, 12, 4, 0.5F);
|
|
||||||
this.setRotationAngle(bipedLeftArm, 0.0F, 0.0F, 0.026354471705114374F);
|
|
||||||
|
|
||||||
this.bipedRightArm = new ModelRenderer(this, 40, 16);
|
|
||||||
this.bipedRightArm.setRotationPoint(5.0F, 2.0F, 0.0F);
|
|
||||||
|
|
||||||
// bipedRightArm = new ModelRenderer(this, 40, 16);
|
|
||||||
// bipedRightArm.setRotationPoint(5.0F, 2.0F, 0.0F);
|
|
||||||
// bipedRightArm.mirror = true;
|
|
||||||
|
|
||||||
// bipedLeftArm = new ModelRenderer(this,40, 16);
|
|
||||||
// bipedLeftArm.setRotationPoint(0.0F, 24.0F, 0.0F);
|
|
||||||
// bipedLeftArm.cubeList.add(new ModelBox(bipedLeftArm, 24, 16, -9.0F, -24.0F, -2.0F, 4, 12, 4, 0.5F));
|
|
||||||
|
|
||||||
//
|
|
||||||
// bipedRightArm_r1 = new ModelRenderer(this);
|
|
||||||
// bipedRightArm_r1.setRotationPoint(-2.0F, 22.0F, 0.0F);
|
|
||||||
//
|
|
||||||
// setRotationAngle(bipedRightArm_r1, 0.0F, 3.1416F, 0.0F);
|
|
||||||
// bipedRightArm_r1.cubeList.add(new ModelBox(bipedRightArm_r1, 24, 16, -6.0F, -24.0F, -2.0F, 4, 12, 4, 0.5F));
|
|
||||||
//
|
|
||||||
// BLOODGUARDPAULDRONRIGHTTOPPER_r1 = new ModelRenderer(this);
|
|
||||||
// BLOODGUARDPAULDRONRIGHTTOPPER_r1.setRotationPoint(2.0F, -1.0F, 3.0F);
|
|
||||||
//
|
|
||||||
// setRotationAngle(BLOODGUARDPAULDRONRIGHTTOPPER_r1, 0.0F, 3.1416F, 0.0873F);
|
|
||||||
// BLOODGUARDPAULDRONRIGHTTOPPER_r1.cubeList.add(new ModelBox(BLOODGUARDPAULDRONRIGHTTOPPER_r1, 48, 8, 1.6F, -3.9F, -1.0F, 0, 4, 8, 0.0F));
|
|
||||||
//
|
|
||||||
// BLOODGUARDPAULDRONRIGHT_r1 = new ModelRenderer(this);
|
|
||||||
// BLOODGUARDPAULDRONRIGHT_r1.setRotationPoint(0.0F, 3.0F, 3.0F);
|
|
||||||
//
|
|
||||||
// setRotationAngle(BLOODGUARDPAULDRONRIGHT_r1, 0.0F, 3.1416F, 0.0873F);
|
|
||||||
// BLOODGUARDPAULDRONRIGHT_r1.cubeList.add(new ModelBox(BLOODGUARDPAULDRONRIGHT_r1, 40, 20, -5.0F, -6.0F, 0.0F, 6, 6, 6, 0.0F));
|
|
||||||
//
|
|
||||||
// BLOODGUARDPAULDRONLEFT_r1 = new ModelRenderer(this);
|
|
||||||
// BLOODGUARDPAULDRONLEFT_r1.setRotationPoint(-5.0F, -19.0F, -3.0F);
|
|
||||||
//
|
|
||||||
// setRotationAngle(BLOODGUARDPAULDRONLEFT_r1, 0.0F, 0.0F, -0.0873F);
|
|
||||||
// BLOODGUARDPAULDRONLEFT_r1.cubeList.add(new ModelBox(BLOODGUARDPAULDRONLEFT_r1, 40, 20, -5.0F, -6.0F, 0.0F, 6, 6, 6, 0.0F));
|
|
||||||
//
|
|
||||||
// BLOODGUARDPAULDRONLEFTTOPPER_r1 = new ModelRenderer(this);
|
|
||||||
// BLOODGUARDPAULDRONLEFTTOPPER_r1.setRotationPoint(-6.0F, -23.0F, -3.0F);
|
|
||||||
//
|
|
||||||
// setRotationAngle(BLOODGUARDPAULDRONLEFTTOPPER_r1, 0.0F, 0.0F, -0.0873F);
|
|
||||||
// BLOODGUARDPAULDRONLEFTTOPPER_r1.cubeList.add(new ModelBox(BLOODGUARDPAULDRONLEFTTOPPER_r1, 48, 8, 0.6F, -3.9F, -1.0F, 0, 4, 8, 0.0F));
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// bipedRightArm.addChild(BLOODGUARDPAULDRONRIGHTTOPPER_r1);
|
|
||||||
// bipedRightArm.addChild(bipedRightArm_r1);
|
|
||||||
// bipedLeftArm.addChild(BLOODGUARDPAULDRONLEFTTOPPER_r1);
|
|
||||||
// bipedLeftArm.addChild(BLOODGUARDPAULDRONLEFT_r1);
|
|
||||||
// bipedRightArm.addChild(BLOODGUARDPAULDRONRIGHT_r1);
|
|
||||||
|
|
||||||
this.bipedHead.cubeList.clear();
|
|
||||||
this.bipedHeadwear.cubeList.clear();
|
|
||||||
this.bipedRightLeg.cubeList.clear();
|
|
||||||
this.bipedLeftLeg.cubeList.clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) {
|
|
||||||
bipedBody.render(f5);
|
|
||||||
bipedRightArm.render(f5);
|
|
||||||
bipedLeftArm.render(f5);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setRotationAngle(ModelRenderer modelRenderer, float x, float y, float z) {
|
|
||||||
modelRenderer.rotateAngleX = x;
|
|
||||||
modelRenderer.rotateAngleY = y;
|
|
||||||
modelRenderer.rotateAngleZ = z;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -0,0 +1,69 @@
|
|||||||
|
package com.zivilon.cinder_loe.items.specials;
|
||||||
|
|
||||||
|
import cpw.mods.fml.common.network.simpleimpl.IMessage;
|
||||||
|
import lotr.common.LOTRLevelData;
|
||||||
|
import lotr.common.LOTRMod;
|
||||||
|
import lotr.common.entity.animal.LOTREntityHorse;
|
||||||
|
import lotr.common.fac.LOTRFaction;
|
||||||
|
import lotr.common.item.LOTRItemSword;
|
||||||
|
import lotr.common.item.LOTRMaterial;
|
||||||
|
import lotr.common.network.LOTRPacketHandler;
|
||||||
|
import lotr.common.network.LOTRPacketWeaponFX;
|
||||||
|
import net.minecraft.entity.Entity;
|
||||||
|
import net.minecraft.entity.EntityLiving;
|
||||||
|
import net.minecraft.entity.EntityLivingBase;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.server.MinecraftServer;
|
||||||
|
import net.minecraft.util.DamageSource;
|
||||||
|
import net.minecraft.util.MathHelper;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class MouthOfSauronWeapon extends LOTRItemSword {
|
||||||
|
|
||||||
|
public MouthOfSauronWeapon() {
|
||||||
|
super(LOTRMaterial.MORDOR);
|
||||||
|
this.setMaxDamage(1500);
|
||||||
|
this.lotrWeaponDamage = 8.0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ItemStack onEaten(ItemStack itemstack, World world, EntityPlayer entityplayer) {
|
||||||
|
itemstack.damageItem(2, (EntityLivingBase)entityplayer);
|
||||||
|
return MouthOfSauronWeapon.useAbility(itemstack, world, (EntityLivingBase)entityplayer);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ItemStack useAbility(ItemStack itemstack, World world, EntityLivingBase user) {
|
||||||
|
user.swingItem();
|
||||||
|
world.playSoundAtEntity((Entity)user, "mob.wither.hurt", 2.0f, (itemRand.nextFloat() - itemRand.nextFloat()) * 0.2f + 1.0f);
|
||||||
|
if (!world.isRemote) {
|
||||||
|
List entities = world.getEntitiesWithinAABB(EntityLivingBase.class, user.boundingBox.expand(12.0, 8.0, 12.0));
|
||||||
|
if (!entities.isEmpty()) {
|
||||||
|
for (int i = 0; i < entities.size(); ++i) {
|
||||||
|
EntityLiving entityliving;
|
||||||
|
EntityLivingBase entity = (EntityLivingBase)entities.get(i);
|
||||||
|
if (entity == user || entity instanceof EntityLiving && LOTRFaction.MORDOR.isGoodRelation(LOTRMod.getNPCFaction((Entity)(entityliving = (EntityLiving)entity))) || entity instanceof EntityPlayer && (!(user instanceof EntityPlayer) ? user instanceof EntityLiving && ((EntityLiving)user).getAttackTarget() != entity && LOTRLevelData.getData((EntityPlayer)entity).getAlignment(LOTRFaction.MORDOR) > 0.0f : !MinecraftServer.getServer().isPVPEnabled() || LOTRLevelData.getData((EntityPlayer)entity).getAlignment(LOTRFaction.MORDOR) > 0.0f)) continue;
|
||||||
|
float strength = 6.0f - user.getDistanceToEntity((Entity)entity) * 0.75f;
|
||||||
|
if (strength < 1.0f) {
|
||||||
|
strength = 1.0f;
|
||||||
|
}
|
||||||
|
if (user instanceof EntityPlayer) {
|
||||||
|
entity.attackEntityFrom(DamageSource.causePlayerDamage((EntityPlayer)((EntityPlayer)user)), 6.0f * strength);
|
||||||
|
} else {
|
||||||
|
entity.attackEntityFrom(DamageSource.causeMobDamage((EntityLivingBase)user), 6.0f * strength);
|
||||||
|
}
|
||||||
|
float knockback = strength;
|
||||||
|
if (knockback > 4.0f) {
|
||||||
|
knockback = 4.0f;
|
||||||
|
}
|
||||||
|
if (!(entity instanceof LOTREntityHorse)) entity.addVelocity((double)(-MathHelper.sin((float)(user.rotationYaw * (float)Math.PI / 180.0f)) * 0.7f * knockback), 0.2 + 0.12 * (double)knockback, (double)(MathHelper.cos((float)(user.rotationYaw * (float)Math.PI / 180.0f)) * 0.7f * knockback));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
LOTRPacketWeaponFX packet = new LOTRPacketWeaponFX(LOTRPacketWeaponFX.Type.MACE_SAURON, (Entity)user);
|
||||||
|
LOTRPacketHandler.networkWrapper.sendToAllAround((IMessage)packet, LOTRPacketHandler.nearEntity((Entity)user, 64.0));
|
||||||
|
}
|
||||||
|
return itemstack;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 729 B After Width: | Height: | Size: 700 B |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 473 B After Width: | Height: | Size: 344 B |
|
After Width: | Height: | Size: 638 B |
|
Before Width: | Height: | Size: 303 B After Width: | Height: | Size: 251 B |
|
Before Width: | Height: | Size: 421 B After Width: | Height: | Size: 313 B |
|
Before Width: | Height: | Size: 352 B After Width: | Height: | Size: 401 B |