2016-07-13 17:19:02 -04:00
|
|
|
package WayofTime.bloodmagic.meteor;
|
|
|
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
import net.minecraft.block.state.IBlockState;
|
|
|
|
import net.minecraft.item.ItemStack;
|
2016-09-09 12:28:23 -04:00
|
|
|
import net.minecraft.util.ResourceLocation;
|
2016-07-13 17:19:02 -04:00
|
|
|
import net.minecraft.util.math.BlockPos;
|
|
|
|
import net.minecraft.world.World;
|
|
|
|
import WayofTime.bloodmagic.api.ItemStackWrapper;
|
2016-09-09 12:28:23 -04:00
|
|
|
import WayofTime.bloodmagic.util.Utils;
|
2016-07-13 17:19:02 -04:00
|
|
|
|
|
|
|
public class MeteorRegistry
|
|
|
|
{
|
|
|
|
public static Map<ItemStackWrapper, MeteorHolder> meteorMap = new HashMap<ItemStackWrapper, MeteorHolder>();
|
|
|
|
|
|
|
|
public static void registerMeteor(ItemStack stack, MeteorHolder holder)
|
|
|
|
{
|
|
|
|
ItemStackWrapper wrapper = ItemStackWrapper.getHolder(stack);
|
|
|
|
if (wrapper != null)
|
|
|
|
{
|
|
|
|
meteorMap.put(wrapper, holder);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public static void registerMeteor(ItemStack stack, List<MeteorComponent> componentList, float explosionStrength, int radius, int maxWeight)
|
|
|
|
{
|
2016-09-09 12:28:23 -04:00
|
|
|
ResourceLocation resource = Utils.getResourceForItem(stack);
|
|
|
|
|
|
|
|
MeteorHolder holder = new MeteorHolder(resource, stack.getItemDamage(), componentList, explosionStrength, radius, maxWeight);
|
2016-07-13 17:19:02 -04:00
|
|
|
|
|
|
|
registerMeteor(stack, holder);
|
|
|
|
}
|
|
|
|
|
|
|
|
public static boolean hasMeteorForItem(ItemStack stack)
|
|
|
|
{
|
|
|
|
ItemStackWrapper wrapper = ItemStackWrapper.getHolder(stack);
|
|
|
|
return wrapper != null && meteorMap.containsKey(wrapper);
|
|
|
|
}
|
|
|
|
|
|
|
|
public static MeteorHolder getMeteorForItem(ItemStack stack)
|
|
|
|
{
|
|
|
|
ItemStackWrapper wrapper = ItemStackWrapper.getHolder(stack);
|
|
|
|
return wrapper != null ? meteorMap.get(wrapper) : null;
|
|
|
|
}
|
|
|
|
|
|
|
|
public static void generateMeteorForItem(ItemStack stack, World world, BlockPos pos, IBlockState fillerBlock)
|
|
|
|
{
|
|
|
|
MeteorHolder holder = getMeteorForItem(stack);
|
|
|
|
if (holder != null)
|
|
|
|
{
|
|
|
|
holder.generateMeteor(world, pos, fillerBlock);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|