2020-05-24 18:21:22 +02:00
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
|
|
|
|
|
|
namespace MinecraftClient.Mapping
|
|
|
|
|
|
{
|
|
|
|
|
|
public static class EntityTypeExtensions
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Return TRUE if the Entity is an hostile mob
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <remarks>New mobs added in newer Minecraft versions might be absent from the list</remarks>
|
|
|
|
|
|
/// <returns>TRUE if hostile</returns>
|
|
|
|
|
|
public static bool IsHostile(this EntityType e)
|
|
|
|
|
|
{
|
|
|
|
|
|
switch (e)
|
|
|
|
|
|
{
|
|
|
|
|
|
case EntityType.Blaze:
|
2020-08-23 15:30:48 +08:00
|
|
|
|
case EntityType.CaveSpider:
|
2020-05-24 18:21:22 +02:00
|
|
|
|
case EntityType.Creeper:
|
|
|
|
|
|
case EntityType.Drowned:
|
2020-08-23 15:30:48 +08:00
|
|
|
|
case EntityType.Enderman:
|
|
|
|
|
|
case EntityType.Endermite:
|
2020-05-24 18:21:22 +02:00
|
|
|
|
case EntityType.Evoker:
|
|
|
|
|
|
case EntityType.Ghast:
|
|
|
|
|
|
case EntityType.Guardian:
|
2020-07-29 21:35:00 +02:00
|
|
|
|
case EntityType.Hoglin:
|
2020-05-24 18:21:22 +02:00
|
|
|
|
case EntityType.Husk:
|
2020-08-23 15:30:48 +08:00
|
|
|
|
case EntityType.Illusioner:
|
2020-05-24 18:21:22 +02:00
|
|
|
|
case EntityType.MagmaCube:
|
|
|
|
|
|
case EntityType.Phantom:
|
2020-07-27 13:12:56 +02:00
|
|
|
|
case EntityType.Piglin:
|
2020-08-23 15:30:48 +08:00
|
|
|
|
case EntityType.PiglinBrute:
|
2020-07-29 21:35:00 +02:00
|
|
|
|
case EntityType.Pillager:
|
2020-05-24 18:21:22 +02:00
|
|
|
|
case EntityType.Ravager:
|
|
|
|
|
|
case EntityType.Shulker:
|
|
|
|
|
|
case EntityType.Silverfish:
|
|
|
|
|
|
case EntityType.Skeleton:
|
|
|
|
|
|
case EntityType.Slime:
|
2020-07-06 22:24:22 +08:00
|
|
|
|
case EntityType.Spider:
|
2020-05-24 18:21:22 +02:00
|
|
|
|
case EntityType.Stray:
|
|
|
|
|
|
case EntityType.Vex:
|
|
|
|
|
|
case EntityType.Vindicator:
|
|
|
|
|
|
case EntityType.Witch:
|
|
|
|
|
|
case EntityType.WitherSkeleton:
|
2020-07-29 21:35:00 +02:00
|
|
|
|
case EntityType.Zoglin:
|
2020-05-24 18:21:22 +02:00
|
|
|
|
case EntityType.Zombie:
|
|
|
|
|
|
case EntityType.ZombieVillager:
|
2020-08-23 15:30:48 +08:00
|
|
|
|
case EntityType.ZombifiedPiglin:
|
2020-05-24 18:21:22 +02:00
|
|
|
|
return true;
|
|
|
|
|
|
default:
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2020-08-20 21:36:50 +05:00
|
|
|
|
|
2022-09-27 13:35:29 +02:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Return TRUE if the Entity is a passive mob
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <remarks>New mobs added in newer Minecraft versions might be absent from the list</remarks>
|
|
|
|
|
|
/// <returns>TRUE if a passive mob</returns>
|
|
|
|
|
|
public static bool IsPassive(this EntityType e)
|
|
|
|
|
|
{
|
|
|
|
|
|
switch (e)
|
|
|
|
|
|
{
|
|
|
|
|
|
case EntityType.Bat:
|
|
|
|
|
|
case EntityType.Cat:
|
|
|
|
|
|
case EntityType.Chicken:
|
|
|
|
|
|
case EntityType.Cod:
|
|
|
|
|
|
case EntityType.Cow:
|
|
|
|
|
|
case EntityType.Dolphin:
|
|
|
|
|
|
case EntityType.Donkey:
|
|
|
|
|
|
case EntityType.Fox:
|
|
|
|
|
|
case EntityType.Frog:
|
|
|
|
|
|
case EntityType.GlowSquid:
|
|
|
|
|
|
case EntityType.Goat:
|
|
|
|
|
|
case EntityType.Horse:
|
|
|
|
|
|
case EntityType.IronGolem:
|
|
|
|
|
|
case EntityType.Llama:
|
|
|
|
|
|
case EntityType.Mooshroom:
|
|
|
|
|
|
case EntityType.Mule:
|
|
|
|
|
|
case EntityType.Ocelot:
|
|
|
|
|
|
case EntityType.Panda:
|
|
|
|
|
|
case EntityType.Parrot:
|
|
|
|
|
|
case EntityType.Pig:
|
|
|
|
|
|
case EntityType.Salmon:
|
|
|
|
|
|
case EntityType.Sheep:
|
|
|
|
|
|
case EntityType.Silverfish:
|
|
|
|
|
|
case EntityType.SnowGolem:
|
|
|
|
|
|
case EntityType.Squid:
|
|
|
|
|
|
case EntityType.Turtle:
|
|
|
|
|
|
case EntityType.Villager:
|
|
|
|
|
|
case EntityType.WanderingTrader:
|
|
|
|
|
|
case EntityType.Wolf:
|
|
|
|
|
|
case EntityType.ZombieHorse:
|
|
|
|
|
|
case EntityType.SkeletonHorse:
|
|
|
|
|
|
return true;
|
|
|
|
|
|
default:
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2020-08-20 21:36:50 +05:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Indicates whether the entity type contains an inner item
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns>TRUE if item holder (Item Entity, ItemFrame...)</returns>
|
|
|
|
|
|
public static bool ContainsItem(this EntityType e)
|
|
|
|
|
|
{
|
|
|
|
|
|
switch (e)
|
|
|
|
|
|
{
|
2022-02-13 01:10:10 +01:00
|
|
|
|
case EntityType.GlowItemFrame:
|
2020-08-20 21:36:50 +05:00
|
|
|
|
case EntityType.Item:
|
|
|
|
|
|
case EntityType.ItemFrame:
|
|
|
|
|
|
case EntityType.EyeOfEnder:
|
|
|
|
|
|
case EntityType.Egg:
|
|
|
|
|
|
case EntityType.EnderPearl:
|
|
|
|
|
|
case EntityType.Potion:
|
|
|
|
|
|
case EntityType.Fireball:
|
|
|
|
|
|
case EntityType.FireworkRocket:
|
|
|
|
|
|
return true;
|
|
|
|
|
|
default:
|
|
|
|
|
|
return false;
|
|
|
|
|
|
};
|
|
|
|
|
|
}
|
2020-05-24 18:21:22 +02:00
|
|
|
|
}
|
|
|
|
|
|
}
|