Move commonly used API systems to a plugin based system
Create a class that implements IBloodMagicPlugin and annotate it with `@BloodMagicPlugin`. The `register` method will be called during init. Currently implemented systems: - Blacklisting - Teleposer - Teleposer (entity) - Transposition - Well of Suffering - Green Grove - Setting sacrificial values - Adding altar components
This commit is contained in:
parent
5fcdd978d7
commit
554c9852e6
86 changed files with 528 additions and 496 deletions
|
@ -20,7 +20,7 @@ import org.apache.commons.lang3.tuple.Pair;
|
|||
|
||||
import WayofTime.bloodmagic.BloodMagic;
|
||||
import WayofTime.bloodmagic.client.IVariantProvider;
|
||||
import WayofTime.bloodmagic.registry.RegistrarBloodMagicBlocks;
|
||||
import WayofTime.bloodmagic.core.RegistrarBloodMagicBlocks;
|
||||
import WayofTime.bloodmagic.tile.TileAlchemyArray;
|
||||
import WayofTime.bloodmagic.util.helper.TextHelper;
|
||||
|
||||
|
|
|
@ -3,11 +3,10 @@ package WayofTime.bloodmagic.item;
|
|||
import java.util.List;
|
||||
|
||||
import WayofTime.bloodmagic.BloodMagic;
|
||||
import WayofTime.bloodmagic.registry.RegistrarBloodMagic;
|
||||
import WayofTime.bloodmagic.core.RegistrarBloodMagic;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.init.SoundEvents;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.*;
|
||||
|
@ -17,7 +16,6 @@ import net.minecraftforge.fml.relauncher.SideOnly;
|
|||
import WayofTime.bloodmagic.api.iface.IBindable;
|
||||
import WayofTime.bloodmagic.api.orb.BloodOrb;
|
||||
import WayofTime.bloodmagic.api.orb.IBloodOrb;
|
||||
import WayofTime.bloodmagic.api.registry.OrbRegistry;
|
||||
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
|
||||
import WayofTime.bloodmagic.api.util.helper.PlayerHelper;
|
||||
import WayofTime.bloodmagic.util.helper.TextHelper;
|
||||
|
|
|
@ -35,7 +35,7 @@ import WayofTime.bloodmagic.api.util.helper.NBTHelper;
|
|||
import WayofTime.bloodmagic.api.util.helper.PlayerHelper;
|
||||
import WayofTime.bloodmagic.client.IMeshProvider;
|
||||
import WayofTime.bloodmagic.client.mesh.CustomMeshDefinitionActivatable;
|
||||
import WayofTime.bloodmagic.registry.RegistrarBloodMagicItems;
|
||||
import WayofTime.bloodmagic.core.RegistrarBloodMagicItems;
|
||||
import WayofTime.bloodmagic.util.helper.TextHelper;
|
||||
|
||||
import com.google.common.base.Strings;
|
||||
|
|
|
@ -41,7 +41,7 @@ import WayofTime.bloodmagic.api.event.BoundToolEvent;
|
|||
import WayofTime.bloodmagic.api.iface.IActivatable;
|
||||
import WayofTime.bloodmagic.api.iface.IBindable;
|
||||
import WayofTime.bloodmagic.api.util.helper.NBTHelper;
|
||||
import WayofTime.bloodmagic.registry.RegistrarBloodMagicItems;
|
||||
import WayofTime.bloodmagic.core.RegistrarBloodMagicItems;
|
||||
import WayofTime.bloodmagic.util.helper.TextHelper;
|
||||
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
|
|
|
@ -16,7 +16,7 @@ import org.apache.commons.lang3.tuple.Pair;
|
|||
|
||||
import WayofTime.bloodmagic.BloodMagic;
|
||||
import WayofTime.bloodmagic.client.IVariantProvider;
|
||||
import WayofTime.bloodmagic.registry.RegistrarBloodMagicItems;
|
||||
import WayofTime.bloodmagic.core.RegistrarBloodMagicItems;
|
||||
|
||||
public class ItemComponent extends Item implements IVariantProvider
|
||||
{
|
||||
|
|
|
@ -3,6 +3,8 @@ package WayofTime.bloodmagic.item;
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import WayofTime.bloodmagic.api_impl.BloodMagicAPI;
|
||||
import com.google.common.collect.Lists;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.monster.IMob;
|
||||
import net.minecraft.entity.passive.EntityAnimal;
|
||||
|
@ -14,12 +16,13 @@ import net.minecraft.item.ItemStack;
|
|||
import net.minecraft.util.SoundCategory;
|
||||
|
||||
import net.minecraftforge.common.util.FakePlayer;
|
||||
import net.minecraftforge.fml.common.registry.EntityEntry;
|
||||
import net.minecraftforge.fml.common.registry.EntityRegistry;
|
||||
import org.apache.commons.lang3.tuple.ImmutablePair;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import WayofTime.bloodmagic.BloodMagic;
|
||||
import WayofTime.bloodmagic.ConfigHandler;
|
||||
import WayofTime.bloodmagic.api.BloodMagicAPI;
|
||||
import WayofTime.bloodmagic.api.util.helper.PlayerSacrificeHelper;
|
||||
import WayofTime.bloodmagic.api.util.helper.PurificationHelper;
|
||||
import WayofTime.bloodmagic.client.IVariantProvider;
|
||||
|
@ -56,14 +59,8 @@ public class ItemDaggerOfSacrifice extends Item implements IVariantProvider
|
|||
if (target.isDead || target.getHealth() < 0.5F)
|
||||
return false;
|
||||
|
||||
String entityName = target.getClass().getSimpleName();
|
||||
int lifeEssenceRatio = 25;
|
||||
|
||||
if (ConfigHandler.entitySacrificeValues.containsKey(entityName))
|
||||
lifeEssenceRatio = ConfigHandler.entitySacrificeValues.get(entityName);
|
||||
|
||||
if (BloodMagicAPI.getEntitySacrificeValues().containsKey(entityName))
|
||||
lifeEssenceRatio = BloodMagicAPI.getEntitySacrificeValues().get(entityName);
|
||||
EntityEntry entityEntry = EntityRegistry.getEntry(target.getClass());
|
||||
int lifeEssenceRatio = BloodMagicAPI.INSTANCE.getSacrificialValues().getOrDefault(entityEntry.getRegistryName(), 25);
|
||||
|
||||
if (lifeEssenceRatio <= 0)
|
||||
return false;
|
||||
|
@ -83,7 +80,7 @@ public class ItemDaggerOfSacrifice extends Item implements IVariantProvider
|
|||
{
|
||||
target.getEntityWorld().playSound(null, target.posX, target.posY, target.posZ, SoundEvents.BLOCK_FIRE_EXTINGUISH, SoundCategory.BLOCKS, 0.5F, 2.6F + (target.getEntityWorld().rand.nextFloat() - target.getEntityWorld().rand.nextFloat()) * 0.8F);
|
||||
target.setHealth(-1);
|
||||
target.onDeath(BloodMagicAPI.getDamageSource());
|
||||
target.onDeath(WayofTime.bloodmagic.api.BloodMagicAPI.damageSource);
|
||||
}
|
||||
|
||||
return false;
|
||||
|
@ -92,8 +89,8 @@ public class ItemDaggerOfSacrifice extends Item implements IVariantProvider
|
|||
@Override
|
||||
public List<Pair<Integer, String>> getVariants()
|
||||
{
|
||||
List<Pair<Integer, String>> ret = new ArrayList<Pair<Integer, String>>();
|
||||
ret.add(new ImmutablePair<Integer, String>(0, "type=normal"));
|
||||
List<Pair<Integer, String>> ret = Lists.newArrayList();
|
||||
ret.add(Pair.of(0, "type=normal"));
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@ import WayofTime.bloodmagic.BloodMagic;
|
|||
import WayofTime.bloodmagic.api.soul.EnumDemonWillType;
|
||||
import WayofTime.bloodmagic.api.soul.IDiscreteDemonWill;
|
||||
import WayofTime.bloodmagic.client.IVariantProvider;
|
||||
import WayofTime.bloodmagic.registry.RegistrarBloodMagicItems;
|
||||
import WayofTime.bloodmagic.core.RegistrarBloodMagicItems;
|
||||
|
||||
public class ItemDemonCrystal extends Item implements IDiscreteDemonWill, IVariantProvider
|
||||
{
|
||||
|
|
|
@ -36,7 +36,7 @@ import WayofTime.bloodmagic.api.ritual.RitualComponent;
|
|||
import WayofTime.bloodmagic.api.soul.EnumDemonWillType;
|
||||
import WayofTime.bloodmagic.api.util.helper.RitualHelper;
|
||||
import WayofTime.bloodmagic.client.IVariantProvider;
|
||||
import WayofTime.bloodmagic.registry.RegistrarBloodMagicBlocks;
|
||||
import WayofTime.bloodmagic.core.RegistrarBloodMagicBlocks;
|
||||
import WayofTime.bloodmagic.tile.TileMasterRitualStone;
|
||||
import WayofTime.bloodmagic.util.ChatUtil;
|
||||
import WayofTime.bloodmagic.util.Utils;
|
||||
|
|
|
@ -20,7 +20,7 @@ import WayofTime.bloodmagic.BloodMagic;
|
|||
import WayofTime.bloodmagic.api.iface.ICustomAlchemyConsumable;
|
||||
import WayofTime.bloodmagic.api.util.helper.NBTHelper;
|
||||
import WayofTime.bloodmagic.client.IVariantProvider;
|
||||
import WayofTime.bloodmagic.registry.RegistrarBloodMagicItems;
|
||||
import WayofTime.bloodmagic.core.RegistrarBloodMagicItems;
|
||||
import WayofTime.bloodmagic.util.helper.TextHelper;
|
||||
|
||||
public class ItemCuttingFluid extends Item implements IVariantProvider, ICustomAlchemyConsumable
|
||||
|
|
|
@ -28,7 +28,7 @@ import WayofTime.bloodmagic.BloodMagic;
|
|||
import WayofTime.bloodmagic.client.IVariantProvider;
|
||||
import WayofTime.bloodmagic.item.armour.ItemLivingArmour;
|
||||
import WayofTime.bloodmagic.livingArmour.LivingArmour;
|
||||
import WayofTime.bloodmagic.registry.RegistrarBloodMagicItems;
|
||||
import WayofTime.bloodmagic.core.RegistrarBloodMagicItems;
|
||||
import WayofTime.bloodmagic.util.helper.TextHelper;
|
||||
|
||||
import com.google.common.collect.Iterables;
|
||||
|
|
|
@ -45,7 +45,7 @@ import WayofTime.bloodmagic.livingArmour.tracker.StatTrackerRepairing;
|
|||
import WayofTime.bloodmagic.livingArmour.upgrade.LivingArmourUpgradeElytra;
|
||||
import WayofTime.bloodmagic.network.BloodMagicPacketHandler;
|
||||
import WayofTime.bloodmagic.network.PlayerFallDistancePacketProcessor;
|
||||
import WayofTime.bloodmagic.registry.RegistrarBloodMagicItems;
|
||||
import WayofTime.bloodmagic.core.RegistrarBloodMagicItems;
|
||||
import WayofTime.bloodmagic.util.Utils;
|
||||
import WayofTime.bloodmagic.util.helper.TextHelper;
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ import WayofTime.bloodmagic.api.soul.EnumDemonWillType;
|
|||
import WayofTime.bloodmagic.api.soul.PlayerDemonWillHandler;
|
||||
import WayofTime.bloodmagic.api.util.helper.NBTHelper;
|
||||
import WayofTime.bloodmagic.client.IMeshProvider;
|
||||
import WayofTime.bloodmagic.registry.RegistrarBloodMagicItems;
|
||||
import WayofTime.bloodmagic.core.RegistrarBloodMagicItems;
|
||||
|
||||
import com.google.common.collect.HashMultimap;
|
||||
import com.google.common.collect.Multimap;
|
||||
|
|
|
@ -15,7 +15,7 @@ import WayofTime.bloodmagic.api.Constants;
|
|||
import WayofTime.bloodmagic.api.util.helper.NBTHelper;
|
||||
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
|
||||
import WayofTime.bloodmagic.entity.projectile.EntityBloodLight;
|
||||
import WayofTime.bloodmagic.registry.RegistrarBloodMagicBlocks;
|
||||
import WayofTime.bloodmagic.core.RegistrarBloodMagicBlocks;
|
||||
|
||||
public class ItemSigilBloodLight extends ItemSigilBase
|
||||
{
|
||||
|
|
|
@ -1,19 +1,18 @@
|
|||
package WayofTime.bloodmagic.item.sigil;
|
||||
|
||||
import WayofTime.bloodmagic.api.util.helper.PlayerHelper;
|
||||
import net.minecraft.block.Block;
|
||||
import WayofTime.bloodmagic.api_impl.BloodMagicAPI;
|
||||
import net.minecraft.block.IGrowable;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.util.EnumHand;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.IPlantable;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.event.entity.player.BonemealEvent;
|
||||
import net.minecraftforge.fml.common.eventhandler.Event.Result;
|
||||
import WayofTime.bloodmagic.api.BloodMagicAPI;
|
||||
|
||||
public class ItemSigilGreenGrove extends ItemSigilToggleableBase
|
||||
{
|
||||
|
@ -28,7 +27,7 @@ public class ItemSigilGreenGrove extends ItemSigilToggleableBase
|
|||
if (PlayerHelper.isFakePlayer(player))
|
||||
return false;
|
||||
|
||||
if (applyBonemeal(world, blockPos, player))
|
||||
if (applyBonemeal(world, blockPos, player, stack))
|
||||
{
|
||||
if (!world.isRemote)
|
||||
{
|
||||
|
@ -59,16 +58,16 @@ public class ItemSigilGreenGrove extends ItemSigilToggleableBase
|
|||
for (int iy = posY - verticalRange; iy <= posY + verticalRange; iy++)
|
||||
{
|
||||
BlockPos blockPos = new BlockPos(ix, iy, iz);
|
||||
Block block = worldIn.getBlockState(blockPos).getBlock();
|
||||
IBlockState state = worldIn.getBlockState(blockPos);
|
||||
|
||||
if (!BloodMagicAPI.greenGroveBlacklist.contains(block))
|
||||
if (!BloodMagicAPI.INSTANCE.getBlacklist().getGreenGrove().contains(state))
|
||||
{
|
||||
if (block instanceof IPlantable || block instanceof IGrowable)
|
||||
if (state.getBlock() instanceof IGrowable)
|
||||
{
|
||||
if (worldIn.rand.nextInt(50) == 0)
|
||||
{
|
||||
IBlockState preBlockState = worldIn.getBlockState(blockPos);
|
||||
block.updateTick(worldIn, blockPos, worldIn.getBlockState(blockPos), worldIn.rand);
|
||||
state.getBlock().updateTick(worldIn, blockPos, state, worldIn.rand);
|
||||
|
||||
IBlockState newState = worldIn.getBlockState(blockPos);
|
||||
if (!newState.equals(preBlockState) && !worldIn.isRemote)
|
||||
|
@ -81,11 +80,11 @@ public class ItemSigilGreenGrove extends ItemSigilToggleableBase
|
|||
}
|
||||
}
|
||||
|
||||
private boolean applyBonemeal(World worldIn, BlockPos target, EntityPlayer player)
|
||||
private boolean applyBonemeal(World worldIn, BlockPos target, EntityPlayer player, ItemStack sigilStack)
|
||||
{
|
||||
IBlockState iblockstate = worldIn.getBlockState(target);
|
||||
|
||||
BonemealEvent event = new BonemealEvent(player, worldIn, target, iblockstate);
|
||||
BonemealEvent event = new BonemealEvent(player, worldIn, target, iblockstate, EnumHand.MAIN_HAND, sigilStack);
|
||||
if (MinecraftForge.EVENT_BUS.post(event))
|
||||
return false;
|
||||
else if (event.getResult() == Result.ALLOW)
|
||||
|
|
|
@ -11,7 +11,7 @@ import net.minecraft.world.World;
|
|||
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import WayofTime.bloodmagic.registry.RegistrarBloodMagicBlocks;
|
||||
import WayofTime.bloodmagic.core.RegistrarBloodMagicBlocks;
|
||||
|
||||
public class ItemSigilPhantomBridge extends ItemSigilToggleableBase
|
||||
{
|
||||
|
|
|
@ -40,7 +40,7 @@ import WayofTime.bloodmagic.api.util.helper.NBTHelper;
|
|||
import WayofTime.bloodmagic.client.IMeshProvider;
|
||||
import WayofTime.bloodmagic.client.mesh.CustomMeshDefinitionMultiWill;
|
||||
import WayofTime.bloodmagic.entity.mob.EntitySentientSpecter;
|
||||
import WayofTime.bloodmagic.registry.RegistrarBloodMagicItems;
|
||||
import WayofTime.bloodmagic.core.RegistrarBloodMagicItems;
|
||||
import WayofTime.bloodmagic.util.helper.TextHelper;
|
||||
|
||||
import com.google.common.collect.HashMultimap;
|
||||
|
|
|
@ -31,7 +31,7 @@ import WayofTime.bloodmagic.api.soul.PlayerDemonWillHandler;
|
|||
import WayofTime.bloodmagic.api.util.helper.NBTHelper;
|
||||
import WayofTime.bloodmagic.entity.mob.EntitySentientSpecter;
|
||||
import WayofTime.bloodmagic.entity.projectile.EntitySentientArrow;
|
||||
import WayofTime.bloodmagic.registry.RegistrarBloodMagicItems;
|
||||
import WayofTime.bloodmagic.core.RegistrarBloodMagicItems;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ import WayofTime.bloodmagic.api.util.helper.NBTHelper;
|
|||
import WayofTime.bloodmagic.client.IMeshProvider;
|
||||
import WayofTime.bloodmagic.client.mesh.CustomMeshDefinitionMultiWill;
|
||||
import WayofTime.bloodmagic.entity.mob.EntitySentientSpecter;
|
||||
import WayofTime.bloodmagic.registry.RegistrarBloodMagicItems;
|
||||
import WayofTime.bloodmagic.core.RegistrarBloodMagicItems;
|
||||
import WayofTime.bloodmagic.util.helper.TextHelper;
|
||||
|
||||
import com.google.common.collect.HashMultimap;
|
||||
|
|
|
@ -40,7 +40,7 @@ import WayofTime.bloodmagic.api.util.helper.NBTHelper;
|
|||
import WayofTime.bloodmagic.client.IMeshProvider;
|
||||
import WayofTime.bloodmagic.client.mesh.CustomMeshDefinitionMultiWill;
|
||||
import WayofTime.bloodmagic.entity.mob.EntitySentientSpecter;
|
||||
import WayofTime.bloodmagic.registry.RegistrarBloodMagicItems;
|
||||
import WayofTime.bloodmagic.core.RegistrarBloodMagicItems;
|
||||
import WayofTime.bloodmagic.util.helper.TextHelper;
|
||||
|
||||
import com.google.common.collect.HashMultimap;
|
||||
|
|
|
@ -38,7 +38,7 @@ import WayofTime.bloodmagic.api.util.helper.NBTHelper;
|
|||
import WayofTime.bloodmagic.client.IMeshProvider;
|
||||
import WayofTime.bloodmagic.client.mesh.CustomMeshDefinitionMultiWill;
|
||||
import WayofTime.bloodmagic.entity.mob.EntitySentientSpecter;
|
||||
import WayofTime.bloodmagic.registry.RegistrarBloodMagicItems;
|
||||
import WayofTime.bloodmagic.core.RegistrarBloodMagicItems;
|
||||
import WayofTime.bloodmagic.util.helper.TextHelper;
|
||||
|
||||
import com.google.common.collect.HashMultimap;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue