Field renamings and code cleanup

This commit is contained in:
FlorianMichael 2024-04-01 01:17:43 +02:00
parent 607626a4de
commit a03630743d
No known key found for this signature in database
GPG Key ID: C2FB87E71C425126
1 changed files with 95 additions and 104 deletions

View File

@ -22,8 +22,8 @@
*/
package com.viaversion.viaversion.api.minecraft.entities;
import com.viaversion.viaversion.api.Via;
import com.viaversion.viaversion.util.Pair;
import org.checkerframework.checker.nullness.qual.Nullable;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
@ -31,30 +31,22 @@ import java.util.Optional;
// 1.8 Entity / Object ids
public class EntityTypes1_8 {
public static EntityType getTypeFromId(int typeID, boolean isObject) {
Optional<EntityType> type;
if (isObject)
type = ObjectType.getPCEntity(typeID);
else
type = EntityType.findById(typeID);
if (!type.isPresent()) {
Via.getPlatform().getLogger().severe("Could not find 1.8 type id " + typeID + " isObject=" + isObject);
return EntityType.ENTITY; // Fall back to the basic ENTITY
public static EntityType getEntityType(final int id, @Nullable Integer data, boolean object) {
if (object) {
return ObjectType.getObjectEntity(id, data).map(ObjectType::getType).orElse(null);
} else {
return EntityType.getEntity(id).orElse(null);
}
return type.get();
}
public enum EntityType implements com.viaversion.viaversion.api.minecraft.entities.EntityType {
ENTITY(-1),
// Objects
ENTITY_FISH_HOOK(-1, ENTITY),
FISH_HOOK(-1, ENTITY),
ENTITY_ENDER_EYE(15, ENTITY),
ENTITY_ITEM(1, ENTITY),
ENDER_EYE(15, ENTITY),
ITEM(1, ENTITY),
// Minecarts
MINECART_ABSTRACT(-1, ENTITY),
@ -73,9 +65,9 @@ public class EntityTypes1_8 {
// Hanging
ENTITY_HANGING(-1, ENTITY),
ENTITY_ITEM_FRAME(18, ENTITY_HANGING),
ENTITY_LEASH_KNOT(8, ENTITY_HANGING),
ENTITY_PAINTING(9, ENTITY_HANGING),
ITEM_FRAME(18, ENTITY_HANGING),
LEASH_KNOT(8, ENTITY_HANGING),
PAINTING(9, ENTITY_HANGING),
ENTITY_LIVING_BASE(-1, ENTITY),
ENTITY_LIVING(48, ENTITY_LIVING_BASE),
@ -84,85 +76,85 @@ public class EntityTypes1_8 {
ENTITY_ANIMAL(-1, ENTITY_AGEABLE),
ENTITY_HORSE(100, ENTITY_ANIMAL),
HORSE(100, ENTITY_ANIMAL),
ENTITY_COW(92, ENTITY_ANIMAL),
ENTITY_MOOSHROOM(96, ENTITY_COW),
COW(92, ENTITY_ANIMAL),
MOOSHROOM(96, COW),
ENTITY_CHICKEN(93, ENTITY_ANIMAL),
ENTITY_RABBIT(101, ENTITY_ANIMAL),
CHICKEN(93, ENTITY_ANIMAL),
RABBIT(101, ENTITY_ANIMAL),
ENTITY_TAMEABLE(-1, ENTITY_ANIMAL),
ENTITY_WOLF(95, ENTITY_TAMEABLE),
ENTITY_OCELOT(98, ENTITY_TAMEABLE),
WOLF(95, ENTITY_TAMEABLE),
OCELOT(98, ENTITY_TAMEABLE),
ENTITY_PIG(90, ENTITY_ANIMAL),
ENTITY_SHEEP(91, ENTITY_ANIMAL),
PIG(90, ENTITY_ANIMAL),
SHEEP(91, ENTITY_ANIMAL),
ENTITY_VILLAGER(120, ENTITY_AGEABLE),
VILLAGER(120, ENTITY_AGEABLE),
ENTITY_MOB(49, ENTITY_CREATURE),
ENTITY_GUARDIAN(68, ENTITY_MOB),
GUARDIAN(68, ENTITY_MOB),
ENTITY_ZOMBIE(54, ENTITY_MOB),
ENTITY_PIG_ZOMBIE(57, ENTITY_ZOMBIE),
ZOMBIE(54, ENTITY_MOB),
PIG_ZOMBIE(57, ZOMBIE),
ENTITY_ENDERMAN(58, ENTITY_MOB),
ENDERMAN(58, ENTITY_MOB),
ENTITY_SPIDER(52, ENTITY_MOB),
ENTITY_CAVE_SPIDER(59, ENTITY_SPIDER),
SPIDER(52, ENTITY_MOB),
CAVE_SPIDER(59, SPIDER),
ENTITY_GIANT_ZOMBIE(53, ENTITY_MOB),
ENTITY_ENDERMITE(67, ENTITY_MOB),
ENTITY_CREEPER(50, ENTITY_MOB),
ENTITY_SILVERFISH(60, ENTITY_MOB),
ENTITY_SKELETON(51, ENTITY_MOB),
ENTITY_WITCH(66, ENTITY_MOB),
ENTITY_BLAZE(61, ENTITY_MOB),
ENTITY_WITHER(64, ENTITY_MOB),
GIANT_ZOMBIE(53, ENTITY_MOB),
ENDERMITE(67, ENTITY_MOB),
CREEPER(50, ENTITY_MOB),
SILVERFISH(60, ENTITY_MOB),
SKELETON(51, ENTITY_MOB),
WITCH(66, ENTITY_MOB),
BLAZE(61, ENTITY_MOB),
WITHER(64, ENTITY_MOB),
ENTITY_GOLEM(-1, ENTITY_CREATURE),
GOLEM(-1, ENTITY_CREATURE),
ENTITY_SNOWMAN(97, ENTITY_GOLEM),
ENTITY_IRON_GOLEM(99, ENTITY_GOLEM),
SNOWMAN(97, GOLEM),
IRON_GOLEM(99, GOLEM),
ENTITY_DRAGON(63, ENTITY_LIVING),
ENDER_DRAGON(63, ENTITY_LIVING),
ENTITY_SLIIME(55, ENTITY_LIVING),
ENTITY_MAGMA_CUBE(62, ENTITY_SLIIME),
SLIIME(55, ENTITY_LIVING),
MAGMA_CUBE(62, SLIIME),
ENTITY_WATER_MOB(-1, ENTITY_LIVING),
ENTITY_SQUID(94, ENTITY_WATER_MOB),
SQUID(94, ENTITY_WATER_MOB),
ENTITY_AMBIENT_CREATURE(-1, ENTITY_LIVING),
ENTITY_BAT(65, ENTITY_AMBIENT_CREATURE),
BAT(65, ENTITY_AMBIENT_CREATURE),
ENTITY_FLYING(-1, ENTITY_LIVING),
ENTITY_GHAST(56, ENTITY_FLYING),
GHAST(56, ENTITY_FLYING),
ENTITY_ARMOR_STAND(30, ENTITY_LIVING),
ARMOR_STAND(30, ENTITY_LIVING),
ENTITY_FIREBALL(-1, ENTITY),
ENTITY_LARGE_FIREBALL(12, ENTITY_FIREBALL),
ENTITY_SMALL_FIREBALL(13, ENTITY_FIREBALL),
ENTITY_WITHER_SKULL(19, ENTITY_FIREBALL),
FIREBALL(-1, ENTITY),
LARGE_FIREBALL(12, FIREBALL),
SMALL_FIREBALL(13, FIREBALL),
WITHER_SKULL(19, FIREBALL),
ENTITY_THROWABLE(-1, ENTITY),
ENTITY_POTION(16, ENTITY_THROWABLE),
ENTITY_SNOWBALL(11, ENTITY_THROWABLE),
ENTITY_EXP_BOTTLE(17, ENTITY_THROWABLE),
ENTITY_ENDER_PEARL(14, ENTITY_THROWABLE),
ENTITY_EGG(7, ENTITY_THROWABLE),
POTION(16, ENTITY_THROWABLE),
SNOWBALL(11, ENTITY_THROWABLE),
EXP_BOTTLE(17, ENTITY_THROWABLE),
ENDER_PEARL(14, ENTITY_THROWABLE),
EGG(7, ENTITY_THROWABLE),
ENTITY_ARROW(10, ENTITY),
ENTITY_ENDER_CRYSTAL(200, ENTITY),
ENTITY_XP_ORB(2, ENTITY),
ENTITY_FIREWORK_ROCKET(22, ENTITY),
ENTITY_FALLING_BLOCK(21, ENTITY),
ENTITY_TNT_PRIMED(20, ENTITY),
ENTITY_BOAT(41, ENTITY);
ARROW(10, ENTITY),
ENDER_CRYSTAL(200, ENTITY),
XP_ORB(2, ENTITY),
FIREWORK_ROCKET(22, ENTITY),
FALLING_BLOCK(21, ENTITY),
TNT_PRIMED(20, ENTITY),
BOAT(41, ENTITY);
private static final Map<Integer, EntityType> TYPES = new HashMap<>();
@ -185,10 +177,12 @@ public class EntityTypes1_8 {
}
}
public static Optional<EntityType> findById(int id) {
if (id == -1) // Check if this is called
public static Optional<EntityType> getEntity(final int id) {
if (id == -1) {
return Optional.empty();
return Optional.ofNullable(TYPES.get(id));
} else {
return Optional.ofNullable(TYPES.get(id));
}
}
@Override
@ -220,26 +214,26 @@ public class EntityTypes1_8 {
MINECART_SPAWNER(10, 4, EntityType.MINECART_MOB_SPAWNER),
MINECART_HOPPER(10, 5, EntityType.MINECART_HOPPER),
MINECART_COMMAND_BLOCK(10, 6, EntityType.MINECART_COMMAND_BLOCK),
FISHING_HOOK(90, EntityType.ENTITY_FISH_HOOK), // TODO, use entity tracker for this one
ARROW(60, EntityType.ENTITY_ARROW),
SNOWBALL(61, EntityType.ENTITY_SNOWBALL),
ITEM_FRAME(71, EntityType.ENTITY_ITEM_FRAME),
LEASH_KNOT(77, EntityType.ENTITY_LEASH_KNOT),
ENDER_PEARL(65, EntityType.ENTITY_ENDER_PEARL),
ENDER_EYE(72, EntityType.ENTITY_ENDER_EYE),
FIREWORK_ROCKET(76, EntityType.ENTITY_FIREWORK_ROCKET),
LARGE_FIREBALL(63, EntityType.ENTITY_LARGE_FIREBALL),
SMALL_FIREBALL(64, EntityType.ENTITY_SMALL_FIREBALL),
WITHER_SKULL(66, EntityType.ENTITY_WITHER_SKULL),
EGG(62, EntityType.ENTITY_EGG),
POTION(73, EntityType.ENTITY_POTION),
EXP_BOTTLE(75, EntityType.ENTITY_EXP_BOTTLE),
BOAT(1, EntityType.ENTITY_BOAT),
TNT_PRIMED(50, EntityType.ENTITY_TNT_PRIMED),
ARMOR_STAND(78, EntityType.ENTITY_ARMOR_STAND),
ENDER_CRYSTAL(51, EntityType.ENTITY_ENDER_CRYSTAL),
ITEM(2, EntityType.ENTITY_ITEM),
FALLING_BLOCK(70, EntityType.ENTITY_FALLING_BLOCK);
FISHING_HOOK(90, EntityType.FISH_HOOK), // TODO, use entity tracker for this one
ARROW(60, EntityType.ARROW),
SNOWBALL(61, EntityType.SNOWBALL),
ITEM_FRAME(71, EntityType.ITEM_FRAME),
LEASH_KNOT(77, EntityType.LEASH_KNOT),
ENDER_PEARL(65, EntityType.ENDER_PEARL),
ENDER_EYE(72, EntityType.ENDER_EYE),
FIREWORK_ROCKET(76, EntityType.FIREWORK_ROCKET),
LARGE_FIREBALL(63, EntityType.LARGE_FIREBALL),
SMALL_FIREBALL(64, EntityType.SMALL_FIREBALL),
WITHER_SKULL(66, EntityType.WITHER_SKULL),
EGG(62, EntityType.EGG),
POTION(73, EntityType.POTION),
EXP_BOTTLE(75, EntityType.EXP_BOTTLE),
BOAT(1, EntityType.BOAT),
TNT_PRIMED(50, EntityType.TNT_PRIMED),
ARMOR_STAND(78, EntityType.ARMOR_STAND),
ENDER_CRYSTAL(51, EntityType.ENDER_CRYSTAL),
ITEM(2, EntityType.ITEM),
FALLING_BLOCK(70, EntityType.FALLING_BLOCK);
private static final Map<Pair<Integer, Integer>, ObjectType> TYPES = new HashMap<>();
@ -275,18 +269,15 @@ public class EntityTypes1_8 {
return type;
}
public static Optional<ObjectType> findById(int id) {
if (id == -1)
public static Optional<ObjectType> getObjectEntity(final int id, @Nullable Integer data) {
if (id == -1) {
return Optional.empty();
return Optional.ofNullable(TYPES.get(id));
}
public static Optional<EntityType> getPCEntity(int id) {
Optional<ObjectType> output = findById(id);
if (!output.isPresent())
return Optional.empty();
return Optional.of(output.get().type);
} else {
if (data == null) {
data = 0;
}
return Optional.ofNullable(TYPES.get(new Pair<>(id, data)));
}
}
}
}