2
0
Fork 0

Gilded Galvorn, should hopefully now work as intended

main
KeyLime17 5 months ago
parent 6b6b474960
commit 5aa2bedd56

@ -10,8 +10,6 @@ import cpw.mods.fml.common.IFuelHandler;
import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.gameevent.TickEvent; import cpw.mods.fml.common.gameevent.TickEvent;
import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.GameRegistry;
import lotr.common.LOTRAchievement;
import lotr.common.LOTRLevelData;
import lotr.common.LOTRMod; import lotr.common.LOTRMod;
import lotr.common.LOTRDimension; import lotr.common.LOTRDimension;
import lotr.common.enchant.LOTREnchantment; import lotr.common.enchant.LOTREnchantment;
@ -19,7 +17,6 @@ import lotr.common.enchant.LOTREnchantmentHelper;
import lotr.common.entity.npc.LOTREntityOrc; import lotr.common.entity.npc.LOTREntityOrc;
import lotr.common.entity.projectile.LOTREntityCrossbowBolt; import lotr.common.entity.projectile.LOTREntityCrossbowBolt;
import lotr.common.entity.projectile.LOTREntityDart; import lotr.common.entity.projectile.LOTREntityDart;
import lotr.common.entity.projectile.LOTREntitySpear;
import lotr.common.item.*; import lotr.common.item.*;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
@ -45,7 +42,13 @@ import net.minecraftforge.event.entity.player.ArrowLooseEvent;
import java.util.Random; import java.util.Random;
import static com.zivilon.cinder_loe.CinderLoE.getLOTRMaterialByName;
public class CinderEventHandler implements IFuelHandler { public class CinderEventHandler implements IFuelHandler {
private static final ItemArmor.ArmorMaterial MATERIAL_GILDEDGALVORN =
getLOTRMaterialByName("GILDEDGALVORN").toArmorMaterial();
private static final Random random = new Random(); private static final Random random = new Random();
public CinderEventHandler() { public CinderEventHandler() {
FMLCommonHandler.instance().bus().register(this); 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) { private void cancelAttackEvent(LivingAttackEvent event) {
event.setCanceled(true); event.setCanceled(true);
DamageSource source = event.source; DamageSource source = event.source;
@ -129,8 +105,31 @@ public class CinderEventHandler implements IFuelHandler {
} }
@SubscribeEvent @SubscribeEvent
public void onLivingAttack(LivingAttackEvent event) { 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;
DamageSource src = event.source;
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; if (!(attacker instanceof EntityPlayerMP player)) return;
ItemStack weapon = player.getHeldItem(); ItemStack weapon = player.getHeldItem();

@ -588,9 +588,9 @@ public class CinderLoE {
dough = new LOTRItemFood(1,0.0f, false).setPotionEffect(Potion.hunger.id, 5,0,100).setUnlocalizedName("lotr:dough").setTextureName("lotr:dough"); 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"); 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"); 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"); halva = new LOTRItemFood (7, 3.0f, false).setUnlocalizedName("lotr:halva").setTextureName("lotr:halva");
doner_kebab = new LOTRItemFood (6, 6.0f, false).setUnlocalizedName("lotr:doner_kebab").setTextureName("lotr:doner_kebab"); doner_kebab = new LOTRItemFood (6, 3.0f, false).setUnlocalizedName("lotr:doner_kebab").setTextureName("lotr:doner_kebab");
flatbread = new LOTRItemFood (3, 8.0f, false).setUnlocalizedName("lotr:flatbread").setTextureName("lotr:flatbread"); 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"); // 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"); spiceElven = new Item().setUnlocalizedName("lotr:spice_elven").setTextureName("lotr:spice_elven");
spiceHuman = new Item().setUnlocalizedName("lotr:spice_human").setTextureName("lotr:spice_human"); spiceHuman = new Item().setUnlocalizedName("lotr:spice_human").setTextureName("lotr:spice_human");
@ -756,9 +756,6 @@ public class CinderLoE {
ItemRegistration.register(warDart,"warDart",6111); ItemRegistration.register(warDart,"warDart",6111);
ItemRegistration.register(warDartHeads,"warDartHeads",6500); ItemRegistration.register(warDartHeads,"warDartHeads",6500);
//Override Galvorn Helmet with new model texture
LOTRMod.helmetGalvorn = new LOTRItemArmor(LOTRMaterial.GALVORN, 0, "helmet").setUnlocalizedName("lotr:helmetGalvorn");
//ASH //ASH
MATERIAL_ASH = getLOTRMaterialByName("ASH"); MATERIAL_ASH = getLOTRMaterialByName("ASH");
ingotAsh = new Item().setUnlocalizedName("lotr:ingotAsh").setTextureName("lotr:ingotAsh").setCreativeTab((CreativeTabs) materials); ingotAsh = new Item().setUnlocalizedName("lotr:ingotAsh").setTextureName("lotr:ingotAsh").setCreativeTab((CreativeTabs) materials);

Loading…
Cancel
Save