From d5987f91b5d679e7e78081db82b62ea54b24f3a8 Mon Sep 17 00:00:00 2001 From: Matt Worzala Date: Mon, 7 Jun 2021 01:24:39 -0400 Subject: [PATCH] update code generators, add axolotl (needs some more detail) --- .../codegen/entity/EntityTypeGenerator.java | 5 ++ .../minestom/server/entity/EntityType.java | 52 +++++++++++++++++-- ...wFrameMeta.java => GlowItemFrameMeta.java} | 4 +- .../entity/metadata/water/AxolotlMeta.java | 39 ++++++++++++++ 4 files changed, 94 insertions(+), 6 deletions(-) rename src/main/java/net/minestom/server/entity/metadata/other/{GlowFrameMeta.java => GlowItemFrameMeta.java} (71%) create mode 100644 src/main/java/net/minestom/server/entity/metadata/water/AxolotlMeta.java diff --git a/code-generators/src/main/java/net/minestom/codegen/entity/EntityTypeGenerator.java b/code-generators/src/main/java/net/minestom/codegen/entity/EntityTypeGenerator.java index b0c033118..4d2e99d44 100644 --- a/code-generators/src/main/java/net/minestom/codegen/entity/EntityTypeGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/entity/EntityTypeGenerator.java @@ -38,6 +38,7 @@ public final class EntityTypeGenerator extends MinestomCodeGenerator { put("Cow", "net.minestom.server.entity.metadata.animal"); put("Donkey", "net.minestom.server.entity.metadata.animal"); put("Fox", "net.minestom.server.entity.metadata.animal"); + put("Goat", "net.minestom.server.entity.metadata.animal"); put("Hoglin", "net.minestom.server.entity.metadata.animal"); put("Horse", "net.minestom.server.entity.metadata.animal"); put("Llama", "net.minestom.server.entity.metadata.animal"); @@ -144,11 +145,13 @@ public final class EntityTypeGenerator extends MinestomCodeGenerator { put("FallingBlock", "net.minestom.server.entity.metadata.other"); put("FireworkRocket", "net.minestom.server.entity.metadata.other"); put("FishingHook", "net.minestom.server.entity.metadata.other"); + put("GlowItemFrame", "net.minestom.server.entity.metadata.other"); put("ItemFrame", "net.minestom.server.entity.metadata.other"); put("LeashKnot", "net.minestom.server.entity.metadata.other"); put("LightningBolt", "net.minestom.server.entity.metadata.other"); put("LlamaSpit", "net.minestom.server.entity.metadata.other"); put("MagmaCube", "net.minestom.server.entity.metadata.other"); + put("Marker", "net.minestom.server.entity.metadata.other"); put("Painting", "net.minestom.server.entity.metadata.other"); put("PrimedTnt", "net.minestom.server.entity.metadata.other"); put("ShulkerBullet", "net.minestom.server.entity.metadata.other"); @@ -161,7 +164,9 @@ public final class EntityTypeGenerator extends MinestomCodeGenerator { put("WanderingTrader", "net.minestom.server.entity.metadata.villager"); // Water // put("WaterAnimalMeta", "net.minestom.server.entity.metadata.water") + put("Axolotl", "net.minestom.server.entity.metadata.water"); put("Squid", "net.minestom.server.entity.metadata.water"); + put("GlowSquid", "net.minestom.server.entity.metadata.water"); put("Dolphin", "net.minestom.server.entity.metadata.water"); // Water - Fish // put("AbstractFish", "net.minestom.server.entity.metadata.water.fish"); diff --git a/src/autogenerated/java/net/minestom/server/entity/EntityType.java b/src/autogenerated/java/net/minestom/server/entity/EntityType.java index b7bbfe9ad..42c4e8513 100644 --- a/src/autogenerated/java/net/minestom/server/entity/EntityType.java +++ b/src/autogenerated/java/net/minestom/server/entity/EntityType.java @@ -6,7 +6,27 @@ import net.kyori.adventure.key.Keyed; import net.minestom.server.entity.metadata.EntityMeta; import net.minestom.server.entity.metadata.PlayerMeta; import net.minestom.server.entity.metadata.ambient.BatMeta; -import net.minestom.server.entity.metadata.animal.*; +import net.minestom.server.entity.metadata.animal.BeeMeta; +import net.minestom.server.entity.metadata.animal.ChickenMeta; +import net.minestom.server.entity.metadata.animal.CowMeta; +import net.minestom.server.entity.metadata.animal.DonkeyMeta; +import net.minestom.server.entity.metadata.animal.FoxMeta; +import net.minestom.server.entity.metadata.animal.GoatMeta; +import net.minestom.server.entity.metadata.animal.HoglinMeta; +import net.minestom.server.entity.metadata.animal.HorseMeta; +import net.minestom.server.entity.metadata.animal.LlamaMeta; +import net.minestom.server.entity.metadata.animal.MooshroomMeta; +import net.minestom.server.entity.metadata.animal.MuleMeta; +import net.minestom.server.entity.metadata.animal.OcelotMeta; +import net.minestom.server.entity.metadata.animal.PandaMeta; +import net.minestom.server.entity.metadata.animal.PigMeta; +import net.minestom.server.entity.metadata.animal.PolarBearMeta; +import net.minestom.server.entity.metadata.animal.RabbitMeta; +import net.minestom.server.entity.metadata.animal.SheepMeta; +import net.minestom.server.entity.metadata.animal.SkeletonHorseMeta; +import net.minestom.server.entity.metadata.animal.StriderMeta; +import net.minestom.server.entity.metadata.animal.TurtleMeta; +import net.minestom.server.entity.metadata.animal.ZombieHorseMeta; import net.minestom.server.entity.metadata.animal.tameable.CatMeta; import net.minestom.server.entity.metadata.animal.tameable.ParrotMeta; import net.minestom.server.entity.metadata.animal.tameable.WolfMeta; @@ -63,9 +83,33 @@ import net.minestom.server.entity.metadata.monster.zombie.HuskMeta; import net.minestom.server.entity.metadata.monster.zombie.ZombieMeta; import net.minestom.server.entity.metadata.monster.zombie.ZombieVillagerMeta; import net.minestom.server.entity.metadata.monster.zombie.ZombifiedPiglinMeta; -import net.minestom.server.entity.metadata.other.*; +import net.minestom.server.entity.metadata.other.AreaEffectCloudMeta; +import net.minestom.server.entity.metadata.other.ArmorStandMeta; +import net.minestom.server.entity.metadata.other.BoatMeta; +import net.minestom.server.entity.metadata.other.DragonFireballMeta; +import net.minestom.server.entity.metadata.other.EndCrystalMeta; +import net.minestom.server.entity.metadata.other.EnderDragonMeta; +import net.minestom.server.entity.metadata.other.EvokerFangsMeta; +import net.minestom.server.entity.metadata.other.ExperienceOrbMeta; +import net.minestom.server.entity.metadata.other.FallingBlockMeta; +import net.minestom.server.entity.metadata.other.FireworkRocketMeta; +import net.minestom.server.entity.metadata.other.FishingHookMeta; +import net.minestom.server.entity.metadata.other.GlowItemFrameMeta; +import net.minestom.server.entity.metadata.other.ItemFrameMeta; +import net.minestom.server.entity.metadata.other.LeashKnotMeta; +import net.minestom.server.entity.metadata.other.LightningBoltMeta; +import net.minestom.server.entity.metadata.other.LlamaSpitMeta; +import net.minestom.server.entity.metadata.other.MagmaCubeMeta; +import net.minestom.server.entity.metadata.other.MarkerMeta; +import net.minestom.server.entity.metadata.other.PaintingMeta; +import net.minestom.server.entity.metadata.other.PrimedTntMeta; +import net.minestom.server.entity.metadata.other.ShulkerBulletMeta; +import net.minestom.server.entity.metadata.other.SlimeMeta; +import net.minestom.server.entity.metadata.other.TraderLlamaMeta; +import net.minestom.server.entity.metadata.other.WitherSkullMeta; import net.minestom.server.entity.metadata.villager.VillagerMeta; import net.minestom.server.entity.metadata.villager.WanderingTraderMeta; +import net.minestom.server.entity.metadata.water.AxolotlMeta; import net.minestom.server.entity.metadata.water.DolphinMeta; import net.minestom.server.entity.metadata.water.GlowSquidMeta; import net.minestom.server.entity.metadata.water.SquidMeta; @@ -88,7 +132,7 @@ public enum EntityType implements Keyed { ARROW(NamespaceID.from("minecraft:arrow"), 0.5, 0.5, ArrowMeta::new, EntitySpawnType.BASE), - AXOLOTL(NamespaceID.from("minecraft:axolotl"), 0.75, 0.42, EntityMeta::new, EntitySpawnType.LIVING), + AXOLOTL(NamespaceID.from("minecraft:axolotl"), 0.75, 0.42, AxolotlMeta::new, EntitySpawnType.LIVING), BAT(NamespaceID.from("minecraft:bat"), 0.5, 0.9, BatMeta::new, EntitySpawnType.LIVING), @@ -146,7 +190,7 @@ public enum EntityType implements Keyed { GIANT(NamespaceID.from("minecraft:giant"), 3.6, 12.0, GiantMeta::new, EntitySpawnType.LIVING), - GLOW_ITEM_FRAME(NamespaceID.from("minecraft:glow_item_frame"), 0.5, 0.5, GlowFrameMeta::new, EntitySpawnType.BASE), + GLOW_ITEM_FRAME(NamespaceID.from("minecraft:glow_item_frame"), 0.5, 0.5, GlowItemFrameMeta::new, EntitySpawnType.BASE), GLOW_SQUID(NamespaceID.from("minecraft:glow_squid"), 0.8, 0.8, GlowSquidMeta::new, EntitySpawnType.LIVING), diff --git a/src/main/java/net/minestom/server/entity/metadata/other/GlowFrameMeta.java b/src/main/java/net/minestom/server/entity/metadata/other/GlowItemFrameMeta.java similarity index 71% rename from src/main/java/net/minestom/server/entity/metadata/other/GlowFrameMeta.java rename to src/main/java/net/minestom/server/entity/metadata/other/GlowItemFrameMeta.java index 4e54114b0..d217403a5 100644 --- a/src/main/java/net/minestom/server/entity/metadata/other/GlowFrameMeta.java +++ b/src/main/java/net/minestom/server/entity/metadata/other/GlowItemFrameMeta.java @@ -4,11 +4,11 @@ import net.minestom.server.entity.Entity; import net.minestom.server.entity.Metadata; import org.jetbrains.annotations.NotNull; -public class GlowFrameMeta extends ItemFrameMeta { +public class GlowItemFrameMeta extends ItemFrameMeta { public static final byte OFFSET = ItemFrameMeta.MAX_OFFSET; public static final byte MAX_OFFSET = OFFSET + 0; - public GlowFrameMeta(@NotNull Entity entity, @NotNull Metadata metadata) { + public GlowItemFrameMeta(@NotNull Entity entity, @NotNull Metadata metadata) { super(entity, metadata); } } diff --git a/src/main/java/net/minestom/server/entity/metadata/water/AxolotlMeta.java b/src/main/java/net/minestom/server/entity/metadata/water/AxolotlMeta.java new file mode 100644 index 000000000..d1a752b21 --- /dev/null +++ b/src/main/java/net/minestom/server/entity/metadata/water/AxolotlMeta.java @@ -0,0 +1,39 @@ +package net.minestom.server.entity.metadata.water; + +import net.minestom.server.entity.Entity; +import net.minestom.server.entity.Metadata; +import org.jetbrains.annotations.NotNull; + +public class AxolotlMeta extends WaterAnimalMeta { + public static final byte OFFSET = WaterAnimalMeta.MAX_OFFSET; + public static final byte MAX_OFFSET = OFFSET + 3; + + public AxolotlMeta(@NotNull Entity entity, @NotNull Metadata metadata) { + super(entity, metadata); + } + + //todo variant enum + public int getVariant() { + return metadata.getIndex(OFFSET, 0); + } + + public void setVariant(int variant) { + metadata.setIndex(variant, Metadata.VarInt(variant)); + } + + public boolean isPlayingDead() { + return metadata.getIndex(OFFSET + 1, false); + } + + public void setPlayingDead(boolean playingDead) { + metadata.setIndex(OFFSET + 1, Metadata.Boolean(playingDead)); + } + + public boolean isFromBucket() { + return metadata.getIndex(OFFSET + 2, false); + } + + public void setFromBucket(boolean fromBucket) { + metadata.setIndex(OFFSET + 2, Metadata.Boolean(fromBucket)); + } +}