2021-03-23 11:51:40 +01:00
|
|
|
/*
|
|
|
|
* This file is part of ViaVersion - https://github.com/ViaVersion/ViaVersion
|
2023-01-12 12:45:53 +01:00
|
|
|
* Copyright (C) 2016-2023 ViaVersion and contributors
|
2021-03-23 11:51:40 +01:00
|
|
|
*
|
|
|
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
|
|
* of this software and associated documentation files (the "Software"), to deal
|
|
|
|
* in the Software without restriction, including without limitation the rights
|
|
|
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
|
|
* copies of the Software, and to permit persons to whom the Software is
|
|
|
|
* furnished to do so, subject to the following conditions:
|
|
|
|
*
|
|
|
|
* The above copyright notice and this permission notice shall be included in all
|
|
|
|
* copies or substantial portions of the Software.
|
|
|
|
*
|
|
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
|
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
|
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
|
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
|
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
|
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
|
|
* SOFTWARE.
|
|
|
|
*/
|
2021-04-26 21:16:10 +02:00
|
|
|
package com.viaversion.viaversion.api.minecraft.entities;
|
2018-02-23 21:46:56 +01:00
|
|
|
|
2021-04-26 20:52:34 +02:00
|
|
|
import com.viaversion.viaversion.api.Via;
|
2018-02-23 21:46:56 +01:00
|
|
|
|
2019-04-27 18:36:01 +02:00
|
|
|
import java.util.HashMap;
|
|
|
|
import java.util.Map;
|
2019-09-21 11:57:28 +02:00
|
|
|
import java.util.Optional;
|
2019-04-27 18:36:01 +02:00
|
|
|
|
2018-02-23 21:46:56 +01:00
|
|
|
public class Entity1_13Types {
|
2019-05-15 12:04:56 +02:00
|
|
|
|
2018-02-23 21:46:56 +01:00
|
|
|
public static EntityType getTypeFromId(int typeID, boolean isObject) {
|
|
|
|
Optional<EntityType> type;
|
|
|
|
|
|
|
|
if (isObject)
|
2019-09-19 11:22:06 +02:00
|
|
|
type = ObjectType.getPCEntity(typeID);
|
2018-02-23 21:46:56 +01:00
|
|
|
else
|
|
|
|
type = EntityType.findById(typeID);
|
|
|
|
|
|
|
|
if (!type.isPresent()) {
|
2019-11-27 00:55:33 +01:00
|
|
|
Via.getPlatform().getLogger().severe("Could not find 1.13 type id " + typeID + " isObject=" + isObject);
|
2018-02-23 21:46:56 +01:00
|
|
|
return EntityType.ENTITY; // Fall back to the basic ENTITY
|
|
|
|
}
|
|
|
|
|
|
|
|
return type.get();
|
|
|
|
}
|
|
|
|
|
2021-04-26 21:16:10 +02:00
|
|
|
public enum EntityType implements com.viaversion.viaversion.api.minecraft.entities.EntityType {
|
2018-03-18 14:11:40 +01:00
|
|
|
// Auto generated
|
|
|
|
|
|
|
|
ENTITY(-1), // abm
|
|
|
|
|
|
|
|
AREA_EFFECT_CLOUD(0, ENTITY), // abk
|
2020-04-22 19:04:53 +02:00
|
|
|
END_CRYSTAL(16, ENTITY), // aho
|
|
|
|
EVOKER_FANGS(20, ENTITY), // ala
|
|
|
|
EXPERIENCE_ORB(22, ENTITY), // abs
|
|
|
|
EYE_OF_ENDER(23, ENTITY), // alb
|
2018-04-12 22:30:00 +02:00
|
|
|
FALLING_BLOCK(24, ENTITY), // aix
|
2020-04-22 19:04:53 +02:00
|
|
|
FIREWORK_ROCKET(25, ENTITY), // alc
|
2018-04-12 22:30:00 +02:00
|
|
|
ITEM(32, ENTITY), // aiy
|
|
|
|
LLAMA_SPIT(37, ENTITY), // ale
|
|
|
|
TNT(55, ENTITY), // aiz
|
|
|
|
SHULKER_BULLET(60, ENTITY), // alh
|
|
|
|
FISHING_BOBBER(93, ENTITY), // ais
|
2018-03-18 14:11:40 +01:00
|
|
|
|
|
|
|
LIVINGENTITY(-1, ENTITY), // abv
|
2018-03-18 14:28:54 +01:00
|
|
|
ARMOR_STAND(1, LIVINGENTITY), // ail
|
2018-04-12 22:30:00 +02:00
|
|
|
PLAYER(92, LIVINGENTITY), // aks
|
2018-03-18 14:11:40 +01:00
|
|
|
|
2018-03-18 14:28:54 +01:00
|
|
|
ABSTRACT_INSENTIENT(-1, LIVINGENTITY), // abw
|
2018-04-12 22:30:00 +02:00
|
|
|
ENDER_DRAGON(17, ABSTRACT_INSENTIENT), // ahp
|
2018-03-18 14:28:54 +01:00
|
|
|
|
|
|
|
ABSTRACT_CREATURE(-1, ABSTRACT_INSENTIENT), // acd
|
|
|
|
|
|
|
|
ABSTRACT_AGEABLE(-1, ABSTRACT_CREATURE), // abj
|
2018-04-12 22:30:00 +02:00
|
|
|
VILLAGER(79, ABSTRACT_AGEABLE), // akn
|
2018-03-18 14:28:54 +01:00
|
|
|
|
|
|
|
// Animals
|
|
|
|
ABSTRACT_ANIMAL(-1, ABSTRACT_AGEABLE), // agd
|
|
|
|
CHICKEN(7, ABSTRACT_ANIMAL), // age
|
|
|
|
COW(9, ABSTRACT_ANIMAL), // agg
|
2018-04-12 22:30:00 +02:00
|
|
|
MOOSHROOM(47, COW), // agi
|
|
|
|
PIG(51, ABSTRACT_ANIMAL), // agl
|
|
|
|
POLAR_BEAR(54, ABSTRACT_ANIMAL), // agm
|
|
|
|
RABBIT(56, ABSTRACT_ANIMAL), // ago
|
|
|
|
SHEEP(58, ABSTRACT_ANIMAL), // agq
|
|
|
|
TURTLE(73, ABSTRACT_ANIMAL), // agv
|
2018-03-18 14:28:54 +01:00
|
|
|
|
|
|
|
ABSTRACT_TAMEABLE_ANIMAL(-1, ABSTRACT_ANIMAL), // acg
|
2018-04-12 22:30:00 +02:00
|
|
|
OCELOT(48, ABSTRACT_TAMEABLE_ANIMAL), // agj
|
|
|
|
WOLF(86, ABSTRACT_TAMEABLE_ANIMAL), // agy
|
2018-03-18 14:28:54 +01:00
|
|
|
|
|
|
|
ABSTRACT_PARROT(-1, ABSTRACT_TAMEABLE_ANIMAL), // agr
|
2018-04-12 22:30:00 +02:00
|
|
|
PARROT(50, ABSTRACT_PARROT), // agk
|
2018-03-18 14:28:54 +01:00
|
|
|
|
2018-03-18 14:11:40 +01:00
|
|
|
// Horses
|
2018-03-18 14:28:54 +01:00
|
|
|
ABSTRACT_HORSE(-1, ABSTRACT_ANIMAL), // aha
|
2018-03-18 14:11:40 +01:00
|
|
|
CHESTED_HORSE(-1, ABSTRACT_HORSE), // agz
|
|
|
|
DONKEY(11, CHESTED_HORSE), // ahb
|
2018-04-12 22:30:00 +02:00
|
|
|
MULE(46, CHESTED_HORSE), // ahf
|
|
|
|
LLAMA(36, CHESTED_HORSE), // ahe
|
|
|
|
HORSE(29, ABSTRACT_HORSE), // ahc
|
|
|
|
SKELETON_HORSE(63, ABSTRACT_HORSE), // ahg
|
|
|
|
ZOMBIE_HORSE(88, ABSTRACT_HORSE), // ahi
|
2018-03-18 14:11:40 +01:00
|
|
|
|
|
|
|
// Golem
|
2018-03-18 14:28:54 +01:00
|
|
|
ABSTRACT_GOLEM(-1, ABSTRACT_CREATURE), // agc
|
2020-04-22 19:04:53 +02:00
|
|
|
SNOW_GOLEM(66, ABSTRACT_GOLEM), // ags
|
|
|
|
IRON_GOLEM(80, ABSTRACT_GOLEM), // agw
|
2018-04-12 22:30:00 +02:00
|
|
|
SHULKER(59, ABSTRACT_GOLEM), // ajx
|
2018-03-18 14:11:40 +01:00
|
|
|
|
2018-03-18 14:28:54 +01:00
|
|
|
// Fish
|
|
|
|
ABSTRACT_FISHES(-1, ABSTRACT_CREATURE), // agb
|
2020-06-08 13:49:26 +02:00
|
|
|
COD(8, ABSTRACT_FISHES), // agf
|
2020-04-22 19:04:53 +02:00
|
|
|
PUFFERFISH(52, ABSTRACT_FISHES), // agn
|
|
|
|
SALMON(57, ABSTRACT_FISHES), // agp
|
2018-04-12 22:30:00 +02:00
|
|
|
TROPICAL_FISH(72, ABSTRACT_FISHES), // agu
|
2018-03-18 14:28:54 +01:00
|
|
|
|
|
|
|
// Monsters
|
|
|
|
ABSTRACT_MONSTER(-1, ABSTRACT_CREATURE), // ajs
|
|
|
|
BLAZE(4, ABSTRACT_MONSTER), // ajd
|
|
|
|
CREEPER(10, ABSTRACT_MONSTER), // ajf
|
2018-04-12 22:30:00 +02:00
|
|
|
ENDERMITE(19, ABSTRACT_MONSTER), // ajj
|
|
|
|
ENDERMAN(18, ABSTRACT_MONSTER), // aji
|
|
|
|
GIANT(27, ABSTRACT_MONSTER), // ajn
|
|
|
|
SILVERFISH(61, ABSTRACT_MONSTER), // ajy
|
|
|
|
VEX(78, ABSTRACT_MONSTER), // ake
|
|
|
|
WITCH(82, ABSTRACT_MONSTER), // akg
|
|
|
|
WITHER(83, ABSTRACT_MONSTER), // aij
|
2018-03-18 14:28:54 +01:00
|
|
|
|
|
|
|
// Illagers
|
|
|
|
ABSTRACT_ILLAGER_BASE(-1, ABSTRACT_MONSTER), // ajb
|
|
|
|
ABSTRACT_EVO_ILLU_ILLAGER(-1, ABSTRACT_ILLAGER_BASE), // akb
|
2020-04-22 19:04:53 +02:00
|
|
|
EVOKER(21, ABSTRACT_EVO_ILLU_ILLAGER), // ajl
|
|
|
|
ILLUSIONER(31, ABSTRACT_EVO_ILLU_ILLAGER), // ajq
|
|
|
|
VINDICATOR(81, ABSTRACT_ILLAGER_BASE), // akf
|
2018-03-18 14:28:54 +01:00
|
|
|
|
|
|
|
// Skeletons
|
|
|
|
ABSTRACT_SKELETON(-1, ABSTRACT_MONSTER), // ajc
|
2018-04-12 22:30:00 +02:00
|
|
|
SKELETON(62, ABSTRACT_SKELETON), // ajz
|
|
|
|
STRAY(71, ABSTRACT_SKELETON), // akd
|
|
|
|
WITHER_SKELETON(84, ABSTRACT_SKELETON), // akh
|
2018-03-18 14:28:54 +01:00
|
|
|
|
|
|
|
// Guardians
|
2018-04-12 22:30:00 +02:00
|
|
|
GUARDIAN(28, ABSTRACT_MONSTER), // ajo
|
|
|
|
ELDER_GUARDIAN(15, GUARDIAN), // ajh
|
2018-03-18 14:28:54 +01:00
|
|
|
|
|
|
|
// Spiders
|
2018-04-12 22:30:00 +02:00
|
|
|
SPIDER(69, ABSTRACT_MONSTER), // akc
|
2018-03-18 14:28:54 +01:00
|
|
|
CAVE_SPIDER(6, SPIDER), // aje
|
|
|
|
|
2018-03-20 15:55:27 +01:00
|
|
|
// Zombies - META CHECKED
|
2018-04-12 22:30:00 +02:00
|
|
|
ZOMBIE(87, ABSTRACT_MONSTER), // aki
|
|
|
|
DROWNED(14, ZOMBIE), // ajg
|
|
|
|
HUSK(30, ZOMBIE), // ajp
|
|
|
|
ZOMBIE_PIGMAN(53, ZOMBIE), // aju
|
|
|
|
ZOMBIE_VILLAGER(89, ZOMBIE), // akj
|
2018-03-18 14:28:54 +01:00
|
|
|
|
|
|
|
// Flying entities
|
|
|
|
ABSTRACT_FLYING(-1, ABSTRACT_INSENTIENT), // abt
|
2018-04-12 22:30:00 +02:00
|
|
|
GHAST(26, ABSTRACT_FLYING), // ajm
|
|
|
|
PHANTOM(90, ABSTRACT_FLYING), // ajt
|
2018-03-18 14:28:54 +01:00
|
|
|
|
|
|
|
ABSTRACT_AMBIENT(-1, ABSTRACT_INSENTIENT), // afy
|
|
|
|
BAT(3, ABSTRACT_AMBIENT), // afz
|
|
|
|
|
|
|
|
ABSTRACT_WATERMOB(-1, ABSTRACT_INSENTIENT), // agx
|
2018-04-12 22:30:00 +02:00
|
|
|
SQUID(70, ABSTRACT_WATERMOB), // agt
|
2019-05-22 15:25:42 +02:00
|
|
|
DOLPHIN(12, ABSTRACT_WATERMOB),
|
2018-03-18 14:28:54 +01:00
|
|
|
|
|
|
|
// Slimes
|
2018-04-12 22:30:00 +02:00
|
|
|
SLIME(64, ABSTRACT_INSENTIENT), // aka
|
|
|
|
MAGMA_CUBE(38, SLIME), // ajr
|
2018-03-18 14:28:54 +01:00
|
|
|
|
|
|
|
// Hangable objects
|
|
|
|
ABSTRACT_HANGING(-1, ENTITY), // aim
|
2018-04-12 22:30:00 +02:00
|
|
|
LEASH_KNOT(35, ABSTRACT_HANGING), // aio
|
|
|
|
ITEM_FRAME(33, ABSTRACT_HANGING), // ain
|
|
|
|
PAINTING(49, ABSTRACT_HANGING), // aiq
|
2018-03-18 14:28:54 +01:00
|
|
|
|
|
|
|
ABSTRACT_LIGHTNING(-1, ENTITY), // aiu
|
2018-04-12 22:30:00 +02:00
|
|
|
LIGHTNING_BOLT(91, ABSTRACT_LIGHTNING), // aiv
|
2018-03-18 14:28:54 +01:00
|
|
|
|
|
|
|
// Arrows
|
|
|
|
ABSTRACT_ARROW(-1, ENTITY), // akw
|
|
|
|
ARROW(2, ABSTRACT_ARROW), // aky
|
2018-04-12 22:30:00 +02:00
|
|
|
SPECTRAL_ARROW(68, ABSTRACT_ARROW), // alk
|
|
|
|
TRIDENT(94, ABSTRACT_ARROW), // alq
|
2018-03-18 14:28:54 +01:00
|
|
|
|
|
|
|
// Fireballs
|
|
|
|
ABSTRACT_FIREBALL(-1, ENTITY), // akx
|
2018-04-12 22:30:00 +02:00
|
|
|
DRAGON_FIREBALL(13, ABSTRACT_FIREBALL), // akz
|
|
|
|
FIREBALL(34, ABSTRACT_FIREBALL), // ald
|
|
|
|
SMALL_FIREBALL(65, ABSTRACT_FIREBALL), // ali
|
|
|
|
WITHER_SKULL(85, ABSTRACT_FIREBALL), // alr
|
2018-03-18 14:11:40 +01:00
|
|
|
|
|
|
|
// Projectiles
|
|
|
|
PROJECTILE_ABSTRACT(-1, ENTITY), // all
|
2018-04-12 22:30:00 +02:00
|
|
|
SNOWBALL(67, PROJECTILE_ABSTRACT), // alj
|
|
|
|
ENDER_PEARL(75, PROJECTILE_ABSTRACT), // aln
|
|
|
|
EGG(74, PROJECTILE_ABSTRACT), // alm
|
|
|
|
POTION(77, PROJECTILE_ABSTRACT), // alp
|
2020-04-22 19:04:53 +02:00
|
|
|
EXPERIENCE_BOTTLE(76, PROJECTILE_ABSTRACT), // alo
|
2018-02-23 21:46:56 +01:00
|
|
|
|
|
|
|
// Vehicles
|
2018-03-18 14:11:40 +01:00
|
|
|
MINECART_ABSTRACT(-1, ENTITY), // alt
|
|
|
|
CHESTED_MINECART_ABSTRACT(-1, MINECART_ABSTRACT), // alu
|
2018-04-12 22:30:00 +02:00
|
|
|
CHEST_MINECART(40, CHESTED_MINECART_ABSTRACT), // alx
|
|
|
|
HOPPER_MINECART(43, CHESTED_MINECART_ABSTRACT), // ama
|
|
|
|
MINECART(39, MINECART_ABSTRACT), // alw
|
|
|
|
FURNACE_MINECART(42, MINECART_ABSTRACT), // alz
|
2020-04-22 19:04:53 +02:00
|
|
|
COMMAND_BLOCK_MINECART(41, MINECART_ABSTRACT), // aly
|
2018-04-12 22:30:00 +02:00
|
|
|
TNT_MINECART(45, MINECART_ABSTRACT), // amc
|
|
|
|
SPAWNER_MINECART(44, MINECART_ABSTRACT), // amb
|
2018-03-18 14:11:40 +01:00
|
|
|
BOAT(5, ENTITY); // alv
|
|
|
|
|
2019-04-27 18:36:01 +02:00
|
|
|
private static final Map<Integer, EntityType> TYPES = new HashMap<>();
|
2018-02-23 21:46:56 +01:00
|
|
|
|
|
|
|
private final int id;
|
|
|
|
private final EntityType parent;
|
|
|
|
|
|
|
|
EntityType(int id) {
|
|
|
|
this.id = id;
|
|
|
|
this.parent = null;
|
|
|
|
}
|
|
|
|
|
2020-04-23 21:07:12 +02:00
|
|
|
EntityType(int id, EntityType parent) {
|
|
|
|
this.id = id;
|
|
|
|
this.parent = parent;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public int getId() {
|
|
|
|
return id;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public EntityType getParent() {
|
|
|
|
return parent;
|
|
|
|
}
|
|
|
|
|
2022-04-01 16:54:07 +02:00
|
|
|
@Override
|
|
|
|
public String identifier() {
|
|
|
|
throw new UnsupportedOperationException();
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean isAbstractType() {
|
|
|
|
return id != -1;
|
|
|
|
}
|
|
|
|
|
2019-04-27 18:36:01 +02:00
|
|
|
static {
|
|
|
|
for (EntityType type : EntityType.values()) {
|
|
|
|
TYPES.put(type.id, type);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-02-23 21:46:56 +01:00
|
|
|
public static Optional<EntityType> findById(int id) {
|
|
|
|
if (id == -1) // Check if this is called
|
2019-09-21 11:57:28 +02:00
|
|
|
return Optional.empty();
|
|
|
|
return Optional.ofNullable(TYPES.get(id));
|
2018-02-23 21:46:56 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-04-26 21:16:10 +02:00
|
|
|
public enum ObjectType implements com.viaversion.viaversion.api.minecraft.entities.ObjectType {
|
2018-03-17 17:25:35 +01:00
|
|
|
BOAT(1, EntityType.BOAT),
|
2018-03-18 14:11:40 +01:00
|
|
|
ITEM(2, EntityType.ITEM),
|
2018-03-17 17:25:35 +01:00
|
|
|
AREA_EFFECT_CLOUD(3, EntityType.AREA_EFFECT_CLOUD),
|
2019-03-04 12:37:38 +01:00
|
|
|
MINECART(10, EntityType.MINECART),
|
2018-03-18 14:11:40 +01:00
|
|
|
TNT_PRIMED(50, EntityType.TNT),
|
2020-04-22 19:04:53 +02:00
|
|
|
ENDER_CRYSTAL(51, EntityType.END_CRYSTAL),
|
2018-03-17 17:25:35 +01:00
|
|
|
TIPPED_ARROW(60, EntityType.ARROW),
|
|
|
|
SNOWBALL(61, EntityType.SNOWBALL),
|
|
|
|
EGG(62, EntityType.EGG),
|
|
|
|
FIREBALL(63, EntityType.FIREBALL),
|
|
|
|
SMALL_FIREBALL(64, EntityType.SMALL_FIREBALL),
|
|
|
|
ENDER_PEARL(65, EntityType.ENDER_PEARL),
|
|
|
|
WITHER_SKULL(66, EntityType.WITHER_SKULL),
|
|
|
|
SHULKER_BULLET(67, EntityType.SHULKER_BULLET),
|
2020-06-08 13:49:26 +02:00
|
|
|
LLAMA_SPIT(68, EntityType.LLAMA_SPIT),
|
2018-03-17 17:25:35 +01:00
|
|
|
FALLING_BLOCK(70, EntityType.FALLING_BLOCK),
|
|
|
|
ITEM_FRAME(71, EntityType.ITEM_FRAME),
|
2020-04-22 19:04:53 +02:00
|
|
|
EYE_OF_ENDER(72, EntityType.EYE_OF_ENDER),
|
2018-03-18 14:11:40 +01:00
|
|
|
POTION(73, EntityType.POTION),
|
2020-04-22 19:04:53 +02:00
|
|
|
EXPERIENCE_BOTTLE(75, EntityType.EXPERIENCE_BOTTLE),
|
|
|
|
FIREWORK_ROCKET(76, EntityType.FIREWORK_ROCKET),
|
2018-03-18 14:11:40 +01:00
|
|
|
LEASH(77, EntityType.LEASH_KNOT),
|
2018-03-17 17:25:35 +01:00
|
|
|
ARMOR_STAND(78, EntityType.ARMOR_STAND),
|
2020-04-22 19:04:53 +02:00
|
|
|
EVOKER_FANGS(79, EntityType.EVOKER_FANGS),
|
2018-03-18 14:11:40 +01:00
|
|
|
FISHIHNG_HOOK(90, EntityType.FISHING_BOBBER),
|
2018-03-17 17:25:35 +01:00
|
|
|
SPECTRAL_ARROW(91, EntityType.SPECTRAL_ARROW),
|
2019-04-21 18:36:21 +02:00
|
|
|
DRAGON_FIREBALL(93, EntityType.DRAGON_FIREBALL),
|
|
|
|
TRIDENT(94, EntityType.TRIDENT);
|
2018-02-23 21:46:56 +01:00
|
|
|
|
2019-09-19 11:22:06 +02:00
|
|
|
private static final Map<Integer, ObjectType> TYPES = new HashMap<>();
|
2019-04-27 18:36:01 +02:00
|
|
|
|
2018-02-23 21:46:56 +01:00
|
|
|
private final int id;
|
|
|
|
private final EntityType type;
|
|
|
|
|
2019-04-27 18:36:01 +02:00
|
|
|
static {
|
2019-09-19 11:22:06 +02:00
|
|
|
for (ObjectType type : ObjectType.values()) {
|
2019-04-27 18:36:01 +02:00
|
|
|
TYPES.put(type.id, type);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-04-23 21:07:12 +02:00
|
|
|
ObjectType(int id, EntityType type) {
|
|
|
|
this.id = id;
|
|
|
|
this.type = type;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public int getId() {
|
|
|
|
return id;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public EntityType getType() {
|
|
|
|
return type;
|
|
|
|
}
|
|
|
|
|
2019-09-19 11:22:06 +02:00
|
|
|
public static Optional<ObjectType> findById(int id) {
|
2018-02-23 21:46:56 +01:00
|
|
|
if (id == -1)
|
2019-09-21 11:57:28 +02:00
|
|
|
return Optional.empty();
|
|
|
|
return Optional.ofNullable(TYPES.get(id));
|
2018-02-23 21:46:56 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
public static Optional<EntityType> getPCEntity(int id) {
|
2019-09-19 11:22:06 +02:00
|
|
|
Optional<ObjectType> output = findById(id);
|
2018-02-23 21:46:56 +01:00
|
|
|
if (!output.isPresent())
|
2019-09-21 11:57:28 +02:00
|
|
|
return Optional.empty();
|
|
|
|
return Optional.of(output.get().type);
|
|
|
|
}
|
|
|
|
|
|
|
|
public static Optional<ObjectType> fromEntityType(EntityType type) {
|
|
|
|
for (ObjectType ent : ObjectType.values())
|
|
|
|
if (ent.type == type)
|
|
|
|
return Optional.of(ent);
|
|
|
|
return Optional.empty();
|
2018-02-23 21:46:56 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|