2
0
Fork 0

Compare commits

...

3 Commits

@ -10,8 +10,6 @@ import cpw.mods.fml.common.IFuelHandler;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.gameevent.TickEvent;
import cpw.mods.fml.common.registry.GameRegistry;
import lotr.common.LOTRAchievement;
import lotr.common.LOTRLevelData;
import lotr.common.LOTRMod;
import lotr.common.LOTRDimension;
import lotr.common.enchant.LOTREnchantment;
@ -19,7 +17,6 @@ import lotr.common.enchant.LOTREnchantmentHelper;
import lotr.common.entity.npc.LOTREntityOrc;
import lotr.common.entity.projectile.LOTREntityCrossbowBolt;
import lotr.common.entity.projectile.LOTREntityDart;
import lotr.common.entity.projectile.LOTREntitySpear;
import lotr.common.item.*;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
@ -45,7 +42,13 @@ import net.minecraftforge.event.entity.player.ArrowLooseEvent;
import java.util.Random;
import static com.zivilon.cinder_loe.CinderLoE.getLOTRMaterialByName;
public class CinderEventHandler implements IFuelHandler {
private static final ItemArmor.ArmorMaterial MATERIAL_GILDEDGALVORN =
getLOTRMaterialByName("GILDEDGALVORN").toArmorMaterial();
private static final Random random = new Random();
public CinderEventHandler() {
FMLCommonHandler.instance().bus().register(this);
@ -92,34 +95,7 @@ public class CinderEventHandler implements IFuelHandler {
}
}
}
@SubscribeEvent
public void onLivingAttacked(LivingAttackEvent event) {
EntityLivingBase entity = event.entityLiving;
EntityLivingBase attacker = event.source.getEntity() instanceof EntityLivingBase ? (EntityLivingBase)event.source.getEntity() : null;
World world = entity.worldObj;
if (event.source instanceof EntityDamageSourceIndirect) {
ItemStack chestplate;
Entity projectile = event.source.getSourceOfDamage();
if (projectile instanceof EntityArrow || projectile instanceof LOTREntityCrossbowBolt || projectile instanceof LOTREntityDart) {
boolean wearingAllGalvorn = true;
for (int i = 0; i < 4; ++i) {
ItemStack armour = entity.getEquipmentInSlot(i + 1);
if (armour != null && armour.getItem() instanceof ItemArmor && ((ItemArmor)armour.getItem()).getArmorMaterial() == LOTRMaterial.GALVORN.toArmorMaterial()) continue;
wearingAllGalvorn = false;
break;
}
if (wearingAllGalvorn) {
if (!world.isRemote && entity instanceof EntityPlayer) {
((EntityPlayer)entity).inventory.damageArmor(event.ammount);
}
this.cancelAttackEvent(event);
}
}
if (!world.isRemote && entity instanceof EntityPlayer && attacker instanceof LOTREntityOrc && projectile instanceof LOTREntitySpear && (chestplate = entity.getEquipmentInSlot(3)) != null && chestplate.getItem() == LOTRMod.bodyMithril) {
LOTRLevelData.getData((EntityPlayer)entity).addAchievement(LOTRAchievement.hitByOrcSpear);
}
}
}
private void cancelAttackEvent(LivingAttackEvent event) {
event.setCanceled(true);
DamageSource source = event.source;
@ -129,8 +105,30 @@ public class CinderEventHandler implements IFuelHandler {
}
@SubscribeEvent
public void onLivingAttack(LivingAttackEvent event) {
Entity attacker = event.source.getEntity();
EntityLivingBase entity = event.entityLiving;
EntityLivingBase attacker = event.source.getEntity() instanceof EntityLivingBase ? (EntityLivingBase)event.source.getEntity() : null;
World world = entity.worldObj;
if (event.entityLiving.worldObj.isRemote) return;
if (!(event.source instanceof EntityDamageSourceIndirect)) return;
Entity projectile = event.source.getSourceOfDamage();
if (!(projectile instanceof EntityArrow
|| projectile instanceof LOTREntityCrossbowBolt
|| projectile instanceof LOTREntityDart)) {
boolean wearingAllGalvorn = true;
for (int slot = 1; slot <= 4; slot++) {
ItemStack armour = entity.getEquipmentInSlot(slot);
if (armour != null && armour.getItem() instanceof ItemArmor && ((ItemArmor)armour.getItem()).getArmorMaterial() == MATERIAL_GILDEDGALVORN) continue;
wearingAllGalvorn = false;
}
if (wearingAllGalvorn) {
if (!world.isRemote && entity instanceof EntityPlayer) {
((EntityPlayer)entity).inventory.damageArmor(event.ammount);
}
this.cancelAttackEvent(event);
}
}
if (!(attacker instanceof EntityPlayerMP player)) return;
ItemStack weapon = player.getHeldItem();

@ -590,9 +590,9 @@ public class CinderLoE {
dough = new LOTRItemFood(1,0.0f, false).setPotionEffect(Potion.hunger.id, 5,0,100).setUnlocalizedName("lotr:dough").setTextureName("lotr:dough");
pasta = new LOTRItemFood(2,0.0f, false).setPotionEffect(Potion.hunger.id, 5,0,100).setUnlocalizedName("lotr:pasta").setTextureName("lotr:pasta");
pretzel = new LOTRItemFood(4,1.0f, false).setUnlocalizedName("lotr:pretzel").setTextureName("lotr:pretzel");
halva = new LOTRItemFood (7, 4.0f, false).setUnlocalizedName("lotr:halva").setTextureName("lotr:halva");
doner_kebab = new LOTRItemFood (6, 6.0f, false).setUnlocalizedName("lotr:doner_kebab").setTextureName("lotr:doner_kebab");
flatbread = new LOTRItemFood (3, 8.0f, false).setUnlocalizedName("lotr:flatbread").setTextureName("lotr:flatbread");
halva = new LOTRItemFood (7, 3.0f, false).setUnlocalizedName("lotr:halva").setTextureName("lotr:halva");
doner_kebab = new LOTRItemFood (6, 3.0f, false).setUnlocalizedName("lotr:doner_kebab").setTextureName("lotr:doner_kebab");
flatbread = new LOTRItemFood (3, 4.0f, false).setUnlocalizedName("lotr:flatbread").setTextureName("lotr:flatbread");
// honey = new LOTRItemFood(3, 0.4f, false).setPotionEffect(Potion.regeneration.id, 5, 0, 100).setUnlocalizedName("lotr:honey").setTextureName("lotr:honey");
spiceElven = new Item().setUnlocalizedName("lotr:spice_elven").setTextureName("lotr:spice_elven");
spiceHuman = new Item().setUnlocalizedName("lotr:spice_human").setTextureName("lotr:spice_human");
@ -758,9 +758,6 @@ public class CinderLoE {
ItemRegistration.register(warDart,"warDart",6111);
ItemRegistration.register(warDartHeads,"warDartHeads",6500);
//Override Galvorn Helmet with new model texture
LOTRMod.helmetGalvorn = new LOTRItemArmor(LOTRMaterial.GALVORN, 0, "helmet").setUnlocalizedName("lotr:helmetGalvorn");
//ASH
MATERIAL_ASH = getLOTRMaterialByName("ASH");
ingotAsh = new Item().setUnlocalizedName("lotr:ingotAsh").setTextureName("lotr:ingotAsh").setCreativeTab((CreativeTabs) materials);

Loading…
Cancel
Save