Allow custom SpawnPlacementType registration (#4973)

This commit is contained in:
Ben Staddon authored and LexManos committed 2018-07-28 17:51:44 -07:00
1 parent a935859b24
commit 14bfeefb4d
7 files changed
+110 -9

No files matched your search

@@ -21,20 +21,22 @@ package net.minecraftforge.common.util;
import java.lang.reflect.*;
import java.util.*;
import java.util.function.BiPredicate;
import com.google.common.base.Predicate;
import com.google.common.collect.Lists;
import net.minecraft.entity.passive.IAnimals;
import net.minecraftforge.fml.common.EnhancedRuntimeException;
import net.minecraftforge.fml.common.FMLLog;
import net.minecraft.block.BlockPressurePlate.Sensitivity;
import net.minecraft.block.material.Material;
import net.minecraft.enchantment.EnumEnchantmentType;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EnumCreatureAttribute;
import net.minecraft.entity.EnumCreatureType;
import net.minecraft.entity.item.EntityPainting.EnumArt;
import net.minecraft.entity.passive.HorseArmorType;
import net.minecraft.entity.passive.IAnimals;
import net.minecraft.entity.player.EntityPlayer.SleepResult;
import net.minecraft.item.EnumAction;
import net.minecraft.item.EnumRarity;
@@ -42,9 +44,11 @@ import net.minecraft.item.Item;
import net.minecraft.item.Item.ToolMaterial;
import net.minecraft.item.ItemArmor.ArmorMaterial;
import net.minecraft.util.SoundEvent;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.RayTraceResult;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.EnumSkyBlock;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.gen.structure.StructureStrongholdPieces.Stronghold.Door;
import net.minecraftforge.classloading.FMLForgePlugin;
import org.apache.commons.lang3.ArrayUtils;
@@ -76,7 +80,8 @@ public class EnumHelper
{SleepResult.class},
{ToolMaterial.class, int.class, int.class, float.class, float.class, int.class},
{EnumRarity.class, TextFormatting.class, String.class},
{HorseArmorType.class, String.class, int.class}
{HorseArmorType.class, String.class, int.class},
{EntityLiving.SpawnPlacementType.class, BiPredicate.class}
};
@Nullable
@@ -145,6 +150,12 @@ public class EnumHelper
return addEnum(EnumRarity.class, name, color, displayName);
}
@Nullable
public static EntityLiving.SpawnPlacementType addSpawnPlacementType(String name, BiPredicate<IBlockAccess, BlockPos> predicate)
{
return addEnum(EntityLiving.SpawnPlacementType.class, name, predicate);
}
/**
*
* @param name the name of the new {@code HorseArmorType}