diff --git a/src/autogenerated/java/net/minestom/server/instance/Biome.java b/src/autogenerated/java/net/minestom/server/instance/Biome.java index 31624e732..fe0cb781b 100644 --- a/src/autogenerated/java/net/minestom/server/instance/Biome.java +++ b/src/autogenerated/java/net/minestom/server/instance/Biome.java @@ -7,95 +7,97 @@ import net.minestom.server.utils.NamespaceID; @SuppressWarnings({"deprecation"}) public enum Biome { - OCEAN("minecraft:ocean"), - PLAINS("minecraft:plains"), - DESERT("minecraft:desert"), - MOUNTAINS("minecraft:mountains"), - FOREST("minecraft:forest"), - TAIGA("minecraft:taiga"), - SWAMP("minecraft:swamp"), - RIVER("minecraft:river"), - NETHER_WASTES("minecraft:nether_wastes"), - THE_END("minecraft:the_end"), - FROZEN_OCEAN("minecraft:frozen_ocean"), - FROZEN_RIVER("minecraft:frozen_river"), - SNOWY_TUNDRA("minecraft:snowy_tundra"), - SNOWY_MOUNTAINS("minecraft:snowy_mountains"), - MUSHROOM_FIELDS("minecraft:mushroom_fields"), - MUSHROOM_FIELD_SHORE("minecraft:mushroom_field_shore"), - BEACH("minecraft:beach"), - DESERT_HILLS("minecraft:desert_hills"), - WOODED_HILLS("minecraft:wooded_hills"), - TAIGA_HILLS("minecraft:taiga_hills"), - MOUNTAIN_EDGE("minecraft:mountain_edge"), - JUNGLE("minecraft:jungle"), - JUNGLE_HILLS("minecraft:jungle_hills"), - JUNGLE_EDGE("minecraft:jungle_edge"), - DEEP_OCEAN("minecraft:deep_ocean"), - STONE_SHORE("minecraft:stone_shore"), - SNOWY_BEACH("minecraft:snowy_beach"), - BIRCH_FOREST("minecraft:birch_forest"), - BIRCH_FOREST_HILLS("minecraft:birch_forest_hills"), - DARK_FOREST("minecraft:dark_forest"), - SNOWY_TAIGA("minecraft:snowy_taiga"), - SNOWY_TAIGA_HILLS("minecraft:snowy_taiga_hills"), - GIANT_TREE_TAIGA("minecraft:giant_tree_taiga"), - GIANT_TREE_TAIGA_HILLS("minecraft:giant_tree_taiga_hills"), - WOODED_MOUNTAINS("minecraft:wooded_mountains"), - SAVANNA("minecraft:savanna"), - SAVANNA_PLATEAU("minecraft:savanna_plateau"), - BADLANDS("minecraft:badlands"), - WOODED_BADLANDS_PLATEAU("minecraft:wooded_badlands_plateau"), - BADLANDS_PLATEAU("minecraft:badlands_plateau"), - SMALL_END_ISLANDS("minecraft:small_end_islands"), - END_MIDLANDS("minecraft:end_midlands"), - END_HIGHLANDS("minecraft:end_highlands"), - END_BARRENS("minecraft:end_barrens"), - WARM_OCEAN("minecraft:warm_ocean"), - LUKEWARM_OCEAN("minecraft:lukewarm_ocean"), - COLD_OCEAN("minecraft:cold_ocean"), - DEEP_WARM_OCEAN("minecraft:deep_warm_ocean"), - DEEP_LUKEWARM_OCEAN("minecraft:deep_lukewarm_ocean"), - DEEP_COLD_OCEAN("minecraft:deep_cold_ocean"), - DEEP_FROZEN_OCEAN("minecraft:deep_frozen_ocean"), - THE_VOID("minecraft:the_void"), - SUNFLOWER_PLAINS("minecraft:sunflower_plains"), - DESERT_LAKES("minecraft:desert_lakes"), - GRAVELLY_MOUNTAINS("minecraft:gravelly_mountains"), - FLOWER_FOREST("minecraft:flower_forest"), - TAIGA_MOUNTAINS("minecraft:taiga_mountains"), - SWAMP_HILLS("minecraft:swamp_hills"), - ICE_SPIKES("minecraft:ice_spikes"), - MODIFIED_JUNGLE("minecraft:modified_jungle"), - MODIFIED_JUNGLE_EDGE("minecraft:modified_jungle_edge"), - TALL_BIRCH_FOREST("minecraft:tall_birch_forest"), - TALL_BIRCH_HILLS("minecraft:tall_birch_hills"), - DARK_FOREST_HILLS("minecraft:dark_forest_hills"), - SNOWY_TAIGA_MOUNTAINS("minecraft:snowy_taiga_mountains"), - GIANT_SPRUCE_TAIGA("minecraft:giant_spruce_taiga"), - GIANT_SPRUCE_TAIGA_HILLS("minecraft:giant_spruce_taiga_hills"), - MODIFIED_GRAVELLY_MOUNTAINS("minecraft:modified_gravelly_mountains"), - SHATTERED_SAVANNA("minecraft:shattered_savanna"), - SHATTERED_SAVANNA_PLATEAU("minecraft:shattered_savanna_plateau"), - ERODED_BADLANDS("minecraft:eroded_badlands"), - MODIFIED_WOODED_BADLANDS_PLATEAU("minecraft:modified_wooded_badlands_plateau"), - MODIFIED_BADLANDS_PLATEAU("minecraft:modified_badlands_plateau"), - BAMBOO_JUNGLE("minecraft:bamboo_jungle"), - BAMBOO_JUNGLE_HILLS("minecraft:bamboo_jungle_hills"), - SOUL_SAND_VALLEY("minecraft:soul_sand_valley"), - CRIMSON_FOREST("minecraft:crimson_forest"), - WARPED_FOREST("minecraft:warped_forest"), - BASALT_DELTAS("minecraft:basalt_deltas"), + OCEAN("minecraft:ocean", 0), + PLAINS("minecraft:plains", 1), + DESERT("minecraft:desert", 2), + MOUNTAINS("minecraft:mountains", 3), + FOREST("minecraft:forest", 4), + TAIGA("minecraft:taiga", 5), + SWAMP("minecraft:swamp", 6), + RIVER("minecraft:river", 7), + NETHER_WASTES("minecraft:nether_wastes", 8), + THE_END("minecraft:the_end", 9), + FROZEN_OCEAN("minecraft:frozen_ocean", 10), + FROZEN_RIVER("minecraft:frozen_river", 11), + SNOWY_TUNDRA("minecraft:snowy_tundra", 12), + SNOWY_MOUNTAINS("minecraft:snowy_mountains", 13), + MUSHROOM_FIELDS("minecraft:mushroom_fields", 14), + MUSHROOM_FIELD_SHORE("minecraft:mushroom_field_shore", 15), + BEACH("minecraft:beach", 16), + DESERT_HILLS("minecraft:desert_hills", 17), + WOODED_HILLS("minecraft:wooded_hills", 18), + TAIGA_HILLS("minecraft:taiga_hills", 19), + MOUNTAIN_EDGE("minecraft:mountain_edge", 20), + JUNGLE("minecraft:jungle", 21), + JUNGLE_HILLS("minecraft:jungle_hills", 22), + JUNGLE_EDGE("minecraft:jungle_edge", 23), + DEEP_OCEAN("minecraft:deep_ocean", 24), + STONE_SHORE("minecraft:stone_shore", 25), + SNOWY_BEACH("minecraft:snowy_beach", 26), + BIRCH_FOREST("minecraft:birch_forest", 27), + BIRCH_FOREST_HILLS("minecraft:birch_forest_hills", 28), + DARK_FOREST("minecraft:dark_forest", 29), + SNOWY_TAIGA("minecraft:snowy_taiga", 30), + SNOWY_TAIGA_HILLS("minecraft:snowy_taiga_hills", 31), + GIANT_TREE_TAIGA("minecraft:giant_tree_taiga", 32), + GIANT_TREE_TAIGA_HILLS("minecraft:giant_tree_taiga_hills", 33), + WOODED_MOUNTAINS("minecraft:wooded_mountains", 34), + SAVANNA("minecraft:savanna", 35), + SAVANNA_PLATEAU("minecraft:savanna_plateau", 36), + BADLANDS("minecraft:badlands", 37), + WOODED_BADLANDS_PLATEAU("minecraft:wooded_badlands_plateau", 38), + BADLANDS_PLATEAU("minecraft:badlands_plateau", 39), + SMALL_END_ISLANDS("minecraft:small_end_islands", 40), + END_MIDLANDS("minecraft:end_midlands", 41), + END_HIGHLANDS("minecraft:end_highlands", 42), + END_BARRENS("minecraft:end_barrens", 43), + WARM_OCEAN("minecraft:warm_ocean", 44), + LUKEWARM_OCEAN("minecraft:lukewarm_ocean", 45), + COLD_OCEAN("minecraft:cold_ocean", 46), + DEEP_WARM_OCEAN("minecraft:deep_warm_ocean", 47), + DEEP_LUKEWARM_OCEAN("minecraft:deep_lukewarm_ocean", 48), + DEEP_COLD_OCEAN("minecraft:deep_cold_ocean", 49), + DEEP_FROZEN_OCEAN("minecraft:deep_frozen_ocean", 50), + THE_VOID("minecraft:the_void", 127), + SUNFLOWER_PLAINS("minecraft:sunflower_plains", 129), + DESERT_LAKES("minecraft:desert_lakes", 130), + GRAVELLY_MOUNTAINS("minecraft:gravelly_mountains", 131), + FLOWER_FOREST("minecraft:flower_forest", 132), + TAIGA_MOUNTAINS("minecraft:taiga_mountains", 133), + SWAMP_HILLS("minecraft:swamp_hills", 134), + ICE_SPIKES("minecraft:ice_spikes", 140), + MODIFIED_JUNGLE("minecraft:modified_jungle", 149), + MODIFIED_JUNGLE_EDGE("minecraft:modified_jungle_edge", 151), + TALL_BIRCH_FOREST("minecraft:tall_birch_forest", 155), + TALL_BIRCH_HILLS("minecraft:tall_birch_hills", 156), + DARK_FOREST_HILLS("minecraft:dark_forest_hills", 157), + SNOWY_TAIGA_MOUNTAINS("minecraft:snowy_taiga_mountains", 158), + GIANT_SPRUCE_TAIGA("minecraft:giant_spruce_taiga", 160), + GIANT_SPRUCE_TAIGA_HILLS("minecraft:giant_spruce_taiga_hills", 161), + MODIFIED_GRAVELLY_MOUNTAINS("minecraft:modified_gravelly_mountains", 162), + SHATTERED_SAVANNA("minecraft:shattered_savanna", 163), + SHATTERED_SAVANNA_PLATEAU("minecraft:shattered_savanna_plateau", 164), + ERODED_BADLANDS("minecraft:eroded_badlands", 165), + MODIFIED_WOODED_BADLANDS_PLATEAU("minecraft:modified_wooded_badlands_plateau", 166), + MODIFIED_BADLANDS_PLATEAU("minecraft:modified_badlands_plateau", 167), + BAMBOO_JUNGLE("minecraft:bamboo_jungle", 168), + BAMBOO_JUNGLE_HILLS("minecraft:bamboo_jungle_hills", 169), + SOUL_SAND_VALLEY("minecraft:soul_sand_valley", 170), + CRIMSON_FOREST("minecraft:crimson_forest", 171), + WARPED_FOREST("minecraft:warped_forest", 172), + BASALT_DELTAS("minecraft:basalt_deltas", 173), ; private String namespaceID; + private int id; - Biome(String namespaceID) { + Biome(String namespaceID, int id) { this.namespaceID = namespaceID; + this.id = id; Registries.biomes.put(NamespaceID.from(namespaceID), this); } public int getId() { - return ordinal(); + return id; } public String getNamespaceID() { @@ -103,8 +105,10 @@ public enum Biome { } public static Biome fromId(int id) { - if(id >= 0 && id < values().length) { - return values()[id]; + for(Biome o : values()) { + if(o.getId() == id) { + return o; + } } return null; } diff --git a/src/generators/java/net/minestom/codegen/BasicEnumGenerator.java b/src/generators/java/net/minestom/codegen/BasicEnumGenerator.java index 0b800045b..47d8d08f5 100644 --- a/src/generators/java/net/minestom/codegen/BasicEnumGenerator.java +++ b/src/generators/java/net/minestom/codegen/BasicEnumGenerator.java @@ -15,9 +15,18 @@ import java.util.TreeSet; public abstract class BasicEnumGenerator extends MinestomEnumGenerator { private static final String MC_DATA_REGISTRIES_PATH = "minecraft_data/reports/registries.json"; + /** + * Are IDs linear? Biomes are not for instance. + */ + private final boolean linear; private NamespaceID defaultEntry; protected BasicEnumGenerator(File targetFolder) throws IOException { + this(targetFolder, true); + } + + protected BasicEnumGenerator(File targetFolder, boolean linear) throws IOException { + this.linear = linear; generateTo(targetFolder); } @@ -47,12 +56,23 @@ public abstract class BasicEnumGenerator extends MinestomEnumGenerator= 0 && id < values().length) {", - "\treturn values()[id];", - "}", - "return "+(defaultEntry == null ? "null" : identifier(defaultEntry))+";" - ); + if(linear) { + generator.addMethod("fromId", "(int id)", "static "+getClassName(), + "if(id >= 0 && id < values().length) {", + "\treturn values()[id];", + "}", + "return "+(defaultEntry == null ? "null" : identifier(defaultEntry))+";" + ); + } else { + generator.addMethod("fromId", "(int id)", "static "+getClassName(), + "for("+getClassName()+" o : values()) {", + "\tif(o.getId() == id) {", + "\t\treturn o;", + "\t}", + "}", + "return "+(defaultEntry == null ? "null" : identifier(defaultEntry))+";" + ); + } } private String identifier(NamespaceID id) { @@ -67,8 +87,13 @@ public abstract class BasicEnumGenerator extends MinestomEnumGenerator { diff --git a/src/generators/java/net/minestom/codegen/stats/BiomesEnumGenerator.java b/src/generators/java/net/minestom/codegen/stats/BiomesEnumGenerator.java index 105173d65..aa173a725 100644 --- a/src/generators/java/net/minestom/codegen/stats/BiomesEnumGenerator.java +++ b/src/generators/java/net/minestom/codegen/stats/BiomesEnumGenerator.java @@ -36,7 +36,7 @@ public class BiomesEnumGenerator extends BasicEnumGenerator { } private BiomesEnumGenerator(File targetFolder) throws IOException { - super(targetFolder); + super(targetFolder, false); } @Override