From e75b9f238d67c484098a5b7ecd890c88528a102a Mon Sep 17 00:00:00 2001 From: TheMode Date: Wed, 10 Nov 2021 16:45:46 +0100 Subject: [PATCH] Update registry data Signed-off-by: TheMode --- build.gradle | 2 +- code-generators/build.gradle | 2 +- .../net/minestom/server/entity/Entity.java | 4 +- .../server/entity/EntityTypeImpl.java | 58 ------------------- .../minestom/server/registry/Registry.java | 22 ++++++- 5 files changed, 25 insertions(+), 63 deletions(-) diff --git a/build.gradle b/build.gradle index fdc8a2718..e2c1255e5 100644 --- a/build.gradle +++ b/build.gradle @@ -158,7 +158,7 @@ dependencies { } api "com.github.Minestom:DependencyGetter:v1.0.1" - implementation 'com.github.Minestom:MinestomDataGenerator:7636d5d473' + implementation 'com.github.Minestom:MinestomDataGenerator:47da93dd5a99280314d7e6137d2c81e7793f0fdb' // Adventure, for user-interface api "net.kyori:adventure-api:$adventureVersion" diff --git a/code-generators/build.gradle b/code-generators/build.gradle index 81a7506d8..5c9d90d7b 100644 --- a/code-generators/build.gradle +++ b/code-generators/build.gradle @@ -25,7 +25,7 @@ dependencies { // SLF4J is the base logger for most libraries, therefore we can hook it into log4j2. implementation 'org.apache.logging.log4j:log4j-slf4j-impl:2.14.1' // Contains the json files - implementation 'com.github.Minestom:MinestomDataGenerator:7636d5d473' + implementation 'com.github.Minestom:MinestomDataGenerator:47da93dd5a99280314d7e6137d2c81e7793f0fdb' } diff --git a/src/main/java/net/minestom/server/entity/Entity.java b/src/main/java/net/minestom/server/entity/Entity.java index 0e6c74e6a..fafd7e6bf 100644 --- a/src/main/java/net/minestom/server/entity/Entity.java +++ b/src/main/java/net/minestom/server/entity/Entity.java @@ -189,8 +189,8 @@ public class Entity implements Viewable, Tickable, TagHandler, PermissionHandler Entity.ENTITY_BY_ID.put(id, this); Entity.ENTITY_BY_UUID.put(uuid, this); - this.gravityAcceleration = EntityTypeImpl.getAcceleration(entityType.name()); - this.gravityDragPerTick = EntityTypeImpl.getDrag(entityType.name()); + this.gravityAcceleration = entityType.registry().acceleration(); + this.gravityDragPerTick = entityType.registry().drag(); } public Entity(@NotNull EntityType entityType) { diff --git a/src/main/java/net/minestom/server/entity/EntityTypeImpl.java b/src/main/java/net/minestom/server/entity/EntityTypeImpl.java index bd63e53e9..c999e044f 100644 --- a/src/main/java/net/minestom/server/entity/EntityTypeImpl.java +++ b/src/main/java/net/minestom/server/entity/EntityTypeImpl.java @@ -46,8 +46,6 @@ record EntityTypeImpl(Registry.EntityEntry registry) implements EntityType { private static final Registry.Container CONTAINER = new Registry.Container<>(Registry.Resource.ENTITIES, (container, namespace, object) -> container.register(new EntityTypeImpl(Registry.entity(namespace, object, null)))); private static final Map> ENTITY_META_SUPPLIER = createMetaMap(); - private static final Map ACCELERATION_MAP = createAccelerationMap(); - private static final Map DRAG_MAP = createDragMap(); static EntityType get(@NotNull String namespace) { return CONTAINER.get(namespace); @@ -69,14 +67,6 @@ record EntityTypeImpl(Registry.EntityEntry registry) implements EntityType { return ENTITY_META_SUPPLIER.get(entityType.name()).apply(entity, metadata); } - static double getAcceleration(String namespace) { - return ACCELERATION_MAP.getOrDefault(namespace, 0.08); - } - - static double getDrag(String namespace) { - return DRAG_MAP.getOrDefault(namespace, 0.02); - } - private static Map> createMetaMap() { Map> supplier = new HashMap<>(); supplier.put("minecraft:area_effect_cloud", AreaEffectCloudMeta::new); @@ -194,54 +184,6 @@ record EntityTypeImpl(Registry.EntityEntry registry) implements EntityType { return supplier; } - private static Map createDragMap() { - Map result = new HashMap<>(); - result.put("minecraft:boat", 0d); - - result.put("minecraft:llama_spit", 0.01); - result.put("minecraft:ender_pearl", 0.01); - result.put("minecraft:potion", 0.01); - result.put("minecraft:snowball", 0.01); - result.put("minecraft:egg", 0.01); - result.put("minecraft:trident", 0.01); - result.put("minecraft:spectral_arrow", 0.01); - result.put("minecraft:arrow", 0.01); - - result.put("minecraft:minecart", 0.05); - - result.put("minecraft:fishing_bobber", 0.08); - return result; - } - - private static Map createAccelerationMap() { - Map result = new HashMap<>(); - result.put("minecraft:item_frame", 0d); - - result.put("minecraft:egg", 0.03); - result.put("minecraft:fishing_bobber", 0.03); - result.put("minecraft:experience_bottle", 0.03); - result.put("minecraft:ender_pearl", 0.03); - result.put("minecraft:potion", 0.03); - result.put("minecraft:snowball", 0.03); - - result.put("minecraft:boat", 0.04); - result.put("minecraft:tnt", 0.04); - result.put("minecraft:falling_block", 0.04); - result.put("minecraft:item", 0.04); - result.put("minecraft:minecart", 0.04); - - result.put("minecraft:arrow", 0.05); - result.put("minecraft:spectral_arrow", 0.05); - result.put("minecraft:trident", 0.05); - - result.put("minecraft:llama_spit", 0.06); - - result.put("minecraft:fireball", 0.1); - result.put("minecraft:wither_skull", 0.1); - result.put("minecraft:dragon_fireball", 0.1); - return result; - } - @Override public String toString() { return name(); diff --git a/src/main/java/net/minestom/server/registry/Registry.java b/src/main/java/net/minestom/server/registry/Registry.java index bd247519f..139140cb6 100644 --- a/src/main/java/net/minestom/server/registry/Registry.java +++ b/src/main/java/net/minestom/server/registry/Registry.java @@ -173,7 +173,15 @@ public final class Registry { this.air = getBoolean("air", false); this.solid = getBoolean("solid"); this.liquid = getBoolean("liquid", false); - this.blockEntity = getString("blockEntity", null); + + { + Map blockEntity = element("blockEntity"); + if (blockEntity != null) { + this.blockEntity = (String) blockEntity.get("namespace"); + } else { + this.blockEntity = null; + } + } { final String materialNamespace = getString("correspondingItem", null); this.materialSupplier = materialNamespace != null ? () -> Material.fromNamespaceId(materialNamespace) : () -> null; @@ -324,6 +332,8 @@ public final class Registry { private final String translationKey; private final double width; private final double height; + private final double drag; + private final double acceleration; private final EntitySpawnType spawnType; private EntityEntry(String namespace, Map main, Map override) { @@ -333,6 +343,8 @@ public final class Registry { this.translationKey = getString("translationKey"); this.width = getDouble("width"); this.height = getDouble("height"); + this.drag = getDouble("drag", 0.02); + this.acceleration = getDouble("acceleration", 0.08); this.spawnType = EntitySpawnType.valueOf(getString("packetType").toUpperCase(Locale.ROOT)); } @@ -356,6 +368,14 @@ public final class Registry { return height; } + public double drag() { + return drag; + } + + public double acceleration() { + return acceleration; + } + public EntitySpawnType spawnType() { return spawnType; }