1.3
parent
b8e432170c
commit
8d30eb8168
@ -0,0 +1,37 @@
|
|||||||
|
package com.zivilon.cinder_loe.client.model;
|
||||||
|
|
||||||
|
import net.minecraft.client.model.ModelBase;
|
||||||
|
import net.minecraft.client.model.ModelBiped;
|
||||||
|
import net.minecraft.client.model.ModelRenderer;
|
||||||
|
import net.minecraft.entity.Entity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ModelSunkenSkeleton - Cleric_red
|
||||||
|
* Created using Tabula 4.1.1
|
||||||
|
*/
|
||||||
|
public class ModelSunkenSkeleton
|
||||||
|
extends ModelBiped {
|
||||||
|
public ModelSunkenSkeleton() {
|
||||||
|
this(0.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ModelSunkenSkeleton(float f) {
|
||||||
|
super(f, 0.0f, 64, 32);
|
||||||
|
if (f == 0.0f) {
|
||||||
|
this.bipedRightArm = new ModelRenderer((ModelBase)this, 40, 16);
|
||||||
|
this.bipedRightArm.addBox(-1.0f, -2.0f, -1.0f, 2, 12, 2, f);
|
||||||
|
this.bipedRightArm.setRotationPoint(-5.0f, 2.0f, 0.0f);
|
||||||
|
this.bipedLeftArm = new ModelRenderer((ModelBase)this, 40, 16);
|
||||||
|
this.bipedLeftArm.mirror = true;
|
||||||
|
this.bipedLeftArm.addBox(-1.0f, -2.0f, -1.0f, 2, 12, 2, f);
|
||||||
|
this.bipedLeftArm.setRotationPoint(5.0f, 2.0f, 0.0f);
|
||||||
|
this.bipedRightLeg = new ModelRenderer((ModelBase)this, 0, 16);
|
||||||
|
this.bipedRightLeg.addBox(-1.0f, 0.0f, -1.0f, 2, 12, 2, f);
|
||||||
|
this.bipedRightLeg.setRotationPoint(-2.0f, 12.0f, 0.0f);
|
||||||
|
this.bipedLeftLeg = new ModelRenderer((ModelBase)this, 0, 16);
|
||||||
|
this.bipedLeftLeg.mirror = true;
|
||||||
|
this.bipedLeftLeg.addBox(-1.0f, 0.0f, -1.0f, 2, 12, 2, f);
|
||||||
|
this.bipedLeftLeg.setRotationPoint(2.0f, 12.0f, 0.0f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,36 @@
|
|||||||
|
package com.zivilon.cinder_loe.client.render.corrupt;
|
||||||
|
|
||||||
|
import com.zivilon.cinder_loe.client.model.ModelFangornElk;
|
||||||
|
import com.zivilon.cinder_loe.client.model.ModelSunkenSkeleton;
|
||||||
|
import com.zivilon.cinder_loe.entity.corrupt.CorruptMan;
|
||||||
|
import lotr.client.model.LOTRModelHuman;
|
||||||
|
import lotr.client.model.LOTRModelSkeleton;
|
||||||
|
import lotr.client.render.entity.LOTRRandomSkins;
|
||||||
|
import lotr.client.render.entity.LOTRRenderBiped;
|
||||||
|
import lotr.client.render.entity.LOTRRenderGondorMan;
|
||||||
|
import lotr.client.render.entity.LOTRRenderSkeleton;
|
||||||
|
import net.minecraft.client.model.ModelBase;
|
||||||
|
import net.minecraft.client.model.ModelBiped;
|
||||||
|
import net.minecraft.client.renderer.entity.RenderBiped;
|
||||||
|
import net.minecraft.client.renderer.entity.RenderLiving;
|
||||||
|
import net.minecraft.entity.Entity;
|
||||||
|
import net.minecraft.entity.EntityLiving;
|
||||||
|
import net.minecraft.util.ResourceLocation;
|
||||||
|
|
||||||
|
public class RenderCorruptSkeleton extends RenderBiped {
|
||||||
|
|
||||||
|
private static ResourceLocation skin = new ResourceLocation("textures/entity/skeleton/skeleton.png");
|
||||||
|
|
||||||
|
public RenderCorruptSkeleton() {
|
||||||
|
super(new ModelSunkenSkeleton(), 0.5F);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void func_82421_b() {
|
||||||
|
this.field_82423_g = new ModelSunkenSkeleton(1.0F);
|
||||||
|
this.field_82425_h = new ModelSunkenSkeleton(0.5F);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected ResourceLocation func_110775_a(Entity entity) {
|
||||||
|
return skin;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,87 @@
|
|||||||
|
package com.zivilon.cinder_loe.entity.corrupt;
|
||||||
|
|
||||||
|
import com.zivilon.cinder_loe.CinderLoE_Config;
|
||||||
|
import lotr.common.entity.ai.LOTREntityAIAttackOnCollide;
|
||||||
|
import lotr.common.entity.npc.LOTREntityGondorMan;
|
||||||
|
import lotr.common.entity.npc.LOTRNames;
|
||||||
|
import lotr.common.fac.LOTRFaction;
|
||||||
|
import lotr.common.quest.LOTRMiniQuest;
|
||||||
|
import lotr.common.quest.LOTRMiniQuestFactory;
|
||||||
|
import net.minecraft.entity.EntityLivingBase;
|
||||||
|
import net.minecraft.entity.IEntityLivingData;
|
||||||
|
import net.minecraft.entity.SharedMonsterAttributes;
|
||||||
|
import net.minecraft.entity.ai.EntityAIBase;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.init.Items;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.util.MovingObjectPosition;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
public class CorruptSkeleton extends CorruptMan {
|
||||||
|
|
||||||
|
public CorruptSkeleton(World world) {
|
||||||
|
super(world);
|
||||||
|
this.addTargetTasks(true);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void setupNPCName() {
|
||||||
|
this.familyInfo.setName(LOTRNames.getGondorName(this.rand, this.familyInfo.isMale()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void applyEntityAttributes() {
|
||||||
|
super.applyEntityAttributes();
|
||||||
|
this.getEntityAttribute(SharedMonsterAttributes.followRange).setBaseValue(70.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IEntityLivingData onSpawnWithEgg(IEntityLivingData data) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public LOTRFaction getFaction() {
|
||||||
|
return LOTRFaction.valueOf(CinderLoE_Config.corrupt_faction);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getNPCName() {
|
||||||
|
return this.familyInfo.getName();
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
protected float getSoundPitch() {
|
||||||
|
return super.getSoundPitch() * 0.65f;
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public String getHurtSound() {
|
||||||
|
return "mob.skeleton.hurt";
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public String getDeathSound() {
|
||||||
|
return "mob.skeleton.death";
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLivingSound() {
|
||||||
|
return "mob.skeleton.say";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getAttackSound() {
|
||||||
|
return "mob.skeleton.say";
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public String getSpeechBank(EntityPlayer entityplayer) {
|
||||||
|
if (this.isFriendlyAndAligned(entityplayer)) {
|
||||||
|
return "corruptSpeak/all/skeleton";
|
||||||
|
}
|
||||||
|
return "corruptSpeak/all/skeleton";
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
protected void dropFewItems(boolean flag, int i) {
|
||||||
|
super.dropFewItems(flag, i);
|
||||||
|
int bones = this.rand.nextInt(3) + this.rand.nextInt(i + 1);
|
||||||
|
for (int l = 0; l < bones; ++l) {
|
||||||
|
this.dropItem(Items.bone, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,81 @@
|
|||||||
|
package com.zivilon.cinder_loe.entity.corrupt;
|
||||||
|
|
||||||
|
import com.zivilon.cinder_loe.CinderLoE_Config;
|
||||||
|
import lotr.common.LOTRMod;
|
||||||
|
import lotr.common.entity.ai.LOTREntityAIAttackOnCollide;
|
||||||
|
import lotr.common.entity.ai.LOTREntityAIRangedAttack;
|
||||||
|
import lotr.common.entity.npc.LOTREntityNPC;
|
||||||
|
import lotr.common.entity.npc.LOTRNames;
|
||||||
|
import lotr.common.fac.LOTRFaction;
|
||||||
|
import net.minecraft.entity.EntityLiving;
|
||||||
|
import net.minecraft.entity.EntityLivingBase;
|
||||||
|
import net.minecraft.entity.IEntityLivingData;
|
||||||
|
import net.minecraft.entity.ai.EntityAIAvoidEntity;
|
||||||
|
import net.minecraft.entity.ai.EntityAIBase;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.entity.player.EntityPlayerMP;
|
||||||
|
import net.minecraft.init.Items;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
public class CorruptSkeletonArcher extends CorruptSkeleton {
|
||||||
|
|
||||||
|
public CorruptSkeletonArcher(World world) {
|
||||||
|
super(world);
|
||||||
|
((EntityLiving)this).tasks.addTask(0, (EntityAIBase)new LOTREntityAIRangedAttack(this, 1.4, 30, 50, 16.0f));
|
||||||
|
this.tasks.addTask(10, (EntityAIBase)new EntityAIAvoidEntity(this, EntityPlayerMP.class, 12.0f, 1.0, 1.5));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setupNPCName() {
|
||||||
|
this.familyInfo.setName(LOTRNames.getGondorName(this.rand, this.familyInfo.isMale()));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void attackEntityWithRangedAttack(EntityLivingBase target, float f) {
|
||||||
|
npcArrowAttack(target, f);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public IEntityLivingData onSpawnWithEgg(IEntityLivingData data) {
|
||||||
|
data = super.onSpawnWithEgg(data);
|
||||||
|
this.npcItemsInv.setRangedWeapon(new ItemStack(Items.bow));
|
||||||
|
this.npcItemsInv.setIdleItem(this.npcItemsInv.getRangedWeapon());
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void dropFewItems(boolean flag, int i) {
|
||||||
|
super.dropFewItems(flag, i);
|
||||||
|
this.dropNPCArrows(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onAttackModeChange(LOTREntityNPC.AttackMode mode, boolean mounted) {
|
||||||
|
if (mode == LOTREntityNPC.AttackMode.IDLE) {
|
||||||
|
this.setCurrentItemOrArmor(0, this.npcItemsInv.getIdleItem());
|
||||||
|
} else {
|
||||||
|
this.setCurrentItemOrArmor(0, this.npcItemsInv.getRangedWeapon());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public LOTRFaction getFaction() {
|
||||||
|
return LOTRFaction.valueOf(CinderLoE_Config.corrupt_faction);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getNPCName() {
|
||||||
|
return this.familyInfo.getName();
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
protected float getSoundPitch() {
|
||||||
|
return super.getSoundPitch() * 0.65f;
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public String getSpeechBank(EntityPlayer entityplayer) {
|
||||||
|
if (this.isFriendlyAndAligned(entityplayer)) {
|
||||||
|
return "corruptSpeak/all/skeleton";
|
||||||
|
}
|
||||||
|
return "corruptSpeak/all/skeleton";
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,63 @@
|
|||||||
|
package com.zivilon.cinder_loe.mixins.overrides;
|
||||||
|
|
||||||
|
import com.zivilon.cinder_loe.CinderLoE;
|
||||||
|
import lotr.common.LOTRMod;
|
||||||
|
import lotr.common.entity.animal.LOTREntityBear;
|
||||||
|
import lotr.common.entity.npc.LOTREntityWarg;
|
||||||
|
import net.minecraft.entity.Entity;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.Overwrite;
|
||||||
|
import org.spongepowered.asm.mixin.Shadow;
|
||||||
|
|
||||||
|
|
||||||
|
@Mixin(LOTREntityBear.class)
|
||||||
|
public abstract class MixinLOTREntityBear extends Entity {
|
||||||
|
|
||||||
|
public MixinLOTREntityBear(World worldIn) {
|
||||||
|
super(worldIn);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author KeyLime17
|
||||||
|
* @reason Mevans
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Shadow
|
||||||
|
public abstract LOTREntityBear.BearType getBearType();
|
||||||
|
|
||||||
|
@Overwrite(remap = false)
|
||||||
|
protected void func_70628_a(boolean flag, int i) {
|
||||||
|
Item furItem = null;
|
||||||
|
int furMeta = 0;
|
||||||
|
switch(getBearType().bearID) {
|
||||||
|
case 0:
|
||||||
|
furItem = LOTRMod.fur;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
furItem = CinderLoE.cinderFurItem;
|
||||||
|
furMeta = 5;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
furItem = CinderLoE.cinderFurItem;
|
||||||
|
furMeta = 4;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
int furs = 1 + this.rand.nextInt(3) + this.rand.nextInt(i + 1);
|
||||||
|
for (int l = 0; l < furs; l++)
|
||||||
|
entityDropItem(new ItemStack(furItem, 1, furMeta), 0.0F);
|
||||||
|
int bones = 2 + this.rand.nextInt(2) + this.rand.nextInt(i + 1);
|
||||||
|
for (int j = 0; j < bones; j++)
|
||||||
|
dropItem(LOTRMod.wargBone, 1);
|
||||||
|
if (flag) {
|
||||||
|
int rugChance = 50 - i * 8;
|
||||||
|
rugChance = Math.max(rugChance, 1);
|
||||||
|
if (this.rand.nextInt(rugChance) == 0)
|
||||||
|
entityDropItem(new ItemStack(LOTRMod.wargskinRug, 1, (getBearType()).bearID), 0.0F);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,48 @@
|
|||||||
|
package com.zivilon.cinder_loe.mixins.overrides;
|
||||||
|
|
||||||
|
import com.zivilon.cinder_loe.CinderLoE;
|
||||||
|
import lotr.common.LOTRMod;
|
||||||
|
import lotr.common.entity.animal.LOTREntityBear;
|
||||||
|
import lotr.common.item.LOTRItemLionRug;
|
||||||
|
import net.minecraft.entity.Entity;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.Overwrite;
|
||||||
|
import org.spongepowered.asm.mixin.Shadow;
|
||||||
|
|
||||||
|
|
||||||
|
@Mixin(LOTREntityBear.class)
|
||||||
|
public abstract class MixinLOTREntityLioness extends Entity {
|
||||||
|
|
||||||
|
public MixinLOTREntityLioness(World worldIn) {
|
||||||
|
super(worldIn);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author KeyLime17
|
||||||
|
* @reason Mevans
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
protected LOTRItemLionRug.LionRugType getLionRugType() {
|
||||||
|
return LOTRItemLionRug.LionRugType.LIONESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Overwrite(remap = false)
|
||||||
|
protected void func_70628_a(boolean flag, int i) {
|
||||||
|
Item furItem = CinderLoE.cinderFurItem;
|
||||||
|
int furMeta = 6;
|
||||||
|
|
||||||
|
int furs = 1 + this.rand.nextInt(3) + this.rand.nextInt(i + 1);
|
||||||
|
for (int l = 0; l < furs; l++)
|
||||||
|
entityDropItem(new ItemStack(furItem, 1, furMeta), 0.0F);
|
||||||
|
if (flag) {
|
||||||
|
int rugChance = 50 - i * 8;
|
||||||
|
rugChance = Math.max(rugChance, 1);
|
||||||
|
if (this.rand.nextInt(rugChance) == 0)
|
||||||
|
entityDropItem(new ItemStack(LOTRMod.lionRug, 1, (getLionRugType()).lionID), 0.0F);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,17 @@
|
|||||||
|
package com.zivilon.cinder_loe.mixins.overrides;
|
||||||
|
|
||||||
|
import lotr.client.gui.LOTRGuiMap;
|
||||||
|
import net.minecraft.util.ResourceLocation;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.Shadow;
|
||||||
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||||
|
|
||||||
|
|
||||||
|
@Mixin(LOTRGuiMap.class)
|
||||||
|
public class MixinSepiaOverride {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,6 @@
|
|||||||
|
ᛒᛟᚹ ᛒᛖᚠᛟᚱᛖ ᚦᛖ ᛞᛖᛞ!
|
||||||
|
ᛒᛖᚷ ᚠᛟᚱ ᛗᛖᚱᚲᛁ!
|
||||||
|
ᛖᛏᛖᚱᚾᚨᛚ ᛈᚨᛁᚾ ᚢᛈᛟᚾ ᛁᛟᚢ!
|
||||||
|
ᛞᛖᚦ ᚢᛈᛟᚾ ᛁᛟᚢ!
|
||||||
|
ᛈᚨᛁᚾ, ᛊᚺᚨᛗᛖ, ᚺᛟᚱᚱᛟᚱ ᛏᛟ ᛁᛟᚢ!
|
||||||
|
ᛞᚱᛟᚹᚾ ᛁᚾ ᛒᛚᛟᛟᛞ ᛊᛚᚨᚢᛖ!
|
||||||
@ -0,0 +1,6 @@
|
|||||||
|
ᛒᛟᚹ ᛒᛖᚠᛟᚱᛖ ᚦᛖ ᛞᛖᛞ!
|
||||||
|
ᛒᛖᚷ ᚠᛟᚱ ᛗᛖᚱᚲᛁ!
|
||||||
|
ᛖᛏᛖᚱᚾᚨᛚ ᛈᚨᛁᚾ ᚢᛈᛟᚾ ᛁᛟᚢ!
|
||||||
|
ᛞᛖᚦ ᚢᛈᛟᚾ ᛁᛟᚢ!
|
||||||
|
ᛈᚨᛁᚾ, ᛊᚺᚨᛗᛖ, ᚺᛟᚱᚱᛟᚱ ᛏᛟ ᛁᛟᚢ!
|
||||||
|
ᛞᚱᛟᚹᚾ ᛁᚾ ᛒᛚᛟᛟᛞ ᛊᛚᚨᚢᛖ!
|
||||||
@ -0,0 +1 @@
|
|||||||
|
you shouldnt be able to see this
|
||||||
Loading…
Reference in New Issue