That's one heck of a commit you've got there...

I may have got a bit behind with version control. A lot behind, in fact. Maybe I'll go back and split this sometime - then again, I probably won't. But hey, at least it's here!
This commit is contained in:
Electroblob77
2019-08-18 00:04:18 +01:00
parent 2680d02304
commit f37812be3e
1564 changed files with 47652 additions and 12984 deletions
@@ -1,10 +1,19 @@
package electroblob.wizardry.item;
import com.google.common.collect.Multimap;
import electroblob.wizardry.registry.Spells;
import electroblob.wizardry.spell.Spell;
import electroblob.wizardry.util.MagicDamage;
import electroblob.wizardry.util.MagicDamage.DamageType;
import electroblob.wizardry.util.WizardryUtilities;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.attributes.AttributeModifier;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.EntityEquipmentSlot;
import net.minecraft.item.EnumRarity;
import net.minecraft.item.Item;
import net.minecraft.item.ItemAxe;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
@@ -13,21 +22,42 @@ import net.minecraftforge.fml.relauncher.SideOnly;
public class ItemFlamingAxe extends ItemAxe implements IConjuredItem {
private EnumRarity rarity = EnumRarity.COMMON;
public ItemFlamingAxe(ToolMaterial material){
super(material, 8, -3);
setMaxDamage(getBaseDuration());
setMaxDamage(1200); // Might cause problems if removed, the actual number is irrelevant as long as it's > 0
setNoRepair();
setCreativeTab(null);
addAnimationPropertyOverrides();
}
@Override
public int getBaseDuration(){
return 1200;
public Multimap<String, AttributeModifier> getAttributeModifiers(EntityEquipmentSlot slot, ItemStack stack){
Multimap<String, AttributeModifier> multimap = super.getItemAttributeModifiers(slot);
if(slot == EntityEquipmentSlot.MAINHAND){
multimap.put(SharedMonsterAttributes.ATTACK_DAMAGE.getName(), new AttributeModifier(POTENCY_MODIFIER,
"Potency modifier", IConjuredItem.getDamageMultiplier(stack) - 1, WizardryUtilities.Operations.MULTIPLY_CUMULATIVE));
}
return multimap;
}
public Item setRarity(EnumRarity rarity){
this.rarity = rarity;
return this;
}
@Override
public EnumRarity getRarity(ItemStack stack){
return rarity;
}
@Override
public int getMaxDamage(ItemStack stack){
return this.getMaxDamageFromNBT(stack);
return this.getMaxDamageFromNBT(stack, Spells.flaming_axe);
}
@Override
@@ -50,9 +80,16 @@ public class ItemFlamingAxe extends ItemAxe implements IConjuredItem {
stack.setItemDamage(damage + 1);
}
@Override
public Multimap<String, AttributeModifier> getItemAttributeModifiers(EntityEquipmentSlot equipmentSlot){
attackDamage = Spells.flaming_axe.getProperty(Spell.DAMAGE).floatValue();
return super.getItemAttributeModifiers(equipmentSlot);
}
@Override
public boolean hitEntity(ItemStack stack, EntityLivingBase target, EntityLivingBase wielder){
if(!MagicDamage.isEntityImmune(DamageType.FIRE, target)) target.setFire(8);
if(!MagicDamage.isEntityImmune(DamageType.FIRE, target))
target.setFire(Spells.flaming_axe.getProperty(Spell.BURN_DURATION).intValue());
return false;
}
@@ -72,6 +109,16 @@ public class ItemFlamingAxe extends ItemAxe implements IConjuredItem {
return 0;
}
@Override
public boolean isEnchantable(ItemStack stack){
return false;
}
@Override
public boolean isBookEnchantable(ItemStack stack, ItemStack book){
return false;
}
// Cannot be dropped
@Override
public boolean onDroppedByPlayer(ItemStack item, EntityPlayer player){